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

THIẾT KẾ MẠCH ĐỌC THẺ RFID VÀ GIAO TIẾP VỚI MÁY TÍNH QUA CỔNG UART

50 746 3

Đ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 50
Dung lượng 4,06 MB
File đính kèm Giao tiep qua the RFID.rar (885 KB)

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

Nội dung

Mạch cứng hoạt đổng ổn định chính xác, đọc được thông tin RFID, hiển thị thông tin lên LCD, trao đổi thông tin với máy tính. Mạch nhỏ gọn bền, đẹp có khả năng phát triển ứng dụng đi vào thực tế. Phần mềm sử dụng: Chính xác, nhận thông tin và gửi lệnh cho mạch xử lý, đẹp mắt, dễ sử dụng, thuận tiện cho người dùng, giảm thiểu các công việc tay chân, có khả năng phát triển ứng dụng thực tế. Nhược điểm: Cần thêm nhiều thời gian tối ưu, và phát triển ứng dụng

Trang 1

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

VIỆN ĐIỆN TỬ - VIỄN THÔNG

BÁO CÁO ĐỒ ÁN 2 K55

ĐỀ TÀI: THIẾT KẾ MẠCH ĐỌC THẺ RFID VÀ GIAO TIẾP

VỚI MÁY TÍNH QUA CỔNG UART

GIẢNG VIÊN HƯỚNG DẪN:

Trang 2

MỤC LỤC

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI 1

MỤC LỤC 2

Phần 1: Giới thiệu đề tài, tìm hiểu MSP430 3

1.1 Nhận dạng tự động tần số vô tuyến (Radio Frequency Identification – RFID) 3

1.1.1 Giới thiệu về nhận dạng tự động tần số vô tuyến (RFID) 3

1.1.2 Module MFRC 522 và thẻ RFID 5

1.2 Tìm hiểu về MSP430 6

1.3 Lên ý tưởng cho đề tài 10

Phần 2 Triển khai thiết kế đề tài 12

2.1 Phân chia chức năng 12

2.1.1 Chip xử lý 12

2.1.2 Cảm biến RC522 13

2.1.3 Khối hiển thị LCD16x2 14

2.1.4 Board mạch 16

2.1.5 Phần mềm sử dụng 17

2.2 Lập kế hoạch 18

2.3 Thực hành 19

2.3.1 Lập trình cho vi xử lý MSP430 19

2.3.1.1 Khởi tạo project mới 19

2.3.1.2 Tạo các thư viện cần xử dụng 21

2.3.1.3 Tạo hàm main.c (kịch bản hoạt động chính cho chip xử lý) 26

2.3.1.4 Hoàn thành và kiểm tra code 27

2.3.2 Thiết kế bo mạch 29

2.3.2.1 Xây dựng sơ đồ nguyên lý 29

2.3.2.2 Xây dựng sơ đồ layout và in mạch: 32

2.3.2.3 Hàn linh kiện, hoàn thành mạch: 33

2.3.3 Thiết kế phần mềm sử dụng 34

2.3.4 Kiểm tra, hoàn thành sản phẩm 37

Trang 3

Phần 3 kết quả thử nghiệm, phụ lục, hình vẽ, mã nguồn MSP, tài nguyên phần

cứng, phần mềm 38

3.1 Mã nguồn MSP, tài nguyên phần cừng, phần mềm 38

3.2 Kết quả thử nghiệm, đánh giá sản phẩm 47

3.3 Phụ lục 50

Tài liệu tham khảo 50

Trang 4

Phần 1: Giới thiệu đề tài, tìm hiểu MSP430

1.1 Nhận dạng tự động tần số vô tuyến (Radio Frequency Identification – RFID )

1.1.1 Giới thiệu về nhận dạng tự động tần số vô tuyến (RFID)

Nhận dạng tự động (Automatic Identification) hay gọi ngắn gọn là "ID tự động" làmột thuật ngữ chỉ các công nghệ chủ dùng để giúp các máy nhận dạng các đối tượng Nhận dạng tự động thường được thực hiện bằng tự động thu thập dữ liệu Đó là phươngpháp các công ty dùng để nhận dạng đồ vật hay hàng hóa, thu thập thông tin về chúng

và nhập dữ liệu đưa vào máy tính mà không cần làm thủ công Mục tiêu của "ID tựđộng" là tăng tính hiệu quả, giảm lỗi dữ liệu đầu vào và sử dụng lao động dư thừa chocác chức năng giá trị gia tăng như cung cấp dịch vụ cho khách hàng Các công nghệ chủđược xếp vào nhóm "ID tự động" gồm có: mã vạch (Bar Codes), thẻ thông minh, nhậndạng tiếng nói, một số công nghệ sinh trắc học (biometric), nhận dạng đặc trưng quanghọc (Optical character Recognition - OCR) và nhận dạng tần số vô tuyến (RadioFrequency Identification - RFID)

Đó là một kỹ thuật nhận dạng sóng vô tuyến từ xa, cho phép đọc không cần tiếp xúc

dữ liệu trên một con chíp bằng sóng vô tuyến ở khoảng cách từ 50 cm tới 10 mét, tùytheo kiểu của thẻ nhãn RFID

Hệ thống RFID gồm hai thành phần: thứ nhất là những chiếc thẻ nhãn nhỏ (cỡ vàicm) có gắn chip silicon cùng ăng ten radio và thứ hai là bộ đọc cho phép giao tiếp vớithẻ nhãn và truyền dữ liệu tới hệ thống máy tính trung tâm

Bộ nhớ của con chip có thể chứa từ 96 đến 512 bit dữ liệu, nhiều gấp 64 lần so vớimột mã vạch Ưu việt hơn, thông tin được lưu giữ trên con chíp có thể được sửa đổi bởi

sự tương tác của bộ đọc Dung lượng lưu trữ cao của những thẻ nhãn RFID thông minhnày sẽ cho phép chúng cung cấp nhiều thông tin đa dạng như thời gian lưu trữ, ngày bàybán, giá và thậm chí cả nhiệt độ sản phấm

Trang 5

Với công nghệ RFID, các sản phẩm ngay lập tức sẽ được nhận dạng tự động.Chip trên thẻ nhãn RFID được gắn kèm với một ăngten chuyển tín hiệu đến một máycầm tay hoặc máy đọc cố định Các máy này chuyển tín hiệu radio từ thẻ RFID sangmột mã liên quan đến việc xác định các thông tin trong một cơ sở dữ liệu máy tính do cơquan quản lý kiểm soát.

Khi một RFID được gắn vào một sản phẩm, ngay tức khắc nó sẽ phát ra các tín hiệu

vô tuyến cho biết sản phẩm ấy đang nằm ở chỗ nào, trên xe đẩy vào kho, trong kho lạnhhay trên xe đẩy của khách hàng Do thiết bị này được nối kết trong mạng vi tính của cửahàng nên nhờ vậy các nhân viên bán hàng có thể biết rõ sản phẩm ấy được sản xuất khinào, tại nhà máy nào, màu sắc và kích cỡ của sản phẩm; để bảo quản sản phẩm tốt hơnthì phải lưu trữ nó ở nhiệt độ nào

Nhờ RFID sẽ giảm được rất nhiều thời gian và chi phí quản lý, trưng bày, bán hàng Tín hiệu vô tuyến phát ra từ chiếc tem điện tử này sẽ giúp các nhân viên bán hàng khôngphải đưa đầu dò đọc lướt lên mã vạch của sản phẩm nữa; việc tính tiền sẽ nhanh lẹ hơnrất nhiều, và như vậy khách hàng sẽ không mất nhiều thời gian xếp hàng chờ thanh toánnữa

Trong các kho hàng, nhân viên sẽ thao tác nhanh chóng và chính xác hơn việc lập sổthu mua, tiêu thụ, tồn kho để theo dõi số lượng, chủng loại hàng trong kho Họ sẽ nhanhchóng biết lô hàng nào đã quá hạn không được bày bán nữa, chủng loại hàng nào đanghút khách tiêu dùng cần mua thêm Tóm lại, nhờ ứng dụng RFID, các cửa hàng bán lẻ,các siêu thị sẽ cần ít nhân viên hơn, chi phí hoạt động sẽ giảm, lợi nhuận sẽ cao hơn

Trang 6

 Dòng ở chế độ chờ: 10-13mA

 Dòng ở chế độ nghỉ: <80uA

 Tần số sóng mang: 13.56MHz

 Khoảng cách hoạt động: 0~60mm~mifare1 card~

 Giao tiếp: SPI

 Tốc độ truyền dữ liệu: tối đa 10Mbit/s

 Các loại card RFID hỗ trợ: mifare1 S50, mifare1 S70, mifare UltraLight, mifare Pro, mifare Desfire

Trang 7

Kiến trúc nguồn điện cực thấp để mở rộng tuổi thọ của Pin và giảm tiêu thụ năng lượng:

-1μAduy trì RAM

-0.8μAchế độ xung thời gian thực

-250μA/MIPS tích cực

Xử lý tín hiệu tương tự với hiệu xuất cao:

-12-bit hoặc 10-bit ADC – 200Ksps, cảm biến nhiệt, V(Ref)

-Khả năng ngắt theo véc-tơ lớn

Trong lập trình cho bộ nhớ Flash cho phép thay đổi Code một cách linh hoạt, phạm

vi rộng, bộ nhớ Flash còn có thể lưu lại được nhật ký của dữ liệu

Trang 8

Hình 1.3: Cấu trúc vi điều khiển MSP430

b, MSP430 LaunchPad:

Hình 1.4: KIT MSP430 LaunchPad

 On Board Emulation (Tích hợp phần mô phỏng trên kit):

Nghĩa là bạn có thể nạp chương trình và gỡ lỗi project của bạn mà không cần thêm công cụ nào khác Đặc biệt hơn là bạn có thể dùng Kit để nạp và debug cho tất cả các chip MSP430 nằm trên một mạch khác

 BoosterPack-compatibility (Tương thích với các module hỗ trợ):

Trang 9

Các chân của MSP430G2 được thiết kế rất thoáng Các chân này giúp cho việc cắm các module hỗ trợ khác rất dễ dàng, để thêm các tính năng như wireless, capacitive touch…

 Hỗ trợ các vi điều khiển MSP430G2xx:

Kit MSP430 hỗ trợ các vi điều hiển dòng MSP430G2xx Đây là các vi điều khiển tần

số dao động có thể lên đến 16MHZ, bộ nhớ lên đên 16KB Flash, 512B RAM, có tích hợp ADC, timer và các module giao tiếp

 Bộ kit MSP430 LaunchPad Rev.1.5 Full Box gồm có

- Kit Msp430 lauchpad

- 1 Chip MSP430G2553IN20 + 1 Chip MSP430G2452IN20

- Thạch anh 32.768Khz

- 2 thanh jump cái

- 1 dây cáp usb mini để kết nối MSP430 launchpad với máy tính

- Tài liệu về kit MSP430 launchpad

Hình 1.5: Bộ kit MSP430 LaunchPad Rev.1.5 Full Box

c, Chương trình biên dịch Code Composer Studio (CCStudio)

Code Composer Studio là môi trường phát triển tích hợp (IDE) cho họ vi xử lý nhúng của Texas Instrument (TI) CCStudio bao gồm bộ công cụ được dùng để phát triển và gỡ rối các ứng dụng nhúng Nó bom gồm việc biên dịch cho mỗi dòng thiết bị của TI, trình tạo mã nguồn, môi trường xây dựng project, trình gỡ rối, profile, mô

phỏng, vận hành hệ thống thời gian thực và nhiều tính năng khác

Trang 10

Hình 1.6:Màn hình khởi động Code Composer Studio

1.3 Lên ý tưởng cho đề tài

Nhận dạng tự động tần số vô tuyến (RFID) thực tế có rất nhiều ứng dụng hữu ích,trong khuôn khổ thiết kế đò án 2 này, chúng em sẽ thiết kế mạch điện điện tử dùng chíp

xử lý MSP430G2553 của TI, đọc ghi thông tin thẻ RFID bằng cảm biến MFRC522, giaotiếp với MSP qua cổng SPI; và chíp xử lý này trao đổi thông tin với máy tính qua giaotiếp UART Trên máy tính có sẵn hệ cơ sở dữ liệu, được cập nhập thông tin mỗi lần thaotác với MSP

Sơ đồ khối hệ thống có thể phân tích như sau:

Mỗi người dùng, sở hữu thẻ RFID với những thông tin riêng biệt, mỗi khi thao tácvới mạch (có thế là quét thẻ), mạch nhận diện thẻ RFID, đọc và xử lý thông tin Chip xử

lý giao tiếp với máy tính qua cổng UART/USB, trên máy tính có sẵn giao diện phầnmềm ở đó, admin có thể cập nhật thông tin, gửi lệnh lại cho mạch xử lý

Trong trường hợp khác , admin hoặc người dùng cũng có thể hiển thị thông tin ngaytrên giao diện mạch xử lý

Mạch xử lý bao gồm các khối:

+Cảm biến RFID (RC522)

+Chip xử lý MSP430

+Khối hiển thị (LCD hiển thị thông tin xử lý khi có nhận diện thẻ RFID)

+Khối giao tiếp UART, SPI

+Khối cấp nguồn

Trang 11

Hình 1.7: Sơ đồ ứng dụng nhận dạng tự động RFIDMục đích thiết kề mạch này là chúng em có thể tạo ra một thiết bị điện tử có khảnăng nhận diện tự động tần số vô tuyến RFID, xử lý thông tin và trao đổi thông tin vớimáy vi tính nhằm tạo ra một giao diện sử dụng đơn giản tiển lợi.

Sản phẩm đáp ứng các yêu cầu chức năng và phi chức năng:

+Chức năng: Nhận diện và đọc thông tin trên thẻ RFID, cung cấp giao diện sử dụng.+Phi chức năng: Thiết bị đơn giản, đẹp mắt, gon nhẹ, xử lý nhanh, dễ sử dụng, tiêuthụ ít năng lượng…

Đặc biệt, sản phẩm có thể đi vào thực tế với các ứng dụng khác nhau khi tiếp tụcphát triển sản phẩm về sau (Như quản lý nhân viên công ty, quản lý sinh viên, mở cửa

tự động)…

Trang 12

Phần 2 Triển khai thiết kế đề tài2.1 Phân chia chức năng

Trong quá trình thiết kế, sản phẩm được chia thành các khối, cụ thể chức năng vàphân chia các khối như sau:

Hình 2.1 Sơ đồ các khối chức năng của mạch nhận diện tự động tần số vô tuyến

(RFID)

2.1.1 Chip xử lý

-Chíp xử lý MSP430 đặt trên kit MSP430

LaunchPad như hình vẽ

-Trong mạch thiết kế, chíp có nhiệm vụ: hoạt

động theo chương trình đã được lập trình sẵn do lập

trình viên (thành viên thiết kế sản phẩm) và được

nạp vào bộ nhớ chương trình của chip

(MSP430G2553 sử dụng bộ nhớ flash 16KB)

-Cụ thể chương trình hoạt động của chip thực

hiện những nhiệm vụ sau:

+Thiết lập hoạt động cho cảm biến RC522, trao

đổi thông tin qua giao tiếp SPI, đọc ghi thông tin thẻ

FRID

Trang 13

+Hiển thị thông tin lên LCD

+Giao tiếp với phần mềm máy tính qua giao tiếp UART/USB

2.1.2 Cảm biến RC522

Hình 2.3 Cảm biến RC522 và sơ đồ các chân

Module RC522: Có chức năng nhận diện thẻ RFID, đọc thông tin trên thẻ giao tiếp với chip xử lý theo cổng giao tiếp SPI, RC522 đóng vai trò Slave trong giao tiếp SPI vớichíp xử lý (đóng vai trò Master)

Hình 2.4: SPI 4 chân+Chân SCK(chân số 2 cảu RC522) đóng vai trò làm xung đồng hồ được lấy ra từ xung đồng hồ của chip xử lý msp430

Trang 14

+MOSI: Master Out Slave In

+MISO: Master In Slave Out

+SS: Select Slave (đóng vai trò Shift Enable)

Hình 2.5: Biểu đồ thời gian giao tiếp SPI với 1 master 1 slave

Trang 15

1 Vss Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với

GND của mạch điều khiển

2 VDD Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với

VCC=5V của mạch điều khiển

4 RS Chân chọn thanh ghi (Register select) Nối chân RS với logic “0”

(GND) hoặc logic “1” (VCC) để chọn thanh ghi

+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD(ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read)

+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD

5 R/W Chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W với logic

“0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc

6 E Chân cho phép (Enable) Sau khi các tín hiệu được đặt lên bus

DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E

+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E

+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ

ở bus đến khi nào chân E xuống mức thấp

7

-14

DB0

-DB7

Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU

Có 2 chế độ sử dụng 8 đường bus này :+ Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB

Trang 16

Hình 2.6: Giai đoạn EX

2.1.4 Board mạch

Board mạch là nơi đặt các linh kiện, thiết bị cần thiết, kết nối tín hiệu giữa các thiết

bị, cấp nguồn cho mạch…

Để thiết kế mạch cần trải qua các bước:

+Thiết kế mạch layout từ sơ đồ nguyên lý (thiết kế trên phần mềm hỗ trợ nhưAltium, Orcard …)

+Khối điều khiển

Các khối, link kiện được bố trí hợp lý trên mạch, tạo ra sự nhỏ gọn đẹp mặt chongười sử dụng, dễ dàng kiểm tra hàn nối các link kiện

Board mạch chính tạo nên một môi trường hoạt động cho các linh kiện, để mạchchạy tốt ổn định thì chế tạo mạch cần phải chính xác tỉ mỉ

Khi hoàn thành board mạch, hàn linh kiện, có thể đánh giá được chất lượng sảnphẩm trên các phương diện:

+Tính chính xác: Mạch đã hoạt động đúng chức năng hay không

+Dộ ổn định: Trên môi trường thực tế mạch có chạy đúng không

+Tốc độ làm việc: Tốc độ nhanh đáp ứng yêu cầu sử dụng

Trang 17

Hình 2.6: Sơ đồ layout mạch nhận diện RFID

2.1.5 Phần mềm sử dụng

Thực tế khi sử dụng thiết bị, chúng ta phải thao tác với một lượng lớn thông tin, mà bản thân bộ nhớ của MSP quá nhỏ không đáp ứng được, việc này có thể đáp ứng bằng cách sử dụng thêm bộ nhớ ngoài

Tuy nhiên ngoài vấn đề về lượng thông tin lớn, chúng ta cũng cần phải tạo ra được một giao diện sử dụng dễ dàng, tiện lợi Phần mềm máy tính có thế đáp ứng được yêu cầu trên

Chức năng chính việc thiết kế phần mềm sử dụng bao gồm:

+Nhận thông tin từ board mạch, trao đổi cập nhật với một hệ cơ sở dữ liệu sẵn có

Trang 18

+Truyền đạt lại thông tin người sử dụng tới bo mạch xử lý

+Tạo giao diện sử dụng đơn giản, đẹp mắt cho người dùng

Hình 2.7: Giao diện phần mềm sử dụng Giao diện thiết kế sẽ bao gồm các khối chính:

+ Giao tiếp UART: nhận và truyền thông tin với board mạch

+ Giao tiếp với hệ cơ sở dữ liệu: hiển thị thông tin, cập nhật thông tin và các chức năng khác

2.2 Lập kế hoạch

Toàn bộ đề tài bao gồm các công việc:

-Tìm hiểu lý thuyết chung, cần thiết để thực hiện đề tài bao gồm: tìm hiểu vềMSP430, tìm hiểu các phương thức truyền thông SPI, UART; tìm hiểu về nhận dạng tựđộng tần số vô tuyến (RFID), module RFID-RC522; tìm hiểu LCD16x2; xây dựng khốicấp nguồn; tìm hiểu cách xây dựng board mạch (sơ đồ nguyên lý, mạch lay out, mạch

in, và hàn mạch); xây dựng phần mềm sử dụng (công cụ được chọn: visual studio C#).-Sau khi nắm được lý thuyết, đi vào thực hành với các công việc:

Trang 19

+Lập trình cho vi điều khiển MSP430: Vi điều khiển được chọn là MSP430G2553,chip sẽ được lập trình và hoạt động với chức năng: giao tiếp với RC522 qua cổng SPI,điều khiển hoạt động của nó, đọc ghi thông tin của thẻ RFID, hiển thị một số thông tinlên LCD16x2, bật một led khi phát hiện thẻ RFID, và tắt nó đi trong trường hợp còn lại.Truyền thông tin lên phần mềm máy tính qua cổng UART, nhận và xử lý lệnh được gửivề.

+Xây dựng mạch:

 Vẽ mạch nguyên lý bao gồm các khối: khối nguồn có led báo và công tắc nguồn;khối hiển thị gồm LCD và các led báo hiệu; khối cảm biển giao tiếp với MSP quacổng SPI; và khối giao tiếp UART với máy tính

 Từ sơ đồ nguyên lý, vẽ sơ đồ layout, nối chân các thiết bị

 Từ sơ đồ layout, in mạch, mua linh kiện

 Chạy thử

+Thiết kế phần mềm sử dụng:

 Giao tiếp với mạch qua cổng UART: nhận thông tin và gửi lệnh xuống board

 Tạo hệ cơ sở dữ liệu: Cập nhật, hiển thị, trao đổi thông tin

Công cụ được sử dụng để xây dựng project là CCStudio, lập trình cho dòng vi điềukhiển do TI cung cấp

2.3.1.1 Khởi tạo project mới

Các bước đầu tiên đi vào thực hành bao giờ cũng dề dàng nhằm tạo tiền đề cho hoạtđộng sản xuất mạch diễn ra được trôi chảy, dưới đây là các bước tạo một project mớiphát triển nên ứng dụng về sau:

 Khởi động giao diện CCStudio:

Trang 20

Hình 2.8: Màn hình đầu tiên CCStudio khi khởi động song

Trên màn hình khởi động có các nội dung:

-Project Explorer: Chứa các project đã và đang được phát triển ứng dụng

-Màn hình chính: Triển khai code

-Cửa sổ Console: Cửa sổ hiện thị lỗi và các kết quả thao tác

-Thanh công cụ: Chứa các phím chức năng của CCStudio

 Tạo CCS Project

Trên thanh công cụ trọn mục file → New → Project… tiếp đó chọn mục CCS

Project, nhấn Next; cửa sổ thiết lập project mới hiện ra như hình 2.9.

-Tại Project Name: Đặt tên cho project mới (tùy thích).

-Tại Family chọn MSP430

-Tại Variant chọn MSP430G2553 (chip đã được chọn để phát triển ứng dụng)

-Tại Connection chọn TI MSP430 USB1 [Default].

-Tại của sổ chọn loại project chọn Empty Project (with main.c).

-Nhấn Finish, project mới được hiện ra

Sau khi thiết lập song môi trường phát triển project mới, hoàn toàn có thể phát triển ứng dụng với các thao tác như thêm thư viện h c cần thiết và viết hàm main.c (Kịch bản hoạt động chính cho chip xử lý)

Trang 21

Hình 2.9: Cửa sổ thiết lập project mới

2.3.1.2 Tạo các thư viện cần xử dụng

Để thực hiện các chức năng của vi xử lý trong board như đã đề ra, ta cần xây dựng các thư viện sau:

(thư viện h chưa khai báo các hàm và các biến sử dụng, thu viện c định nghĩa các hàm trong hàm main chỉ cần include thư viện h)

 Thư viện SPI.H, SPI.C: chứa các hàm phục vụ cho giao tiếp SPI giữu vi sử lý

và cảm biến RC522; định nghĩa chân xử dụng cho SPI

Trang 22

#ifndef SPI_H

#define SPI_H

void SPI_Init( void);

void Send_byte( int data, int time_ms);

unsigned char SPI_Xfer_byte( unsigned char data);

void setupSpiSlave();

void spiClearCs();

void spiSetCs();

unsigned char spiWriteByte( unsigned char val);

void spiTxRxSlave( int csPin, unsigned char * send_buffer, unsigned char *

receive_buffer , unsigned char length);

void uart_putc( char c);

void uart_puts( const char *s);

void uart_put_num ( unsigned long val, char dec, unsigned char neg);

char uart_data_ready();

char uart_getc();

void uart_gets( char *s);

void uart_printi( int n);

void printreg( char *name, int n);

Trang 23

#define LCD_RS_PORT P2OUT

#define LCD_RS 5

#define LCD_EN_DDR P2DIR

#define LCD_EN_PORT P2OUT

#define LCD_EN 4

#define LCD_LED_DDR P1DIR

#define LCD_LED_PORT P1OUT

#define LCD_LED 5

#define LCD_DATA_DDR P2DIR

#define LCD_DATA_PORT P2OUT

#define LCD_D4 3

#define LCD_D5 0

#define LCD_D6 1

#define LCD_D7 2

#define LCD_4_DEC_CUR_SHIFT_ON() lcd_write_cmd(0x05);

#define LCD_4_DEC_CUR_SHIFT_OFF() lcd_write_cmd(0x04);

#define LCD_4_INC_CUR_SHIFT_ON() lcd_write_cmd(0x07);

#define LCD_4_INC_CUR_SHIFT_OFF() lcd_write_cmd(0x06);

#define lcd_ready _delay_cycles(3000)

unsigned char _lcd_x = 0, _lcd_y = 0, _lcd_maxx = 0;

unsigned char _base_y[4] = {0x80, 0xc0};

#define lcd_onled setb(LCD_LED_PORT, LCD_LED)

#define lcd_offled clrb(LCD_LED_PORT, LCD_LED)

void lcd_write_4bit( unsigned char rs, unsigned char dat);

void lcd_write_cmd( unsigned char dat);

void lcd_write_data( unsigned char dat);

void LCD_4_CUR_SHIFT( unsigned char direct, unsigned char step);

void lcd_printf_float( float x, unsigned char length, unsigned char coma);

void lcd_gotoxy( unsigned char x, unsigned char y);

void lcd_clear();

void lcd_cus( unsigned char on);

void lcd_putchar( unsigned char c);

void lcd_puts( char * s);

void lcd_printf( char * format, );

void lcd_putbin( unsigned char num);

void lcd_init( unsigned char lcd_columns);

#define PCD_IDLE 0x00 //NO action

#define PCD_AUTHENT 0x0E

#define PCD_RECEIVE 0x08

#define PCD_TRANSMIT 0x04

#define PCD_TRANSCEIVE 0x0C

Trang 24

#define PCD_RESETPHASE 0x0F

#define PCD_CALCCRC 0x03 //CRC //Mifare_One

Trang 25

// -void Write_MFRC522(uchar addr, uchar val);

uchar Read_MFRC522(uchar addr);

void SetBitMask(uchar reg, uchar mask);

void ClearBitMask(uchar reg, uchar mask);

void AntennaOn( void);

void AntennaOf( void);

void MFRC522_Reset( void);

void MFRC522_Init( void);

uchar MFRC522_Request(uchar reqMode, uchar *TagType);

uchar MFRC522_ToCard(uchar command, uchar *sendData, uchar sendLen, uchar

*backData, uint *backLen);

uchar MFRC522_Anticoll(uchar *serNum);

void CalulateCRC(uchar *pIndata, uchar len, uchar *pOutData);

uchar MFRC522_SelectTag(uchar *serNum);

uchar MFRC522_Auth(uchar authMode, uchar BlockAddr, uchar *Sectorkey, uchar

*serNum);

uchar MFRC522_Read(uchar blockAddr, uchar *recvData);

uchar MFRC522_Write(uchar blockAddr, uchar *writeData);

uchar MFRC522_Halt( void);

Ngày đăng: 22/10/2018, 21:44

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