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ồ 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.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
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 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
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
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
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
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,
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.
đợ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
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.