1 引言
USB接口ID讀卡器是射頻識別RFID(Radio Frequency Identification)在125 kHz的具體應(yīng)用,適用于網(wǎng)吧管理、會員系統(tǒng)、考勤消費(fèi)發(fā)卡器、身份識別前端等。一般的USB接口ID讀卡器大多采用射頻接收模塊和嵌入式微控制器,但成本高,同時解碼程序采用定時查詢或監(jiān)測信號邊沿狀態(tài)的方法進(jìn)行解碼,這些解碼方法對天線載波頻率以及定時準(zhǔn)確度要求較高,當(dāng)載波稍微偏離規(guī)定范圍時將不能正確讀卡。為降低產(chǎn)品的成本同時提高解碼的速度、準(zhǔn)確率、敏感度等,筆者創(chuàng)新采用內(nèi)嵌USB接口的單片機(jī)和EM4095設(shè)計USB接口ID讀卡器,同時介紹一種新的解碼技術(shù),使得載波頻率偏移不影響解碼,而且無需檢測信號的邊沿狀態(tài),能夠更可靠、快速讀卡。
2 系統(tǒng)總體框架及硬件電路設(shè)計
2.1 系統(tǒng)總體框架
USB接口的125 kHz ID讀卡器主要包括基于SN8P2201單片機(jī)的主控模塊、基于EM4095的射頻模塊、通信模塊(USB)、外部時鐘、光顯示模塊(LED)、聲音提示模塊(蜂鳴器)、電源模塊、天線,如圖l所示。
ID讀卡器工作過程:USB接通后,紅色LED燈亮,伴隨蜂鳴器鳴叫,表明讀卡器準(zhǔn)備就緒。若1 min內(nèi)無ID卡靠近讀卡器,讀卡器將自動進(jìn)入睡眠狀態(tài),此時紅色LED燈自動熄滅,綠色LED燈點(diǎn)亮。當(dāng)有ID卡接近讀卡器時,讀卡器自動激活,綠色LED燈熄滅,紅色LED燈點(diǎn)亮。讀卡器成功讀取ID卡號后,蜂鳴器嗚叫,同時數(shù)據(jù)通過USB傳輸至PC機(jī)。只需打開.txt文件,就可輕松接收數(shù)據(jù),無需任何上位機(jī)。
2.2 系統(tǒng)硬件電路設(shè)計
2.2.1 主控和通信模塊電路
主控和通信模塊電路如圖2所示。SONIX單片機(jī)SN8P2201的P1.0、P1.1、P0.0引腳分別控制射頻器件EM4095工作狀態(tài)、接收解碼的同步時鐘、接收解調(diào)數(shù)據(jù)。
SN8P2201引腳5連接復(fù)位電路,電阻R6和電容C8組成基本RC復(fù)位電路。該復(fù)位電路在系統(tǒng)上電時能夠?yàn)閺?fù)位引腳提供一個緩慢上升的復(fù)位信號,該復(fù)位信號上升速度低于VDD的上電速度,從而為系統(tǒng)提供合理復(fù)位時序,當(dāng)復(fù)位引腳檢測到高電平時,系統(tǒng)復(fù)位結(jié)束,進(jìn)入正常工作狀態(tài);對于電源異常情況,二極管正向?qū)ㄊ笴1快速放電并與VDD保持一致,避免復(fù)位引腳持續(xù)高電平,系統(tǒng)無法正常復(fù)位;R7是必不可少的限流電阻。
而通信電路USB,SN8P2201的D+、D一引腳只接適當(dāng)電容和電阻,就可與單片機(jī)內(nèi)部數(shù)據(jù)進(jìn)行USB通信,電路簡單。需注意的是:VREG和GND之間連接1μF電容有助于3.3 V穩(wěn)壓器穩(wěn)定輸出,應(yīng)盡可能靠近SN8P2201放置。
2.2.2 射頻收發(fā)電路設(shè)計
射頻器件EM4095通過天線連續(xù)發(fā)射射頻載波信號,為電子標(biāo)簽提供能量,激活電子標(biāo)簽;調(diào)制發(fā)射信號,將數(shù)據(jù)通過天線傳送給電子標(biāo)簽;通過天線接收電子標(biāo)簽發(fā)射信號,并解調(diào)所接收的信號,從而得到電子標(biāo)簽中的數(shù)據(jù),傳送給單片機(jī)做進(jìn)一步處理。圖3為射頻收發(fā)電路。
LA(天線電感值)、C4、C5、C9、C10和C11組成LC串聯(lián)諧振天線,諧振頻率為其中C0=C4||C10||C11+C5||C9。天線的工作電流與諧振電路Q值有關(guān),可在天線線圈LA上并聯(lián)一只電阻,調(diào)節(jié)Q值。
EM4095的DEMOND_IN引腳輸入AM信號在VCO輸出信號的同步控制下被采樣,采樣輸出信號由引腳CDEC外接電容隔直和帶通濾波采樣(消除輸出中的載頻成分、高頻和低頻噪聲)后,經(jīng)異步比較得到對應(yīng)的數(shù)字信號。接收時,天線感生信號經(jīng)耦合電容輸入引腳DEMOND_IN,該信號與天線驅(qū)動器的輸入信號由相位比較器進(jìn)行相位比較,形成與相位差對應(yīng)的電壓,作為壓控振蕩器的控制信號,最終鎖定天線發(fā)射信號頻率。RDY/CL發(fā)射的方波是同天線處載波的頻率相同且同步,通過它傳給單片機(jī)來計算同步載波的周期數(shù)。DEMOND_OUT是AM模塊攜帶的數(shù)字信號的輸出。SHD=1,EM4095為睡眠狀態(tài)。上電后,先為高電平以便初始化,然后為低電平開始發(fā)送數(shù)據(jù)。MOD接地表示只讀模式。
2.2.3 其他模塊電路設(shè)計
該系統(tǒng)設(shè)計的天線電感值是345μH。天線采用銅制漆包線繞制,漆包線直徑為0.29 mm。圓形(內(nèi)徑)直徑為2 cm,115圈。讀卡器直接通過USB提供+5 V電壓,使單片機(jī)和EM4095正常工作,無需外接電源以及額外的5 V穩(wěn)壓器等,這樣電源模塊電路設(shè)計簡單,且節(jié)省成本。采用6 MHz晶振為單片機(jī)提供外部高速時鐘。
2.3 硬件測試
EM4095的調(diào)試首先檢查有無時鐘輸出。不管電子標(biāo)簽是否靠近讀寫器,上電后RDY/CLK引腳始終輸出時鐘信號,否則說明EM4005未開始工作。當(dāng)確定輸出時鐘后,可以把電子標(biāo)簽放在讀寫器的工作范圍內(nèi),通過示波器觀察SHD引腳的電平是否由高變低,DEMOD_OUT引腳是否有數(shù)據(jù)波形輸出,若有則說明EM4005工作正常。此時,將RDY/CLK引腳接到示波器,觀察其波形,通過調(diào)整C4,C10,C11的值,使輸出方波的頻率接近125 kHz。
3 系統(tǒng)軟件設(shè)計
圖4為軟件設(shè)計總體流程。該流程基本說明讀卡器工作的全過程。
圖5中,wk05是幀頭計數(shù)器,time是計算RDY/CLK引腳載波的周期數(shù)。在中斷的第一個下降沿到來時,啟動time周期計數(shù)。尋找?guī)^時,只要time≈64,都將其譯碼成1。在找到8個連續(xù)“1”后,這時下降沿間隔會出現(xiàn)上述3種情況,根據(jù)Tag標(biāo)志位來譯碼。在找到9個“l(fā)”后,才會把譯碼的數(shù)據(jù)送入BUFFER,再經(jīng)奇偶校驗(yàn)正確后,發(fā)送給PC機(jī)。
4 結(jié)束語
USB接口的125 kHz ID讀卡器設(shè)計簡單,成本低廉,而且在程序中就可將USB發(fā)送的數(shù)據(jù)轉(zhuǎn)換成鍵盤數(shù)據(jù),無需任何上位機(jī)就可接收數(shù)據(jù),操作更簡單。同時軟件采用解碼方法可以在讀曼徹斯特碼的同時進(jìn)行同步解碼,速度較快,而且由于對載波頻率的變化不敏感,故讀卡成功率非常高。讀卡的距離可達(dá)5 em,時間小于200 ms。