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
Trang 1MỤ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
Trang 22.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
Trang 3DANH 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.
Trang 4Hì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 trúc mô-dun của chương trình Error! Bookmark not defined.
Hình 4.3 Lưu đồ huấn luyê ̣n ma ̣ng 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 quả nhận dạng Error! Bookmark not defined.
Bảng 4.2 Kết quả nhâ ̣n da ̣ng 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.
Trang 6BẢ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)
Trang 7LỜ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 của tác giả 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
Trang 8thiế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
Trang 9CHƯƠ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
Trang 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