Tải bản đầy đủ (.pdf) (94 trang)

Ứng dụng công nghệ nhúng cho hệ thống quản lý chấm công

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.22 MB, 94 trang )

bộ giáo dục và đào tạo
trờng đại học bách khoa hà nội
---------------------------------------

luận văn thạc sĩ khoa học

Hệ thống quản lý chấm công và tiền lơng

ngành : điện tử viễn thông
m số:2
3.04.3898

Hồ VĂN MINH

Ngời hớng dẫn khoa học : pgS.ts nguyễn thị việt hơng

Hà Nội 2008

1


Lời cam đoan

Tôi xin cam đoan rằng toàn bộ nội dung trong bài luận văn của tôi dới
đây không đợc sao chép y nguyên từ một bài luận văn của một tác giả khác.
Tôi cũng xin cam đoan rằng mọi sự tham khảo, trích dẫn trong bài luận
văn của tôi đều đã đợc chỉ rõ nguồn trong danh mục Tài liệu tham khảo của
luận văn.
Nếu hội đồng phát hiện có những điều không đúng với những gì tôi đã
cam đoan ở trên thì tôi xin chịu hoàn toàn trách nhiệm.
Hà Nội, tháng 10 năm 2008


Học viên
Hồ Văn Minh

2


LờI CảM ƠN
Em xin cảm ơn Khoa Điện tử Viễn thông, Trung tâm đào tạo Sau đại
học trờng đại học Bách Khoa Hà Nội đã tạo điều kiện thuận lợi cho em thực
hiện đề tài này.
Em cũng xin đợc gửi lời cảm ơn chân thành nhất đến cô giáo PGS.
Tiến sĩ Nguyễn Thị Việt Hơng, ngời đã luôn tận tình chỉ bảo và hớng dẫn
em trong suốt thời gian nghiên cứu vừa qua.
Bên cạnh đó, em cũng rất cảm ơn các Thầy giáo Cô giáo trong trờng
đã tận tình giảng dạy và trang bị cho em thật nhiều kiến thức bổ ích trong hai
năm học vừa qua, góp phần rất lớn vào việc nghiên cứu thành công luận văn
này.
Ngoài ra cũng xin đợc gửi lời cảm ơn đến hai bạn Nguyễn Đức Dũng
và Phạm Thị Dung trong việc hỗ trợ các trang thiết bị cần thiết cho quá trình
thực hiện đề tài.
Cuối cùng, em xin gửi lòng biết ơn sâu sắc đến cha mẹ, các bậc sinh
thành đã có công nuôi dỡng và dạy dỗ em đến ngày hôm nay; xin cảm ơn
anh em, bạn bè, những ngời đã luôn hết lòng tận tụy chăm sóc, ủng hộ và
động viên em trong lúc khó khăn cũng nh trong suốt thời gian học tập và
nghiên cứu.
Dù đã cố gắng hoàn thành thật tốt luận văn trong phạm vi yêu cầu,
nhng em biết có những thiếu sót chắc chắn không thể tránh khỏi. Em mong
sẽ nhận đợc sự thông cảm và tận tình chỉ bảo của quý Thầy Cô và các bạn.
Hà Nội, tháng 11 năm 2008
Học viên thực hiện:


Hồ Văn Minh

3


Mục lục
Lời cam đoan.............................................................................................. 2
LờI CảM ƠN ................................................................................................... 3
Mục lục......................................................................................................... 4
Danh mục các hình vẽ, Bảng biểu................................................... 7
Chơng 1 Mở đầu ...................................................................................... 9
1.1 Giới thiệu ................................................................................................. 9
1.2 Phạm vi đề tài......................................................................................... 10
Chơng 2 Cơ sở lý thuyết về hệ thống ..................................... 13
2.1 Hệ thống nhúng...................................................................................... 13
2.1.1 Định nghĩa hệ thống nhúng ............................................................. 13
2.1.2 Lịch sử hệ thống nhúng ................................................................... 14
2.1.3 Đặc điểm hệ thống nhúng ............................................................... 15
2.1.3.1 Giao diện ................................................................................... 15
2.1.3.2 Kiến trúc CPU ........................................................................... 16
2.1.3.3 Thiết bị ngoại vi ........................................................................ 17
2.1.3.4 Công cụ phát triển ..................................................................... 17
2.1.3.5 Độ tin cậy................................................................................. 18
2.1.4 Các kiến trúc phần mềm của hệ thống nhúng ................................. 19
2.1.4.1 Vòng lặp đơn giản..................................................................... 19
2.1.4.2 Hệ thống ngắt điều khiển.......................................................... 19
2.1.4.3 Hệ thống đa nhiệm.................................................................... 20
2.1.4.4 Hệ thống đa nhiệm u tiên........................................................ 20
2.1.4.5 Nhân khối.................................................................................. 21

2.2 Chuẩn truyền dẫn thông tin trong hệ thống ........................................... 22
2.2.1 Chuẩn 2 dây (I2C) ........................................................................... 22
2.2.1.1 Giới thiệu chung vể I2C ............................................................ 22
2.2.1.2 Đặc điểm I2C ............................................................................ 22
2.2.1.3 Điều kiện START và STOP....................................................... 25
2.2.1.4 Định dạng dữ liệu truyền .......................................................... 26
2.2.1.5 Định dạng địa chỉ thiết bị.......................................................... 27
2.2.1.6 Truyền dữ liệu trên bus I2C, chế độ Master-Slave.................... 28
2.2.2 Chuẩn RS232 ................................................................................... 30
2.2.3 Mã Manchester ................................................................................ 32
2.3 Điều khiển với màn hình LCD 16x02................................................... 34

4


2.3.1 Cấu tạo LCD .................................................................................... 34
2.3.2 Sơ đồ chân ....................................................................................... 35
2.3.3 Nguyên lý hoạt động ....................................................................... 35
2.3.4 Bảng lệnh của LCD 16x02 .............................................................. 37
2.3.5 Quá trình điều khiển với màn hình LCD 16x02............................. 37
2.4 Cấu tạo thẻ RFID ................................................................................... 38
2.5 Vi xử lý 8 bít - Psoc ............................................................................... 39
2.5.1 Giới thiệu về Psoc............................................................................ 39
2.5.2 Đặc điểm của Psoc .......................................................................... 40
2.5.3 Cấu trúc Vi xử lý. ............................................................................ 44
2.5.4 Các cổng vào ra đa chức năng ......................................................... 45
2.6 Vi xử lý 32 bít - EP9302 ........................................................................ 46
2.6.1 Giới thiệu chíp 32 bít....................................................................... 46
2.6.2 Đặc điểm và cấu trúc của họ vi xử lý EP9302................................. 47
2.6.3 Giới thiệu Board mạch phát triển TB500A...................................... 48

2.6.3.1 Đặc điểm của board .................................................................. 49
2.6.3.2 Công cụ phát triển phần mềm trên kít TB500A ........................ 49
2.6.3.3 Cài đặt và lập trình sử dụng kít TB500A................................... 49
Chơng 3 PHÂN Tích hệ thống ......................................................... 53
3.1 Yêu cầu chức năng................................................................................. 53
3.2 Phân tích các yêu cầu dữ liệu................................................................. 54
3.2.1 Quy trình xử lý chấm công.............................................................. 54
3.3 Phân tích yêu cầu của hệ thống.............................................................. 60
3.3.1 Cấu hình phần cứng......................................................................... 60
3.3.2 Cấu hình phần mềm......................................................................... 60
3.4 Sơ đồ chức năng ..................................................................................... 61
Chơng 4 Thiết kế hệ thống............................................................. 63
4.1 Thiết kế hệ thống phần mềm.................................................................. 63
4.1.1 Thiết kế CSDL ................................................................................. 63
4.1.2 Thiết kế giao diện. ........................................................................... 65
4.1.3 Thiết kế đầu vào .............................................................................. 66
4.1.3.2 Giao diện cấu hình hệ thống (th mục cấu hình server) .......... 66
4.1.3.2 Giao diện cấu hình hệ thống (th mục cấu hình ngời dùng) .. 67
4.1.3.3 Giao diện các danh mục (th mục Danh mục phòng ban)........ 68
4.1.3.4 Giao diện các danh mục (th mục Danh mục nhân viên)......... 69

5


4.1.3.4 Giao diện các danh mục (th mục Danh mục thẻ).................... 70
4.1.3.4 Giao diện các danh mục (th mục Trạng thái thiết bị) ............. 71
4.1.4 Thiết kế đầu ra ................................................................................. 72
4.1.4.1 Báo cáo thống kê theo ngày ...................................................... 72
4.1.4.1 Báo cáo thống kê theo tháng. .................................................... 73
4.1.4.1 Báo cáo thống kê chi tiết........................................................... 74

4.2 Thiết kế hệ thống phần cứng.................................................................. 75
4.2.1 Thiết kế sơ đồ khối .......................................................................... 75
4.2.2 Thiết kế sơ đồ nguyên lý ................................................................. 76
4.2.2.1 Module RFID ............................................................................ 76
4.2.2.2 Sơ đồ ghép nối module RFID với CPU 8 bít............................. 77
4.2.2.3 Kít phát triển 32 bít sử dụng EP9302........................................ 82
Chơng 5 Giới thiệu hệ thống và hớng dẫn sử dụng ....... 88
5.1 Giới thiệu hệ thống ................................................................................ 88
5.2 Hớng dẫn sử dụng ................................................................................ 88
5.2.1 Cấu hình hệ thống............................................................................ 89
5.2.2 Cấu hình ngời sử dụng................................................................... 89
5.2.3 Các danh mục .................................................................................. 90
5.2.4 Báo cáo thống kê ............................................................................. 91
Kết luận ..................................................................................................... 93
Tài liệu tham khảo............................................................................... 94
Tóm tắt luận văn.................................................................................. 95
Tóm tắt luận văn...............Error! Bookmark not defined.

6


Danh mục các hình vẽ, Bảng biểu

Hình 1. 1 Sơ đồ tổng quan hệ thống ................................................................ 12
Hình 2. 1 Bus I2C và thiết bị ngoại vi ............................................................. 22
Hình 2. 2 Kết nối thiết bị vào bus I2C............................................................. 24
Hình 2. 3 Truyền nhận dữ liệu giữa Chủ/Tớ.................................................... 24
Hình 2. 4 Điều kiện START và STOP của Bus I2C ........................................ 26
Hình 2. 5 Quá trình truyền 1 bit dữ liệu .......................................................... 27
Hình 2. 6 Quá trình truyền byte dữ liệu đầu tiên ............................................ 28

Hình 2. 7 Quá trình truyền dữ liệu .................................................................. 28
Hình 2. 8 Ghi dữ liệu từ chủ đến tớ ................................................................. 29
Hình 2. 9 Quá trình đọc dữ liệu từ thiết bị tớ .................................................. 30
Hình 2. 10 Định dạng khung trên Bus RS232 ................................................. 30
Hình 2. 11 Ví dụ truyền ký tự a trên bus RS232 .......................................... 32
Hình 2. 12 Mã hóa Manchester....................................................................... 33
Hình 2. 13 Dạng tín hiệu của mã Manchester................................................. 34
Hình 2. 14 Cấu tạo LCD 16x02....................................................................... 34
Hình 2. 15 Cấu tạo thẻ RFID 125 Khz ............................................................ 38
Hình 2. 16 Sơ đồ khối họ Psoc ........................................................................ 43
Hình 2. 17 Sơ đồ khối của chíp vi xử lý EP9302 ............................................ 47
Hình 2. 18 Bo mạch phát triển sử dụng chíp 32 bít EP9302 ........................... 48
Hình 2. 19 Giao diện lập trình trên Linux....................................................... 51
Bảng 2. 1 Bảng sơ đồ chân của LCD............................................................... 35
Bảng 2. 2 Bảng lệnh của LCD ......................................................................... 37
Bảng 2. 3 Các thanh ghi của CPU ................................................................... 44
Bảng 2. 4 Các thanh ghi vào ra đa chức năng. ................................................ 45
Hình 3. 1 Quy trình xử lý chấm công.............................................................. 54
Hình 3. 2 Bảng trích ngang nhân viên............................................................. 56
Hình 3. 3 Bảng chấm công theo ngày của công ty.......................................... 58
Hình 3. 4 Bảng chấm công theo tháng ............................................................ 59
Bảng 3. 4 Bảng phân tích trích ngang cá nhân ................................................ 55
Bảng 3. 1 Bảng phân tích chẫm công theo ngày ............................................. 57
Bảng 3. 2 Bảng phân tích chấm công theo tháng ............................................ 57

7


Hình 4. 1 Sơ đồ phân cấp chức năng ............... Error! Bookmark not defined.
Hình 4. 2 Bảng chuẩn hóa và sơ đồ liên kết thực thể ...................................... 64

Hình 4. 3 Giao diện login ................................................................................ 65
Hình 4. 4 Giao diện cuấ hình hệ thống (chức năng Server) ............................ 66
Hình 4. 5 Giao diện cấu hình hệ thống(Chức năng ngời dùng) .................... 67
Hình 4. 6 Giao diện các danh mục (Danh mục phòng ban) ............................ 68
Hình 4. 7 Giao diện các danh mục (Danh mục nhân viên) ............................. 69
Hình 4. 8 Giao diện các danh mục (Danh mục thẻ) ........................................ 70
Hình 4. 9 Giao diện các danh mục (Thông tin thiết bị) .................................. 71
Hình 4. 10 Báo cáo thống kê theo ngày .......................................................... 72
Hình 4. 11 Báo cáo thống kê theo tháng ......................................................... 73
Hình 4. 12 Báo cáo chi tiết .............................................................................. 74
Hình 4. 13 Sơ đồ khối thiết kế thiết bị ............................................................ 75
Hình 4. 14 Module RFID ................................................................................ 76
Hình 4. 15 Sơ đồ nguyên lý của mạch module RFID ..................................... 76
Hình 4. 16 Sơ đồ khối ghép nối Module RFID ............................................... 77
Hình 4. 17 Sơ đồ mạch nguyên lý ghép nối .................................................... 77
Hình 4. 18 Sơ đồ đu lây mạch lớp dới ........................................................... 78
Hình 4.19 Sơ đò đi dây lớp trên....................................................................... 79
Hình 4. 20 Thuật toán xử lý quẹt thẻ ở module quẹt thẻ................................. 80
Hình 4. 21 Thuật toán xử lý quẹt thẻ ở module ghép nối................................ 81
Hình 4. 22 Sơ đồ giải thích các thành phần của mạch CPU 32 bít.................. 82
Hình 4. 24 Sơ đồ thuật toán xử lý bản ghi quẹt thẻ......................................... 84
Hình 4. 25 Lu đồ thuật toán lu file.............................................................. 85
Hình 4. 26 Lu đồ thuật toán gửi Email.......................................................... 86
Hình 4. 27 Lu đồ thuật toán thực hiện lệnh từ máy tính ............................... 87
Bảng 4. 1 Bảng các thuộc tính......................................................................... 63
Hình 5. 1 Form nhập thông tin hệ thống ......................................................... 89
Hình 5. 2 Form nhập cấu hình ngời dùng ..................................................... 89
Hình 5. 3 Form nhập thông tin phòng ban ...................................................... 90
Hình 5. 4 Form nhập thông tin nhân viên ....................................................... 90
Hình 5. 5 Form nhập thông tin thẻ RFID ........................................................ 91

Hình 5. 6 Form báo cáo theo ngày .................................................................. 91
Hình 5. 7 Form báo cáo theo tháng ................................................................. 92
Hình 5. 8 Form báo cáo chi tiết....................................................................... 92

8


Chơng 1 Mở đầu
1.1 Giới thiệu
Trong khoảng thời gian 10 năm trở lại đây, thế giới xung quanh chúng ta
đang thay đổi từng giây, từng phút dựa trên sự phát triển không ngừng của các
ngành khoa học kĩ thuật hiện đại. Trong bối cảnh đó, việc kết hợp thành tựu
công nghệ điện tử và công nghệ thông tin phục vụ nhu cầu cuộc sống của con
ngời không chỉ ngày càng trở thành một vấn đề hết sức thiết thực mà còn trở
thành một bài toán không nhỏ đặt ra đối với nhiều quốc gia phát triển và đang
phát triển trên toàn thế giới. Một trong những ứng dụng minh chứng cho sự
kết hợp hoàn hảo giữa công nghệ điện tử viễn thông và công nghệ thông tin,
cũng nh sự phát triển khoa học kĩ thuật. Đó là sự tích hợp và thiết kế các
module nhằm đáp ứng những mục đích chuyên dụng bằng các công nghệ
nhúng, bắt đầu từ chip vi xử lý 8 bít cho đến vi xử lý 32 bít...
Với mục đích làm chủ công nghệ 32 bít, đó là một trong những công
nghệ thịnh hành hiện nay về công nghệ nhúng. Sức mạnh của chíp 32 là có
thể làm đợc nhiều thứ với tốc độ cao nh là các máy tính trong công nghiệp,
hay là các thiết bị điện thoại IP, cũng nh server để thay thế máy tính PC to
công cành không cần thiết.
Xuất phát từ suy nghĩ là tại sao không thay thế một ngời chấm công cho
các nhân viên trong một công ty, một doanh nghiệp, bởi một cái thiết bị điện
tử hoàn toàn có thể lu thời gian của nhân viên một cách tự động và khách
quan, thay vì một ngời ngồi phải cầm bút chấm công cho nhân viên giờ đi
giờ về để từ đó có thể đa ra một cái thống kê tổng kết về kết quả làm việc của

nhân viên và có một chế độ khen thởng chính đáng. Mà từ đó em đã nghĩ ra
ý tởng làm thiết bị chấm công bằng thẻ từ RFID bằng công nghệ công nghệ
32 bít.

9


Thiết bị chấm công là sự kết hợp hài hòa giữa thiết bị điện tử và máy tính
nhằm mang lại tính năng hoàn hảo cho ngời sử dụng. Thiết kế và xây dựng
một thiết bị điện tử công nghệ cao nh thiết bị chấm công bằng thẻ từ RFID
sử dụng công nghệ 32 bít tại Việt Nam một đất nớc còn đang phát triển và
có nền khoa học kĩ thuật đi sau các nớc phát triển hàng chục năm là một bài
toán không thể giải quyết trong một sớm một chiều.
Tuy nhiên trong đời sống thực tế của các công ty, các doanh nghiệp có
rất nhiều nhu cầu thiết thực đó là quản lý nhân sự trong công ty, theo dõi giờ
giấc thông qua quẹt thẻ của nhân viên với một số chức năng cấp thiết cần thiết
với môi trờng Việt Nam và đáp ứng túi tiền của ngời tiêu dùng với tiêu chí
rẽ bền và hỗ trợ đắc lực cho nhà quản lý nhân sự. Vì vậy, với mong muốn sử
dụng tổng hợp các kiến thức đã học tạo ra một sản phẩm ứng dụng rộng rãi
đáp ứng nhu cầu thực tế.

1.2 Phạm vi đề tài
Đề tài là thiết kế thiết bị điện tử ứng dụng vào công tác quản lý chấm
công nhân viên. Nhằm hổ trợ cho ngời quản lý nhân sự một cách dễ dàng về
công tác giờ giấc của nhân viên của công ty.
Mục đích của đề tài là hiểu biết công nghệ nhúng và tạo một thiết bị
chấm công bằng thẻ từ với các chức năng chính:
o Lu trữ các sự kiện quẹt thẻ bao gồm: thông tin về Id thẻ và
thời gian quẹt thẻ.
o Bộ nhớ trong có thể lu trữ các bản ghi thẻ qua bộ nhớ trong

hoặc bộ nhớ Flash (USB).
o Điều khiễn thiết bị thông qua máy tính bằng phần mềm trên
máy tính và kết nối điều khiễn thông qua giao thức TCP/IP.
o Điều khiển thiết bị thông qua giao diện web.

10


o Có thể gửi báo cáo thông qua Email đến nhà quản lý.
Mô hình thiết kế thiết bị chấm công:
o Tags : là một loại thẻ RFID sử dụng tần số 125 Khz.
o RFID MODULE: là một modun để nhận Id của thẻ RFID
thông qua anten và hệ thống mạch điều chế và giải mã sử
dụng sóng mang 125 Khz.
o CPU 8 bít là một chíp Psoc CY8Y29466 để giải mã Id của thẻ
RFID và gửi thông tin thẻ vào bộ xử lý 32 bít, và hiển thị
thông tin thẻ lên màn hình LCD 16x02.
o CPU 32 bit là một board mạch chính dùng để lu thông tin sự
kiện quẹt thẻ và thực hiện các chứng năng chính nh truyền
file lên Server, gửi mail
o TFTP server là một server để nhận file sự kiện quẹt thẻ từ
CPU 32 bít.

11


H×nh 1. 1 S¬ ®å tæng quan hÖ thèng

12



Chơng 2 Cơ sở lý thuyết về hệ thống
2.1 Hệ thống nhúng
2.1.1 Định nghĩa hệ thống nhúng
Hệ thống nhúng (tiếng Anh: Embedded system) là một thuật ngữ để chỉ
một hệ thống có khả năng tự trị đợc nhúng vào trong một môi trờng hay
một hệ thống mẹ. Hệ thống nhúng có vai trò đảm nhận một phần công việc cụ
thể của hệ thống mẹ. Hệ thống nhúng có thể là một hệ thống phần cứng và
cũng có thể là một hệ thống phần mềm.
Hệ thống nhúng thờng đợc thiết kế để thực hiện một chức năng chuyên
biệt nào đó. Khác với các máy tính đa chức năng, chẳng hạn nh máy tính cá
nhân, một hệ thống nhúng chỉ thực hiện một hoặc một vài chức năng nhất
định, thờng đi kèm với những yêu cầu cụ thể và bao gồm một số thiết bị máy
móc và phần cứng chuyên dụng mà ta không tìm thấy trong một máy tính đa
năng nói chung. Vì hệ thống chỉ đợc xây dựng cho một số nhiệm vụ nhất
định nên các nhà thiết kế có thể tối u hóa nó nhằm giảm thiểu kích thớc và
chi phí sản xuất. Các hệ thống nhúng thờng đợc sản xuất hàng loạt với số
lợng lớn. Hệ thống nhúng rất đa dạng, phong phú về chủng loại. Đó có thể là
những thiết bị cầm tay nhỏ gọn nh đồng hồ kĩ thuật số và máy chơi nhạc
MP3, hoặc những sản phẩm lớn nh đèn giao thông, bộ kiểm soát trong nhà
máy hoặc hệ thống kiểm soát các máy năng lợng hạt nhân. Xét về độ phức
tạp, hệ thống nhúng có thể rất đơn giản với một vi điều khiển hoặc rất phức
tạp với nhiều đơn vị, các thiết bị ngoại vi và mạng lới đợc nằm gọn trong
một lớp vỏ máy lớn.
Các thiết bị PDA hoặc máy tính cầm tay cũng có một số đặc điểm tơng
tự với hệ thống nhúng nh các hệ điều hành hoặc vi xử lý điều khiển chúng
nhng các thiết bị này không phải là hệ thống nhúng thật sự bởi chúng là các

13



thiết bị đa năng, cho phép sử dụng nhiều ứng dụng và kết nối đến nhiều thiết
bị ngoại vi.
2.1.2 Lịch sử hệ thống nhúng
Hệ thống nhúng đầu tiên là Apollo Guidance Computer (Máy tính Dẫn
đờng Apollo) đợc phát triển bởi Charles Stark Draper tại phòng thí nghiệm
của trờng đại học MIT. Hệ thống nhúng đợc sản xuất hàng loạt đầu tiên là
máy hớng dẫn cho tên lửa quân sự vào năm 1961. Nó là máy hớng dẫn
Autonetics D-17, đợc xây dựng sử dụng những bóng bán dẫn và một đĩa
cứng để duy trì bộ nhớ. Khi Minuteman II đợc đa vào sản xuất năm 1996,
D-17 đã đợc thay thế với một máy tính mới sử dụng mạch tích hợp. Tính
năng thiết kế chủ yếu của máy tính Minuteman là nó đa ra thuật toán có thể
lập trình lại sau đó để làm cho tên lửa chính xác hơn, và máy tính có thể kiểm
tra tên lửa, giảm trọng lợng của cáp điện và đầu nối điện.
Từ những ứng dụng đầu tiên vào những năm 1960, các hệ thống nhúng đã
giảm giá và phát triển mạnh mẽ về khả năng xử lý. Bộ vi xử lý đầu tiên hớng
đến ngời tiêu dùng là Intel 4004, đợc phát minh phục vụ máy tính điện tử và
những hệ thống nhỏ khác. Tuy nhiên nó vẫn cần các chip nhớ ngoài và những
hỗ trợ khác. Vào những năm cuối 1970, những bộ xử lý 8 bit đã đợc sản
xuất, nhng nhìn chung chúng vẫn cần đến những chip nhớ bên ngoài.
Vào giữa thập niên 80, kỹ thuật mạch tích hợp đã đạt trình độ cao dẫn
đến nhiều thành phần có thể đa vào một chip xử lý. Các bộ vi xử lý đợc gọi
là các vi điều khiển và đợc chấp nhận rộng rãi. Với giá cả thấp, các vi điều
khiển đã trở nên rất hấp dẫn để xây dựng các hệ thống chuyên dụng. Đã có
một sự bùng nổ về số lợng các hệ thống nhúng trong tất cả các lĩnh vực thị
trờng và số các nhà đầu t sản xuất theo hớng này. Ví dụ, rất nhiều chip xử
lý đặc biệt xuất hiện với nhiều giao diện lập trình hơn là kiểu song song truyền
thống để kết nối các vi xử lý. Vào cuối những năm 80, các hệ thống nhúng đã

14



trở nên phổ biến trong hầu hết các thiết bị điện tử và khuynh hớng này vẫn
còn tiếp tục cho đến nay.
Cho đến nay, khái niệm hệ thống nhúng đợc nhiều ngời chấp nhận
nhất là: hệ thống thực hiện một số chức năng đặc biệt có sử dụng vi xử lý.
Không có hệ thống nhúng nào chỉ có phần mềm.
2.1.3 Đặc điểm hệ thống nhúng
Các hệ thống nhúng đợc thiết kế để thực hiện một số nhiệm vụ chuyên
dụng chứ không phải đóng vai trò là các hệ thống máy tính đa chức năng. Một
số hệ thống đòi hỏi ràng buộc về tính hoạt động thời gian thực để đảm bảo độ
an toàn và tính ứng dụng; một số hệ thống không đòi hỏi hoặc ràng buộc chặt
chẽ, cho phép đơn giản hóa hệ thống phần cứng để giảm thiểu chi phí sản
xuất.
Một hệ thống nhúng thờng không phải là một khối riêng biệt mà là một
hệ thống phức tạp nằm trong thiết bị mà nó điều khiển.
Phần mềm đợc viết cho các hệ thống nhúng đợc gọi là firmware và
đợc lu trữ trong các chip bộ nhớ chỉ đọc (read-only memory) hoặc bộ nhớ
flash chứ không phải là trong một ổ đĩa. Phần mềm thờng chạy với số tài
nguyên phần cứng hạn chế: không có bàn phím, màn hình hoặc có nhng với
kích thớc nhỏ, bộ nhớ hạn chế. Sau đây, ta sẽ đi sâu, xem xét cụ thể đặc điểm
của các thành phần của hệ thống nhúng.
2.1.3.1 Giao diện
Các hệ thống nhúng có thể không có giao diện (đối với những hệ
thống đơn nhiệm) hoặc có đầy đủ giao diện giao tiếp với ngời dùng tơng tự
nh các hệ điều hành trong các thiết bị để bàn. Đối với các hệ thống đơn giản,
thiết bị nhúng sử dụng nút bấm, đèn LED và hiển thị chữ cỡ nhỏ hoặc chỉ hiển
thị số, thờng đi kèm với một hệ thống menu đơn giản.

15



Còn trong một hệ thống phức tạp hơn, một màn hình đồ họa, cảm ứng
hoặc có các nút bấm ở lề màn hình cho phép thực hiện các thao tác phức tạp
mà tối thiểu hóa đợc khoảng không gian cần sử dụng; ý nghĩa của các nút
bấm có thể thay đổi theo màn hình và các lựa chọn. Các hệ thống nhúng
thờng có một màn hình với một nút bấm dạng cần điểu khiển (joystick
button). Sự phát triển mạnh mẽ của mạng toàn cầu đã mang đến cho những
nhà thiết kế hệ nhúng một lựa chọn mới là sử dụng một giao diện web thông
qua việc kết nối mạng. Điều này có thể giúp tránh đợc chi phí cho những
màn hình phức tạp nhng đồng thời vẫn cung cấp khả năng hiển thị và nhập
liệu phức tạp khi cần đến, thông qua một máy tính khác. Điều này là hết sức
hữu dụng đối với các thiết bị điều khiển từ xa, cài đặt vĩnh viễn. Ví dụ, các
router là các thiết bị đã ứng dụng tiện ích này.
2.1.3.2 Kiến trúc CPU
Các bộ xử lý trong hệ thống nhúng có thể đợc chia thành hai loại: vi
xử lý và vi điều khiển. Các vi điều khiển thờng có các thiết bị ngoại vi đợc
tích hợp trên chip nhằm giảm kích thớc của hệ thống. Có rất nhiều loại kiến
trúc CPU đợc sử dụng trong thiết kế hệ nhúng nh ARM, MIPS,
Coldfire/68k, PowerPC, x86, PIC, 8051, Atmel AVR, Renesas H8, SH, V850,
FR-V, M32R, Z80, Z8 Điều này trái ngợc với các loại máy tính để bàn,
thờng bị hạn chế với một vài kiến trúc máy tính nhất định. Các hệ thống
nhúng có kích thớc nhỏ và đợc thiết kế để hoạt động trong môi trờng công
nghiệp thờng lựa chọn PC/104 và PC/104++ làm nền tảng. Những hệ thống
này thờng sử dụng DOS, Linux, NetBSD hoặc các hệ điều hành nhúng thời
gian thực nh QNX hay VxWorks. Còn các hệ thống nhúng có kích thớc rất
lớn thờng sử dụng một cấu hình thông dụng là hệ thống on chip (System on a
chip SoC), một bảng mạch tích hợp cho một ứng dụng cụ thể (an
application-specific integrated circuit ASIC). Sau đó nhân CPU đợc mua và
thêm vào nh một phần của thiết kế chip. Một chiến lợc tơng tự là sử dụng


16


FPGA (field-programmable gate array) và lập trình cho nó với những thành
phần nguyên lý thiết kế bao gồm cả CPU.
2.1.3.3 Thiết bị ngoại vi
Hệ thống nhúng giao tiếp với bên ngoài thông qua các thiết bị ngoại vi, ví dụ
nh:
o Serial Communication Interfaces (SCI): RS-232, RS-422, RS485
o Synchronous Serial Communication Interface: I2C, JTAG, SPI,
SSC và ESSI
o Universal Serial Bus (USB)
o Networks: Controller Area Network,
o Bộ định thời: PLL(s), Capture/Compare và Time Processing
Units
o Chân vào ra riêng biệt

IO: General Purpose Input/Output

(GPIO)
2.1.3.4 Công cụ phát triển
Tơng tự nh các sản phẩm phần mềm khác, phần mềm hệ thống
nhúng cũng đợc phát triển nhờ việc sử dụng các trình biên dịch (compilers),
chơng trình dịch hợp ngữ (assembler) hoặc các công cụ gỡ rối (debuggers).
Tuy nhiên, các nhà thiết kế hệ thống nhúng có thể sử dụng một số công cụ
chuyên dụng nh:
o Bộ gỡ rối mạch hoặc các chơng trình mô phỏng (emulator)
o Tiện ích để thêm các giá trị checksum hoặc CRC vào chơng
trình, giúp hệ thống nhúng có thể kiểm tra tính hợp lệ của

chơng trình đó.

17


o Đối với các hệ thống xử lý tín hiệu số, ngời phát triển hệ thống
có thể sử dụng phần mềm workbench nh MathCad hoặc
Mathematica để mô phỏng các phép toán.
o Các trình biên dịch và trình liên kết (linker) chuyên dụng đợc
sử dụng để tối u hóa một thiết bị phần cứng.
o Một hệ thống nhúng có thể có ngôn ngữ lập trình và công cụ
thiết kế riêng của nó hoặc sử dụng và cải tiến từ một ngôn ngữ
đã có sẵn.
Các công cụ phần mềm có thể đợc tạo ra bởi các công ty phần mềm
chuyên dụng về hệ thống nhúng hoặc chuyển đổi từ các công cụ phát triển
phần mềm GNU. Đôi khi, các công cụ phát triển dành cho máy tính cá nhân
cũng đợc sử dụng nếu bộ xử lý của hệ thống nhúng đó gần giống với bộ xử lý
của một máy PC thông dụng.
2.1.3.5 Độ tin cậy
Các hệ thống nhúng thờng nằm trong các cỗ máy đợc kỳ vọng là sẽ
chạy hàng năm trời liên tục mà không bị lỗi hoặc có thể khôi phục hệ thống
khi gặp lỗi. Vì thế, các phần mềm hệ thống nhúng đợc phát triển và kiểm thử
một cách cẩn thận hơn là phần mềm cho máy tính cá nhân. Ngoài ra, các thiết
bị rời không đáng tin cậy nh ổ đĩa, công tắc hoặc nút bấm thờng bị hạn chế
sử dụng. Việc khôi phục hệ thống khi gặp lỗi có thể đợc thực hiện bằng cách
sử dụng các kỹ thuật nh watchdog timer nếu phần mềm không đều đặn
nhận đợc các tín hiệu watchdog định kì thì hệ thống sẽ bị khởi động lại.
Một số vấn đề cụ thể về độ tin cậy nh:
o Hệ thống không thể ngừng để sửa chữa một cách an toàn, ví dụ
nh ở các hệ thống không gian, hệ thống dây cáp dới đáy biển,

các đèn hiệu dẫn đờng, Giải pháp đa ra là chuyển sang sử

18


dụng các hệ thống con dự trữ hoặc các phần mềm cung cấp một
phần chức năng.
o Hệ thống phải đợc chạy liên tục vì tính an toàn, ví dụ nh các
thiết bị dẫn đờng máy bay, thiết bị kiểm soát độ an toàn trong
các nhà máy hóa chất, Giải pháp đa ra là lựa chọn backup
hệ thống.
o Nừu hệ thống ngừng hoạt động sẽ gây tổn thất rất nhiều tiền
của ví dụ nh các dịch vụ buôn bán tự động, hệ thống chuyển
tiền, hệ thống kiểm soát trong các nhà máy

2.1.4 Các kiến trúc phần mềm của hệ thống nhúng
2.1.4.1 Vòng lặp đơn giản
Theo thiết kế này, phần mềm đợc tổ chức thành một vòng lặp đơn
giản. Vòng lặp gọi đến các chơng trình con, mỗi chơng trình con quản lý
một phần của hệ thống phần cứng hoặc phần mềm.

2.1.4.2 Hệ thống ngắt điều khiển
Các hệ thống nhúng thờng đợc điểu khiển bằng các ngắt. Có nghĩa
là các tác vụ của hệ thống nhúng đợc kích hoạt bởi các loại sự kiện khác
nhau. Ví dụ, một ngắt có thể đợc sinh ra bởi một bộ định thời sau một chu kỳ
đợc định nghĩa trớc, hoặc bởi sự kiện khi cổng nối tiếp nhận đợc một byte
nào đó.
Loại kiến trúc này thờng đợc sử dụng trong các hệ thống có bộ
quản lý sự kiện đơn giản, ngắn gọn và cần độ trễ thấp. Hệ thống này thờng
thực hiện một tác vụ đơn giản trong một vòng lặp chính. Đôi khi, các tác vụ


19


phức tạp hơn sẽ đợc thêm vào một cấu trúc hàng đợi trong bộ quản lý ngắt để
đợc vòng lặp xử lý sau đó. Lúc này, hệ thống gần giống với kiểu nhân đa
nhiệm với các tiến trình rời rạc.
2.1.4.3 Hệ thống đa nhiệm
Một hệ thống đa nhiệm không u tiên cũng gần giống với kỹ thuật
vòng lặp kiểm soát đơn giản ngoại trừ việc vòng lặp này đợc ẩn giấu thông
qua một giao diện lập trình API. Các nhà lập trình định nghĩa một loạt các
nhiệm vụ, mỗi nhiệm vụ chạy trong một môi trờng riêng của nó. Khi không
cần thực hiện nhiệm vụ đó thì nó gọi đến các tiến trình con tạm nghỉ (bằng
cách gọi pause, wait, yeild ).
Ưu điểm và nhợc điểm của loại kiến trúc này cũng giống với kiểm
vòng lặp kiểm soát đơn giản. Tuy nhiên, việc thêm một phần mềm mới đợc
thực hiện dễ dàng hơn bằng cách lập trình một tác vụ mới hoặc thêm vào hàng
đợi thông dịch (queue-interpreter).
2.1.4.4 Hệ thống đa nhiệm u tiên
ở loại kiến trúc này, hệ thống thờng có một đoạn mã ở mức thấp thực
hiện việc chuyển đổi giữa các tác vụ khác nhau thông qua một bộ định thời.
Đoạn mã này thờng nằm ở mức mà hệ thống đợc coi là có một hệ điều hành
và vì thế cũng gặp phải tất cả những phức tạp trong việc quản lý đa nhiệm.
Bất kỳ tác vụ nào có thể phá hủy dữ liệu của một tác vụ khác đều cần
phải đợc tách biệt một cách chính xác. Việc truy cập tới các dữ liệu chia sẻ
có thể đợc quản lý bằng một số kỹ thuật đồng bộ hóa nh hàng đợi thông
điệp (message queues), semaphores Vì những phức tạp nói trên nên một
giải pháp thờng đợc đa ra đó là sử dụng một hệ điều hành thời gian thực.
Lúc đó, các nhà lập trình có thể tập trung vào việc phát triển các chức năng
của thiết bị chứ không cần quan tâm đến các dịch vụ của hệ điều hành nữa.


20


2.1.4.5 Nhân khối
Trong kiến trúc này, một nhân đầy đủ với các khả năng phức tạp đợc
chuyển đổi để phù hợp với môi trờng nhúng. Điều này giúp các nhà lập trình
có đợc một môi trờng giống với hệ điều hành trong các máy để bàn nh
Linux hay Microsoft Windows và vì thế rất thuận lợi cho việc phát triển. Tuy
nhiên, nó lại đòi hỏi đáng kể các tài nguyên phần cứng làm tăng chi phí của hệ
thống. Một số loại nhân khối thông dụng là Embedded Linux và Windows
CE. Mặc dù chi phí phần cứng tăng lên nhng loại hệ thống nhúng này đang
tăng trởng rất mạnh, đặc biệt là trong các thiết bị nhúng mạnh nh Wireless
router hoặc hệ thống định vị GPS. Lý do của điều này là:
o Hệ thống này có cổng để kết nối đến các chip nhúng thông
dụng
o Hệ thống cho phép sử dụng lại các đoạn mã sẵn có phổ biến
nh các trình điều khiển thiết bị, Web Servers, Firewalls,
o Việc phát triển hệ thống có thể đợc tiến hành với một tập
nhiều loại đặc tính, chức năng còn sau đó lúc phân phối sản
phẩm, hệ thống có thể đợc cấu hình để loại bỏ một số chức
năng không cần thiết. Điều này giúp tiết kiệm đợc những vùng
nhớ mà các chức năng đó chiếm giữ.
o Hệ thống có chế độ ngời dùng để dễ dàng chạy các ứng dụng
và gỡ rối. Nhờ đó, qui trình phát triển đợc thực hiện dễ dàng
hơn và việc lập trình có tính linh động hơn.
o Có nhiều hệ thống nhúng thiếu các yêu cầu chặt chẽ về tính thời
gian thực của hệ thống quản lý. Còn một hệ thống nh
Embedded Linux có tốc độ đủ nhanh để trả lời cho nhiều ứng
dụng. Các chức năng cần đến sự phản ứng nhanh cũng có thể

đợc đặt vào phần cứng.

21


2.2 Chuẩn truyền dẫn thông tin trong hệ thống
2.2.1 Chuẩn 2 dây (I2C)
2.2.1.1 Giới thiệu chung vể I2C
Ngày nay trong các hệ thống điện tử hiện đại, rất nhiều ICs hay thiết bị
ngoại vi cần phải giao tiếp với các ICs hay thiết bị khác - giao tiếp với thế giới
bên ngoài. Với mục tiêu đạt đợc hiệu quả cho phần cứng tốt nhất với mạch
điện đơn giản, Phillips đã phát triển một chuẩn giao tiếp nối tiếp 2 dây đợc
gọi là I2C. I2C là tên viết tắt của cụm từ Inter - Intergrated Circuit - Bus giao
tiếp giữa các IC với nhau. I2C mặc dù đợc phát triển bới Philips, nhng nó đã
đợc rất nhiều nhà sản xuất IC trên thế giới sử dụng. I2C trở thành một chuẩn
công nghiệp cho các giao tiếp điều khiển, có thể kể ra đây một vài tên tuổi
ngoài Philips nh: Texas Intrument (TI), Maxim - Dallas, analog Device,
National Semiconductor Bus I2C đợc sử dụng làm bus giao tiếp ngoại vi
cho rất nhiều loại IC khác nhau nh các loại Vi điều khiển 8051, PIC, AVR,
ARM, chíp nhớ nh RAM tĩnh (Static Ram), EEPROM, bộ chuyển đổi tơng
tự số (ADC), số tơng tự (DAC), IC điểu khiển LCD, LED

Hình 2. 1 Bus I2C và thiết bị ngoại vi
2.2.1.2 Đặc điểm I2C

22


Một giao tiếp I2C gồm có 2 dây: Serial Data (SDA) và Serial Clock
(SCL). SDA là đờng truyền dữ liệu 2 hớng, còn SCL là đờng truyền xung

đồng hồ và chỉ theo một hớng. Nh hình vẽ trên, khi một thiết bị ngoại vi kết
nối vào đờng I2C thì chân SDA của nó sẽ nối với dây SDA của bus, chân
SCL sẽ nối với dây SCL.
Mỗi dây SDA hay SCL đều đợc nối với điện áp dơng của nguồn cấp
thông qua một điện trở kéo lên (pull-up resistor). Sự cần thiết của các điện trở
kéo này là vì chân giao tiếp I2C của các thiết bị ngoại vi thờng là dạng cực
máng hở (open-drain or open-collector). Giá trị của các điện trở này khác
nhau tùy vào từng thiết bị và chuẩn giao tiếp, thờng dao động trong khoảng
1K đến 4.7K.
Trở lại với hình 1.1, ta thấy có rất nhiều thiết bị (ICs) cùng đợc kết nối
vào một bus I2C, tuy nhiên sẽ không xảy ra chuyện nhầm lẫn giữa các thiết bị,
bởi mỗi thiết bị sẽ đợc nhận ra bởi một địa chỉ duy nhất với một quan hệ
chủ/tớ tồn tại trong suốt thời gian kết nối. Mỗi thiết bị có thể hoạt đông nh là
thiết bị nhận dữ liệu hay có thể vừa truyền vừa nhận. Hoạt động truyền hay
nhận còn tùy thuộc vào việc thiết bị đó là chủ (master) hay tớ (slave).
Một thiết bị hay một IC khi kết nối với bus I2C, ngoài một địa chỉ (duy
nhất) để phân biệt, nó còn đợc cấu hình là thiết bị chủ (master) hay tớ
(slave). Tại sao lại có sự phân biệt này ? Đó là vì trên một bus I2C thì quyền
điều khiển thuộc về thiết bị chủ (master). Thiết bị chủ nắm vai trò tạo xung
đồng hồ cho toàn hệ thống, khi giữa hai thiết bị chủ/tớ giao tiếp thì thiết bị
chủ có nhiệm vụ tạo xung đồng hồ và quản lý địa chỉ của thiết bị tớ trong suốt
quá trình giao tiếp. Thiết bị chủ giữ vai trò chủ động, còn thiết bị tớ giữ vai trò
bị động trong viêc giao tiếp.

23


Hình 2. 2 Kết nối thiết bị vào bus I2C
Trên Bus I2C, bus dữ liệu (SDA) đợc truyền theo hai chiều từ máy chủ
đến máy trạm hoặc từ máy trạm đến máy chủ. Còn bus xung đồng hồ (SCL)

chi có một hớng từ máy chủ đến máy trạm

Hình 2. 3 Truyền nhận dữ liệu giữa Chủ/Tớ
Về dữ liệu truyền trên bus I2C, một bus I2C chuẩn truyền 8 - bit dữ liệu
có hớng trên đờng truyền với tốc độ là 100Kbits/s - Chế độ chuẩn (Standard
mode). Tốc độ truyền có thể lên tới 400Kbits/s - Chế độ nhanh (Fast mode) và
cao nhất là 3,4Mbits/s - Chế độ cao tốc (High - speed mode).

24


Một bus I2C có thể hoạt động ở nhiều chế độ khác nhau:
o Một chủ một tớ (one master one slave)
o Một chủ nhiều tớ (one master multi slave)
o Nhiều chủ nhiều tớ (Multi master multi slave)
Dù ở chế độ nào, một giao tiếp I2C đều dựa vào quan hệ chủ/tớ. Giả thiết một
thiết bị A muốn gửi dữ liệu đến thiết bị B, quá trình đợc thực hiện nh sau:
o Thiết bị A (Chủ) xác định đúng địa chỉ của thiết bị B (tớ), cùng với việc
xác định địa chỉ, thiết bị A sẽ quyết định việc đọc hay ghi vào thiết bị tớ
o Thiết bị A gửi dữ liệu tới thiết bị B
o Thiết bị A kết thúc quá trình truyền dữ liệu
Khi A muốn nhận dữ liệu từ B, quá trình diễn ra nh trên, chỉ khác là A
sẽ nhận dữ liệu từ B. Trong giao tiếp này, A là chủ còn B vẫn là tớ. Chi tiết
việc thiết lập một giao tiếp giữa hai thiết bị sẽ đợc mô tả chi tiết trong các
mục dới đây.
2.2.1.3 Điều kiện START và STOP
START và STOP là những điều kiện bắt buộc phải có khi một thiết bị
chủ muốn thiết lập giao tiếp với một thiết bị nào đó trong mạng I2C. START
là điều kiện khởi đầu, báo hiệu bắt đầu của giao tiếp, còn STOP báo hiệu kết
thúc một giao tiếp. Hình dới đây mô tả điều kiện START và STOP.

Ban đầu khi cha thực hiện quá trình giao tiếp, cả hai đờng SDA và
SCL đều ở mức cao (SDA = SCL = HIGH). Lúc này bus I2C đợc coi là rỗi
(bus free), sẵn sàng cho một giao tiếp. Hai điều kiện START và STOP là
không thể thiếu trong việc giao tiếp giữa các thiết bị I2C với nhau.

25


×