18
Luận văn Thạc sĩ 2008 Phân tích, Thiết kế phần mềm nhúng Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội 1 MỤC LỤC DANH MỤC HÌNH VẼ BẢNG BIỂU TRONG LUẬN VĂN .................................. 3 BẢNG THUẬT NGỮ VÀ KÝ HIỆU SỬ DỤNG ....................................................... 5 LỜI GIỚI THIỆU......................................................................................................... 6 CHƢƠNG 1: TỔNG QUAN VỀ THIẾT KẾ ............................................................. 8 HỆ THỐNG NHÚNG................................................................................................... 8 1.1 Hệ nhúng và các khái niệm ................................................................................... 8 1.1.1 Hệ thống nhúng .............................................................................................. 8 1.1.2 Hệ thống nhúng thời gian thực ....................................................................... 8 1.2 Giới thiệu chung về thiết kế hệ thống nhúng ...................................................... 10 1.2.1 Xác định yêu cầu sản phẩm.......................................................................... 11 1.2.2 Lựa chọn bộ vi xử lý .................................................................................... 11 1.2.2 Phân bổ giữa phần cứng và phần mềm ........................................................ 12 1.2.3 Thực hiện và lặp lại ...................................................................................... 14 1.2.4 Thiết kế chi tiết phần cứng và phần mềm .................................................... 14 1.2.5 Tích hợp phần cứng phần mềm .................................................................... 15 1.2.6 Kiểm thử....................................................... Error! Bookmark not defined. 1.2.7 Bảo trì và cập nhật........................................ Error! Bookmark not defined. CHƢƠNG 2: THIẾT KẾ PHẦN MỀM NHÚNG ....... Error! Bookmark not defined. 2.1 Phần mềm nhúng ................................................ Error! Bookmark not defined. 2.1.1 Sự khác biệt giữa phần mềm nhúng và phần mềm thông thường trên PC ............................................................................... Error! Bookmark not defined. 2.1.2 Nguyên tắc thiết kế chung ............................ Error! Bookmark not defined. 2.1.3 Thiết kế phần mềm nhúng với RTOS .......... Error! Bookmark not defined. 2.2 Kiến trúc phần mềm nhúng ................................. Error! Bookmark not defined. 2.2.1 Round robin .................................................. Error! Bookmark not defined. 2.2.2 Round robin với ngắt ................................... Error! Bookmark not defined. 2.2.3 Kiến trúc Function Queue - Scheduling .... Error! Bookmark not defined. 2.2.4 Kiến trúc Hệ điều hành thời gian thực (RTOS) ......... Error! Bookmark not defined. 2.3 Các phương pháp đặc tả và thiết kế phần mềm nhúng ..... Error! Bookmark not defined. 2.3.1 Phương pháp đặc tả hình thức (formal method) ........ Error! Bookmark not defined. 2.3.2 Phương pháp đặc tả bán hình thức (semi-formal method) Error! Bookmark not defined. 2.4 Công cụ phát triển phần mềm nhúng .................. Error! Bookmark not defined. 2.5 Case study về thiết kế phần mềm nhúng ............ Error! Bookmark not defined.

LỜI GIỚI THIỆU - repository.vnu.edu.vnrepository.vnu.edu.vn/bitstream/VNU_123/15110/1/V_L0_01820.pdf · 3.1.1 Lập lịch ưu tiên ... 3.9 Ưu nhược điểm của hệ

Embed Size (px)

Citation preview

Page 1: LỜI GIỚI THIỆU - repository.vnu.edu.vnrepository.vnu.edu.vn/bitstream/VNU_123/15110/1/V_L0_01820.pdf · 3.1.1 Lập lịch ưu tiên ... 3.9 Ưu nhược điểm của hệ

Luận văn Thạc sĩ 2008 Phân tích, Thiết kế phần mềm nhúng

Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội

1

MỤC LỤC

DANH MỤC HÌNH VẼ BẢNG BIỂU TRONG LUẬN VĂN .................................. 3

BẢNG THUẬT NGỮ VÀ KÝ HIỆU SỬ DỤNG ....................................................... 5

LỜI GIỚI THIỆU ......................................................................................................... 6

CHƢƠNG 1: TỔNG QUAN VỀ THIẾT KẾ ............................................................. 8

HỆ THỐNG NHÚNG ................................................................................................... 8

1.1 Hệ nhúng và các khái niệm ................................................................................... 8

1.1.1 Hệ thống nhúng .............................................................................................. 8

1.1.2 Hệ thống nhúng thời gian thực ....................................................................... 8

1.2 Giới thiệu chung về thiết kế hệ thống nhúng ...................................................... 10

1.2.1 Xác định yêu cầu sản phẩm .......................................................................... 11

1.2.2 Lựa chọn bộ vi xử lý .................................................................................... 11

1.2.2 Phân bổ giữa phần cứng và phần mềm ........................................................ 12

1.2.3 Thực hiện và lặp lại ...................................................................................... 14

1.2.4 Thiết kế chi tiết phần cứng và phần mềm .................................................... 14

1.2.5 Tích hợp phần cứng phần mềm .................................................................... 15

1.2.6 Kiểm thử ....................................................... Error! Bookmark not defined.

1.2.7 Bảo trì và cập nhật........................................ Error! Bookmark not defined.

CHƢƠNG 2: THIẾT KẾ PHẦN MỀM NHÚNG ....... Error! Bookmark not defined.

2.1 Phần mềm nhúng ................................................ Error! Bookmark not defined.

2.1.1 Sự khác biệt giữa phần mềm nhúng và phần mềm thông thường trên PC

............................................................................... Error! Bookmark not defined.

2.1.2 Nguyên tắc thiết kế chung ............................ Error! Bookmark not defined.

2.1.3 Thiết kế phần mềm nhúng với RTOS .......... Error! Bookmark not defined.

2.2 Kiến trúc phần mềm nhúng ................................. Error! Bookmark not defined.

2.2.1 Round robin .................................................. Error! Bookmark not defined.

2.2.2 Round robin với ngắt ................................... Error! Bookmark not defined.

2.2.3 Kiến trúc Function – Queue - Scheduling .... Error! Bookmark not defined.

2.2.4 Kiến trúc Hệ điều hành thời gian thực (RTOS) ......... Error! Bookmark not

defined.

2.3 Các phương pháp đặc tả và thiết kế phần mềm nhúng ..... Error! Bookmark not

defined.

2.3.1 Phương pháp đặc tả hình thức (formal method) ........ Error! Bookmark not

defined.

2.3.2 Phương pháp đặc tả bán hình thức (semi-formal method) Error! Bookmark

not defined.

2.4 Công cụ phát triển phần mềm nhúng .................. Error! Bookmark not defined.

2.5 Case study về thiết kế phần mềm nhúng ............ Error! Bookmark not defined.

Page 2: LỜI GIỚI THIỆU - repository.vnu.edu.vnrepository.vnu.edu.vn/bitstream/VNU_123/15110/1/V_L0_01820.pdf · 3.1.1 Lập lịch ưu tiên ... 3.9 Ưu nhược điểm của hệ

Luận văn Thạc sĩ 2008 Phân tích, Thiết kế phần mềm nhúng

Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội

2

2.5.1 Phân tích yêu cầu ......................................... Error! Bookmark not defined.

2.5.2 Thiết kế ......................................................... Error! Bookmark not defined.

2.5.3 Phân chia tác vụ ........................................... Error! Bookmark not defined.

2.5.4 Kiến trúc phần cứng của hệ thống................ Error! Bookmark not defined.

CHƢƠNG 3: HỆ ĐIỀU HÀNH THỜI GIAN THỰC . Error! Bookmark not defined.

3.1 Tính đa nhiệm ..................................................... Error! Bookmark not defined.

3.1.1 Lập lịch ưu tiên (Preemptive Scheduling) ... Error! Bookmark not defined.

3.1.2 Kích hoạt và bỏ kích hoạt tác vụ (Activation and Deactivation of Tasks)

............................................................................... Error! Bookmark not defined.

3.1.3 Lập lịch hướng sự kiện (Event-Driven Scheduling) .. Error! Bookmark not

defined.

3.2 Theo dõi các tác vụ ............................................. Error! Bookmark not defined.

3.3 Truyền thông giữa các tác vụ .............................. Error! Bookmark not defined.

3.4 Quản lý bộ nhớ .................................................... Error! Bookmark not defined.

3.5 Quản lý tài nguyên .............................................. Error! Bookmark not defined.

3.6 RTOS và ngắt ...................................................... Error! Bookmark not defined.

3.7 Liên lạc trong RTOS thông dụng ........................ Error! Bookmark not defined.

3.8 Khả năng sử dụng RTOS .................................... Error! Bookmark not defined.

3.9 Ưu nhược điểm của hệ điều hành thời gian thực Error! Bookmark not defined.

3.10 Hệ điều hành thời gian thực µC/OS .................. Error! Bookmark not defined.

CHƢƠNG 4: CÁC CÁCH TIẾP CẬN VỚI BÀI TOÁN NHẬN DẠNG CHỮ

NÔM ................................................................................ Error! Bookmark not defined.

4.1 Nhận dạng chữ Nôm bằng mạng nơ-ron............. Error! Bookmark not defined.

4.1.1 Áp dụng mạng nơ-ron trong nhận dạng chữ Nôm ..... Error! Bookmark not

defined.

4.1.2 Thưc nghiêm ................................................ Error! Bookmark not defined.

4.2 Ứng dụng Tesseract để nhận dạng chữ Nôm ...... Error! Bookmark not defined.

4.2.1 Tóm tắt về Tesseract ................................... Error! Bookmark not defined.

4.2.2. Áp dụng với chữ Nôm ................................. Error! Bookmark not defined.

4.3. So sánh và thảo luận .......................................... Error! Bookmark not defined.

CHƢƠNG 5: ỨNG DỤNG VÀ PHÁT TRIỂN PHẦN MỀM NHẬN DẠNG CHỮ

NÔM CHO THIẾT BỊ NHÚNG ................................... Error! Bookmark not defined.

5.1 Phân tích ứng dụng trên môi trường nhúng ........ Error! Bookmark not defined.

5.2 Thực nghiệm chương trình nhận dạng dựa trên Tesseract với môi trường µC/OS

................................................................................... Error! Bookmark not defined.

KẾT LUẬN ..................................................................... Error! Bookmark not defined.

TÀI LIỆU THAM KHẢO .......................................................................................... 15

PHỤ LỤC ........................................................................ Error! Bookmark not defined.

Page 3: LỜI GIỚI THIỆU - repository.vnu.edu.vnrepository.vnu.edu.vn/bitstream/VNU_123/15110/1/V_L0_01820.pdf · 3.1.1 Lập lịch ưu tiên ... 3.9 Ưu nhược điểm của hệ

Luận văn Thạc sĩ 2008 Phân tích, Thiết kế phần mềm nhúng

Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội

3

DANH MỤC HÌNH VẼ BẢNG BIỂU TRONG LUẬN VĂN

DANH MỤC HÌNH VẼ

Hình 1.1 Quan hệ giữa hệ nhúng và thời gian thực ........................................................ 9

Hình 1.2 Quy trình thiết kế co-design .......................................................................... 10

Hình 1.3 Thiết kế máy in laser ..................................................................................... 13

Hình 1.4 Một ví dụ về vấn đề big endian/little endian . Error! Bookmark not defined.

Hình 1.5 Mối liên hệ về chi phí sửa lỗi cho mỗi giai đoạnError! Bookmark not

defined.

Hình 2.1 Phần mềm nhúng trong hệ thống ................... Error! Bookmark not defined.

Hình 2.2 Thành phần phần mềm nhúng ....................... Error! Bookmark not defined.

Hình 2.3 Cấu trúc đề nghị của một tác vụ .................... Error! Bookmark not defined.

Hình 2.4 Kiến trúc Round robin ................................... Error! Bookmark not defined.

Hình 2.5. Kiến trúc Round-robin with interrupts ......... Error! Bookmark not defined.

Hình 2.6 Kiến trúc Function-Queue-Scheduling .......... Error! Bookmark not defined.

Hình 2.7 Kiến trúc Hệ điều hành thời gian thực .......... Error! Bookmark not defined.

Hình 2.8 Biểu đồ luồng dữ liệu hệ thống đồng hồ báo thứcError! Bookmark not

defined.

Hình 2.9. Biểu đồ trạng thái ......................................... Error! Bookmark not defined.

Hình 2.10 Đặc tả theo giả mã ....................................... Error! Bookmark not defined.

Hình 2.11 Qui trình phát triển blueprint ....................... Error! Bookmark not defined.

Hình 2.12 Cấu trúc của SPT profile ............................. Error! Bookmark not defined.

Hình 2.13 Quá trình phát triển và biên dịch phần mềm nhúngError! Bookmark not

defined.

Hình 2.14 Hình dáng của thiết bị .................................. Error! Bookmark not defined.

Hình 2.15 Biểu đồ ngữ cảnh của hệ thống ................... Error! Bookmark not defined.

Hình 2.16 Biểu đồ Use Case ......................................... Error! Bookmark not defined.

Hình 2.17 Biểu đồ tuần tự cho ca sử dụng Playback a messageError! Bookmark not

defined.

Hình 2.18 Alarm while playback a message ................ Error! Bookmark not defined.

Hình 2.19 Ngữ cảnh vào và ra khỏi chế độ stand-by ... Error! Bookmark not defined.

Page 4: LỜI GIỚI THIỆU - repository.vnu.edu.vnrepository.vnu.edu.vn/bitstream/VNU_123/15110/1/V_L0_01820.pdf · 3.1.1 Lập lịch ưu tiên ... 3.9 Ưu nhược điểm của hệ

Luận văn Thạc sĩ 2008 Phân tích, Thiết kế phần mềm nhúng

Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội

4

Hình 2.20 Biểu đồ lớp của hệ thống ............................. Error! Bookmark not defined.

Hình 2.21 Các hệ thống con trong Digital Sound RecorderError! Bookmark not

defined.

Hình 2.22 Biểu đồ lớp hệ thống Audio ........................ Error! Bookmark not defined.

Hình 2.23 Biểu đồ tuần tự nghe một thông điệp .......... Error! Bookmark not defined.

Hình 2.24 Thiết kế phần cứng của hệ thống ................. Error! Bookmark not defined.

Hình 3.1 Cấu trúc hệ điều hành thời gian thực ............ Error! Bookmark not defined.

Hình 3.2 Hoạt động chia nhỏ thời gian và tuần tự ....... Error! Bookmark not defined.

Hình 3.3 Một ví dụ về semaphore ................................ Error! Bookmark not defined.

Hình 3.4 Truyền thông của RTOS ................................ Error! Bookmark not defined.

Hình 3.5 Các khối bộ nhớ được gán trong RTOS ........ Error! Bookmark not defined.

Hình 3.6 Cấu trúc một tác vụ ........................................ Error! Bookmark not defined.

Hình 3.7 Biểu đồ chuyển trạng thái của tác vụ ............ Error! Bookmark not defined.

Hình 3.8 Hàm dịch vụ ngắt trong µC/OS ..................... Error! Bookmark not defined.

Hình 4.2. Câu truc mô-dun của chương trinh ............... Error! Bookmark not defined.

Hình 4.3 Lưu đô huân luyên mang ............................... Error! Bookmark not defined.

Hình 4.4 Kiến trúc tổng quát của Tesseract ................. Error! Bookmark not defined.

Hình 5.1 Quá trình học chữ Nôm ................................. Error! Bookmark not defined.

Hình 5.2 Quá trình nhận dạng ...................................... Error! Bookmark not defined.

Hình 5.3 Biểu đồ ngữ cảnh của hệ thống ..................... Error! Bookmark not defined.

Hình 5.4 Biểu đồ Use case của hệ thống ...................... Error! Bookmark not defined.

Hình 5.5 Biểu đồ tuần tự của hệ thống nhận dạng chữ NômError! Bookmark not

defined.

Hình 5.6 Biểu đồ lớp của hệ thống nhận dạng chữ NômError! Bookmark not

defined.

Hình 5.7 Trạng thái của tác vụ khi thực thi trong hệ thốngError! Bookmark not

defined.

Hình 5.8 Biểu đồ chuyển đổi giữa các tác vụ ............... Error! Bookmark not defined.

DANH MỤC BẢNG BIỂU

Bảng 2.1 Bảng các sự kiện tác động lên hệ thống ........ Error! Bookmark not defined.

Bảng 2.2 Các đối tượng của hệ thống .......................... Error! Bookmark not defined.

Bảng 4.1 Môt kêt qua nhận dạng .................................. Error! Bookmark not defined.

Bảng 4.2 Kêt qua nhân dang chư Nôm vơi Tesseract ... Error! Bookmark not defined.

Bảng 5.1 Các sự kiện tác động vào chương trình ......... Error! Bookmark not defined.

Bảng 5.2 Kết quả thực hiện tác vụ nhận dạng .............. Error! Bookmark not defined.

Page 5: LỜI GIỚI THIỆU - repository.vnu.edu.vnrepository.vnu.edu.vn/bitstream/VNU_123/15110/1/V_L0_01820.pdf · 3.1.1 Lập lịch ưu tiên ... 3.9 Ưu nhược điểm của hệ

Luận văn Thạc sĩ 2008 Phân tích, Thiết kế phần mềm nhúng

Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội

5

Page 6: LỜI GIỚI THIỆU - repository.vnu.edu.vnrepository.vnu.edu.vn/bitstream/VNU_123/15110/1/V_L0_01820.pdf · 3.1.1 Lập lịch ưu tiên ... 3.9 Ưu nhược điểm của hệ

Luận văn Thạc sĩ 2008 Phân tích, Thiết kế phần mềm nhúng

Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội

6

BẢNG THUẬT NGỮ VÀ KÝ HIỆU SỬ DỤNG

ANN Kỹ thuật nhận dạng dựa trên mạng nơ ron (Artifical neural

network)

ASIC Vi mạch tích hợp chuyên dụng (Application Integrated IC)

CPU Bộ xử lý trung tâm (Central Processing Unit)

CSP Một ngôn ngữ hình thức mô tính tương tác trong các hệ

thống (Communicating Sequential Process)

DMA Truy cập bộ nhớ trực tiếp (Direct Memory Access)

FPU Đơn vị xử lý dấu phải động (Float Processing Unit)

IC Mạch tích hợp (Integrated Circuit)

ISR Hàm dịch vụ ngắt (Interrupt Service Routine)

JTAG Một chuẩn giao tiếp để truyền dữ liệu được đưa ra bởi

JTAG (Joint Test Action Group)

K-NN Kỹ thuật nhận dạng dựa trên láng giềng gần nhất

(K-Nearest Neighbor)

OMG Tên của một tổ chức (Object Management Group)

PLD Thiết bị logic khả trình (Programmable Logic Device)

ROOM Mô hình hoá hướng đối tượng thời gian thực (Real time

Object Oriented Modelling)

RTOS Hệ điều hành thời gian thực (Real time Operating System)

UML-SPT Một chuẩn mô tả cho các ứng dụng thời gian thực dựa trên

UML

TCB Khối điều khiển tác vụ (Task Control Block)

VHDL Một ngôn ngữ đặc tả phần cứng (Vhsic Hardware

Description Language)

UML Ngôn ngữ mô hình hoá thống nhất (Unified Modelling

Language)

Page 7: LỜI GIỚI THIỆU - repository.vnu.edu.vnrepository.vnu.edu.vn/bitstream/VNU_123/15110/1/V_L0_01820.pdf · 3.1.1 Lập lịch ưu tiên ... 3.9 Ưu nhược điểm của hệ

Luận văn Thạc sĩ 2008 Phân tích, Thiết kế phần mềm nhúng

Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội

7

LỜI GIỚI THIỆU

Thời gian gần đây, các Hệ thống nhúng – Thời gian thực được quan tâm nhiều hơn

ở Việt Nam, và trên thế giới thì các hệ thống này đã và đang được phát triển mạnh mẽ

và là xu hướng thịnh hành ở các nước Công nghiệp vì những lợi ích to lớn, thiết thực

mà nó mang lại. Theo các chuyên gia nhận định, sự phát triển của máy tính (PC) đã

chuyển sang giai đoạn thứ 3 - giai đoạn của môi trường thông minh mà hệ thống

nhúng là cốt lõi (còn gọi là giai đoạn hậu PC - Internet). Phát triển hệ nhúng và phần

mềm nhúng đang là quốc sách của nhiều quốc gia.

Tuy nhiên muốn xây dựng Hệ thống nhúng – Thời gian thực tốt, đáp ứng được yêu

cầu đòi hỏi người thiết kế và phát triển phải có sự hiểu biết sâu về hệ thống, thiết bị

phần cứng, những vấn đề về hệ điều hành thời gian thực (RTOS), lập trình nhúng, các

giải thuật trong lập lịch (Scheduling), cấp phát (Allocation), bố trí hệ thống (layout),

phân chia phần cứng – phần mềm (HW-SW partioning)…Việc thiết kế và xây dựng hệ

thống nhúng cần phát triển theo hướng co-design [7]. Nghĩa là phải phát triển phần

cứng và phần mềm đồng thời nhằm xác định giải pháp tối ưu nhất cho hệ thống nhúng.

Mục đích của luận văn là đi sâu nghiên cứu các phương pháp, cách thức nhằm phân

tích, thiết kế tốt phần mềm nhúng trong hệ thống nhúng - thời gian thực.

Bên cạnh mục đích trên, còn có một mục tiêu rất quan trọng và thiết thực đó là

nghiên cứu các cách tiếp cận nhận dạng chữ Nôm để xây dựng ứng dụng cho bài toán

này trên thiết bị nhúng. Về lĩnh vực nhận dạng, nhận dạng chữ là bài toán rất hữu ích

trong việc số hóa dữ liệu ở dạng văn bản giấy hoặc ảnh. Với chữ Latin bài toán đã

được nghiên cứu và phát triển từ lâu và hiện có nhiều phần mềm nhận dạng ký tự Latin

với độ chính xác cao. Gần đây một số ngôn ngữ tượng hình như chữ Trung Quốc hay

chữ Nhật Bản cũng đã được giải quyết bằng nhiều phương pháp nhận dạng khác nhau

như: láng giềng gần nhất [9], mạng nơ-ron [29].

Ở Việt Nam, vấn đề nhận dạng chữ Quốc ngữ cũng đang được nhiều tổ chức thực

hiện, ví dụ VnDOCR [5] cho phép quét, đọc ảnh văn bản với nhiều định dạng khác

nhau và kết quả nhận dạng là văn bản có kiểu phông tùy chọn. Tuy nhiên với bài toán

nhận dạng chữ Nôm, bài toán nhận dạng rất có ý nghĩa trong việc khôi phục và gìn giữ

di sản văn hóa dân tộc, hiện vẫn chưa có nhiều nghiên cứu với kết quả khả quan. Một

số tổ chức đã nghiên cứu và xây dựng một số phần mềm liên quan đến số hóa chữ

Nôm như: bộ phông chữ Nôm của Viện Hán Nôm, phần mềm Từ điển Hán Nôm trên

PDA của Trung tâm công nghệ thông tin Thừa Thiên Huế [5], phần mềm đánh văn bản

chữ Hán Nôm cua tac gia Trần Uyên Thi và Alexandre Lê, phần mềm từ điển Trực

tuyến Việt-Hán-Nôm biên soạn dựa trên cuốn Tự điển Hán -Việt của Thiều Chửu do

nhóm tác giả Phan Anh Dũng và Nguyễn Thế thực hiện [4]. Đây là những nền tảng cần

Page 8: LỜI GIỚI THIỆU - repository.vnu.edu.vnrepository.vnu.edu.vn/bitstream/VNU_123/15110/1/V_L0_01820.pdf · 3.1.1 Lập lịch ưu tiên ... 3.9 Ưu nhược điểm của hệ

Luận văn Thạc sĩ 2008 Phân tích, Thiết kế phần mềm nhúng

Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội

8

thiết khích lệ tôi nghiên cứu bài toán nhận dạng chữ Nôm để ứng dụng vào các nguồn

văn bản đang tồn tại rất nhiều trong các thư viện, công trình văn hoá, và trong đời sống

hàng ngày cũng như xây dựng những tiện ích nhận dạng chữ Nôm trên thiết bị nhúng

để đáp ứng nhu cầu của nhân dân.

Luận văn được chia thành 5 chương và phụ lục. Trong đó:

Chƣơng 1: trình bày về hệ thống nhúng thời gian thực và tổng quan về thiết kế

những hệ thống này.

Chƣơng 2: trình bày về phần mềm nhúng và các phương pháp thiết kế.

Chƣơng 3: trình bày về hệ điều hành thời gian thực (RTOS) và các dịch vụ của

nó.

Chƣơng 4: trình bày về các cách tiếp cận với bài toán nhận dạng chữ Nôm và

những kết quả thực nghiệm của các phương pháp.

Chƣơng 5: trình bày về phân tích chương trình nhận dạng chữ Nôm dựa trên

Tesseract cho thiết bị nhúng và thực nghiệm trên hệ điều hành thời gian thực

µC/OS.

Page 9: LỜI GIỚI THIỆU - repository.vnu.edu.vnrepository.vnu.edu.vn/bitstream/VNU_123/15110/1/V_L0_01820.pdf · 3.1.1 Lập lịch ưu tiên ... 3.9 Ưu nhược điểm của hệ

Luận văn Thạc sĩ 2008 Phân tích, Thiết kế phần mềm nhúng

Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội

9

CHƢƠNG 1: TỔNG QUAN VỀ THIẾT KẾ

HỆ THỐNG NHÚNG

1.1 Hệ nhúng và các khái niệm

1.1.1 Hệ thống nhúng

Trong thế giới thực của chúng ta bất kỳ một thiết bị hay hệ thống điện/điện tử

có khả năng xử lý thông tin và điều khiển đều có thể tiềm ẩn trong đó một thiết bị hay

hệ nhúng, ví dụ như các thiết bị truyền thông, thiết bị đo lường điều khiển, các thiết bị

phục vụ sinh hoạt hàng ngày như lò vi sóng, máy giặt, camera…Rất dễ dàng để có thể

kể ra hàng loạt các thiết bị hay hệ thống như vậy đang tồn tại quanh ta, chúng là hệ

nhúng. Vậy hệ nhúng thực chất là gì và nên hiểu thế nào về hệ nhúng? Hiện nay cũng

chưa có một định nghĩa nào thực sự thoả đáng để được chuẩn hoá và thừa nhận rộng

rãi cho hệ nhúng mà vẫn chỉ là những khái niệm diễn tả về chúng thông qua những đặc

thù chung [25]. Tuy nhiên ở đây chúng ta có thể hiểu hệ nhúng là một phần hệ thống

xử lý thông tin tích hợp trong các hệ thống lớn, phức hợp và độc lập ví dụ như trong

ôtô, các thiết bị đo lường, điều khiển, truyền thông và thiết bị thông minh nói chung.

Chúng là những tổ hợp của phần cứng và phần mềm để thực hiện một hoặc một nhóm

chức năng chuyên biệt, cụ thể (Trái ngược với máy tính PC mà chúng ta thường thấy

được sử dụng không phải cho một chức năng mà là rất nhiều chức năng hay phục vụ

chung cho nhiều mục đích).

Chúng ta có thể kể ra rất nhiều các ứng dụng của hệ thống nhúng đang được sử

dụng hiện nay, và xu thế sẽ còn tiếp tục tăng nhanh. Một số lĩnh vực của các hệ thống

nhúng có thể được nhóm như sau:

Các thiết bị điều khiển

Ôtô, tàu điện

Truyền thông

Thiết bị y tế

Hệ thống đo lường thẩm định

Toà nhà thông minh

Thiết bị trong các dây truyền sản xuất

Rôbốt

1.1.2 Hệ thống nhúng thời gian thực

Hệ thống thời gian thực là hệ thống mà tính đúng đắn của toàn bộ hệ thống phụ

thuộc cả vào tính đúng đắn về chức năng và tính đúng đắn về thời gian. Tính đúng đắn

về thời gian được hiểu là yêu cầu của hệ thống phải đảm bảo thoả mãn về tính tiền

Page 10: LỜI GIỚI THIỆU - repository.vnu.edu.vnrepository.vnu.edu.vn/bitstream/VNU_123/15110/1/V_L0_01820.pdf · 3.1.1 Lập lịch ưu tiên ... 3.9 Ưu nhược điểm của hệ

Luận văn Thạc sĩ 2008 Phân tích, Thiết kế phần mềm nhúng

Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội

10

định trong hoạt động của hệ thống. Tính tiền định nói lên hành vi của hệ thống thực

hiện đúng trong một khung thời gian cho trước hoàn toàn xác định. Khung thời gian

này được quyết định bởi đặc điểm hoặc yêu cầu của hệ thống, có thể là vài giây và

cũng có thể là vài nano giây hoặc nhỏ hơn nữa. Ở đây chúng ta phân biệt yếu tố thời

gian gắn liền với khái niệm về thời gian thực. Không phải hệ thống thực hiện rất nhanh

là sẽ đảm bảo được tính thời gian thực vì nhanh hay chậm hoàn toàn là phép so sánh

có tính tương đối vì mili giây có thể là nhanh với hệ thống điều khiển nhiệt nhưng lại

là chậm đối với các đối tượng điều khiển điện như dòng, áp…. Hơn thế nữa nếu chỉ

nhanh không thì chưa đủ mà phải đảm bảo duy trì ổn định bằng một cơ chế hoạt động

tin cậy. Chính vì vậy hệ thống không kiểm soát được hoạt động của nó thì không thể là

một hệ thống đảm bảo tính thời gian thực mặc dù hệ thống đó có thể cho đáp ứng rất

nhanh, thậm chí nhanh hơn rất nhiều so với yêu cầu đặt ra. Một ví dụ minh hoạ tiêu

biểu đó là cơ chế truyền thông dữ liệu qua đường truyền chuẩn Ethernet truyền thống,

mặc dù ai cũng biết tốc độ truyền là rất nhanh nhưng vẫn không phải hệ hoạt động thời

gian thực vì không thoả mãn tính tiền định trong cơ chế truyền dữ liệu (có thể là rất

nhanh và cũng có thể là rất chậm nếu có sự canh trạnh và giao thông đường truyền bị

nghẽn).

Người ta phân ra làm hai loại đối với khái niệm thời gian thực là cứng (hard

real-time) và mềm (soft real-time). Thời gian thực cứng là khi hệ thống hoạt động với

yêu cầu thoả mãn sự ràng buộc trong khung thời gian cứng tức là nếu vi phạm thì sẽ

dẫn đến hoạt động của toàn hệ thống bị sai hoặc bị phá huỷ. Ví dụ về hoạt động điều

khiển cho một lò phản ứng hạt nhân, nếu chậm ra quyết định có thể dẫn đến thảm hoạ

gây ra do phản ứng phân hạch và dẫn đến bùng nổ cả hệ thống. Thời gian thực mềm là

khi hệ thống hoạt động với yêu cầu thoả mãn ràng buộc trong khung thời gian mềm,

nếu vi phạm và sai lệch nằm trong khoảng cho phép thì hệ thống vẫn có thể hoạt động

được và chấp nhận được. Ví dụ như hệ thống phát thanh truyền hình, nếu thông tin

truyền đi từ trạm phát tới người nghe/nhìn chậm một vài giây thì cũng không ảnh

hưởng đáng kể đến tính thời sự của tin được truyền đi và hoàn toàn được chấp nhận

bởi người theo dõi. Thực tế thấy rằng hầu hết hệ nhúng là các hệ thời gian thực và hầu

hết các hệ thời gian thực là hệ nhúng. Điều này phản ánh mối quan hệ mật thiết giữa

hệ nhúng và thời gian thực và tính thời gian thực đã trở thành như một thuộc tính tiêu

biểu của hệ nhúng. Vì vậy hiện nay khi đề cập tới các hệ nhúng người ta đều nói tới

đặc tính cơ bản của nó là tính thời gian thực.

Hình 1.1 Quan hệ giữa hệ nhúng và thời gian thực

Page 11: LỜI GIỚI THIỆU - repository.vnu.edu.vnrepository.vnu.edu.vn/bitstream/VNU_123/15110/1/V_L0_01820.pdf · 3.1.1 Lập lịch ưu tiên ... 3.9 Ưu nhược điểm của hệ

Luận văn Thạc sĩ 2008 Phân tích, Thiết kế phần mềm nhúng

Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội

11

1.2 Giới thiệu chung về thiết kế hệ thống nhúng

Các kỹ sư xây dựng hệ thống nhúng luôn phải đối mặt với nhiều khó khăn trong

quá trình thiết kế hệ thống. Từ việc xác định phân bổ giữa phần cứng và phần mềm

cho đến việc tính toán để thiết kế đạt những mục tiêu về hiệu năng và chi phí. Việc xây

dựng hệ thống nhúng ngày càng trở lên phức tạp vì yêu cầu ngày càng cao. Họ phải

xây dựng những hệ thống ngày càng thông minh hơn, có nhiều chức năng hơn nhưng

lại phải được gói gọn trong một không gian nhỏ hơn, ít tiêu thụ điện năng hơn, thời

gian sản xuất nhanh hơn và chi phí cho hệ thống giảm. Có lẽ bởi vì liên quan đến sự

kết hợp của ít nhất hai nguyên tắc phức tạp và sáng tạo: kỹ nghệ phần mềm và thiết kế

logic. Vấn đề này thường liên quan đến xây dựng một cái mới mà mọi người chưa

từng xây dựng bao giờ hay đơn giản là có quá nhiều sự lựa chọn như: sử dụng bộ vi xử

lý nào cho phù hợp, cách sắp xếp các bus, triển khai bằng ngôn ngữ lập trình nào, có

sử dụng hệ điều hành hay không, môi trường phát triển …làm cho người phát triển

nhiều lúc không biết bắt đầu từ đâu.

Không giống với việc thiết kế các ứng dụng phần mềm trên máy tính, việc thiết

kế một hệ thống nhúng phải thực hiện thiết kế cả phần cứng và phần mềm một cách

song song. Mặc dù không phải lúc nào cũng vậy nhưng thực tế cho thấy đây là cách

thức tiếp cận việc thiết kế hệ thống nhúng một cách hiệu quả và ảnh hưởng sâu sắc đến

việc xây dựng hệ thống.

Quy trình thiết kế hệ thống nhúng bao gồm các bước sau:

Xác định yêu cầu sản phẩm

Phân bổ phần cứng phần mềm

Thực hiện và lặp lại

Thiết kế phần cứng/phần mềm nhúng

Tích hợp phần cứng/phần mềm

Kiểm tra

Bảo trì và nâng cấp

Hình 1.2 Quy trình thiết kế co-design

Page 12: LỜI GIỚI THIỆU - repository.vnu.edu.vnrepository.vnu.edu.vn/bitstream/VNU_123/15110/1/V_L0_01820.pdf · 3.1.1 Lập lịch ưu tiên ... 3.9 Ưu nhược điểm của hệ

Luận văn Thạc sĩ 2008 Phân tích, Thiết kế phần mềm nhúng

Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội

12

1.2.1 Xác định yêu cầu sản phẩm

Chúng ta cần phải xác định:

Hệ thống làm gì?

Những thành phần vào ra bao gồm những gì?

Giao diện hệ thống

Trong hệ thống nhúng việc xác định yêu cầu là rất quan trọng. Nó có thể giúp

chúng ta tránh được những vấn đề sau này như lượng RAM thiết kế cho hệ thống

nhúng không đủ cho hoạt động hay bộ xử lý được chọn có tốc độ quá chậm cho công

việc…Sau khi yêu cầu sản phẩm đã được xác định thì công việc tiếp theo là xác định

liệu sử dụng bộ vi xử lý có phải là sự lựa chọn tốt nhất không. Những câu hỏi sau đây

có thể hữu ích khi xác định xem sử dụng bộ vi xử lý có hợp lý không:

Đầu vào và đầu ra được xử lý và cập nhật ở tốc độ nào? Mặc dù xung đồng hồ

vẫn đang tăng lên nhưng có một giới hạn trên thực tế với tốc độ bộ vi xử lý có

thể đọc từ một đầu vào hoặc cập nhật đầu ra và vẫn đang thực hiện công việc.

Nếu hệ thống phải thực hiện việc xử lý quan trọng, xử lý bộ đệm, hoặc những

tính toán khác thì tỉ lệ cập nhật sẽ giảm xuống.

Liệu có một mạch tích hợp đơn (IC) hoặc một thiết bị logic khả trình (PLD)

thực hiện được công việc không? nếu có thì sử dụng bộ vi xử lý là không cần

thiết.

Hệ thống có nhiều đầu vào và ra, như công tắc hay màn hình hiển thị không?

nếu có thì bộ vi xử lý sẽ giải quyết công việc thuận lợi hơn.

Những giao tiếp gì đối với những hệ thống bên ngoài? Nếu hệ thống phải nói

chuyện với hệ thống khác dùng giao thức điều khiển liên kết dữ liệu đồng bộ

(SDLC) hoặc một vài giao thức truyền thông phức tạp khác thì sử dụng bộ vi xử

lý là lựa chọn đúng đắn.

Hệ thống có phải tính toán và xử lý nhiều việc không? Ví dụ hệ thống đánh lửa

(khởi động) điện tử hiện đại có rất nhiều đầu vào (các cảm ứng không khí, động

cơ rpm …) với những liên quan phức tạp sẽ có vài lựa chọn thay vì sử dụng bộ

vi xử lý.

Liệu thiết kế có được sửa đổi khi nó hoàn thành hoặc thay đổi trong quá trình

thiết kế không? Có cần phải tuỳ biến sản phẩm cho những phiên bản đặc biệt

không? những yêu cầu này đều ảnh hưởng đến việc có lựa chọn bộ vi xử lý hay

không.

Thật may là công việc này của người thiết kế đang trở lên dễ dàng hơn do chi phí của

bộ vi xử lý sẽ giảm nhưng tốc độ và hiệu năng của nó sẽ được tăng lên.

1.2.2 Lựa chọn bộ vi xử lý

Giả sử chúng ta đã quyết định sử dụng bộ vi xử lý cho hệ thống nhúng của mình

thì vấn đề tiếp theo là lựa chọn bộ vi xử lý cho phù hợp với hệ thống cần xây dựng.

Thực tế cho thấy có nhiều sự lựa chọn đúng bộ xử lý cho hệ thống nhúng bởi vì sẽ có

Page 13: LỜI GIỚI THIỆU - repository.vnu.edu.vnrepository.vnu.edu.vn/bitstream/VNU_123/15110/1/V_L0_01820.pdf · 3.1.1 Lập lịch ưu tiên ... 3.9 Ưu nhược điểm của hệ

Luận văn Thạc sĩ 2008 Phân tích, Thiết kế phần mềm nhúng

Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội

13

vài bộ xử lý có thể đạt các yêu cầu đặt ra. Sự lựa chọn bao gồm việc cân bằng các yếu

tố giữa chi phí và các chức năng. Một số vấn đề cần phải được xem xét khi lựa chọn:

Số lượng chân vào ra yêu cầu

Những giao tiếp yêu cầu

Yêu cầu bộ nhớ

Xem xét vấn đề thời gian thực

Môi truờng phát triển

Tốc độ xử lý được yêu cầu

Khả năng của ROM

Kiến trúc bộ nhớ

1.2.2 Phân bổ giữa phần cứng và phần mềm

Thiết kế hệ nhúng sẽ liên quan đến cả hai vấn đề là thiết kế các thành phần phần

cứng và các thành phần phần mềm, người thiết kế phải xác định xem vấn đề nào được

giải quyết trong phần cứng và vấn đề nào thì giải quyết ở phần mềm. Sự lựa chọn này

được gọi là phân bổ quyết định.

Những nhà phát triển ứng dụng thường phát triển với phần cứng được xác định

trước có thể có những khó khăn trong việc điều chỉnh về phần cứng để nâng cao hiệu

quả xử lý vấn đề. Tuy nhiên họ cũng có thể đã gặp phải những vấn đề lựa chọn cân

nhắc giữa phần cứng và phần mềm. Ví dụ, trong những ngày đầu của PC (trước khi

giới thiệu bộ xử lý 80486), những bộ xử lý 8086, 80286 và 80386 đều không có đơn vị

xử lý dấu phảy động trên chip. Những bộ xử lý này yêu cầu những thiết bị đi kèm, đơn

vị xử lý dấu phảy động 8087, 80287 và 80387 (FPUs) để chạy trực tiếp các chỉ thị dấu

phảy động trong chương trình. Nếu PC không có một FPU, thì mã chương trình phải

chặn những chỉ thị dấu phảy động lại và thực hiện một ngoại lệ hoặc hàm bẫy lỗi sẽ

thực hiện vấn đề xử lý dấu phảy động trên phần mềm. Tuy nhiên điều này sẽ chậm hơn

nhiều so với có đơn vị xử lý dấu phảy động trên bảng mạch nhưng chí ít thì mã

chương trình cũng được thực thi.

Một ví dụ khác về phân bổ giữa phần cứng và phần mềm, ta có thể mua một

thiết bị modem cho PC của mình rồi cắm vào khe ISA như vậy trên máy tính đã có

mạch thực hiện điều chế và giải điều chế. Nếu ít tiền hơn ta có thể mua một win

modem để cắm vào khe PCI và sử dụng bộ vi xử lý để trực tiếp xử lý các chức năng

của modem. Việc thiết kế là kết hợp giữa các thành phần phần cứng và phần mềm để

cho ra một giải pháp thiết kế nhúng hiệu quả nhất. Chúng ta có thể thực hiện việc thiết

kế một chức năng nào đó dựa trên phần mềm (ví dụ CPU không có đơn vị FPU ở trên),

dựa trên phần cứng hoặc dựa trên cả phần cứng và phần mềm. Để làm rõ hơn về vấn

đề phân chia giữa phần cứng và phần mềm chúng ta sẽ xét tiếp một ví dụ về thiết kế

máy in laser.

Hình 1.3 mô tả một thiết kế cho máy in laser. Với sự giúp đỡ từ những nhà thiết

kế máy in laser chúng ta có thể hình dung ra những công việc có thể thực hiện trong

Page 14: LỜI GIỚI THIỆU - repository.vnu.edu.vnrepository.vnu.edu.vn/bitstream/VNU_123/15110/1/V_L0_01820.pdf · 3.1.1 Lập lịch ưu tiên ... 3.9 Ưu nhược điểm của hệ

Luận văn Thạc sĩ 2008 Phân tích, Thiết kế phần mềm nhúng

Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội

14

máy in laser (phần mềm). Bộ vi xử lý nắm bắt luồng dữ liệu đến thông qua cổng song

song, cổng tuần tự RS-232C, cổng USB, hoặc cổng Ethernet vào trong bộ đệm.

Hình 1.3 Thiết kế máy in laser

Cùng một thời điểm, bộ xử lý quản lý các cổng dữ liệu và chuyển những dữ liệu đến

thành luồng điều chế (stream of modulation) và những tín hiệu điều khiển cho ống

phóng laser, gương xoay, trống xoay, bộ phận quản lý giấy. Chúng ta có thể thấy điều

này làm cho bộ xử lý phải làm rất nhiều việc do đó giới hạn hiệu năng của hệ thống.

Chúng ta có thể tìm cách nâng cao hiệu năng của hệ thống bằng cách thêm nhiều bộ xử

lý và phân chia những nhiệm vụ đồng thời giữa chúng. Điều này sẽ làm cho tốc độ xử

lý tăng lên, chi phí tăng lên, nhưng không có nhiều thông tin hơn để in.

Khi phân tích giải pháp thiết kế chúng ta sẽ thấy rằng những công việc mà ảnh

hưởng đến hiệu năng của hệ thống cũng có những cận giới hạn nhất định và được mô

tả đầy đủ. Những công việc này có thể được xử lý bằng các phương pháp thiết kế một

cách dễ dàng và có thể thực hiện theo giải pháp dựa trên phần cứng. Ví dụ trong thiết

kế máy in laser này, chúng ta có thể sử dụng một khối phần cứng cho việc ghi các

điểm laser trên bề mặt của trống máy in. Điều này sẽ giải phóng cho bộ xử lý để thực

hiện những công việc khác và chỉ yêu cầu nó khởi tạo và phục vụ phần cứng nếu có lỗi

nào đó xảy ra.

Những yêu cầu cho phần cứng chặt chẽ hơn nhiều so với phần mềm bởi vì nó

phức tạp hơn, mất chi phí cho sửa lỗi phần cứng nhiều hơn so với sửa lỗi phần mềm.

Nếu phần cứng là IC chuyên về ứng dụng tùy biến (Custom - ASIC) thì cần phải xem

xét nhiều hơn vì tính phức tạp của việc thiết kế một IC tùy biến. Nếu cách tiết cận này

dường như quá rủi ro cho dự án, đội thiết kế có thể chuyển sang giải pháp phần mềm

hoặc đội thiết kế có thể đưa ra quyết định cần phải sử dụng một bộ xử lý mới hơn,

mạnh hơn để nâng cao hiệu năng. Tuy nhiên điều này cũng liên quan đến vấn đề chi

phí, những công cụ mới, bố cục mạch mới, đường dữ liệu rộng hơn, tính phức tạp cao

hơn. Hai triết lý thiết kế khác nhau này đã được áp dụng thành công cho thiết kế máy

in laser trong các công ty sản xuất máy in ngày nay. Một bên thì thiết kế khả năng điều

chỉnh hiệu năng của bộ xử lý để tối thiểu hoá dùng các thiết bị phần cứng chuyên biệt.

Page 15: LỜI GIỚI THIỆU - repository.vnu.edu.vnrepository.vnu.edu.vn/bitstream/VNU_123/15110/1/V_L0_01820.pdf · 3.1.1 Lập lịch ưu tiên ... 3.9 Ưu nhược điểm của hệ

Luận văn Thạc sĩ 2008 Phân tích, Thiết kế phần mềm nhúng

Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội

15

Ngược lại thì bên kia sử dụng các thiết bị phần cứng chuyên biệt để giảm gánh nặng

cho bộ xử lý. Cả hai đều có những sản phẩm cạnh tranh nhưng thực hiện hai chiến

lược thiết kế khác nhau cho phân chia các thành phần cứng và mềm.

Quyết định phân chia là một vấn đề tối ưu và phức tạp. Nhiều thiết kế hệ thống

nhúng yêu cầu:

Nhạy cảm về giá

Người đi đầu về giải pháp

Không theo chuẩn

Cạnh tranh thị trường

Bản quyền

Những yêu cầu dường như mẫu thuẫn lẫn nhau này sẽ làm cho khó tạo ra một

thiết kế tối ưu cho sản phẩm nhúng. Giải pháp phân bổ phụ thuộc vào bộ xử lý nào sử

dụng trong thiết kế, cách thực hiện thiết kế tổng thể và kinh nghiệm của người thiết kế.

1.2.3 Thực hiện và lặp lại

Phần thực hiện và lặp lại của qui trình này thể hiện một vùng phân chia mờ giữa

thực hiện và phân bổ phần cứng/phần mềm (được thể hiện ở hình 1.2). Trong bước này

phần thiết kế phần mềm và phần cứng sẽ được tách ra và thực hiện đồng thời. Giai

đoạn này thể hiện những công việc thiết kế đầu tiên trước khi đội phần cứng và phần

mềm thực hiện công việc cụ thể của lĩnh vực mình. Mặc dù các vấn đề chính đã được

phân bổ giữa các thành phần phần cứng và phần mềm, tuy nhiên vẫn còn những vấn đề

có thể dịch chuyển giữa ranh giới này khi các ràng buộc thiết kế được mô hình hoá và

hiểu rõ hơn. Trong giai đoạn này đòi hỏi người thiết kế thực hiện nhiều sự lựa chọn

liên quan đến công cụ, môi trường… Nhà thiết kế phần cứng có thể sử dụng các công

cụ mô phỏng để hỗ trợ cho quá trình thiết kế của mình như bộ mô phỏng kiến trúc.

Nhà thiết kế phần mềm có thể sẽ chạy những đoạn mã chuẩn trên những bo mạch đơn

độc lập sử dụng bộ vi xử lý đích. Những bo mạch này thường liên quan đến những

mạch đánh giá và chúng sẽ được dùng để đánh giá hiệu năng của bộ vi xử lý chạy trên

đoạn mã kiểm tra. Những mạch đánh giá này cũng cung cấp một môi trường gỡ lỗi và

thiết kế phần mềm thuận tiện cho đến khi hoàn thành xong phần cứng của hệ thống.

1.2.4 Thiết kế chi tiết phần cứng và phần mềm

Bước này đi sâu vào thực hiện thiết kế chi tiết phần cứng và phần mềm sau khi

đã có những đặc tả và phân chia các thành phần phần cứng, phần mềm. Ở giai đoạn

này cần có những công cụ đặc biệt để hỗ trợ quá trình thiết kế và mô hình một cách

trực quan. Ví dụ để thiết kế chi tiết phần cứng cần có các công cụ để mô tả phần cứng

như VHDL hay Verilog. Đối với phần mềm có rất nhiều công cụ hỗ trợ trong gia đoạn

này như: Timed CSP, Z, UML-Realtime…(sẽ được trình bày chi tiết hơn ở chương 2)

Page 16: LỜI GIỚI THIỆU - repository.vnu.edu.vnrepository.vnu.edu.vn/bitstream/VNU_123/15110/1/V_L0_01820.pdf · 3.1.1 Lập lịch ưu tiên ... 3.9 Ưu nhược điểm của hệ

Luận văn Thạc sĩ 2008 Phân tích, Thiết kế phần mềm nhúng

Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội

16

1

TÀI LIỆU THAM KHẢO

Tiếng Việt

[1] PGS. TS. Nguyễn Ngọc Bình, “Một số ý kiến về phát triến, ứng dụng công nghệ

thông tin của Việt Nam”, Hội thảo Quốc gia Hội nhập Quốc tế về Khoa học và Công

nghệ, 2005.

[2] PGS. TS. Phạm Thượng Cát, “Hệ thống nhúng và sự phát triển của công nghệ

thông tin”, Tạp chí Tin học và điều khiển, 2005.

[3] Phan Anh Dũng, Dương Văn Việt, Hoàng Thị Ngọc Dung – Trung tâm Công nghệ

thông tin Thừa Thiên Huế, “Đưa Chư Han-Nôm Vao Thiêt Bi Câm Tay ”, Hội nghị chữ

Nôm, 2006.

[4] Phan Anh Dũng, Nguyễn Thế, “Từ điển Trực tuyến Việt-Hán-Nôm”, 2006.

[5] Phòng nhận dạng và xử lý ảnh Viện công nghệ thông tin , “Phân mêm nhân dang

chư Viêt in”, 1997-1998.

Tiếng Anh

[6] Arbib, Michael A. (Ed.), “The Handbook of Brain Theory and Neural Networks”,

MIT Press, 1995.

[7] Arnold Berger, “Embedded Systems Design: An Introduction to Processes, Tool

and Techniques ”, CMP Books, 2002.

[8] Bentley, J. L, “Multidimensional binary search tree used for associative

searching”, Commun, ACM, 1975, pp 509–517.

[9] Belur V. Dasarathy, “Nearest Neighbor (NN) Norms: NN Pattern Classification

Techniques”, IEEE Computer Society Press, 1991.

[10] Bruce Powel Douglass, “Advances in the UML for Real-time System, Third

Edition”, Addition Wesley, 2004.

[11] Cheng-Lin Liu, Hiromichi Fujisawa, “Classification and Learning for Character

Recognition: Comparasion of Methods and Remaining Problems”, NNLDAR

Workshop, 2007.

[12] Daniel Admassu, “Unicode Optical Character Recognition”, 2005.

[13] David E. Simon, “An Embedded Software Primer”, Addison Wesley, 1999.

[14] Ivan Porres Paltor, Johan Lilius, “A Case Study on Designing Embedded Systems

using UML notation”, TUCS Technial Report, 1999.

[15] Jack Ganssle, “The Art of Designing Embedded Systems”, Newnes, 1999.

[16] Jack Ganssel, Michael Barr, “Embedded Systems (World Class Designs)”.

Newnes, 2007.

[17] Jean Labrosses, “Micro C OS II: The Real Kernel”, Newnes, 2002.

Page 17: LỜI GIỚI THIỆU - repository.vnu.edu.vnrepository.vnu.edu.vn/bitstream/VNU_123/15110/1/V_L0_01820.pdf · 3.1.1 Lập lịch ưu tiên ... 3.9 Ưu nhược điểm của hệ

Luận văn Thạc sĩ 2008 Phân tích, Thiết kế phần mềm nhúng

Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội

17

[18] Jiamei Cai, Tieming Chen, and Liying Zhu, “A Structure Modelling Method for

Multi-task Embedded Software Design”, Zhejiang University of Technology, ICESS

2004.

[19] Luciano Lavagno, Grant Martin and Bran Selic, “UML for real design of

Embedded Real-Time Systems”, Kluwer Academic, 2004.

[20] Michael Barr, “Programming Embedded Systems in C and C++”, O’Reilly,

1999.

[21] Micrium Inc, “µC/OS-II Reference Manual”, Newnes, 2002.

[22] Mingrui Wu, Bo Zhang, Ling Zhang, “A Neural Network Based Classifier for

Handwritten Chinese Character Recognition”, ICPR'00 - Volume 2, 2000.

[23] Object Management Group, “UML Profile for Schedulability, Performance, and

Time”, OMG document ptc/02-03-02, Needham MA, 2002.

[24] Olli S, Jaakko, “A Embedded Systems, Lecture Notes”, Helsinki University of

Tech, 2006.

[25] Peter Marweden, “Embedded Systems Design”, Springer, 2006.

[26] Qing Li and Carolyn Yao, “Real-time Concepts for Embedded Systems”, CMP

Books, 2003.

[27] Ray Smith, “An Overview of the Tesseract OCR Engine”, OSCON, 2007.

[28] Ray Smith, “A Simple and Efficient Skew Detection Algorithm via Text Row

Accumulation”, Proc of the 3rd Int, Conf. on Document Analysis and Recognition

(Vol. 2), IEEE 1995, pp 1145-1148.

[29] Richard Romero, Robert Berger, Robert Thibadeau, David Touretzky, “Neural

Network Classifiers for Optical Chinese Character Recognition”, In Proceedings of

the Fourth Annual Symposium on Document Analysis and Information Retrieval,

1995.

[30] Sacha Barber, “An introduction into Neural Networks”, 2003, pp 277-280.

[31] Sargur N. Srihari, Xuanshen Yang, Gregory R. Ball, “Offline Chinese

handwriting recognition: an assessment of current technology”, 2007.

[32] Stephen V. Rice, Frank R. Jenkins, Thomas. A. Nartker, “The Fourth Annual Test

of OCR Accuracy, Technical Report 95-03”, Information Science Research Institute,

University of Nevada, Las Vegas, July 1995.

[33] Stuart R.Ball, “Embedded Microprocessor Systems”, Newnes, 2002.

Page 18: LỜI GIỚI THIỆU - repository.vnu.edu.vnrepository.vnu.edu.vn/bitstream/VNU_123/15110/1/V_L0_01820.pdf · 3.1.1 Lập lịch ưu tiên ... 3.9 Ưu nhược điểm của hệ

Luận văn Thạc sĩ 2008 Phân tích, Thiết kế phần mềm nhúng

Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội

18