1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

116 28 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 116
Dung lượng 1,37 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ngoà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 tr

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA

Trang 2

CÔNG TRÌNH ĐƯỢC HOÀ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

Trang 3

ĐẠ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 T-Engine

- 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ý)

Trang 4

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

Trang 5

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ể hoà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ể hoà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ể hoàn thành tốt nhiệm vụ học tập của mình

Trang 6

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 Ngoà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ị

Trang 7

MỤC LỤC

Chương 1: GIỚI THIỆU 1U

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 25U 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

Trang 8

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 42U 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

Trang 9

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 T-ENGINE/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

Trang 10

B.2.13 Hàm ReadItem: 104 B.2.14 Hàm MaxRowOfInformation: 104

Trang 11

DANH MỤC HÌNH

Hình 3.1: Kiến trúc tổng quát 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

Trang 12

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

Trang 13

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 Ngoà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 T-Engine/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 T-Engine/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

Trang 14

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 quát 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 T-Engine/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 quá 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

Trang 15

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 Engine/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

T-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 Engine/SH7760

T-¾ Chương 4: tìm hiểu cách tổ chức cũng như hiện thực hệ quản trị cơ

Trang 16

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ư:

¾ http://www.t-engine.org đượ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

¾ http://www.t-engine.com.sg 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

¾ http://www.superh-tkernel.org 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ề T-Engine

Trang 17

¾ http://www.t-engine4u.com 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 đoà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]

Trang 18

¾ 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…

Trang 19

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ư:

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ó

Trang 20

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

Ngoà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 hoà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 toá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)

Trang 21

¾ 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 toàn thông tin trong khi truyền

Kiến trúc tổng quát của một T-Engine có dạng như sau:

Hình 3.1: Kiến trúc tổng quát của một T-Engine

T-linux (mota vista, etc.)

T-integrator (nxwave)

T-Java ( Sun,etc)

T-wireless (NTT Docomo, etc)

T-kernel

T-Shell Trusted

Kernel Profiles

TRON

Profiles

T-monitor

ware

machinee Parted Extensions

Trang 22

¾ μ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 ngoà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 toán thông thuờng như đèn, công tắc, các cảm biến, van

Trang 23

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/ARM926-MB8

T-Engine/ARM922-LH7 T-Engine/ARM920-MX1

T-Engine/ARM720-LH7

μT-Engine/M32104 μT-Engine/VR4131 μT-Engine/AMR7-LH79532

MA3

μT-Engine/V850E-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:

Trang 24

T-™ 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ề Monitor (dạng PDF): đặc tả chính thức của Monitor

T-™ Đặ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 T-Engine/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 toán hạng 32Kbytes, chế độ của bộ đệm có thể là copy-back hoặc write-through Ngoà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

Trang 25

¾ 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

Trang 26

¾ T-Kernel: T-Kernel là một hệ điều hành thời gian thực, được kế thừa

các thành tựu và kỹ thuật của ITRON

¾ Devices Drivers: Các trình điều khiển thiết bị thực hiện việc điều khiển

hoạt động của các thiết bị phần cứng Trên T-Engine các thiết bị cơ bản đều đã có các trình điều khiển T-Kernel quản lý các trình điều khiển này và các ứng dụng có thể sử dụng các trình điều khiển thiết bị thông qua việc gọi các hàm hệ thống T-Kernel Mã nguồn của các trình điều khiển thiết bị thông dụng được phổ biến rộng rãi và hỗ trợ cho việc phát triển các trình điều khiển thiết bị cho các ứng dụng và phần cứng chuyên biệt khác Các nhà cung cấp hệ thống có thể tham khảo mã nguồn và viết các trình diều khiển thiết bị riêng cho mình

¾ T-Kernel Extensions: “T-Kernel mở rộng” mở rộng thêm các chức

năng của T-Kernel, và hiện thực các chức năng của hệ thống ở mức độ cao Ví dụ: T-Kernel không cung cấp các hàm xử lý tập tin nhưng T-Kernel mở rộng thì có Trong T-Kernel mở rộng tiêu chuẩn gồm quản

lý bộ nhớ ảo và giao tiếp người dùng bằng đồ họa (GUI) Ngoài ra, còn

có T-Kernel mở rộng Tiny, cung cấp môi trường gần giống ITRON, và T-Linux, T-Java… cũng đang được phát triển

¾ Middleware: Rất nhiều các phần mềm trung gian hoạt động trên

T-Engine đã được viết ra theo nhu cầu chung, cung cấp các chức năng như network protocol stack, hệ thống tập tin, xử lý ngôn ngữ, phần mềm bảo mật liên quan đến eTRON, giao tiếp đồ họa với người sử dụng, xử lý âm thanh và Java Sự xuất hiện của nhiều phần mềm trung gian tạo thuận lợi cho phát triển sản phẩm ứng dụng trong một thời gian ngắn Để khuyến khích việc phân phối các sản phẩm này, thông tin về việc sử dụng sản phẩm và các khả năng phối hợp các sử dụng được quản lý trong cơ sở dữ liệu bởi dự án T-Engine

Kiến trúc phần mềm T-Engine/SH7760 có dạng như hình 3.4:

Trang 27

Sử dụng các hàm T-Monitor

Sử dụng các hàm T-Kernel

Chương trình chạy

trên T-Kernel mở rộng

Chương trình chạy trên T-Kernel

Chương trình chạy trên T-Monitor

T-Kernel mở rộng

T-Kernel

T-Monitor Chương trình ứng dụng

Hình 3.5: Các kiểu phần mềm ứng dụng trên T-Engine

Chương trình chạy trên T-Monitor: chương trình chạy trên T-Monitor sẽ thực thi, thao tác trực tiếp trên phần cứng và không sử dụng các hàm hệ thống

Trang 28

Chương trình chạy trên T-Kernel: đây là dạng chương trình cơ bản và thông thường nhất được viết chạy trên T-Engine, gần giống với các ứng dụng nhúng cơn bản sử dụng ITRON Các ứng dụng người dùng này gồm một hoặc nhiều tác vụ (gọi là các task), vài task này sẽ có sử dụng các hàm hệ thống T-Kernel Chương trình được thực thi thường trú trong bộ nhớ và có thể được nạp vào không gian bộ nhớ ảo

Chương trình chạy trên Kernel mở rộng: chương trình chạy trên Kernel mở rộng khác khá nhiều so với chương trình chạy trên T-Kernel Chương trình trên T-Kernel mở rộng hoạt động theo các đơn vị gọi là tiến trình (process), các process này có thể sử dụng được các hàm mở rộng (do T-Kernel mở rộng cung cấp) hơn là dùng các hàm hệ thống T-Kernel Những hàm mở rộng này bao gồm các hàm hệ thống mở rộng như điều khiển tiến trình, điều khiển tập tin và giao tiếp giữa các tiến trình Chương trình được thực thi trên bộ nhớ ảo của T-Kernel mở rộng

Trang 29

Chi tiết hơn về đặc tả T-Monitor của T-Engine/SH7760 có thể tham

khảo tài liệu: T-Monitor.pdf trên đĩa CDROM của kit

cả các đặc tả kỹ thuật của T-Kernel Tuy nhiên, ở một hệ thống nào đó mà nó không cần tất cả các hàm của hệ điều hành thì các hàm đó có thể không cần phải được hiện thực

T-Kernel một cách tổng quát có:

¾ T-Kernel Operating System (T-Kernel/OS)

¾ T-Kernel System Manager (T-Kernel/SM)

¾ T-Kernel Debugger Support(T-Kernel/DS)

Nhưng trong trường hợp xây dựng ứng dụng trên T-Engine thì T-Kernel được hiểu như là T-Kernel/OS

T-Kernel Operating System cung cấp một số chức năng như sau:

Trang 30

¾ Hàm điều khiển task

¾ Hàm giao tiếp task

T-Monitor

Hình 3.6: Vị trí của T-Kernel trong hệ thống T-Engine/Sh7760

3.8.1 Các hàm system call:

Đơn vị luận lý cơ bản của một chương trình đang thực thi được gọi là

"task" Những chương trình có 1 task thì được thực thi một cách tuần tự

còn những chương trình có nhiều task thì có thể thực thi song song Thực

thi song song chỉ là một khác niệm ở gốc nhìn của người dùng vì thực ra

các task này thực thi tuần tự theo cơ chế time-sharing được điều khiển bởi

kernel

Trang 31

Exit and delete

(tk_exd_tsk)

Resume

(tk_rsm_tsk tk_frsm_tsk)

Terminate

(tk_rsm_tsk tk_frsm_tsk)

WAIT state (chờ)

WAITING-SUSPEND (chờ - treo)

SUSPEND state (treo)

DORMANT state (ngủ)

NON-EXISTENT state (không tồn tại)

Terminate

(tk_ter_tsk)

Wait condition

Trang 32

T-kernel định thời giữa các task theo cơ chế "preemptive" dựa trên độ

ưu tiên giữa các task Các trạng thái của task được T-Kernel hỗ trợ mô tả bởi hình 3.7 bên trên

3.8.2 Các hàm quản lý task:

Đây là các hàm system call cho phép ta thao tác hay tham khảo trực tiếp các trạng thái của task Những hàm quản lý về task như:

¾ Tạo một task (tk_cre_tsk)

¾ Xoá một task (tk_del_tsk)

¾ Khởi động một task (tk_sta_tsk)

¾ Thay đổi độ ưu tiên task (tk_chg_tsk)

¾ Tham khảo trạng thái của task (tk_ref_tsk) …

Trong đó mỗi task được định danh bởi một số ID gọi là Task ID và Kernel không thực hiện việc giải phóng các tài nguyên do task yêu cầu khi thoát khỏi task

¾ Hủy bỏ các yêu cầu đánh thức task (tk_can_tsk)

¾ Giải phóng một task khởi trạng thái wait một cách bắt buộc

(tk_rel_tsk)

¾ Chuyển trạng thái của một task về trạng trạng thái SUSPEND

(tk_sus_tsk)

¾ Trì hoãn thực thi của một task (tk_dly_tsk)

¾ Vô hiệu trạng thái wait (tk_dis_wai)

3.8.4 Xử lý các ngoại lệ của task:

Các hàm xử lý ngoại lệ của task xử lý các sự kiện ngoại lệ xảy ra trong một task, trong ngữ cảnh đó, làm ngắt quá trình xử lý bình thường của task Một trình xử lý ngoại lệ được thực thi như là một phần của task nơi mà

Trang 33

ngoại lệ của task xuất hiện trong ngữ cảnh của task đó và tại cấp độ bảo vệ được chỉ định lúc task được khởi tạo Các trạng thái của task trong một trình xử lý ngoại lệ, ngoại trừ những trạng thái có liên quan đến những ngoại lệ đó, thì cũng tương tự như những trạng thái của task khi nó chạy trong một task portion bình thường, và những hàm system call tương tự có thể được sử dụng

Một xử lý ngoại lệ chỉ có thể bắt đầu khi task đích đang thực thi trong một portion Nếu một task đang thực thi ở một portion khác, khi một ngoại

lệ xuất hiện thì trình xử lý ngoại lệ đó chỉ có thể được bắt đầu khi task đích quay về task portion

Các hàm được cung cấp cho quá trình xử lý ngoại lệ như:

¾ Định nghĩa ngoại lệ (tk_def_tex)

¾ Cho phép hoặc vô hiệu các ngoại lệ cho task

3.8.7 Quản lý Memory Pool:

Những hàm quản lý memory pool cung cấp cơ chế quản lý ở cấp phần mềm các memory pool và sự cấp phát bộ nhớ

Có hai loại memory pool là memory pool có kích thước cố định và memory poolcó kích thước thay đổi được

Trang 34

3.8.8 Quản lý thời gian:

Những hàm quản lý thời gian dùng cho việc thực hiện các xử lý phụ thuộc thời gian Chúng bao gồm các hàm cho việc quản lý thời gian hệ thống, trình xử lý chu kỳ và trình xử lý alarm

3.8.9 Quản lý hệ thống:

Những hàm quản lý hệ thống là những hàm dùng để làm thay đổi trạng thái của hệ thống bao gồm những hàm:

¾ Làm quay vòng thứ tự của một task trong hàng đợi (tk_rot_rdq)

¾ Lấy ID của một task trong trạng thái RUN (tk_get_id)

¾ Cho phép hay không cho phép dispatching (tk_dis_dsp/

tk_ena_dsp)

¾ Tham khảo đến ngữ cảnh trạng thái của hệ thống (tk_ref_sys)

¾ Thiết đặt chế độ nguồn (tk_set_pow)

3.8.10 Quản lý bộ nhớ hệ thống:

Trong T-Kernel bộ nhớ hệ thống được quản lý bằng các đơn vị block, thường kích thước mỗi block này được định chia trong MMU Các hàm quản lý bộ nhớ hệ thống được cung cấp bởi T-Kernel là:

¾ Cấp phát một không gian vùng nhớ (tk_get_smb)

¾ Giải phóng vùng nhớ (tk_rel_smb)

¾ Tham khảo vùng nhớ (tk_ref_smb)

3.9 Tổng quan về LCD của T-Engine:

Khối điều khiển LCD gồm một bộ điều khiển LCD và một mặt màn hình LCD, được gắn trên bo mạch điều khiển LCD Màn hình này có thể hiển thị màu ở chế độ 262144 màu, ở độ phân giải 240 x 320 điểm Bộ điều khiển LCD kèm theo bộ nhớ trong SRAM dùng là video RAM (VRAM) cho hiển thị lên LCD

Dữ liệu cần hiển thị được lưu trữ trong SRAM của bộ điều khiển LCD theo thứ tự vị trí điểm như sau: (0,0), (1,0),… cho đến (239,319) Trên mặt hiển thị LCD, vị trí trên cùng bên trái tương ứng (0,0) và vị trí dưới cùng bên phải sẽ tương đương (239,319)

Trang 35

LCD Board

(0,0)

(239,319)

LCD Control

Video RAM (SDRAM)

và chương trình sẽ chuyển đổi những điểm ảnh có 24 bits màu sang bảng màu này để hiển thị Ta có hàm chuyển đổi từ một điểm ảnh có 24 hay 16 bits màu sang điểm ảnh có 8 bits màu và hiển thị lên màn hình như sau:

EXPORT void draw_pixel( int x, int y, int c, BMP *p_bmp )

Trang 36

c = colormap[c]; /* color map number -> BMP value */

((UW*)((p_bmp -> baseaddr)[0]))[p_bmp -> rowbytes / 4 * y + x] = c; break;

}

}

3.11 Biên dịch và liên kết chương trình chạy trên T-Engine:

Quá trình biên dịch và liên kết chương trình chạy trên T-Engine có thể được thực hiện theo sơ đồ sau:

Hình 3.9: Sơ đồ quá trình biên dịch chương trình chạy trên T-Engine

Trang 37

Chương 4: QUẢN LÝ CƠ SỞ DỮ LIỆU

Chương này sẽ giới thiệu cách tổ chức một cơ sở dữ liệu trong máy tính, cũng như là trong bộ nhớ máy tính, để từ đó đưa ra mô hình hợp lý để quản lý

cơ sở dữ liệu trong bộ chương trình nhận dạng sản phẩm trong siêu thị được hiện thực trên T-Engine

4.1 Các hệ quản trị cơ sở dữ liệu:

Dưới đây là các mốc phát triển của các hệ thống xử lý dữ liệu Quá trình phát triển này bắt đầu từ năm 1960 đến nay, đã trải qua các hệ quản trị cơ sở

dữ liệu khác nhau

¾ Những năm 60 gắn với các sản phẩm đầu tiên của hệ quản lý tập tin (file), xuất hiện bộ nhớ ngoài như là bộ nhớ lý tưởng Bộ nhớ này cho phép dùng chung, dễ dàng sử dụng, cho phép đánh địa chỉ trực tiếp và

có dung lượng lớn

¾ Giữa những năm 60, thế hệ đầu của hệ quản trị cơ sở dữ liệu đánh dấu bằng việc phân rã, mô tả những dữ liệu của chương trình ứng dụng và ngôn ngữ truy cập bên trong Bằng các lệnh hỏi phi thủ tục, người dùng

có thể truy cập dữ liệu, tìm đến các bảng ghi thay vì phải đi theo cấu trúc lưu trữ vật lý của các dữ liệu

¾ Từ những năm 70, xuất hiện thế hệ thứ hai của hệ quản trị cơ sở dữ liệu với mô hình quan hệ Mô hình quan hệ giúp đơn giản hóa việc truy xuất

dữ liệu của người sử dụng bên ngoài Nó có ngôn ngữ truy xuất dữ liệu dựa trên logic, xác định được dữ liệu mà không mô tả cách tiếp cận Chính hệ thống quản trị đặt kế hoạch truy xuất dữ liệu Những dữ liệu được thể hiện dưới dạng quan hệ với các miền giá trị hoặc đơn giản qua các bảng Việc tìm kiếm trong các hệ thống quan hệ được thuận lợi là nhờ ngôn ngữ phi thủ tục cho phép truy xuất dữ liệu mà không cần mô

tả cách truy nhập dữ liệu

¾ Thế hệ thứ ba của hệ quản trị cơ sở dữ liệu được phát triển từ những năm 80 Chúng dùng các mô hình dữ liệu phong phú và kiến trúc phân tán tốt hơn so với các hệ thống trước Kiến trúc này cho phép người dùng liên hệ với nhau tốt hơn Thế hệ thứ ba có thể kể ra gồm:

™ Mô hình hướng đối tượng

Trang 38

™ Mô hình với các luật suy diễn như là mô hình hóa logic các dữ liệu

™ Cơ sở dữ liệu phân tán

¾ Trong các hệ quản trị cơ sở dữ liệu kể trên thì hệ quản trị cơ sở dữ liệu quan hệ là đang được sử dụng rộng rãi nhất trong máy tính để bàn Do chúng được xây dựng hoàn chỉnh và được các ngôn ngữ lập trình hỗ trợ tốt Tuy nhiên đối với T-Engine/SH7760 một hệ thống nhúng mới xuất hiện thì các cơ sở dữ liệu quan hệ này vẫn chưa được hỗ trợ do chúng chưa có trình điều khiển (driver) để có thể hiểu được những tập tin cơ

sở dữ liệu này Vì thế để có thể xây dựng chương trình nhận dạng sản phẩm chạy trên nền của T-Engine trong luận văn này em sẽ dùng hệ quản trị tập tin để lưu trữ dữ liệu Sau đây chúng ta sẽ tìm hiểu về hệ quản trị tập tin

4.2 Hệ quản trị tập tin:

4.2.1 Giới thiệu:

Hệ quản trị tập tin được coi như bước đầu của hệ thống tổ chức xử lý

dữ liệu trong một chương trình ứng dụng, có sử dụng thêm một số chức năng xử lý dữ liệu của hệ điều hành máy tính

Khi chương trình truy xuất tập tin để đọc hay ghi thông tin lên tập tin, lượng thông tin trao đổi giữa chương trình và tập tin được xác định bằng một lượng logic, và bằng kích thước của bản ghi

4.2.3 Tổ chức tập tin:

Là thể hiện cách liên kết giữa các bản ghi tạo thành tập tin

Trang 39

Người dùng có thể thấy một số kiểu tổ chức tập tin như:

¾ Tuần tự

¾ Tuần tự có chỉ số

¾ Chỉ số

¾ Ngẫu nhiên

Để đơn giản, có thể phân biệt hai kiểu tổ chức là:

¾ Tổ chức truy xuất tuần tự

¾ Tổ chức truy xuất trực tiếp

Kiểu tổ chức ảnh hưởng đến phương pháp tìm đến các bản ghi Việc tìm đến các bản ghi thường được gọi là truy xuất các bản ghi, hay truy xuất tập tin

4.2.4 Phương pháp truy xuất:

Phương pháp khai thác tập tin được chương trình ứng dụng sử dụng để tìm kiếm những bản ghi

4.2.4.1 Tổ chức truy xuất tuần tự:

Trong kiểu tổ chức truy xuất tuần tự, các bản ghi của tập tin được sắp xếp lần lược hết bản ghi này đến bản ghi khác Khi đó muốn đọc bản ghi thứ ba của tập tin, cần mất thời gian đi qua hai bản ghi đầu Đó chính là nhược điểm của tổ chức này Trên băng từ người thiết kế chỉ có thể tổ chức thông tin theo kiểu tổ chức truy xuất tuần tự

Tuy nhiên, để tăng tốc độ tìm đến một bản ghi, chương trình không đọc toàn bộ nội dung của bản ghi mà chỉ đọc một phần thông tin để xác định xem đó có phải là bản ghi cần thiết hay không

Ví dụ:

Người dùng cần lưu trữ thông tin về sản phẩm theo mã sản phẩm, tên sản phẩm và thông tin sản phẩm như bảng 4.1 sau:

Trang 40

DL001 Dell Vostro Core 2 Duo Processor T5470 1.6GHz

(2MB L2, 800Mhz FSB) 1024MB DDR2 RAM

120 GB HDD (SATA 5400rpm) 15.4'' WXGA TrueLife

DVD RW Double Layer Battery 9 cell

Windows Vista Home Basic

1.83Ghz (2MB Cache 667MHz FSB) Memory 1024MB Dual Shared Channel DDR2 SDRAM at 667MHz (2 Dimms) Hard Drive 60GB 5400RPM

Network Card Integrated 10/100 Network Card and Modem Optical Storage DVD-CDRW Combo Sound Options Integrated Audio

Theo tổ chức truy xuất tuần tự để biết được thông tin của sản phẩm

có mã HP001, chương trình cần đọc qua hai bản ghi của hai sản phẩm trước

4.2.4.2 Tổ chức truy xuất trực tiếp:

Tổ chức truy xuất trực tiếp là kiểu tổ chức không tuần tự Chẳng hạn trong dịch vụ đặt chỗ máy bay, khách hàng có thể yêu cầu một chỗ mong muốn, vào bất cứ lúc nào Hình ảnh trực quan của các bản ghi theo kiểu tổ chức này là các vị trí không theo thứ tự và nằm rãi rác trong không gian bộ nhớ

Ngày đăng: 08/03/2021, 23:54

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w