基于A(yíng)RM的嵌入式RIFD讀寫(xiě)器設計
圖 3 系統電源電路圖
4.3 SDRAM 接口電路
在本系統中,采用了 HY57V641620 SDRAM 芯片,存儲容量為 4 組×16M 位(8M 字節),工作電壓為 3.3V,支持自動(dòng)刷新和自刷新,16 位數據寬度。該芯片是通過(guò)行、列地址來(lái)定義存儲器地址空間的,A11-A0 是列地址,A7-A0 是行地址,芯片管腳 BA0、BA1 用于片內 4 個(gè)存儲器組的選擇,將它與 ADDR21 和ADDR22 相連,利用地址高端進(jìn)行相應的選擇。
在本系統中,采用該 JTAG 接口對程序進(jìn)行調試和下載。標準的 JTAG 接口是 4 線(xiàn):TMS、TCK、TDI、TDO,分別為測試模式選擇、測試時(shí)鐘、測試數據輸入和測試數據輸出。
5 讀寫(xiě)器的軟件設計
根據 RFID 讀寫(xiě)器的需要,移植了UC/OS-Ⅱ。嵌入式系統通信程序循環(huán)發(fā)送命令,檢測是否有卡待讀,如果接收到從 RFID 模塊傳來(lái)的卡號信息,則將卡號從信息中提取出來(lái)發(fā)送至 PC 機上的應用程序,由應用程序對它進(jìn)行辨識。無(wú)論是與 RFID 模塊的通信還是與 PC 機的通信,都采用了串口通信方式,所以首先應對串口進(jìn)行設置。
當嵌入式控制程序向 RFID 模塊發(fā)送完讀卡的相關(guān)命令后,就需要等待接收傳回的卡號數據信息,由于系統串口采用的是查詢(xún)方式,一旦發(fā)送端存在數據遺失,一直未能有數據傳送回來(lái),則程序將進(jìn)入死循環(huán),所以在程序中設計了自動(dòng)終止功能。在系統設計中該部分子內容只接收來(lái)自 RFID模塊的數據,故只考慮串口2。
讀卡程序如下:
char recv_rfid()
{
char lm;
int m,l;
if(whichUart==1) // 串口 2,接收從 RFID 模塊傳來(lái)的數據
{
wh: for(;(!(rUTRSTAT1 0x1));){
m=m+1; // 等待的同時(shí)對變量 m 計數
if(m==500) // 判斷 m 是否已累計到 500 還未接收到有效數據
{err_flag=1; // 若是,則將標志 err_flag 置 1
goto wh1; // 跳轉到標記為 wh1 的程序處
}}
lm=RdURXH1(); // 若接收到有效數據,則將串口數據賦給變量 lm
return(lm); // 返回 lm 的值
}
wh1: l=0; // 標記 wh1 處程序,實(shí)為跳出子程序
}
寫(xiě)卡的過(guò)程只需要將從應用程序處獲取持卡人的相關(guān)信息然后發(fā)送至RFID 收發(fā)模塊,由 RFID模塊寫(xiě)入射頻卡中,因為要驗證寫(xiě)入信息是否正確,所以該程序還需要實(shí)現讀取射頻卡中的信息并返回給應用程序,由應用程序來(lái)判斷寫(xiě)入信息的正誤。持卡人的相關(guān)信息包括姓名、性別、年齡、工作單位、身份證號、發(fā)卡日期和發(fā)卡時(shí)間。
6 結束語(yǔ)
本文創(chuàng )新點(diǎn):基于 S6700 的嵌入式的RIFD 讀寫(xiě)器具有成本低廉,穩定性好等特點(diǎn),完全支持ISO/ IEC15693 協(xié)議的全部命令,并且實(shí)現了同時(shí)識別,若設計出功率放大器,讀寫(xiě)距離可以達到 1m左右,可滿(mǎn)足門(mén)禁、校園一卡通等非高速識別應用場(chǎng)合的需要,在低成本應用領(lǐng)域有較廣闊的應用空間。
參考文獻:
[1].S3C44B0Xdatasheethttp://www.dzsc.com/datasheet/S3C44B0X_589522.html.
[2].PC datasheethttp://www.dzsc.com/datasheet/PC+_2043275.html.
[3].P89C58datasheethttp://www.dzsc.com/datasheet/P89C58_538826.html.
[4].P89C52 datasheethttp://www.dzsc.com/datasheet/P89C52+_538859.html.
[5].ES1datasheethttp://www.dzsc.com/datasheet/ES1_2344066.html.
[6].B1117 datasheethttp://www.dzsc.com/datasheet/B1117+_1097298.html.
評論