Đại Học Quốc Gia Tp. Hồ Chí Minh
TRƯỜNG ĐẠI HỌC BÁCH KHOA
--------------------
NGUYỄN TRẦN CAO TẤN KHOA
XÂY DỰNG BỘ CHƯƠNG TRÌNH
NHẬN DẠNG SẢN PHẨM TRONG SIÊU THỊ
TRÊN NỀN T-ENGINE
Chuyên ngành: Khoa Học Máy Tính
LUẬN VĂN THẠC SĨ
TP. HỒ CHÍ MINH, tháng 09 năm 2008
CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI
TRƯỜNG ĐẠI HỌC BÁCH KHOA
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
Cán bộ hướng dẫn khoa học: TS. PHẠM TƯỜNG HẢI
Cán bộ chấm nhận xét 1: PGS TS. NGUYỄN HỮU PHƯƠNG
Cán bộ chấm nhận xét 2: TS. ĐINH ĐỨC ANH VŨ
Luận văn thạc sĩ được bảo vệ tại HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ
TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày 13 tháng 09 năm 2008
ĐẠI HỌC QUỐC GIA TP. HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Độc lập – Tự do – Hạnh phúc
------------------
---oOo--Tp. HCM, ngày 22 tháng 06 năm 2008
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ và tên học viên: Nguyễn Trần Cao Tấn Khoa................Giới tính: Nam ;/ Nữ
Ngày, tháng, năm sinh: 24/01/1979......................................Nơi sinh: Tây Ninh.
Chuyên ngành: Khoa học máy tính ..............................................................................................
Khóa: 2005....................................................................................................................................
1- TÊN ĐỀ TÀI: Xây dựng bộ chương trình nhận dạng sản phẩm trong siêu thị trên nền
T-Engine .......................................................................................................................................
2- NHIỆM VỤ LUẬN VĂN: .....................................................................................................
- Khảo sát các vấn đề tổng quát liên quan đến phát triển ứng dụng trên hệ nhúng TEngine ...........................................................................................................................................
- Xây dựng mô tả cho “Hệ thống nhận dạng sản phẩm trong siêu thị trên nền T-Engine”.
Phân tích và đề xuất mơ hình khả thi cho hệ thống trên với hai khối: khối trên máy PC và
khối trên T-Engine........................................................................................................................
- Phát triển phần mềm cho khối chương trình trên PC .................................................................
- Phát triển phần mềm cho khối chương trình trên T-Engine .......................................................
3- NGÀY GIAO NHIỆM VỤ: ..................................................................................................
4- NGÀY HOÀN THÀNH NHIỆM VỤ: .................................................................................
5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: TS.PHẠM TƯỜNG HẢI ....................................
Nội dung và đề cương luận văn thạc sĩ đã được Hội Đồng Chuyên Ngành thông qua.
CÁN BỘ HƯỚNG DẪN
CHỦ NHIỆM BỘ MÔN
(Họ tên và chữ ký)
QUẢN LÝ CHUYÊN NGÀNH
(Họ tên và chữ ký)
LỜI CAM ĐOAN
Tôi cam đoan rằng, ngoại trừ các kết quả tham khảo từ các cơng trình khác
như đã ghi rõ trong luận văn, các cơng việc trình bày trong luận văn này là do
chính tơi thực hiện và chưa có phần nội dung nào của luận văn này được nộp để
lấy một bằng cấp ở trường này hoặc trường khác.
Ngày 22 tháng 06 năm 2008
Nguyễn Trần Cao Tấn Khoa
LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn chân thành và sâu sắc nhất đến Ts. Phạm Tường Hải,
người đã trang bị cũng như hướng dẫn tôi đến với lĩnh vực nghiên cứu mới và tận
tình hướng dẫn để tơi có thể hồn thành tốt luận văn này.
Tơi cũng xin cảm ơn mọi người trong phịng thí nghiệm Renesas của khoa
công nghệ thông tin trường đại học Bách Khoa Tp. Hồ Chí Minh đã tạo điều kiện
tốt nhất để tơi có thể hồn thành tốt luận văn này.
Cuối cùng, tơi cũng xin gửi lời cảm ơn đến tất cả bạn bè và đồng nghiệp đã tạo
mọi điều kiện thuận lợi trong suốt thời gian thực hiện luận văn để tôi có thể hồn
thành tốt nhiệm vụ học tập của mình.
TÓM TẮT
Luận văn giới thiệu một cách tổng quan hệ thống nhúng T-Engine, một hệ
thống nhúng có tính mở, được chuẩn hóa và hiện nay là nền tảng tốt nhất để phát
triển các hệ thống nhúng thời gian thực (Real-time Embedded Systems). T-Engine
được giáo sư Ken Sakamura ở trường đại học Tokyo đưa ra với mục đích là chuẩn
hóa hệ thống nhúng. Cùng với việc giới thiệu hệ thống nhúng, trong đề tài này em
còn nghiên cứu cách tổ chức dữ liệu trong một tập tin cơ sở dữ liệu để có thể quản
lý dữ liệu trên cả máy tính cũng như T-Engine. Từ đó xây dựng một bộ chương
trình nhận dạng sản phẩm trong siêu thị chạy trên nền T-Engine với chức năng
hiển thị các thơng tin hữu ích của sản phẩm cho người dùng khi người dùng nhập
vào mã của sản phẩm. Ngồi ra cịn có một chương trình quản lý cơ sở dữ liệu cho
chương trình nhận dạng sản phẩm trong siêu thị chạy trên nền Windows với chức
năng quản lý tất cả thông tin của các sản phẩm trong siêu thị.
MỤC LỤC
Chương 1: GIỚI THIỆU ..........................................................................................1
1.1 Đặt vấn đề: .....................................................................................................1
1.2 Giải quyết vấn đề: ..........................................................................................1
1.3 Giới hạn luận văn:..........................................................................................3
1.4 Cấu trúc của luận văn: ...................................................................................3
Chương 2: TỔNG QUAN MỘT SỐ CHƯƠNG TRÌNH VIẾT TRÊN HỆ THỐNG
NHÚNG ...................................................................................................................4
Chương 3: T-ENGINE/SH7760...............................................................................8
3.1 T-Engine là gì?...............................................................................................8
3.2 Các sản phẩm T-Engine:................................................................................9
3.3 Tổng quan về T-Engine/SH7760: ................................................................10
3.4 Kiến trúc phần cứng T-Engine/SH7760: .....................................................12
3.5 Kiến trúc phần mềm T-Engine/SH7760: .....................................................13
3.6 Phần mềm ứng dụng trên T-Engine/SH7760:..............................................15
3.7 Tổng quan về T-Monitor: ............................................................................16
3.7.1 Các hàm hệ thống: ................................................................................16
3.7.2 Các hàm debugging: .............................................................................16
3.7.3 Các hàm hỗ trợ chương trình: ...............................................................17
3.8 Tổng quan về T-Kernel:...............................................................................17
3.8.1 Các hàm system call: ............................................................................18
3.8.2 Các hàm quản lý task: ...........................................................................20
3.8.3 Đồng bộ task-dependent: ......................................................................20
3.8.4 Xử lý các ngoại lệ của task: ..................................................................20
3.8.5 Đồng bộ giao tiếp:.................................................................................21
3.8.6 Đồng bộ giao tiếp mở rộng: ..................................................................21
3.8.7 Quản lý Memory Pool: .........................................................................21
3.8.8 Quản lý thời gian: .................................................................................22
3.8.9 Quản lý hệ thống:..................................................................................22
3.8.10 Quản lý bộ nhớ hệ thống:....................................................................22
3.9 Tổng quan về LCD của T-Engine:...............................................................22
3.10 Cách vẽ dữ liệu lên LCD: ..........................................................................23
3.11 Biên dịch và liên kết chương trình chạy trên T-Engine:............................24
Chương 4: QUẢN LÝ CƠ SỞ DỮ LIỆU..............................................................25
4.1 Các hệ quản trị cơ sở dữ liệu: ......................................................................25
4.2 Hệ quản trị tập tin: .......................................................................................26
4.2.1 Giới thiệu: .............................................................................................26
4.2.2 Bản ghi:.................................................................................................26
4.2.3 Tổ chức tập tin: .....................................................................................26
4.2.4 Phương pháp truy xuất:.........................................................................27
4.2.4.1 Tổ chức truy xuất tuần tự:..............................................................27
U
U
I
4.2.4.2 Tổ chức truy xuất trực tiếp: ...........................................................28
4.2.4.2.1 Tập tin tuần tự có chỉ số: ........................................................29
4.2.4.2.2 Tập tin có chỉ số:.....................................................................31
4.2.4.2.3 Tập tin truy xuất ngẫu nhiên:..................................................32
4.3 Tổ chức dữ liệu vật lý: .................................................................................34
4.3.1 Mơ hình tổ chức bộ nhớ ngoài:.............................................................34
4.3.2 Tập tin băm (hashed file):.....................................................................35
4.3.2 Tập tin chỉ số (indexed file):.................................................................36
4.3.2 B cây (balanced tree): ...........................................................................38
Chương 5: THIẾT KẾ TỔNG QUÁT CHƯƠNG TRÌNH QUẢN LÝ CƠ SỞ DỮ
LIỆU ......................................................................................................................42
5.1 Mục đích: .....................................................................................................42
5.2 Giải quyết vấn đề: ........................................................................................43
5.2.1 Xây dựng định dạng tập tin cơ sở dữ liệu:............................................43
5.2.2 Giới thiệu phần định dạng bản ghi cơ sở dữ liệu:.................................46
5.2.3 Các phương pháp hiện thực khi xây dựng tập tin cơ sở dữ liệu: ..........50
5.3 Hiện thực chương trình:...............................................................................56
5.3.1 Sơ đồ khối của bộ chương trình nhận dạng sản phẩm trong siêu thị chạy
trên nền T-Engine/SH7760: ...........................................................................56
5.3.2 Sơ đồ khối của chương trình quản lý cơ sở dữ liệu: .............................57
5.3.3 Giao diện khối chương trình quản lý cơ sở dữ liệu: .............................58
5.3.3.1 Chức năng của hệ thống menu:......................................................59
5.3.3.1.1 Chức năng của menu File: ......................................................59
5.3.3.1.2 Chức năng của menu Record:.................................................60
5.3.3.1.3 Chức năng của menu Help:.....................................................61
5.3.3.2 Chức năng của hệ thống toolbar: ...................................................61
5.3.4 Giao diện khối chương trình thêm record thơng tin của sản phẩm: .....61
5.3.5 Giao diện khối chương trình tìm kiếm sản phẩm: ................................63
5.3.5 Một số hàm mã giả để xây dựng chương trình quản lý cơ sở dữ liệu: .64
Chương 6: THIẾT KẾ TỔNG QUÁT CHƯƠNG TRÌNH NHẬN DẠNG SẢN
PHẨM TRONG SIÊU THỊ CHẠY TRÊN NỀN T-ENGINE/SH7760.................65
6.1 Mục đích: .....................................................................................................65
6.2 Giải quyết vấn đề: ........................................................................................66
6.2.1 Xây dựng cơ chế truy cập cũng như là tìm kiếm các sản phẩm trong cơ
sở dữ liệu tập tin: ...........................................................................................66
6.2.2 Xây dựng cấu trúc đánh chỉ mục: .........................................................66
6.2.3 Hiện thực cấu trúc đánh chỉ mục: .........................................................67
6.3 Hiện thực chương trình:...............................................................................70
6.3.1 Sơ đồ khối của chương trình nhận dạng sản phẩm trong siêu thị chạy
trên nền T-Engine/SH7760: ...........................................................................71
6.3.2 Giao diện khối chương trình nhận dạng sản phẩm trong siêu thị chạy
trên nền T-Engine/SH7760: ...........................................................................71
6.3.2.1 Chức năng của hệ thống menu:......................................................72
6.3.2.2 Chức năng của hệ thống nút nhấn:.................................................73
U
II
6.3.3 Giao diện khối chương trình tìm kiếm record sản phẩm: .....................73
6.3.4 Một số cấu trúc dữ liệu được sử dụng trong chương trình: ..................74
6.3.5 Cấu trúc bảng màu và chữ được sử dụng trong chương trình: .............75
6.3.6 Một số hàm mã giả để xây dựng chương trình nhận dạng sản phẩm
trong siêu thị chạy trên nền T-Engine/SH7760: ............................................82
Chương 7: KẾT LUẬN VÀ HƯỚNG MỞ RỘNG ...............................................83
TÀI LIỆU THAM KHẢO .....................................................................................87
Phụ lục A. CẤU TRÚC TẬP TIN BMP................................................................88
A.1 Cấu trúc:......................................................................................................88
A.1.1 Phần Header: có kích thước 14 byte ....................................................88
A.1.2 Phần Info Header: có kích thước 40 byte ............................................88
A.1.3 Phần Optional Pallette: ........................................................................89
A.1.4 Phần dữ liệu hình ảnh : ........................................................................89
Phụ lục B. MÃ GIẢ MỘT SỐ HÀM DÙNG ĐỂ XÂY DỰNG BỘ CHƯƠNG
TRÌNH QUẢN LÝ SẢN PHẨM TRONG SIÊU THỊ CHẠY TRÊN NỀN TENGINE/SH7760 ..................................................................................................93
B.1 Mã giả một số hàm dùng trong chương trình quản lý cơ sở dữ liệu chạy trên
hệ điều hành Windows, dựa trên nền PC:..........................................................93
B.1.1 Hàm DatabaseStructWriter: .................................................................93
B.1.2 Hàm ToByteArray:...............................................................................93
B.1.3 Hàm InitEntry:......................................................................................94
B.1.4 Hàm Write:...........................................................................................94
B.1.5 Hàm FromBinaryReaderField:.............................................................95
B.1.6 Hàm CreatedtvIndex: ...........................................................................95
B.1.7 Hàm LoadData: ....................................................................................95
B.1.8 Hàm SaveData:.....................................................................................96
B.1.9 Hàm AddRecord: .................................................................................97
B.1.10 Hàm SearchRecord: ...........................................................................97
B.1.11 Hàm ImportDatabase: ........................................................................98
B.1.12 Hàm First:...........................................................................................98
B.2 Mã giả một số hàm dùng trong chương trình nhận dạng sản phẩm trong
siêu thị chạy trên nền T-Engine/SH7760:..........................................................99
B.2.1 Hàm task:..............................................................................................99
B.2.2 Hàm init:...............................................................................................99
B.2.3 Hàm DisplaymnuFile: ........................................................................100
B.2.4 Hàm pdproc:.......................................................................................100
B.2.5 Hàm SearchOneRecord:.....................................................................101
B.2.6 Hàm DisplayItem: ..............................................................................101
B.2.7 Hàm Show:.........................................................................................101
B.2.8 Hàm SelecttxtProductCode: ...............................................................102
B.2.9 Hàm read_BMP:.................................................................................102
B.2.10 Hàm Init_Keyboard:.........................................................................103
B.2.11 Hàm Select_Key: .............................................................................103
B.2.12 Hàm CreateIndexTree: .....................................................................103
III
B.2.13 Hàm ReadItem: ................................................................................104
B.2.14 Hàm MaxRowOfInformation:..........................................................104
IV
DANH MỤC HÌNH
Hình 3.1: Kiến trúc tổng qt của một T-Engine ....................................................9
Hình 3.2: Các loại kit phát triển T-Engine của Renesas........................................10
Hình 3.3: Sơ đồ khối của T-Engine/SH7760 .........................................................13
Hình 3.4:Kiến trúc phần mềm T-Engine/SH7760 .................................................15
Hình 3.5: Các kiểu phần mềm ứng dụng trên T-Engine........................................15
Hình 3.6: Vị trí của T-Kernel trong hệ thống T-Engine/Sh7760...........................18
Hình 3.7: Sơ đồ chuyển trạng thái các task ...........................................................19
Hình 3.8: Khối điều khiển LCD.............................................................................23
Hình 3.9: Sơ đồ quá trình biên dịch chương trình chạy trên T-Engine .................24
Hình 4.1: Ví dụ một cây B-tree cấp 4 ....................................................................39
Hình 5.1: Sơ đồ khối của bộ chương trình nhận dạng sản phẩm trong siêu thị chạy
trên nền T-Engine/SH7760 ............................................................................56
Hình 5.2: Sơ đồ khối của chương trình quản lý cơ sở dữ liệu ..............................57
Hình 5.3: Giao diện chính của chương trình quản lý cơ sở dữ liệu ......................59
Hình 5.4: Giao diện menu File trong chương trình quản lý cơ sở dữ liệu ............60
Hình 5.5: Giao diện menu Record trong chương trình quản lý cơ sở dữ liệu ......61
Hình 5.6: Giao diện menu Help trong chương trình quản lý cơ sở dữ liệu ..........61
Hình 5.7: Giao diện thêm record thông tin của sản phẩm ....................................62
Hình 5.8: Giao diện tìm kiếm record trong cơ sở dữ liệu hiện hành ....................63
Hình 6.1: Một phần cây nhị phân tìm kiếm của cấu trúc đánh chỉ mục ...............68
Hình 6.2: Sơ đồ khối của chương trình nhận dạng sản phẩm trong siêu thị chạy
trên nền T-Engine/SH7760 ............................................................................71
Hình 6.3: Giao diện chính của chương trình nhận dạng sản phẩm trong siêu thị
được chạy trên nền T-Engine/SH7760 ..........................................................72
Hình 6.4: Giao diện tìm kiếm sản phẩm chạy trên nền T-Engine/SH7760 ...........73
V
DANH MỤC BẢNG
Bảng 3.1: Các bộ kit phát triển T-Engine của Renesas .........................................11
Bảng 4.1: Ví dụ tổ chức truy xuất tuần tự..............................................................28
Bảng 4.2: Bảng địa chỉ, cho biết bản ghi lưu ở rãnh nào.......................................30
Bảng 4.3: Các bản ghi được lưu trữ trong các rãnh từ theo kiểu ISAM................30
Bảng 4.4: Xử lý ghi tràn ISAM với vùng tràn riêng..............................................31
Bảng 4.5: Xử lý ghi tràn ISAM với vùng tràn chung ............................................31
Bảng 4.6: Tổ chức tập tin chỉ số ............................................................................31
Bảng 5.1: Thời gian tải tập tin cơ sở dữ liệu khi không phân trang dữ liệu ..........53
Bảng 5.2: Thời gian lưu tập tin cơ sở dữ liệu khi không phân trang dữ liệu.........54
Bảng 5.3: Thời gian tìm kiếm bản ghi khi khơng phân trang dữ liệu ...................54
Bảng 5.4: Thời gian tải tập tin cơ sở dữ liệu khi phân trang dữ liệu ....................55
Bảng 5.5: Thời gian lưu tập tin cơ sở dữ liệu khi phân trang dữ liệu ...................55
Bảng 5.6: Thời gian tìm kiếm bản ghi khi phân trang dữ liệu ..............................56
Bảng 6.1: Thời gian tải tập tin vào bộ kit .............................................................69
Bảng 6.2: Thời gian tải tập tin cơ sở dữ liệu vào bộ nhớ chính ............................70
Bảng 6.3: Thời gian tìm kiếm bản ghi trong cơ sở dữ liệu tập tin ........................70
Bảng A.1: Phương pháp nén 4 bit Run Length Encoding ....................................91
Bảng A.2: Ví dụ của phương pháp nén 4 bit Run Length Encoding ....................91
Bảng A.3: Phương pháp nén 8 bit Run Length Encoding ....................................92
Bảng A.4: Ví dụ của phương pháp nén 4 bit Run Length Encoding ....................92
VI
Chương 1: GIỚI THIỆU
1.1 Đặt vấn đề:
Nhằm mục đích tạo điều kiện thuận lợi cho khách hàng nhận biết được
thông tin về các sản phẩm một cách dễ dàng và nhanh chóng khi mua các sản
phẩm trong siêu thị. Nhu cầu về một chương trình nhận dạng và cung cấp
thơng tin của sản phẩm trong siêu thị để hỗ trợ hoạt động mua hàng của khách
hàng ngày càng rõ rệt.
Với nhu cầu thực tiễn đó, trong luận văn tốt nghiệp này em viết một bộ
chương trình nhận dạng sản phẩm trong siêu thị (dữ liệu được lưu trên card
PCMCIA) chạy trên nền T-Engine/Sh7760 do công ty Renesas sản xuất đang
được đưa vào khai thác các ứng dụng cho hệ thống nhúng. Bộ chương trình
nhận dạng sản phẩm trong siêu thị chạy trên nền T-Engine/SH7760 cho phép
người sử dụng tiết kiệm đáng kể thời gian chọn lựa hàng hóa và mua những
món hàng phù hợp với nhu cầu của mình hơn. Ngồi ra nó cịn hỗ trợ người
quản lý bán hàng xử lý những công việc thường ngày như: giới thiệu thông tin
sản phẩm cũng như chức năng của chúng cho khách hàng.
1.2 Giải quyết vấn đề:
Để viết chương trình ứng dụng này em phải tìm hiểu về một số phần như:
¾ Tìm hiểu kiến trúc và tổ chức của bộ kit T-Engine/SH7760, tìm hiểu
hệ điều hành thời gian thực, cách khai thác để viết các chương trình
ứng dụng trên bộ kit T-Engine/SH7760. Sau đó viết chương trình
nhận dạng sản phẩm trong siêu thị chạy trên nền T-Engine/SH7760.
¾ Tìm hiểu, viết một chương trình quản lý cơ sở dữ liệu chạy trên hệ
điều hành Windows, dựa trên nền PC để xây dựng cơ sở dữ liệu cho
chương trình nhận dạng sản phẩm trong siêu thị chạy trên nền TEngine/SH7760.
¾ Cách đồng bộ dữ liệu giữa chương trình viết trên hệ điều hành
Windows, dựa trên nền PC và chương trình viết trên TEngine/SH7760 bằng cách xây dựng một cơ sở dữ liệu đặc thù có
thể chạy trên cả hai hệ nền này.
1
Sau khi tìm hiểu xong, em xây dựng một bộ chương trình nhận dạng sản
phẩm trong siêu thị chạy trên nền T-Engine/SH7760.
Mơ hình tổng qt của bộ chương trình nhận dạng sản phẩm trong siêu thị
chạy trên nền T-Engine/SH7760 được thực hiện qua hai giai đoạn thơng qua
hai chương trình với nhiệm vụ và chức năng như sau:
Chương trình quản lý cơ sở dữ liệu:
¾ Chương trình này có chức năng tạo cũng như quản lý cơ sở dữ liệu
cho chương trình nhận dạng sản phẩm trong siêu thị.
¾ Chương trình này được viết và chạy trên hệ điều hành Windows với
chức năng quản lý các sản phẩm cũng như là thơng tin của chúng
trong siêu thị.
Chương trình nhận dạng sản phẩm trong siêu thị:
¾ Sử dụng cơ sở dữ liệu được tạo ra bởi chương trình quản lý cơ sở dữ
liệu bên trên. Chương trình này được viết và chạy trên nền của TEngine/SH7760 với chức năng hiển thị các thông tin của sản phẩm
cho người dùng tham khảo khi người dùng nhập vào mã của sản
phẩm, cũng như là tìm kiếm các sản phẩm thỏa mãn một số điều
kiện do người dùng đặt ra.
Lý do cơ bản phải tạo ra hai chương trình một chương trình chạy trên hệ
điều hành Windows một chương trình chạy trên nền của T-Engine/SH7760 là:
¾ Trên hệ điều hành Windows vấn đề tạo ra chương trình quản lý cơ
sở dữ liệu về thơng tin của sản phẩm là khá đơn giản. Việc thêm,
xóa, sửa cũng như là quản lý thông tin trên nền của Windows thì dễ
hơn là trên T-Engine. Nhưng Windows bản thân nó chỉ được cài đặt
trên những chiếc máy có kích thước khá lớn, khó khăn trong việc
mang đi.
¾ Ngược lại những chiếc máy T-Engine là những thiết bị nhỏ gọn có
thể mang đi dễ dàng. Nhưng bù lại những thiết bị T-Engine lại
không hỗ trợ nhiều về vấn đề lập trình để tạo ra những chương trình
thiết yếu để phục vụ nhu cầu ngày càng cao của con người, khi soạn
thảo trên T-Engine thì rất là khó khăn do kích thước q nhỏ của
bàn phím. Vì thế trong luận văn này em kết hợp ưu điểm của cả hai
để tạo ra bộ chương trình nhận dạng sản phẩm trong siêu thị phục vụ
cho nhu cầu mua hàng của người tiêu dùng.
2
1.3 Giới hạn luận văn:
T-Engine đề cập trong luận văn này chính là T-Engine/SH7760 do cơng ty
Renesas sản xuất.
Nhằm mục đích tìm hiểu và hiện thực một cơ sở dữ liệu chạy trên nền TEngine/SH7760 nên trong cơ sở dữ liệu của chương trình quản lý sản phẩm
trong siêu thị chỉ chứa một số trường dữ liệu hữu ích. Nó chính là phiên bản
thu gọn của các cơ sở dữ liệu quản lý sản phẩm chạy trên PC.
Khơng mất tính tổng quát về kiểu dữ liệu được lưu trữ trong một cơ sở dữ
liệu. Cơ sở dữ liệu được dùng trong chương trình quản lý sản phẩm trong siêu
thị sẽ chứa các dữ liệu chuỗi, số và hình ảnh.
1.4 Cấu trúc của luận văn:
Luận văn được tổ chức như sau:
¾ Chương 1: đặt vấn đề, cách giải quyết cũng như giới hạn vấn đề
trong luận văn.
¾ Chương 2: giới thiệu các cơng trình liên quan đến T-Engine, các
ứng dụng được viết trên T-Engine.
¾ Chương 3: giới thiệu các tính chất cũng như đặt điểm chính của TEngine/SH7760
¾ Chương 4: tìm hiểu cách tổ chức cũng như hiện thực hệ quản trị cơ
sở dữ liệu tập tin.
¾ Chương 5: hiện thực cơ sở dữ liệu tập tin cũng như chương trình
quản lý cơ sở dữ liệu tập tin chạy trên hệ điều hành Windows.
¾ Chương 6: hiện thực chương trình nhận dạng sản phẩm chạy trên
nền T-Engine/SH7760.
¾ Chương 7: trình bày các kết quả đạt được, các ưu nhược điểm của
tiếp cận, đồng thời đề xuất các ý tưởng cải tiến và mở rộng.
3
Chương 2: TỔNG QUAN MỘT SỐ CHƯƠNG
TRÌNH VIẾT TRÊN HỆ THỐNG NHÚNG
Theo xu hướng hiện nay, hệ thống nhúng ngày càng được ứng dụng nhiều
trong thực tế, do đó trên thế giới hiện nay có rất nhiều cơng trình nghiên cứu
và triển khai các ứng dụng hệ thống nhúng. Hệ thống nhúng được áp dụng
rộng rãi từ các sản phẩm dân dụng như: máy giặt, máy lạnh, điện thoại di
động, thang máy cho đến các thiết bị hiện đại dùng trong kỹ thuật quân sự như
thiết bị vệ tinh, thông tin liên lạc...
Các yêu cầu quan trọng của hệ thống nhúng là thơng dụng, chuẩn hóa và
giá thành rẽ, các sản phẩm phần mềm thì được dùng chung cho các thiết bị
phần cứng. Do đó cần có một hệ thống nhúng được chuẩn hóa để làm điều
này, T-Engine là một hệ thống nhúng được giáo sư Ken Sakamura đưa ra để
làm việc đó.
Một số trang web giới thiệu hệ thống nhúng như:
¾ được xem như một diễn đàn về kiến trúc,
ứng dụng của hệ thống nhúng. Tại đây các nhà nghiên cứu thường
xuyên đăng tải các bài báo về hầu hết các lĩnh vực liên quan đến hệ
thống nhúng. Thông tin về các công ty, trường đại học và các
chuyên gia hàng đầu nghiên cứu về lĩnh vực hệ thống nhúng cũng
có thể tìm thấy ở đây. Bên cạnh đó các thành viên trong diễn đàn có
thể đăng các bài báo về kết quả nghiên cứu của mình hoặc là các
vấn đề của mình chưa giải quyết được liên quan đến hệ thống nhúng
lên đây. Trang web còn cung cấp các tài liệu về T-Engine và các
ứng dụng mẫu để người nào muốn nghiên cứu về lĩnh vực này có tài
liệu tham khảo.
¾ cung cấp cho chúng ta những thông tin
về khai thác các ứng dụng trên hệ thống nhúng. Những tài liệu cơ
bản để hiểu rõ hệ thống nhúng, nguyên lý hoạt động hệ thống
nhúng.
¾ hỗ trợ người sử dụng về phần mềm
cũng như các thông tin về hệ thống với mục đích tạo ra sự dễ dàng
sử dụng T-Engine. Ngoài ra trang web này cũng cung cấp các
chương trình ví dụ khi khai thác, phát triển các ứng dụng về TEngine.
4
¾ cung cấp thông tin cho người sử dụng
về các loại hệ thống nhúng cũng như hỗ trợ người sử dụng quản lý
thao tác với các hệ thống này.
Một số chương trình được viết trên hệ thống nhúng như:
¾ Hệ thống theo dõi hành trình xe taxi: trợ giúp người lái xe xác
định chính xác vị trí của mình trên bản đồ thành phố, các thơng tin
về lịch trình được truyền về trung tâm thông qua kết nối vô tuyến
hoặc ghi vào hộp đen, hệ thống còn được kết nối với đồng hồ đo tốc
độ để thực hiện tính tiền tự động [19].
¾ Hệ thống xác định tọa độ: trợ giúp các tàu thuyền hoạt động trên
biển dễ dàng định vị được tọa độ hiện thời của mình để định hướng
đi và hỗ trợ đắc lực cho công tác tìm kiếm, cứu hộ cứu nạn khi có
tình trạng khẩn cấp [19].
¾ Hệ thống sát hạch lái xe tự động CadPro CDES: dựa trên máy
tính nhúng CadPro ECB và phần mềm xử lý dữ liệu cảm biến thời
gian thực, CadPro đưa ra giải pháp tối ưu cho hệ thống sát hạch lái
xe chấm điểm tự động [19].
¾ Hệ thống cảnh báo vượt tốc tàu hỏa CadPro GPS VietNotes: đây
là một hệ máy tính nhúng thu tín hiệu từ vệ tinh GPS để theo dõi tốc
độ tức thời của đầu máy và vị trí của đồn tàu trên bản đồ số cài đặt
từ trước, hỗ trợ người lái một cách tự động [19].
Một số chương trình viết cho T-Monitor trên T-Engine:
¾ T-Engine/SH7760 T-Monitor (GCC) [20].
¾ T-Engine Appliance/SH7619 T-Monitor (GCC) [20].
¾ uT-Engine/M32192 T-Monitor (GCC) [20].
¾ uT-Engine/SH7145 T-Monitor with GDB stub (GCC) [20].
¾ T-Engine/SH7720, SH7780 T-Monitor (GCC3.0.4 edition.) [20].
¾ T-Engine/SH7780 T-Monitor [20].
Một số chương trình ứng dụng trên T-Engine:
¾ ShellTsk (T-Kernel based Command Line Utility) [21].
¾ T-Kernel/SE Command Line Interpreter (Rev.1.00.01) [21].
¾ T-Kernel/SE compatible HTTP server software (Rev.1.00.01) [21].
5
¾ T-Engine/SH7727 Key/Touch panel Sample application (v1.00.00)
[21].
¾ Teadec hoàn thành Media Player với MP3 và JPEG chạy trên môi
trường T-Kernel của T-Engine SH7727 [5]
Một số chương trình middleware trên T-Engine:
¾ Using the TCP/IP Protocol Stack [22].
¾ TCP/IP Protocol Stack (v1.00.02, bugfix the startup file for the SH
T-Engine) [22].
¾ TCP/IP Protocol Stack (v1.00.01, append uT-Engine/SH7211) [22].
¾ TCP/IP Protocol Stack (v1.00.03, append SH7619(SH-Ether)) [22].
Một số phần mềm device drivers trên T-Engine:
¾ T-Engine/SH7727 device driver [23].
¾ T-Engine/SH7727 extended device driver [23].
¾ T-Engine/SH7727 extended console driver [23].
¾ T-Engine/SH7751R driver sample [23].
¾ T-Engine/SH7760 sound driver [23].
¾ uT-Engine/SH7145 device driver [23].
¾ uT-Engine/M32R card driver [23].
¾ uT-Engine/M32192 camera driver [23].
¾ uT-Engine/M32192 device driver [23].
Tại phịng thí nghiệm Renesas - Trường ĐH Bách Khoa Tp.HCM cũng đã
phát triển thành cơng một số ứng dụng như:
¾ T-Engine/SH7760 sound driver.
¾ Đọc và nghe file nhạc kiểu RAW.
¾ Load một file ảnh lên LCD của T-Engine.
¾ Tạo trị chơi xếp gạch.
¾ Tạo trị chơi bắn máy bay.
¾ Người sử dụng có thể vẽ lên màn hình cảm ứng…
6
Tuy có nhiều chương trình phần mềm được viết cho các hệ thống nhúng
nhưng các phần mềm này thường chỉ chạy được trên một hệ nền T-Engine cố
định. Trong các hệ thống nhúng hệ nền T-Engine có rất nhiều phiên bản khác
nhau, một số phiên bản như:
¾ SH7727
¾ SH7751R
¾ SH7760
¾ VR5500
¾ VR5701
¾ TX4956
¾ ARM920-MX1
¾ ARM926-MX21
¾ ARM926-MB8
¾ ARM922-LH7
¾ ARM720-S1C
¾ PPC-V4FX
Trong đó SH7760 là một phiên bản tương đối mới và là hệ thống mẫu để
các tổ chức, cá nhân, trường đại học nghiên cứu. Nó có cấu hình mạnh, được
trang bị CPU đời mới nhất của hãng Renesas, dòng SH4, và kèm theo đầy đủ
các tính năng cần thiết tối thiểu của một hệ thống nhúng. Vì đây là phiên bản
tương đối mới nên những ứng dụng viết cho hệ nền T-Engine này chưa nhiều
và chương trình nhận dạng sản phẩm được viết trên hệ thống này vẫn chưa có.
7
Chương 3: T-ENGINE/SH7760
3.1 T-Engine là gì?
Ngày nay, cơng nghệ đã được dùng để xây dựng các thiết bị điện tử tiên
tiến và các hệ thống nhúng tạo nên một nền tảng kỹ thuật cho mơi trường máy
tính nhúng. Tuy nhiên việc phát triển các phần mềm điều khiển cho các thiết bị
này hoặc các hệ thống nhúng lại cực kỳ phức tạp do phải đòi hỏi thiết bị hoạt
động hiệu quả trong môi trường bị giới hạn về tài nguyên phần cứng.
Và cho đến gần đây, người ta vẫn còn gặp khó khăn do mơi trường phát
triển phần mềm hệ thống nhúng chưa chuẩn hóa, khó khăn khi phân phối các
phần mềm trung gian, trình điều khiển thiết bị và những thành phần phần mềm
khác.
Ngồi ra các khó khăn trong phát triển sản phẩm còn do yêu cầu của khách
hàng như: địi hỏi có sản phẩm tính năng cao, giá thành hạ trong thời gian sớm
nhất.
Một trong các giải pháp để giải quyết vấn đề trên là dự án T-Engine, được
hình thành nhằm mục đích chuẩn hóa nền tảng phát triển các hệ thống nhúng.
Nó bao gồm việc hồn chỉnh cấu hình phần cứng và mơi trường phát triển, bao
gồm cả phân phối và cung cấp khả năng chuyển đổi các thành phần phần mềm.
Dự án này do phần lớn các công ty sản xuất linh kiện điện tử lớn của Nhật
Bản, các nhà sản xuất phần mềm, các hãng sản xuất hệ thống nhúng, các công
ty sản xuất thiết bị đồ dùng gia đình hỗ trợ và đã thành lập diễn đàn T-Engine.
Diễn đàn hoạt động như nhà tài trợ chính cho dự án, tiến hành nghiên cứu và
phát triển, đồng thời thực hiện chuẩn hóa cho kiến trúc T-Engine.
Sau đây chúng ta nghiên cứu chi tiết về nó: T-Engine là thế hệ tiếp theo
của hệ thống thời gian thực, được phát triển trên một nền tảng mở và chuẩn
hóa. Nó đóng một vai trị quan trọng trong việc xây dựng những hệ thống tính
tốn thường gặp. Một số tính chất của T-Engine như:
¾ Khơng xác định trước về CPU.
¾ T-Engine có kích thước thơng dụng và giao diện phổ biến.
¾ T-Engine là sự kết hợp của chuẩn phần cứng (T-Engine board) và hệ
điều hành thời gian thực (T-Kernel).
8
¾ T-Engine hỗ trợ sự phân phối middleware làm giảm bớt thời gian và
chi phí để phát triển những ứng dụng hệ thống.
¾ T-Engine hỗ trợ eTRON, một kiến trúc bảo mật mạng phát triển dựa
trên TRON Project đảm bảo an tồn thơng tin trong khi truyền.
Kiến trúc tổng qt của một T-Engine có dạng như sau:
Native Extensions
Trusted
Kernel
Profiles
T-Shell
T-Kernel /TE
Tiny
Extension
T-Kernel /SE
standard
T-Kernel /EE
TRON
Profiles
T-linux
(mota vista,
etc.)
T-integrator
(nxwave)
T-wireless
(NTT Docomo,
etc)
T-Java
(Sun,etc)
Enterprise
Extension
Extension
fernote
machinee
Parted Extensions
middleware
T-Bus
T-kernel
Standard Device Drivier
T-monitor
T-Engine
T-Engine
eTRON
eTRON
Computer network
Hình 3.1: Kiến trúc tổng quát của một T-Engine
3.2 Các sản phẩm T-Engine:
T-Engine cung cấp bốn loại sản phẩm bao phủ phạm vi các thành phần
tạo nên một mơi trường tính tốn thường gặp:
¾ T-Engine chuẩn: Nền tảng để phát triển cho các thiết bị yêu cầu sự
giao tiếp với người sử dụng ở mức cao, như thiết bị thông tin di
động, PDA với tính năng màn hình tinh thể lỏng và điều khiển bằng
cảm ứng. Kèm theo là các tính năng giao tiếp cao cấp như cổng giao
tiếp USB hay giao tiếp serial.
9
¾ μT-Engine (micro T-Engine): Là các sản phẩm giao tiếp đơn giản
với người sử dụng chủ yếu dùng cho những thiết bị điều khiển, như
những thiết bị điện gia dụng, thiết bị khoa học nghiên cứu ứng dụng.
Nó yêu cầu giao tiếp người sử dụng ở mức đơn giản, không có màn
hình tinh thể lỏng, khơng có màn hình cảm ứng.
¾ nT-Engine (nano T-Engine): Là các sản phẩm dùng cho những thiết
bị điện gia dụng nhỏ, các cảm biến kích thước cở một đồng xu. Chủ
yếu sử dụng nguồn cung cấp bên ngồi và kết nối có dây dẫn thành
mạng thời gian thực.
¾ pT-Engine (pico T-Engine): Là các sản phẩm dùng cho những thiết
bị có kích thước nhỏ nhất, tiêu thụ nguồn thấp. Sử dụng trong mơi
trường tính tốn thơng thuờng như đèn, cơng tắc, các cảm biến, van
…
Hình 3.2: Các loại kit phát triển T-Engine của Renesas
3.3 Tổng quan về T-Engine/SH7760:
Renesas là hãng Nhật Bản đầu tiên tiến hành thương mại hóa các kit phát
triển T-Engine (T-Engine development kit, gọi tắt là T-Engine kit). Kit này
bao gồm bo mạch CPU, hệ điều hành thời gian thực T-Kernel, các đặc tả và
các tài liệu khác trên CD-ROM và môi trường phát triển trên nền tảng Linux.
10
Kit này rất thuận tiện cho các công việc liên quan đến T-Engine, nghiên cứu
và phát triển các phần mềm hệ thống nhúng, hoặc nhằm mục đích huấn luyện,
đào tạo. Renesas đã đưa ra rất nhiều kit với các dòng CPU khác nhau, có thể
thấy ở bảng sau:
T-Engine/SH7760
T-Engine/7751R
T-Engine/SH7727
T-Engine/VR5500
T-Engine/TX4956
T-Engine/ARM926MB8
T-Engine/ARM922-LH7
T-Engine/ARM920MX1
T-Engine/ARM720-LH7
μT-Engine/M32104
μT-Engine/VR4131
μT-Engine/AMR7LH79532
μT-Engine/V850EMA3
Bảng 3.1: Các bộ kit phát triển T-Engine của Renesas
Trong đó kit T-Engine/SH7760 là kit có cấu hình mạnh, được trang bị CPU
đời mới nhất của hãng Renesas, dòng SH4, và kèm theo đầy đủ các tính năng
cần thiết tối thiểu của một hệ thống nhúng.
Một bộ T-Engine/SH7760 kit bao gồm:
¾ Phần cứng T-Engine/SH7760.
¾ Hướng dẫn sử dụng:
Hướng dẫn sử dụng, phát triển kit (dạng PDF): mô tả thành phần
của kit và giải thích cách hoạt động.
Hướng dẫn sử dụng thư viện (dạng PDF): giải thích các thư viện
bằng ngơn ngữ C kèm theo trong kit.
Hướng dẫn về device driver (dạng PDF): giải thích về device
driver có kèm theo kit.
Hướng dẫn về T-Kernel mở rộng (dạng PDF): giải thích về TKernel mở rộng của PMC (Personal Media Corporation) kèm
theo kit.
11
Hướng dẫn môi trường phát triển GNU (dạng PDF): giải thích
cách cài đặt và sử dụng cơng cụ phát triển GNU trên Linux.
¾ Các đặc tả:
Đặc tả về T-Monitor (dạng PDF): đặc tả chính thức của TMonitor.
Đặc tả T-Kernel (dạng PDF): đặc tả chính thức của T-Kernel.
Đặc tả về sự thực hiện (dạng PDF): chi tiết đặc tả các thành phần
của T-Monitor/T-Kernel tùy thuộc vào sự hiện thực TEngine/SH7760.
¾ Phần mềm:
Bao gồm bản sao bộ nhớ flash của kit, công cụ phát phát triển
GNU, mã nguồn chương trình…
3.4 Kiến trúc phần cứng T-Engine/SH7760:
T-Engine/SH7760 bao gồm các thành phần sau:
¾ T-Engine/SH7760 của hãng Renesas là một microcomputer trang bị
CPU SH7760, PCMCIA controller, sound generator chip, SIM Card
connector, màn hình cảm biến LCD … tạo điều kiện thuận lợi cho
việc phát triển những ứng dụng trên hệ thống này.
¾ T-Engine/SH7760 thuộc dịng CPU SH4, dịng CPU SuperH RISC
32bit, có bộ đệm lệnh kích thước 16Kbytes và bộ đệm tốn hạng
32Kbytes, chế độ của bộ đệm có thể là copy-back hoặc writethrough. Ngồi ra cịn kèm theo đơn vị quản lý bộ nhớ MMU, bộ
điều khiển trạng thái bus cho phép kết nối với bộ nhớ SDRAM.
¾ Bảng mạch T-Engine/SH7760 có bus địa chỉ, bus dữ liệu và khe
cắm mở rộng điều khiển tín hiệu output. Do đó người dùng có thể
kết nối bộ kit này với các thiết bị cần điều khiển.
¾ T-Engine/SH7760 được kết nối với máy tính bằng cáp RS-232C và
phần mềm Tera Term Pro. Phần mềm này mơ phỏng đầu cuối cho
Windows. Nó có chức năng như là một telnet client kết nối với một
telnet server chạy trên Cygwin. Phần mềm này còn sử dụng để mô
phỏng T-Engine.
12
¾ Vì vậy T-Engine/SH7760 thuận tiện cho phát triển các sản phẩm giá
thành thấp, tốc độ xử lý cao, tiêu thụ điện năng thấp, thích hợp trong
các hệ thống nhúng. Sản phẩm chính được dùng trong điều khiển tự
động, hệ thống bán hàng tự động, các thiết bị cầm tay, các ứng dụng
định vị GPS, các ứng dụng trong công nghiệp…
Sơ đồ khối của T-Engine/SH7760 :
Hình 3.3: Sơ đồ khối của T-Engine/SH7760
3.5 Kiến trúc phần mềm T-Engine/SH7760:
Kiến trúc phần mềm T-Engine/SH7760 bao gồm các thành phần sau:
¾ T-Monitor: T-Monitor gồm các thành phần để thiết lập trạng thái phần
cứng lúc ban đầu và khởi động hệ thống, kèm theo chức năng dị tìm lỗi
cơ bản. Khi bật nguồn cho T-Engine, thành phần đầu tiên được khởi
động là T-Monitor, tiếp theo T-Monitor khởi tạo trạng thái phần cứng
ban đầu và khởi động T-Kernel.
13