一款專(zhuān)用射頻讀卡器的軟件系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)
程序執(zhí)行完Init_System()函數(shù)后執(zhí)行RcChipReady函數(shù)。此函數(shù)的功能是初始化MF RC630芯片。
4.2 硬件驅(qū)動(dòng)
4.2.1 PCF8563驅(qū)動(dòng)
由于本芯片是一款標(biāo)準(zhǔn)的I2C總線設(shè)備,所以硬件驅(qū)動(dòng)實(shí)際上就是標(biāo)準(zhǔn)的I2C總線控制。由于篇幅有限,這里就不介紹了。
4.2.2 MF RC632驅(qū)動(dòng)
MF RC632是MF RC500芯片的升級(jí)產(chǎn)品,所以MFRC630的大部分寄存器與MF、RC500均相同,它們對(duì)Mifare One卡的操作流程也基本相同。下面介紹對(duì)Mifare One卡的操作流程。
(1)Mifare One卡的操作流程
整個(gè)系統(tǒng)的工作由對(duì)Mifare卡操作和系統(tǒng)后臺(tái)處理兩大部分組成。由于篇幅有限,本文只對(duì)Mifare卡的操作流程進(jìn)行簡(jiǎn)單介紹。Mifare One卡的操作可以分為以下幾項(xiàng):
①?gòu)?fù)位請(qǐng)求。當(dāng)一張Mifare卡片處在卡片讀寫(xiě)器天線的工作范圍之內(nèi)時(shí),程序員控制讀寫(xiě)器便向卡片發(fā)出REQUEST all(或REQUEST std)命令。卡片的ATR將啟動(dòng),將卡片Block 0中的卡片類(lèi)型(TagType)號(hào)共2個(gè)字節(jié)傳送給讀寫(xiě)器,建立卡片與讀寫(xiě)器的第一步通信聯(lián)絡(luò)。如果不進(jìn)行“得位請(qǐng)求”操作,讀寫(xiě)器對(duì)卡片的其他操作將不會(huì)進(jìn)行。
②反碰撞操作。如果有多張Mifare卡片處在卡片讀寫(xiě)器天線的工作范圍之內(nèi),PCD將首先與每一張卡片進(jìn)行通信,取得每一張卡片的序列號(hào)。由于每一張Mifare卡片都具有其唯一的序列號(hào),決不會(huì)相同,因此PCD根據(jù)卡片的序列號(hào)來(lái)保證一次只對(duì)一張卡操作。該操作PCD得到PICC的返回值為卡的序列號(hào)。
③卡選擇操作。完成了上述2個(gè)步驟之后,PCD必須對(duì)卡片進(jìn)行選擇操作。執(zhí)行操作后,返回卡上的SIZE字節(jié)。
④認(rèn)證操作。經(jīng)過(guò)上述3個(gè)步驟,在確認(rèn)已經(jīng)選擇了一張卡片時(shí),PCD在對(duì)卡進(jìn)行讀/寫(xiě)操作之前,必須對(duì)卡片上已經(jīng)設(shè)置的密碼進(jìn)行認(rèn)證。如果匹配,才允許進(jìn)一步的讀/寫(xiě)操作。
⑤讀/寫(xiě)操作。對(duì)卡的最后操作是讀、寫(xiě)、增值、減值、存儲(chǔ)和傳送等操作。
(2)MF RC500軟件開(kāi)發(fā)包移植
在本系統(tǒng)中,主要是將標(biāo)準(zhǔn)的MF RC500軟件開(kāi)發(fā)包進(jìn)行移植來(lái)完成MF RC632驅(qū)動(dòng)的編寫(xiě)。在本系統(tǒng)中使用的是SPI總線,所以只要將MF RC500標(biāo)準(zhǔn)軟件開(kāi)發(fā)包中對(duì)寄存器讀/寫(xiě)的函數(shù)改成SPI總線的讀/寫(xiě)函數(shù)即可。在本系統(tǒng)中主要是增加了SpiSendByte()和SpiReByte()函數(shù),同時(shí)修改了 ReadRawRc(uchar Address)和WriteR-awRc(uchar Address,uchar value)函數(shù)。部分代碼如下:
關(guān)鍵詞:
設(shè)計(jì)
實(shí)現(xiàn)
軟件系統(tǒng)
讀卡器
射頻
專(zhuān)用
射頻讀卡器
軟件
Mifare
One
MF
RC632
相關(guān)推薦
技術(shù)專(zhuān)區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開(kāi)關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車(chē)電子
- 轉(zhuǎn)換器
- 電源管理
- 信號(hào)放大器
評(píng)論