RFID on QT2410 --final 第五組 光機電所 693441010 吳俊達 電機所 693415038 曾耘犀
OUTLINE 電路佈線介紹 RFID 驅動程式 RFID Module Specification-功能列表
電路連接示意圖 4.2V 為High 3.3V QT2410 VDD DATA CLOCK 感應天線 雙向(GPG5) 1 2 3 8 76 1 2 3 4 5 QT2410 雙向(GPG5) 雙向(GPG7) DATA CLOCK VDD 4.2V 為High 3.3V
74241 3 - satate bus buffers
GPIO腳位功能 腳位 功能 GPG5 DATA GPG6 Input/Output control GPG7 CLOCK
RFID module 功能 腳位 名稱 功能 1 DATA Data輸入/輸出,連接到微控制器 需使用雙向埠(Bi-Directional Port) 2 CLOCK Clock輸入/輸出,連接到微控制器 3 不使用 4 GND 邏輯電源接地 5 VDD +5V電源輸入 6 ANT GND 50Ω 天線Ground 7 ANT 50Ω 天線 輸出 8
RFID 驅動程式 根據Linux驅動程式的規範,RFID驅動程式主要需要六個函式: rfid_init rfid_exit rfid_open rfid_release rfid_write rfid_read
RFID 驅動程式 rfid_init 每當RFID驅動程式模組被掛載到Kernel上後,此函式會第一個被執行,因此於此函式中必須完成RF-201模組的初始化、讀取RFID系統資訊,並向Linux Kernel註冊將會使用到屬於RFID驅動程式的裝置檔案 (device file)
RFID 驅動程式 rfid_exit 此函式與rfid_init函式互相對應,當此RFID驅動程式模組被使用者從Kernel卸載後,需要將於rfid_init函式中向Kernel註冊的裝置檔案釋放還予Kernel。
RFID 驅動程式 rfid_open 取得MINOR number 對驅動程式模組計數器加一 (模組計數目的:當root準備移除RFID驅動程式模組,需要確認沒有使用者在使用該驅動程式,由模組計數器便可確認是否還有使用者在使用)
RFID 驅動程式 rfid_release 此函式與rfid_open相對應,當使用者關閉RFID裝置檔案,則會執行此函式內部之程式,於此驅動程式只需將驅動程式模組計數器減一。
RFID 驅動程式 rfid_write 使用者對RFID裝置檔案寫入一個int時,便會執行此函式的程式,此函式需要讀取使用者輸入的資料,將其封裝成RFID模組需要的封包,並轉而使用GPIO送出寫入指令給RFID模組,之後等待RFID模組回傳資料,辨別是否寫入成功。
RFID 驅動程式 rfid_read 使用者對RFID裝置點讀取時,便會執行此函式的程式,此函式需要使用GPIO對RFID模組下達讀取的命令,之後等待RFID模組回傳資料,辨別是否讀取成功與讀取到的資料。如果RFID tag於RFID讀取器的環境中,則RFID模組會傳回正確的RFID tag內資料,則將此數值回傳給使用者程式;反之,如果RFID tag不在RFID讀取器的讀取範圍內,則會傳回讀取錯誤之封包,驅動程式必須告知使用者程式讀取錯誤。
RFID Module Specification-功能列表 Read System Information Read Block Write Block
RFID Module Specification-功能列表 Read System Information Length = 00000010B Command 1 = 00000000 B Command 2 = 00100000 Length = 00010001B System Information Command 1 = 00001000 B A. Flags = 1 Byte Command 2 = 00100000 B B. Information Flags = 1 Byt C. UID = 8 Bytes D. DSFIO = 1 Byte E. AFI = 1 Byte F. Other = 3 Bytes
RFID Module Specification-功能列表 Read Block Length = 00000011B Command 1 = 00010000 B Command 2 = 00100000 B Block = 0 – 63 (DEC) Length = 00001000B Flags = 1 Byte Command 1 = 00010000 B Security = 1 Byte ( 0 未 Lock, 1 Lock ) Command 2 = 00100000 B Data = 4 Bytes Data
RFID Module Specification-功能列表 Write Block Length = 00000111B UID = 8 Bytes Command 1 = 00100000 B Block = 0 – 63 (DEC) Command 2 = 00100000 B Data = 4 Bytes Data 注意 : 寫入時請由 Low Bytes 先送 Length = 00001000B Flags = 1 Byte Command 1 = 00100000 B Security = 1 Byte ( 0 未 Lock, 1 Lock ) Command 2 = 00100000 B Data = 4 Bytes Data