Ðể góp phần vào việc quản lý thông tin đó một cách nhanh chóng và hiệu quả em đã chọn đề tài “Ứng dụng RFID trong quản lý thời gian và trạng thái đi học của sinh viên tại Trường Đại học
Trang 1TRƯỜNG ĐẠI HỌC QUẢNG BÌNH
KHOA KỸ THUẬT – CÔNG NGHỆ THÔNG TIN
- -
TANVÔNGPHĂP PHONMÊLA
ỨNG DỤNG RFID TRONG QUẢN LÝ THỜI GIAN
VÀ TRẠNG THÁI ĐI HỌC CỦA SINH VIÊN TẠI TRƯỜNG ĐẠI HỌC QUẢNG BÌNH
KHÓA LUẬN TỐT NGHIỆP Chuyên ngành: Công nghệ thông tin
Hệ đào tạo: Chính quy Khóa học: 2014 - 2018
GIẢNG VIÊN HƯỚNG DẪN:
TS Hoàng Văn Dũng
QUẢNG BÌNH, 2018
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi, các số liệu và kết quả nghiên cứu nêu trong khoá luận là trung thực Nghiên cứu này chưa từng được công bố trong bất kỳ một công trình nào khác Những tài liệu thu thập của các tác giả khác sử dụng trong khóa luận đều có trích dẫn ở tài liệu tham khảo và chú thích
có nguồn gốc
Sinh viên
Tanvôngphăp Phonmêla
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Xác nhận của giảng viên hướng dẫn
Hoàng Văn Dũng
Trang 4Em xin chân thành cảm ơn các thầy giáo, cô giáo trong khoa Kỹ thuật - Công nghệ thông tin Trường Đại học Quảng Bình đã tạo mọi điều kiện thuận lợi giúp đỡ
em trong suốt quá trình học tập và rèn luyện tại trường
Em xin bày tỏ lòng biết ơn vô hạn tới gia đình, người thân và bạn bè đã luôn sát cánh bên em trong suốt quá trình học tập và nghiên cứu đề tài
Mặc dù trong quá trình nghiên cứu đề tài, bản thân em có những cố gắng nhất định, song do khả năng và thời gian còn hạn chế nên đề tài không tránh khỏi những thiếu sót Em kính mong nhận được sự góp ý chân thành của các thầy cô giáo và các bạn để đề tài của em được hoàn thiện hơn
Em xin chân thành cảm ơn!
Quảng Bình, ngày tháng năm 2018
Sinh viên
Tanvôngphăp Phonmêla
Trang 5MỤC LỤC
PHẦN I: MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục tiêu nghiên cứu 1
2.1 Mục tiêu chung 1
2.2 Mục tiêu cụ thể 1
3 Đối tượng, phạm vi, phương pháp nghiên cứu 2
3.1 Đối tượng nghiên cứu 2
3.2 Phạm vi nghiên cứu 2
3.3 Phương pháp nghiên cứu 2
4 Nội dung nghiên cứu 2
5 Kết quả đạt được 2
PHẦN II: NỘI DUNG 3
CHƯƠNG I: CƠ SỞ LÝ THUYẾT 3
1.1 Tổng quan về hệ thống RFID 3
1.1.1 Kỹ thuật RFID 3
1.1.2 Lịch sử hình thành của RFID 3
1.1.3 Các thành phần của một hệ thống RFID 4
1.1.4 Nguyên lý hoạt động của RFID 6
1.1.5 Các dài tần số hoạt động của hệ thống RFID 7
1.2 Các chuẩn kết nối 8
1.3 Các phần mềm liên quan 10
CHƯƠNG II ARDUINO VÀ LẬP TRÌNH ĐIỀU KHIỂN 11
2.1 Giới thiệu chung về Arduino 11
2.2 Lập trình cho Arduino 16
2.3 Thiết bị đọc thẻ RFID-RC522 16
2.3.1 Các tính năng 17
2.3.2 Sơ đồ khối và chức năng thành phần 18
2.3.3 Cách kết nối chuẩn SPI 18
2.4 Thẻ MIFARE S50 19
2.4.1 Cấu tạo 19
2.4.2 Tiêu chuẩn kĩ thuật 20
Trang 62.4.3 Sơ đồ khối 20
2.4.4 Tổ chức dữ liệu 20
CHƯƠNG III: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 22
3.1 Các khối chính và chức năng 22
3.2 Mô hình kết nối 23
3.3 Kết nối phần cứng 23
3.4 Giải pháp sử dụng thẻ RFID 24
3.4.1 Mô hình giải pháp nhận dạng thẻ RFID 24
3.4.2 Nguyên tắc hoạt động: 24
3.4.3 Phân tích thiết kế chức năng 24
3.4.3.1 Mô hình chức năng 24
3.4.3.2 Chức năng quản lý user 25
3.4.4 CSDL hệ thống kiểm soát thời gian và trạng thái đi học của sinh viên 27
3.4.4.1 Mô hình thiết kế cơ sở dữ liệu 27
3.4.4.2 Các bảng trong CSDL 28
CHƯƠNG IV: CÀI ĐẶT THỰC NGHIỆM 30
4.1 Xây dựng cơ sở dữ liệu quản lý thông tin, thời gian và trạng thái đi học của sinh viên 30
4.2 Lắp đặt mô hình thực nghiệm 31
4.3 Ngôn ngữ lập trình 32
4.3.1 Ngôn ngữ lập trình Visual Basic 32
4.3.2 Các module hệ thống 32
4.3.2.1 Module đăng nhập 32
4.3.2.2 Module kết nối RFID, CAMERA 33
4.3.2.3 Module chụp hình và thêm,sửa thông tin sinh viên 35
4.3.2.4 Module tìm kiếm và xóa thông tin sinh viên 36
4.3.2.5 Module thời gian và trạng thái đi học của sinh viên 37
4.4 Đánh giá kết quả thử nghiệm hệ thống 38
PHẦN III: KẾT LUẬN VÀ KIẾN NGHỊ 40
TÀI LIỆU THAM KHẢO 41
PHỤ LỤC 42
Trang 7DANH MỤC CÁC TỪ VIẾT TẮT
ATM Automated Teller Machine
ALU Arithmetic logic unit
AREF Analog Reference
ASM Area Sales Manager
AVR Automatic Voltage Regulator
ADC Analog to Digital Converter
BASIC Beginner's All-purpose Symbolic Instruction Code CSDL Cơ sở dữ liệu
IEC International Electrotechnical Commission
ISO International Organization for Standardization
IDE Intergrated Development Environment
Jtag Join test action group
LED Light Emitting Diode
MISO Master Input Slave Output
MOSI Master Ouput Slave Input
MIPS Microprocessor without Interlocked Pipeline Stages NFC Near-Field Communications
NXP Next eXPerience
FIFO first-in, first-out
PWM Pulse Width Modulation)
RFID Radio Frequency Identification
RISC Reduced Instruction Set Computer
Rx Receiver
RF Radio Frequency Radiation
Trang 8SCK Serial Clock
SPI Serial Peripheral Interface
SQL Structured Query Language
SS Slave Select
TTL Transistor-transistor logic
USB Universal Serial Bus
USART universal synchronous and asynchronous receiver-transmitter UART Universal Asynchronous Receiver/Transmitter
Trang 9DANH MỤC BẢNG BIỂU
Bảng 1: Các tần số hoạt động của RFID 7
Bảng 2: Thông tin chi tiết của Arduino Uno R3 13
Bảng 3: Kịch bản quản lý user 25
Bảng 4: Kịch bản xây dựng cơ sở dữ liệu 26
Bảng 5: Quản lý User 28
Bảng 6: Thông tin sinh viên 28
Bảng 7: Thời gian và trạng thái 29
Bảng 8: Kết quả quá trình thử nghiệm hệ thống RFID 39
Trang 10DANH MỤC HÌNH ẢNH
Hình 1: Các thành phần chính của hệ thống RFID 4
Hình 2: Thiết bị TSL’s 1128 Bluetooth UHF RFID[2] 4
Hình 3: Reader SL500[2] 5
Hình 4: Thiết bị đọc RFID-RC522[2] 5
Hình 5: Ví dụ một số thẻ RFID[3] 6
Hình 6: Nguyên lý hoạt động của một hệ thống RFID 6
Hình 7: Một số chuẩn chân cắm USB[5] 9
Hình 8: Quá trình truyền dữ liệu SPI [6] 10
Hình 9: Các bo mạch Arduino Mạch phát triển Arduino R3 [7] 11
Hình 10: Arduino Uno[8] 12
Hình 11: Hình ảnh Atmega 328 và sơ đồ chân kết nối [2] 14
Hình 12: Các chân vào ra của ArduinoUno [4] 15
Hình 13: Arduino IDE 16
Hình 14: Thiết bị đọc RFID-RC522 17
Hình 15: Sơ đồ khối của RFID-RC522 [9] 18
Hình 17: Thẻ MIFARE S50 19
Hình 19: Sơ đồ khối thẻ MIFARE S50 [10] 20
Hình 20: Tổ chức dữ liệu trong thẻ MIFARE S50 [10] 21
Hình 21: Các khối chính của hệ thống 22
Hình 22: Mô hình kết nối thực tế hệ thống 23
Hình 23: Sơ đồ chân kết nối Arduino và RFID-RC522 23
Hình 24: Kết nối thực tế hệ thống 23
Hình 25: Mô hình kỹ thuật nhận dạng thẻ RFID 24
Hình 26: Mô hình chức năng hệ thống 24
Hình 27: Biểu đồ tuần tự của chức năng quản lý user 26
Hình 28: Biểu đồ tuần tự của chức năng xây dựng CSDL 27
Hình 29: Mô hình cơ sở dữ liệu 27
Hình 30: CSDL thông tin Quản lý User 30
Hình 31: CSDL thông tin sinh viên 30
Hình 32: CSDL thông tin Thời gian và Trạng thái của sinh viên 31
Trang 11Hình 33: Mô hình thực nghiệm 31
Hình 34: Module đăng nhập vào phần mềm 32
Hình 35: Module Kết nối RFID,CAMERA 33
Hình 36: Module chụp hình và thêm,sửa thông tin sinh viên 35
Hình 37: Module xóa và tìm kiếm thông tin sinh viên 36
Hình 38: Module xem thời gian và trạng thái sinh viên 38
Trang 12Quản lý thông tin dưới dạng thẻ RFID (Radio Frequency Identification) là một trong những phương pháp được nhiều nơi áp dụng và sử dụng hiệu quả Tại trường Đại học Quảng Bình việc quản lý thông tin dưới dạng thẻ sinh viên truyền thống còn nhiều thủ tục và công đoạn, bên cạnh đó tình trạng đi học không đúng giờ, nghỉ học, đi học hộ của một số bạn sinh viên gây khó khăn trong công tác quản lý giảng dạy cũng như chất lượng học tập của sinh viên Ðể góp phần vào việc quản lý thông tin đó một
cách nhanh chóng và hiệu quả em đã chọn đề tài “Ứng dụng RFID trong quản lý
thời gian và trạng thái đi học của sinh viên tại Trường Đại học Quảng Bình” làm
đề tài nghiên cứu nhằm phục vụ cho công tác xác minh, điểm danh cũng như nhanh chóng tìm kiếm và điều chỉnh thông tin sinh viên qua thẻ RFID
2 Mục tiêu nghiên cứu
2.1 Mục tiêu chung
- Nghiên cứu xây dựng một hệ thống quản lý hoàn chỉnh
- Xây dựng hệ thống ứng dụng trong trường Đại học Quảng Bình
2.2 Mục tiêu cụ thể
- Nghiên cứu các bài toán để xây dựng nên hệ thống, cách phân bố dữ liệu, cấu trúc của một hệ thống ứng dụng trong thực tế nhằm đạt hiệu quả cao Tạo ra sự tiện ích, tối ưu và tiết kiệm nhất cho các cơ quan nhằm hướng tới người dùng phổ thông và tránh yếu tố phức tạp khi đưa ra thực tiễn
- Thử nghiệm ứng dụng cho người quản lý về quản lý thời gian và trạng thái đi học của sinh viên ở trường Đại học Quảng Bình một cách dễ dàng, không phải tốn
Trang 13nhiều thời gian và công sức và có thể cập nhật phát triển hệ thống một cách nhanh chóng, tạo ra một hệ thống quản lý hiệu quả
3 Đối tượng, phạm vi, phương pháp nghiên cứu
3.1 Đối tượng nghiên cứu
- Đối tượng nghiên cứu của đề tài là cách xây dựng hệ thống quản lý, xây dựng cấu trúc dữ liệu, quản trị cơ sở dữ liệu
3.2 Phạm vi nghiên cứu
- Phạm vi nghiên cứu trong trường Đại học Quảng Bình, giới hạn ở mức độ thực nghiệm tạo hệ thống quản lý thời gian và trạng thái đi học của sinh viên tại Trường Đại học Quảng Bình
3.3 Phương pháp nghiên cứu
- Phương pháp tài liệu: Nghiên cứu tài liệu về phân tích và thiết kế hệ thống, liên kết cơ sở dữ liệu các, ngôn ngữ lập trình Visual Basic, thẻ RFID, bảng mạch Arduino
và các tài liệu về xây dựng hệ thống
- Phương pháp thực nghiệm: Xây dựng hệ thống quản thời gian và trạng thái đi học của sinh viên tại Trường Đại học Quảng Bình Xây dựng hệ thống cơ sở dữ liệu thông tin của sinh viên Xây dựng hệ thống dựa trên ngôn ngữ lập trình Visual Basic
và hệ quản trị cơ sở dữ liệu SQL Sever
4 Nội dung nghiên cứu
- Tìm hiểu cơ sở lý thuyết: tổng quan về hệ thống RFID, các chuẩn kết nối và các phần mềm có liên quan
- Nghiên cứu thiết kế hệ thống xây dựng nên một hệ thống quản lý
- Cài đặt thực nghiệm để xây dựng một hệ thống ứng dụng hoàn chỉnh
5 Kết quả đạt được
- Hiểu được RFID là gì?
- Biết được lịch sử hình thành, các thành phần của một hệ thống và nguyên lý hoạt động của RFID
- Nghiên cứu thành công các bài toán để xây dựng nên hệ thống, cách phân bố dữ liệu, cấu trúc của một hệ thống ứng dụng
- Xây dựng được hệ thống ứng dụng cho người quản lý về quản lý thời gian và trạng thái đi học của sinh viên
Trang 14PHẦN II: NỘI DUNG CHƯƠNG I: CƠ SỞ LÝ THUYẾT 1.1 Tổng quan về hệ thống RFID
1.1.1 Kỹ thuật RFID
RFID (Radio Frequency Identification) là công nghệ cho phép một thiết bị đọc thông tin chứa trong chip không cần tiếp xúc trực tiếp ở khoảng cách xa, không thực hiện bất kỳ giao tiếp vật lý nào hoặc giữa hai vật không nhìn thấy nhau Công nghệ này cho ta phương pháp truyền, nhận dữ liệu từ một điểm đến một điểm khác [2]
Kỹ thuật RFID sử dụng truyền thông không dây trong dải tần sóng vô tuyến để truyền dữ liệu từ các thẻ từ (tag) đến các thiết bị đọc (reader) Thẻ từ có thể được đính kèm hoặc gắn vào đối tượng được nhận dạng, chẳng hạn sản phẩm, hộp hoặc giá kê (pallet) Thiết bị đọc quét dữ liệu của thẻ từ và gửi thông tin đến cơ sở dữ liệu có lưu trữ dữ liệu của thẻ từ Ví dụ: các thẻ từ có thể được đặt trên kính chắn gió xe hơi để hệ thống thu phí đường có thể nhanh chóng nhận dạng và thu tiền trên các tuyến đường Dạng đơn giản nhất được sử dụng hiện nay là hệ thống RFID bị động làm việc như sau: thiết bị đọc truyền một tín hiệu tần số vô tuyến điện từ qua anten của nó đến
vi chip Thiết bị đọc nhận thông tin trở lại từ chip và gửi nó đến máy tính điều khiển đầu đọc và xử lý thông tin lấy được từ chip Các chip không tiếp xúc không tích điện, chúng hoạt động bằng cách sử dụng năng lượng nhận từ tín hiệu được gửi bởi thiết bị đọc
1.1.2 Lịch sử hình thành của RFID
Năm 1945, Léon Theremin phát minh ra một công cụ gián điệp cho Liên Xô bằng cách truyền các sóng vô tuyến phụ với tin tức audio Thiết bị này là một thiết bị chuyển đổi âm thanh thụ động chứ không phải là một thẻ nhận dạng và nó được coi như tiền thân của một hệ thống RFID bởi vì nguyên lý hoạt động của nó tương tự với
sự tương tác của bộ đọc vả thẻ bị động hiện nay, đều là thẻ nhận năng lượng từ bộ đọc
và phản hồi lại thông tin[4]
Năm 1948 , Harry Stockman cho ra đời tập tài liệu "Communication by Means of ReflectedPower“ nghiên cứu về RFID
Ngày 23/01/1973, một thiết bị của Mario Cardullo được tạo ra Nó là hình thức
sơ khai đầu tiên của một thiết bị RFID vì nó là một bộ tiếp sóng âm thanh thụ động với
Trang 15bộ nhớ Các bằng sáng chế cơ bản Cardullo bao gồm việc sử dụng RFID, âm thanh và ánh sáng như là phương tiện truyền dẫn
Một cuộc thí nghiệm đầu của các thẻ RFID, cả thụ động và bán thụ động, được thực hiện bởi Steven Depp, Alfred Koelle, và Robert Frayman tại Phòng thí nghiệm Quốc gia Los Alamos vào năm 1973 Các hệ sử dụng tần số 915 MHz và sử dụng thẻ 12-bit Kỹ thuật này được sử dụng bởi phần lớn các UHFID và lò vi sóng RFID tags ngày nay.[4]
Trang 16Hình 3: Reader SL500 [4] Hình 4: Thiết bị đọc RFID-RC522[4]
- Thẻ từ (Tag): Là một thẻ có gắn chip và anten, được lập trình điện tử với thông tin duy nhất Chíp là nơi lưu trữ một số thứ tự duy nhất hoặc thông tin khác dựa trên loại thẻ: read-only, read-write,… còn anten được gắn với vi mạch truyền thông từ chip đến reader Anten càng lớn cho biết phạm vi đọc càng lớn
Thẻ từ được chia làm 2 loại là thẻ chủ động và thẻ bị động:
+ Thẻ chủ động (active tag): có pin và có khả năng nhận diện bởi bộ đọc ở khoảng cách xa Tuy nhiên thẻ có kích thước khá lớn do có thêm nguồn pin Tuổi thọ của pin khoảng từ 3-7 năm
+ Thẻ bị động (passive tag): không có pin Bên trong mạch là một mạch cảm ứng nhỏ, nguồn năng lượng cho thẻ khi hoạt động là nhờ thiết bị đọc cung cấp, phạm vi đọc của thẻ ngắn hơn 1m Thẻ có ưu điểm là kích thước nhỏ và nhẹ
Cả 2 loại thẻ trên đều được cấu thành từ chip bán dẫn siêu nhỏ để lưu dữ liệu và ăng ten được thu nhỏ tuỳ theo hình thức đóng gói Mỗi thẻ khi xuất xưởng được thiết lập một nhận dạng duy nhất có độ dài từ 32-512 bit Do vậy khả năng nhận dạng nhầm lẫn gần như khó có thể xảy ra[3]
Trang 17Hình 5: Ví dụ một số thẻ RFID [3]
- Host Computer-server: là nơi mà máy chủ và hệ thống phần mềm giao diện với
hệ thống được tải
1.1.4 Nguyên lý hoạt động của RFID
Hình 6: Nguyên lý hoạt động của một hệ thống RFID
Thiết bị đọc (reader) sẽ phát ra sóng điện tử ở một tần số nhất định qua ăng ten (đa số các thiết bị hiện nay đều có ăng ten tích hợp sẵn ngay trên thiết bị, chúng ta không cần lắp thêm) và thiết bị RFID tag khi ở trong vùng đó sẽ thu tầng sóng đó và phát lại cho thiết bị Reader biết mã số của mình Từ đó thiết bị đọc (reader) sẽ nhận biết được Tag nào đang trong vùng hoạt động
Hầu hết các hệ thống RFID thường bố trí nhiều thiết bị đọc kết nối với một máy tính trung tâm Máy tính trung tâm có nhiệm vụ nhận dữ liệu từ thiết bị đọc gửi về, phân tích và thực thi các lệnh có liên quan tới dữ liệu được lưu trữ trong thẻ
Trang 181.1.5 Các dài tần số hoạt động của hệ thống RFID
Tần số hoạt động là tần số điện từ thẻ để truyền thông hay thu được năng lượng Tần số xác định tốc độ truyền thông và khoảng cách đọc thẻ Tần số cao hơn cho biết phạm vi đọc dài hơn
Bảng 1: Các tần số hoạt động của RFID
13.56 MHz Tối đa
1 m
Trung bình
Thích hợp với việc đọc item theo dõi vật liệu trong thư viện và kiểm soát sách, điều khiển truy cập
2 m
Trung bình
Nhận dạng phần trong của các container vận chuyển tàu biển trong các khu vực công nghiệp và thương mại, ứng dụng trong quốc phòng
3.1 – 10 GHz 200 m Cao Ứng dụng trong các ngành công
nghệ đặc biệt
Trang 191.2 Các chuẩn kết nối
- Chuẩn USB:
USB (Universal Serial Bus) là một chuẩn kết nối tuần tự đa dụng trong máy tính USB sử dụng để kết nối các thiết bị ngoại vi với máy tính, chúng thường được thiết kế dưới dạng các đầu cắm cho các thiết bị tuân theo chuẩn cắm và chạy mà với tính năng cắm nóng thiết bị (nối và ngắt các thiết bị không cần phải khởi động lại hệ thống) [1]
Đặc trưng của USB:
+ Với công nghệ hiện nay thì 1 USB cho phép mở rộng 127 thiết bị kết nối cùng vào một máy tính thông qua một cổng USB duy nhất (bao gồm các hub USB);
+ Với USB 2.0 chuẩn tốc độ cao, đường truyền đạt tốc độ tối đa đến 480 Mbps, tức là 60 MB/s Còn với USB 3.0 tốc độ tối đa là 4.8 – 5 Gbps, tức 600 – 625 MB/s + Dây cáp USB gồm hai sợi nguồn (+5V và dây chung GND) cùng một cặp gồm hai sợi dây xoắn để mang dữ liệu
+ Trên sợi nguồn, máy tính có thể cấp nguồn lên tới 500mA ở điện áp 5V một chiều (DC)
+ Những thiết bị tiêu thụ công suất thấp (ví dụ: chuột, bàn phím, loa máy tính ) với công suất thấp bằng với nguồn cấp thì sẽ được máy tính cấp nguồn trực tiếp
thông qua cổng USB mà không cần nguồn cấp riêng cho các thiết bị ngoại vi đó (thậm
chí các thiết bị giải trí số như SmartPhone, PocketPC ngày nay sử dụng các cổng USB
để sạc pin) Với các thiết bị cần sử dụng nguồn công suất lớn (như máy in, máy quét, ) không sử dụng nguồn điện từ đường truyền USB như nguồn chính của chúng, lúc này đường truyền nguồn chỉ có tác dụng như một sự so sánh mức điện thế của tín hiệu
+ Đặc điểm thuận lợi của USB chính là cắm nóng, tức là thiết bị có thể cắm vào
sử dụng sau đó rút ra rồi lại cắm vào sử dụng được mà không phải mất công khởi động lại hệ thống
+ Nhiều thiết bị USB có thể được chuyển về trạng thái tạm ngừng hoạt động khi máy tính chuyển sang chế độ tiết kiệm điện [7]
Trang 20Hình 7: Một số chuẩn chân cắm USB [7]
- Chuẩn SPI:
SPI (Serial Peripheral Interface – Giao diện ngoại vi nối tiếp) là một chuẩn truyền thông nối tiếp tốc độ cao do hãng Motorola đề xuất nhằm đảm bảo sự liên hợp giữa các vi điều khiển và thiết bị ngoại vi một cách đơn giản Đây là kiểu truyền thông Master-Slave, trong đó có 1 chip Master điều phối quá trình tuyền thông và các chip Slaves được điều khiển bởi Master vì thế truyền thông chỉ xảy ra giữa Master và Slave SPI là một cách truyền song công (full duplex) nghĩa là tại cùng một thời điểm quá trình truyền và nhận có thể xảy ra đồng thời SPI đôi khi được gọi là chuẩn truyền thông “4 dây” vì có 4 đường giao tiếp trong chuẩn này đó là SCK (Serial Clock), MISO (Master Input Slave Output), MOSI (Master Ouput Slave Input) và SS (Slave Select)
+ SCK: Xung giữ nhịp cho giao tiếp SPI, vì SPI là chuẩn truyền đồng bộ nên cần
1 đường giữ nhịp, mỗi nhịp trên chân SCK báo 1 bit dữ liệu đến hoặc đi Đây là điểm khác biệt với truyền thông không đồng bộ mà chúng ta đã biết trong chuẩn UART Sự tồn tại của chân SCK giúp quá trình tuyền ít bị lỗi và vì thế tốc độ truyền của SPI có thể đạt rất cao Xung nhịp chỉ được tạo ra bởi chip Master
+ MISO– Master Input / Slave Output: Chân MISO dùng để truyền dữ liệu ra khỏi Modun SPI khi đặt cấu hình là Slave và nhận dữ liệu khi đặt cấu hình là Master MISO của Master và các Slaves được nối trực tiếp với nhau
+ MOSI – Master Output / Slave Input: Chân MOSI dùng để truyền dữ liệu ra khỏi Mođun SPI khi đặt cấu hình là Master và nhận dữ liệu khi đặt cấu hình là Slave MOSI của Master và các Slaves được nối trực tiếp với nhau
Trang 21+ SS – Slave Select: SS là đường chọn Slave cần giap tiếp, trên các chip Slave đường SS sẽ ở mức cao khi không làm việc Nếu chip Master kéo đường SS của một Slave nào đó xuống mức thấp thì việc giao tiếp sẽ xảy ra giữa Master và Slave đó Chỉ
có 1 đường SS trên mỗi Slave nhưng có thể có nhiều đường điều khiển SS trên Master, tùy thuộc vào thiết kế của người dùng
Nguyên lý hoạt động: để bắt đầu hoạt động thì kéo chân SS xuống thấp và kích hoạt clock ở cả Maser và Slave Mỗi chip Master hay Slave có một thanh ghi dữ liệu 8 bits Cứ mỗi xung nhịp do Master tạo ra trên đường giữ nhịp SCK, một bit trong thanh ghi dữ liệu của Master được truyền qua Slave trên đường MOSI, đồng thời một bit trong thanh ghi dữ liệu của chip Slave cũng được truyền qua Master trên đường MISO
Do 2 gói dữ liệu trên 2 chip được gởi qua lại đồng thời nên quá trình truyền dữ liệu này được gọi là “song công” [6]
1.3 Các phần mềm liên quan
- Phần mềm lập trình phần mềm hệ thống: Visual Studio 2013
- Phần mềm quản trị cơ sở dữ liệu: SQL Server 2008
- Phần mềm lập trình mạch phát triển Arduino: Arduino IDE
- Driver USB Arduino
Trang 22CHƯƠNG II ARDUINO VÀ LẬP TRÌNH ĐIỀU KHIỂN
2.1 Giới thiệu chung về Arduino
Arduino là một bo mạch vi điều khiển do một nhóm giáo sư và sinh viên Ý thiết
kế và đưa ra đầu tiên vào năm 2005[1]
Arduino là một nền tảng mà mọi thiết bị phần cứng đã được làm sẵn và chuẩn hoá, người dùng chỉ cần lựa chọn những thứ mình cần và lắp ghép lại
Chính vì thế, Arduino rất thích hợp cho những ai không có chuyên môn về điện
tử nhưng lại yêu thích phần cứng – tự động hoá
Để Arduino có thể hoạt động được thì chúng ta cần lập trình cho nó Phần mềm
để lập trình cho mạch ardunio là phần mềm IDE, ngôn ngữ lập trình được sử dụng là C hoặc C++ nhưng được đơn giản hoá đi nhiều, các phần cứng kết nối được với nó đều có các đoạn lệnh viết sẵn từ nhà sản xuất hoặc các nhà phát triển để có thể tự do sử dụng theo các mục đích khác nhau[8]
Hiện nay, phiên bản Arduino Uno đã được phát triển đến thế hệ thứ 3 (R3)
Trang 23Sơ đồ chân của Arduino:
- Cáp USB (1): Arduino sử dụng cáp USB để giao tiếp với máy tính Thông qua cáp USB chúng ta có thể nạp chương trình cho Arduino hoạt động, ngoài ra USB còn
là nguồn cho Arduino
- Nguồn (2): cân bằng điện áp cho đúng với điện áp yêu cầu, cung cấp nguồn điện cho toàn hệ thống Bo mạch hoạt động với nguồn ngoài ở điện áp từ 5 –20 volt, tuy nhiên nếu sử dụng nguồn lớn hơn 12 volt thì sẽ có hiện tượng nóng và làm hỏng bo mạch Vì vậy nên dùng nguồn ổn định là 5 đến dưới 12 volt
- Các cổng điện áp (Chân 5V và chân 3.3V) (3): cung cấp điện áp đầu ra cho các thiết bị
- Các cổng Analog in (4): cổng logic 0-1 vào với mức điện 0-5V tương ứng
- Các cổng Digital in-out (5,6): Arduino Uno có 14 chân digital với chức năng input và output, có thể nhận điện áp vào hoặc xuất điện áp ra
- Reset (7): dùng đểreset Arduino
- Vi xử lý ATmega 328 (8): thu thập dữ liệu từ cảm biến, xử lý dữ liệu, xuất tín hiệu ra,…
Trang 24Thông tin:
Các thông tin chi tiết của Arduino Uno R3 được tóm tắt qua bàng sau:
Bảng 2: Thông tin chi tiết của Arduino Uno R3
Dòng tối đa mỗi chân I/O 30 mA
Dòng ra tối đa chân 5V 500 mA
Dòng ra tối đa chân 3.3V 50 mA
của 3 vi điều khiển này là dung lượng bộ nhớ Flash
Mạch Arduino UNO R3 với thiết kế tiêu chuẩn sử dụng vi điều khiển ATmega328 Đây là bộ xử lý chính trên board, trung tâm của toàn bộ board Arduino Uno[4]
Trang 25Hình 11: Hình ảnh Atmega 328 và sơ đồ chân kết nối [4]
Đặc điểm của Atmega 328:
- Cấu trúc RISC với khoảng 133 lệnh ASM, hầu hết thực hiện trong một chu kỳ máy
- 32 thanh ghi đa năng làm việc như các vùng nhớ tốc độ cao
- Tốc độ thực hiện lệnh tối đa 16 MIPS (với thạch anh 16MHz, không chia tần)
- Bộ nhớ chương trình (FLASH): 32KB, cho phép nạp xoá
- Bộ nhớ EEPROM: 1 KBytes, dùng để lưu các biến ngay cả khi không được cấp điện
- Bộ nhớ RAM: 2KB, dùng để lưu kết quả trung gian, làm bộ nhớ vào ra và dùng cho stack
- Giao diện JTAG, cho phép nạp xoá Flash 10.000 lần, EEPROM 100.000 lần, Fulse Bits, Lock Bits
- Các chức năng ngoại vi tích hợp sẵn: 3 timer gồm 2 timer 8-bit và 1 timer bit 2 bộ Timer 8 bits với nhiều chế độ hoạt động, 1 bộ Timer 16 bits có bộ chia tần riêng, các chế độ đếm, định thời, so sánh (compare mode) và bắt giữ (capture mode)
16 Bộ đồng hồ thời gian thực
- Số kênh xung PWM: 6 kênh (1timer 2 kênh), trong đó 2 kênh điều chế độ rộng xung PWM có độ phân giải 8 bit và 4 kênh điều chế độ rộng xung PWM có độ phân giải 2 đến 16 bits
- Bộ ADC 10bit
- Chuẩn giao tiếp TWI (I2C)
- Chuẩn truyền thông USART
- Giao diện SPI master/slave
Trang 26Các cổng vào ra:
Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu Chúng chỉ có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặc định thì các điện trở này không được kết nối)
Một số chân digital có các chức năng đặc biệt như sau:
- 2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive – RX) dữ liệu TTL Serial Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chân này Kết nối bluetooth thường thấy nói nôm na chính là kết nối Serial không dây Nếu không cần giao tiếp Serial, bạn không nên sử dụng 2 chân này nếu không cần thiết
- Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với độ phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm analogWrite() Nói một cách đơn giản, bạn có thể điều chỉnh được điện áp ra ở chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những chân khác
- Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoài các chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác
- LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L) Khi bấm nút Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu Nó được nối với chân số 13 Khi chân này được người dùng sử dụng, LED sẽ sáng
Trang 27- Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V Với chân AREF trên board, bạn có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog Tức là nếu bạn cấp điện áp 2.5V vào chân này thì bạn có thể dùng các chân analog để đo điện
áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit
2.2 Lập trình cho Arduino
Để lập trình cũng như gửi lệnh và nhận tín hiệu từ mạch Arduino, nhóm phát triển dự án này đã cũng cấp đến cho người dùng một môi trường lập trình Arduino được gọi là Arduino IDE (Intergrated Development Environment) Arduino IDE là nơi
để soạn thảo code, kiểm tra lỗi và upload code cho arduino
Hình 13: Arduino IDE 2.3 Thiết bị đọc thẻ RFID-RC522
Thiết bị đọc MFRC522 có thể đọc được các loại thẻ có kết nối không dây như NFC, thẻ từ (loại dùng làm thẻ giảm giá, thẻ xe bus, tàu điện ngầm,…), hoạt động ở tần số
13.56 MHz
Trang 28Hình 14: Thiết bị đọc RFID-RC522 2.3.1 Các tính năng
- RFID RC522 sử dụng IC MFRC522 của philip, dùng để đọc và ghi dữ liệu cho thẻ NFC tần số 12,56Mhz
- Mạch Analog tích hợp điều chế và giải mã với tốc độ cao
- Bộ đệm của thiết bị đầu ra để kết nối ăng ten với các thành phần được giảm thiểu
- Hỗ trợ giao tiếp tốc độ cao ISO/IEC 14443A lên tới 848 kBaud
- Giao diện máy chủ hỗ trợ: SPI lên tới 10Mbps, I2C 400kBaud ở Fast Mode và
3400 kBaud ở High-speed Mode, RS232 UART 1228.8 kBaud
- Bộ đệm FIFO xử lý 64byte gửi và nhận
- Điện áp hoạt động: 2.5 - 3.3V
Trang 292.3.2 Sơ đồ khối và chức năng thành phần
So đồ khối gồm 3 thành phần chính [9]
Analog Interface: xử lý điều chế và giải điều chế tín hiệu analog
- Contactless UART: quản lý các giao thức liên kết với với Host
FIFO Buffer: đảm bảo dữ liệu khi gửi và nhận được nhanh chóng và thuận tiện
2.3.3 Cách kết nối chuẩn SPI
SPI là một chuẩn truyền thông nối tiếp tốc độ cao, được hỗ trợ để cho phép truyền tin tốc độ cao với máy chủ, tốc độ có thể lên tới 10Mbps Khi truyền tin, MFRC522 hoạt động như một thiết bị thứ cấp, tiếp nhận dữ liệu từ bên ngoài cho sự thiết lập các thanh ghi.Việc gửi và nhận dữ liệu liên quan đến việc truyền tin bằng sóng RF[9]
Trang 30Trong SPI, RFID-RC522 hoạt động như một thiết bị thứ cấp Các tín hiệu SCK được tạo ra từ thiết bị chính Dữ liệu được truyền từ thiết bị chính tới thiết bị phụ bằng đường MOSI Đường MISO gửi dữ liệu từ RFID-RC522 tới thiết bị chính
Thẻ MIFARE gồm 3 thành phần chính: Chip nhúng S50, cuộn dây, vỏ ngoài[2]
Trang 312.4.2 Tiêu chuẩn kĩ thuật
- Tần số: 13.56 MHz (theo chuẩn ISO/IEC 14443A), thẻ ISO 15693
- Dung lượng nhớ: 512 bit (Mifare Ultraligh), 1K (Mifare S50), 4 K (Mifare S70)
- Khoảng cách thẻ với đầu đọc thẻ: 2.5 – 10 cm
- Thời gian đọc/ghi: 1-2 ms
- Số lần ghi xóa: > 100,000 lần
- Thời gian lưu dữ liệu trên thẻ: 10 năm
- Kích thước: 85.6 x 54 x 0.81 mm
2.4.3 Sơ đồ khối
- RF Interface: điều chế giải điều chế, chỉnh lưu, tạo xung đồng hồ, điều chỉnh điện áp
- Anticollision: chọn và thực hiện field
- Authentication: xác thực hoạt động truy cập
- Control & ALU: tăng, giảm các giá trị đặc biệt
- EEPROM Interface: quản lý các hoạt động liên quan tới EEPROM
- Crypto: xác thực và mã hoá dữ liệu
- EEPROM: lưu trữ dữ liệu
2.4.4 Tổ chức dữ liệu
1024 x 8 bit dữ liệu được tổ chức trong 16 sector với 4 khối,mỗi khối 16 byte Ở trạng thái bị xoá, các cell EEPROM nhận giá trị logic 0, ở trạng thái được ghi, cell nhận giá chị logic 1[10]
Trang 32Hình 20: Tổ chức dữ liệu trong thẻ MIFARE S50 [10]
Trang 33CHƯƠNG III: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
3.1 Các khối chính và chức năng
Hình 21: Các khối chính của hệ thống
- Khối thiết bị đọc: có nhiệm vụ đọc thông tin từ thẻ
- Khối vi xử lý: nhận dữ liệu từ thiết bị đọc, đóng gói và gửi chuỗi ID lên khối server, nhận lệnh từ server và thực thi những lệnh liên quan tới đầu ra
- Khối server: tiếp nhận và xử lý thông tin từ khối vi xử lý gửi lên, thực hiện các truy vấn CSDL
Lựa chọn thiết bị:
- Khối thiết bị đọc: sử dụng module RFID-RC522
- Khối vi xử lý: sử dụng mạch phát triển Arduino Uno R3
- Khối server: sử dụng máy tính cá nhân
Ưu điểm của các thiết bị:
- Module RFID-RC522: nhỏ gọn, dễ kết nối, không cần sử dụng đến ăng ten ngoài, thư viện được nhà sản xuất viết sẵn nên rất tiện dụng
- Arduino Uno: phổ biến và dễ sử dụng nhất trong các dòng Arduino hiện nay, nhỏ gọn, mạch được làm với hệ thống máy hiện đại để đảm bảo các mối hàn luôn được bảo vệ Có sẵn khối chuyển đổi Serial – USB giao tiếp trực tiếp với máy tính không cần thêm bộ chuyển đổi RS232 Sử dụng trực tiếp nguồn điện từ cổng USB vì thế không cần lắp bổ sung thêm nguồn phụ Dễ dàng tháo lắp, thay đổi chip xử lý (AVR
họ 8 bit) Nạp chương trình trực tiếp thông qua chip ATmega16U2 gẵn trên mạch được nạp sẵn firmware Ngôn ngữ lập trình dựa theo C/C++ đơn giản, dễ hiểu; chương trình lập trình tiện dụng, tích hợp sẵn Serial Monitor
Trang 343.2 Mô hình kết nối
Hình 22: Mô hình kết nối thực tế hệ thống 3.3 Kết nối phần cứng
Hình 23: Sơ đồ chân kết nối Arduino và RFID-RC522
Hình 24: Kết nối thực tế hệ thống