DSpace at VNU: Môi trường phát triển phần mềm nhúng cho các thiết bị di động tài liệu, giáo án, bài giảng , luận văn, lu...
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
PHẠM VĂN HƯỞNG
MÔI TRƯỜNG PHÁT TRIỂN PHẦN MỀM NHÚNG CHO CÁC
THIẾT BỊ DI ĐỘNG
Chuyên ngành: Công nghệ phần mềm
LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS Nguyễn Ngọc Bình
Hà Nội-2008
Trang 2MỤC LỤC
BẢNG KÝ HIỆU 5 BẢNG CÁC HÌNH VẼ 6
MỞ ĐẦU
………
…….9
Chương 1 Tổng quan về hệ thống nhúng 11 1.1 Các khái niệm 11
1.1.1 Hệ thống nhúng 11
1.1.3 Phần mềm nhúng 11
1.1.3 Hệ thống nhúng thời gian thực 12
1.2 Đặc điểm khác biệt giữa phần mềm nhúng và phần mềm thông thường trên máy tính cá nhân 15
1.3 Ứng dụng của hệ nhúng 16
Chương 2 Hệ điều hành thời gian thực 17 2.1 Khái niệm 17
2.2 Kiến trúc nhân RTOS Error! Bookmark not defined 2.3 Các vấn đề cơ bản của RTOS Error! Bookmark not defined 2.3.1 Hệ thống tiền cảnh/hậu cảnh Error! Bookmark not defined 2.3.2 Miền găng Error! Bookmark not defined 2.3.3 Tài nguyên Error! Bookmark not defined 2.3.4 Tính đa nhiệm Error! Bookmark not defined 2.3.5 Tác vụ và trạng thái tác vụ Error! Bookmark not defined 2.3.6 Chuyển ngữ cảnh Error! Bookmark not defined 2.3.7 Nhân thời gian thực Error! Bookmark not defined 2.3.8 Bộ lập lịch Error! Bookmark not defined 2.4 Phát triển các ứng dụng thời gian thực trên RTOS Error! Bookmark not defined 2.4.1 Mô hình tích hợp Error! Bookmark not defined 2.4.2 Phát triển ứng dụng nhúng thời gian thực trên C/OS Error! Bookmark not defined Chương 3 Môi trường phát triển phần mềm nhúng cho các thiết bị di động ………
… Error! Bookmark not defined.
3.1 Hệ điều hành trên thiết bị di động Error! Bookmark not defined 3.2 Môi trường lập trình trong Symbian Error! Bookmark not defined 3.2.1 Hệ điều hành Symbian Error! Bookmark not defined 3.2.2 Thực thi ứng dụng trên Symbian Error! Bookmark not defined
Trang 33.2.2.1 Phân loại ứng dụng Error! Bookmark not defined 3.2.2.2 Cấu trúc ứng dụng Error! Bookmark not defined 3.2.2.3 Thực thi ứng dụng trên Symbian Error! Bookmark not defined 3.2.3 Xây dựng ứng dụng trên Symbian với C/C++ Error! Bookmark not defined 3.2.3.1 Symbian Flatform Error! Bookmark not defined 3.2.3.2 Các SDK và IDE phổ biến Error! Bookmark not defined 3.2.3.3 Các bước xây dựng ứng dụng trên Series 60 với Carbide C/C++ Error!
Bookmark not defined
3.3 Môi trường.NET Compact Framework trong Windows Mobile Error! Bookmark
not defined
3.3.1 Hệ điều hành Windows Mobile Error! Bookmark not defined 3.3.2 .NET Compact Framework Error! Bookmark not defined 3.3.2.1 Kiến trúc tổng quan NET Compact Framework Error! Bookmark not
defined
3.3.2.2 Môi trường lập trình trong NET Compact Framework Error! Bookmark
not defined
3.3.2.3 Các bước xây dựng ứng dụng NET Compact Framework với Visual
Studio.net Error! Bookmark not defined 3.4 J2ME Error! Bookmark not defined 3.4.1 Kiến trúc J2ME Error! Bookmark not defined 3.4.1.1 Máy ảo Java (KVM) Error! Bookmark not defined 3.4.1.2 Tầng CLDC (Connected Limited Device Configuration): Error!
Bookmark not defined
3.4.1.3 MIDP (Mobile Information Device Profile) Error! Bookmark not
defined
3.4.2 Phát triển ứng dụng nhúng trên thiết bị di động với J2ME Error! Bookmark
not defined
3.4.2.1 MIDlet Error! Bookmark not defined 3.4.2.2 Tệp tin JAR Error! Bookmark not defined 3.4.3 Xây dựng ứng dụng và chạy mô phỏng Error! Bookmark not defined
NÔM trên Pocket PC
………
………… Error! Bookmark not defined.
4.1 Bài toán nhận dạng chữ NÔM Error! Bookmark not defined 4.2 Giải pháp công nghệ Error! Bookmark not defined 4.3 Phân tích thiết kế hệ thống Error! Bookmark not defined 4.3.1 Biểu đồ Use Case Error! Bookmark not defined 4.3.1.1 Biểu đồ ca sử dụng cho gói Desktop Error! Bookmark not defined 4.3.1.2 Biểu đồ ca sử dụng cho gói Mobile Error! Bookmark not defined 4.3.2 Biểu đồ lớp phân tích Error! Bookmark not defined 4.3.2.1 Phân tích các ca sử dụng trong gói Desktop Error! Bookmark not
defined
4.3.2.2 Phân tích các ca sử dụng trong gói Mobile Error! Bookmark not defined 4.3.3 Biểu đồ lớp thiết kế Error! Bookmark not defined
Trang 44.3.3.1 Biểu đồ lớp thiết kế cho gói Desktop Error! Bookmark not defined 4.3.3.2 Biểu đồ lớp thiết kế cho gói Mobile Error! Bookmark not defined 4.3.4 Biểu đồ tuần tự Error! Bookmark not defined 4.3.4.1 Biểu đồ tuần trong gói Desktop Error! Bookmark not defined 4.3.4.2 Biểu đồ tuần tự trong gói Mobile Error! Bookmark not defined 4.4 Cài đặt Error! Bookmark not defined 4.4.1 Cài đặt gói huấn luyện trên Desktop Error! Bookmark not defined 4.4.2 Cài đặt gói nhận dạng trên Mobile Error! Bookmark not defined 4.5 Kết quả thực nghiệm Error! Bookmark not defined
KẾT LUẬN Error! Bookmark not defined.
TÀI LIỆU THAM KHẢO 18
PHỤ LỤC A Windows Embedded CE 6.0 Error!
Bookmark not defined.
A.1 Các hệ điều hành họ Windows CE Error! Bookmark not defined A.2 Windows Embedded CE 6.0 Error! Bookmark not defined A.2.1 Tính năng của Windows Embedded CE 6.0 Error! Bookmark not defined A.2.2 Kiến trúc Windows Embedded CE 6.0 Error! Bookmark not defined A.2.3 Lập trình ứng dụng trên Windows Embedded CE 6.0 Error! Bookmark not
defined
PHỤ LỤC B Mã nguồn các lớp gói Mobile Error!
Bookmark not defined.
B.1 Lớp giao diện gói Mobile: frmMainApp Error! Bookmark not defined B.2 Lớp lưu kết quả đầu vào đã xử lý: MobileInputResult Error! Bookmark not
defined
B.3 Lớp xử lý đầu vào: MobileInputProcess Error! Bookmark not defined B.4 Lớp cấu hình mạng: NetworkConfig Error! Bookmark not defined B.5 Lớp lưu kết quả nhận dạng: RecognitionProcessResult Error! Bookmark not
defined
B.6 Lớp nhận dạng: RecognitionProcess Error! Bookmark not defined B.7 Lớp lưu ngữ nghĩa và kết quả tra cứu nghĩa từ: SemanticMap Error! Bookmark
not defined
B.8 Lớp tra cứu nghĩa từ: LookupSemantic Error! Bookmark not defined
PHỤ LỤC C Mã nguồn các phương thức cơ bản gói
Desktop Error! Bookmark not defined.
Trang 5BẢNG KÝ HIỆU
Ký hiệu Thuật ngữ Ý nghĩa Mục tham chiếu
ANN Artifical Neural
Network
Mạng nơ-ron nhân tạo 4.2
AppUI Application User
Interface class
Lớp giao diện người dùng ứng dụng
3.2.2.2
CPU Center Processor Unit Bộ xử lý trung tâm 2.3.7
DLL Dynamic link library Thư viện liên kết động 3.2.2.3
DOM Data Object Model Mô hình đối tượng dữ
liệu
3.3.2.2
GUI Graphic User Interface Giao diện người dùng
đồ hoạ
3.3.3.2
IDE Intergrated
Development
Environment
Môi trường phát triển tích hợp
2.4.1
ISR Interrupt Service
Routine
Chương trình con phục
vụ ngắt
2.2
ISS Intergrated System
Software
Phần mềm hệ thống tích hợp
3.2.3.1
J2ME Java to Micro Edition Nền tảng Java cho thiết
bị di động
3.4.1
JVM Java Virtual Machine Máy ảo Java 3.4.1
KVM K Virtual Machine Máy ảo Java cho thiết bị
di động
3.4.1
MIDLet Mobile Information
Device applet
Ứng dụng Java aplet trên thiết bị di động
3.4.2.1
RAM Random Access
Memory
Bộ nhớ truy cập ngẫu nhiên
2.3.7
ROM Read Only Memory Bộ nhớ chỉ đọc 2.3.7
RTOS Real time operating
system
Hệ điều hành thời gian thực
1.1
SDK Software Development
Kit
Gói công cụ phát triển phần mềm
3.2.3.2
SOAP Simple Object Access
Protocol
Giao thức truy cập đối tượng
3.3.2.2
UML Uniform Model
Language
Ngôn ngữ mô hình hoá 4.2
XML Extensible Markup
Language
Ngôn ngữ đánh dấu mở rộng
3.3.2.2
Trang 6BẢNG CÁC HÌNH VẼ
Số thứ
tự
chiếu
1 Hình 1.1 Mô tả hệ nhúng thời gian thực 1.3.1
2 Hình 2.1 Khung nhìn tổng quan vể RTOS 2.1
3 Hình 2.2 Kiến trúc nhân RTOS 2.2
4 Hình 2.3 Hệ thống tiền cảnh/hậu cảnh 2.3.1
5 Hình 2.4 Trạng thái tác vụ 2.3.5
6 Hình 2.5 Minh hoạ nhân không ưu tiên 2.3.5
7 Hình 2.6 Minh hoạ nhân ưu tiên 2.3.5
8 Hình 2.7 Mô hình phát triển ứng dụng nhúng trên
RTOS
2.4.1
9 Hình 2.8 Cấu trúc chương trình nhúng sử dụng
µC/OS
2.4.2
10 Hình 3.1 Tổng quan vai trò hệ điều hành 3.1
11 Hình 3.2 Kiến trúc Symbian 3.2.1
12 Hình 3.3 Công nghệ tích hợp trong Series 60 3.2.3.1
13 Hình 3.4 Mở một dự dán Symbian mới 3.2.3.3
14 Hình 3.5 Hoàn tất tạo dự án 3.2.3.3
15 Hình 3.6 Xây dựng mã nguồn ứng dụng 3.2.3.3
16 Hình 3.7 Giao diện Symbian Series 60 3.2.3.3
17 Hình 3.8 Giao diện ứng dụng console trên Symbian 3.2.3.3
18 Hình 3.9 Kiến trúc NET Compact Framework 3.3.2.1
19 Hình 3.10 Tạo project cho thiết bị di động 3.3.2.3
20 Hình 3.11 Thiết kế giao diện ứng dụng 3.3.2.3
21 Hình 3.12 Biên dịch ứng dụng 3.3.2.3
22 Hình 3.13 Chạy mô phỏng ứng dụng 3.3.2.3
23 Hình 3.14 Kiến trúc J2ME 3.4.1
24 Hình 3.15 Tiến trình xây dựng ứng dụng 3.4.1.1
25 Hình 3.16 Ứng dụng java trên thiết bị di động 4.4.1.2
27 Hình 3.17 Cấu trúc và vòng đời MIDlet 3.4.2.1
28 Hình 3.18 Tạo mới hoặc mở dự án trên J2ME
Wireless Toolkit
3.4.3
29 Hình 3.19 Cấu hình dự án 3.4.3
30 Hình 3.20 Biên dịch dự án 3.4.3
31 Hình 3.21 Chạy mô phỏng MIDlet 3.4.3
32 Hình 4.1 Cấu trúc ma ̣ng Perceptron đa tầng cho bài
toán nhận dạng chữ Nôm
4.2
33 Hình 4.2 Các gói chương trình 4.3.1
34 Hình 4.3 Biểu đồ ca sử dụng trong gói Desktop 4.3.1.1
Trang 735 Hình 4.4 Biểu đồ ca sử dụng trong gói Mobile 4.3.1.1
36 Hình 4.5 Biểu đồ lớp phân tích thực thi ca sử dụng
InputProcess
4.3.2.1
37 Hình 4.6 Biểu đồ lớp phân tích thực thi ca sử dụng
NetworkTrainning
4.3.2.1
38 Hình 4.7 Biểu đồ lớp phân tích thực thi ca sử dụng
MobileInputProcess
4.3.2.2
39 Hình 4.8 Biểu đồ lớp phân tích thực thi ca sử dụng
Recognition
4.3.2.2
40 Hình 4.9 Biểu đồ lớp phân tích thực thi ca sử dụng
LookupSemantic
4.3.2.2
41 Hình 4.10 Biểu đồ lớp thiết kế gói Desktop 4.3.3.1
42 Hình 4.11 Biểu đồ lớp thiết kế cho gói Mobile 4.3.3.2
43 Hình 4.12 Biểu đồ tuần tự thực hiện phương thức
TrainingNetwork()
4.3.4.1
44 Hình 4.13 Biểu đồ tuần tự thực hiện phương thức
Recognition()
4.3.4.2
45 Hình 4.14 Biểu đồ tuần tự thực hiện phương thức
CreateSetMatrixPixelOfCharacter()
4.3.4.2
46 Hình 4.15 Biểu đồ tuần tự thực hiện phương thức
LookupMeanning()
4.3.4.2
47 Hình 4.16 Giao diện gói Desktop 4.4.1
48 Hình 4.17 Giao diện và cấu trúc các lớp gói Mobile 4.4.2
49 Hình 4.18 Giao diện huấn luyện mạng trên Desktop 4.5
50 Hình 4.19 Form ứng dụng trên PocketPC 4.5
51 Hình 4.20 Giao diện nạp các file: trọng số và ngữ
nghĩa
4.5
52 Hình 4.21 Giao diện nạp ảnh nhận dạng 4.5
53 Hình 4.22 Kết quả nhận dạng trên Pocket PC 4.5
54 Hình 4.23 Thống kê kết quả thử nghiệm nhận dạng
chữ Nôm trên Desktop
4.5
55 Hình A.1 Lịch sử Windows CE Phụ lục A
56 Hình A.2 Lịch sử Windows Mobile Phụ lục A
57 Hình A.3 Tính năng của một số phiên bản Windows
Mobile
Phụ lục A
58 Hình A.4 Quan hệ giữa Windows CE và Windows
Mobile
Phụ lục A
59 Hình A.5 Mô hình bộ nhớ ảo trong Windows
Embedded CE 6.0
Phụ lục A
60 Hình A.6 Không gian địa chỉ logic và không gian
địa chỉ vật lý Phụ lục A
61 Hình A.7 Kiến trúc Windows Embedded CE 6.0 Phụ lục A
Trang 8Embedded CE 6.0
Trang 9MỞ ĐẦU
Trong sự phát triển của công nghệ thông tin, sau giai đoạn bùng nổ của internet từ 1980-2000 [2], thì công nghệ nhúng được xem là xu thế của công nghệ thông tin hiện nay Hệ thống nhúng là phần cốt lõi tạo lên các sản phẩm nhúng và các môi trường thông minh Thị trường của các hệ thống nhúng lớn gấp khoảng 100 lần thị trường của PC và mạng LAN, PC và Internet chỉ là bề nổi của công nghệ thông tin còn phần chìm của công nghệ thông tin chiếm 99% số vi xử lý trên toàn cầu này nằm trong các hệ nhúng thì còn ít được biết đến [2] Các sản phẩm nhúng có mặt trong mọi lĩnh vực đời sống kinh tế xã hội
từ giải trí đến các thiết bị gia dụng, thiết bị công nghiệp
Sự hội tụ của công nghệ truyền thông không dây với thiết bị tính toán cầm tay, sức đẩy của công nghệ vi điện tử, các công nghệ vi cơ điện, công nghệ sinh học hội tụ tạo nên các chip của công nghệ nano, là nền tảng cho những thay đổi cơ bản trong công nghệ thông tin và truyền thông Sức kéo của thị trường đòi hỏi các thiết bị phải có nhiều chức năng thân thiện với người dùng, có mức độ thông minh ngày càng cải thiện đưa đến vai trò và tầm quan trọng của các hệ thống nhúng ngày càng cao trong nền kinh tế quốc dân
Từ tất yếu khách quan, công nghệ phần mềm nhúng đã trở thành lĩnh vực công nghệ then chốt cho sự phát triển kinh tế của nhiều quốc gia trên thế giới tiêu biểu như Mỹ, Nhật Bản, Hàn Quốc, Phần Lan và Trung quốc Tại Mỹ có nhiều chương trình hỗ trợ của Nhà nước để phát triển các hệ thống và phần mềm nhúng Hàn Quốc có những dự án lớn nhằm phát triển công nghệ phần mềm nhúng như các thiết bị gia dụng nối mạng Internet,
hệ thống phần mềm nhúng cho phát triển thành phố thông minh, dự án phát triển ngành công nghiệp phần mềm nhúng, trung tâm hỗ trợ các ngành công nghiệp hậu PC Phần Lan có những chính sách quốc gia tích cực cho nghiên cứu phát triển các hệ nhúng đặc biệt là các phần mềm nhúng Những quốc gia này còn thành lập nhiều viện nghiên cứu và trung tâm phát triển các hệ nhúng [2]
Ở Việt Nam, hầu hết các công ty phần mềm đều tập trung xây dựng phần mềm ứng dụng mà phần nhiều là các ứng dụng quản lý và ứng dụng web Một số ít các công ty phát triển phần mềm hệ thống hoặc phát triển hệ nhúng chủ yếu làm theo yêu cầu của các đối tác nước ngoài Nghĩa là chúng ta đa khai thác trên bề nổi của công nghệ thông tin đang dần bão hoà Do vậy, chính phủ, các ngành công nghiệp, các viện nghiên cứu, trường đại học của Việt Nam có chiến lược phát triển công nghệ thông tin và truyền thông của mình
và có những điều chỉnh phù hợp để có thể theo kịp, rút ngắn khoảng cách tụt hậu trong lĩnh vực công nghệ thông tin và truyền thông đối với các nước trong khu vực và trên thế
Trang 10nghiên cứu, xây dựng các hệ thống nhúng mà ban đầu cần tập trung vào phát triển các phần mềm nhúng [1]
Từ xu thế phát triển khách quan của công nghệ thông tin và hiện trạng công nghệ nước ta việc nghiên cứu, phát triển hệ nhúng là tất yếu Phạm vi nghiên cứu cũng như tầm ứng dụng của hệ nhúng rất lớn, trong giới hạn luận văn, chúng tôi tập trung trình bày các vấn đề về môi trường phát triển phần mềm nhúng cho các thiết bị di động (mobile) Cấu trúc luận văn gồm các phần như sau:
Phần mở đầu: Nội dung phần mở đầu chỉ ra vai trò và tầm quan trọng của công
nghệ nhúng, hiện trạng phát triển công nghệ nhúng trên thế giới và ở Việt Nam
Chương 1 Tổng quan về hệ thống nhúng: Nội dung chương 1 trình bày tổng quan
về hệ thống nhúng, các khái niệm liên quan như: hệ thống nhúng, phần mềm nhúng, hệ thời gian thực, hệ nhúng thời gian thực; so sánh ứng dụng trên desktop và ứng dụng nhúng
Chương 2 Hệ điều hành thời gian thực: Nội dung chương 2 trình bày các vấn đề
về phát triển các phần mềm nhúng trong môi trường hệ điều hành thời gian thực
Chương 3 Môi trường phát triển ứng dụng nhúng cho các thiết bị di động: Nội
dung chương 3 trình bày về các môi trường phát triển ứng dụng nhúng trên thiết bị di động như: môi trường hệ điều hành Symbian, môi trường NET Compact Framework, môi trường java J2ME
Chương 4 Xây dựng ứng dụng nhận dạng chữ Nôm trên Pocket PC: Nội dung
chương 4 trình bày thực nghiệm xây dựng ứng dụng nhận dạng chữ Nôm trên Pocket PC
Hệ thống sử dụng ngôn ngữ UML để phân tích thiết kế và được cài đặt bằng ngôn ngữ C# trên nền tảng NET Compact Framework Đồng thời trong ứng dụng cũng sử dụng kỹ thuật mạng nơ-ron Perceptron đa tầng để nhận dạng
Phần kết luận: Nội dung phần này tổng kết, đánh giá về luận văn cũng như phần
mềm thực nghiệm và đưa ra một số hướng phát triển