摘 要: 給出了一種改進型的RFID讀寫器" title="讀寫器">讀寫器設(shè)計方案。介紹了各硬件模塊,并給出了軟件的總體流程、防碰撞" title="防碰撞">防碰撞算法及實現(xiàn)代碼,最后進行了研發(fā)測試。對比基于射頻芯片的RFID讀寫器設(shè)計,此方案提高了系統(tǒng)靈敏度和讀寫距離" title="讀寫距離">讀寫距離。本設(shè)計擁有自主知識產(chǎn)權(quán),已用于開放式門禁系統(tǒng)" title="門禁系統(tǒng)">門禁系統(tǒng)。實踐表明,該系統(tǒng)電路穩(wěn)定,運行正常。
關(guān)鍵詞: RFID;讀寫器;ISO-15693協(xié)議;DSP
?
射頻識別技術(shù)(RFID)是上世紀80年代興起并不斷走向成熟的一項自動無線識別和數(shù)據(jù)獲取技術(shù)。與傳統(tǒng)的條碼、磁卡等自動識別技術(shù)相比,RFID技術(shù)在工作距離、保密性、智能化及其環(huán)境適應(yīng)能力等方面都有顯著優(yōu)勢,且可同時識別多個高速運動物體,有廣闊的發(fā)展前景[1]。
RFID系統(tǒng)由電子標簽、天線、讀寫器三部分組成。讀寫器通過天線發(fā)送、接收信號,無接觸地讀取和識別標簽中所保存的數(shù)據(jù),并將信息傳送至上位機進一步處理,從而達到目標識別的目的。由此可見,讀寫器是RFID技術(shù)的核心。目前HF頻段RFID讀寫器的研發(fā)正處于逐步成熟階段,國際上知名的大公司有TI、Philips等,國內(nèi)生產(chǎn)廠商相對較少,且大部分都是在已有射頻芯片的基礎(chǔ)上進行數(shù)字部分的研發(fā),系統(tǒng)集成商則是在國外公司知識產(chǎn)權(quán)的基礎(chǔ)上根據(jù)客戶需要做適當改進。
HF頻段RFID系統(tǒng)中標簽所獲能量微弱,無力再向周圍發(fā)射無線電波,只能反射來自讀寫器的電磁波,故標簽的響應(yīng)信號微弱,影響讀寫距離。本文針對這一問題,在介紹電子標簽的基礎(chǔ)上,給出了一種基于開放式門禁系統(tǒng)應(yīng)用的讀寫器設(shè)計方法,提出將模擬板、數(shù)字板分別研發(fā)的思想,大大提高了讀寫距離。該讀寫器工作頻率為13.56MHz,符合ISO-15693協(xié)議。硬件電路采用TI的TMS320F2812為主控芯片,以符合ISO-15693協(xié)議的所有無源標簽為讀寫目標,軟件設(shè)計很好地實現(xiàn)了多卡識別的防碰撞算法" title="防碰撞算法">防碰撞算法。
1 電子標簽簡介
每個電子標簽由耦合元件及芯片組成,內(nèi)部一般保存有約定格式的電子數(shù)據(jù),且具有無法修改、仿造、全球唯一的識別號(UID)。在HF頻段RFID系統(tǒng)中,當讀寫器處于工作狀態(tài)時,與其相連的天線線圈不斷地向外發(fā)出一組固定頻率(13.56MHz)的電磁波。當無源電子標簽進入讀寫器工作區(qū)域時,在該電磁波的激勵下,標簽內(nèi)的LC串聯(lián)諧振電路產(chǎn)生諧振,從而使電容充電而產(chǎn)生電荷。該電容又通過一個單向?qū)щ姷碾娮颖?,將電容?nèi)的電荷泵送到另一個電容內(nèi)存儲。當后者充電達到2V時,它就可用作為標簽內(nèi)部其他電路的工作電源。標簽芯片中的有關(guān)電路對讀寫器發(fā)來的信號進行解調(diào)、解碼、解密,然后對命令請求、密碼、權(quán)限等進行判斷。若為“讀”命令,控制邏輯電路則從存儲器中讀取有關(guān)信息,經(jīng)加密、編碼、調(diào)制后通過標簽內(nèi)部天線再發(fā)送給讀寫器;若為修改信息的“寫”命令,有關(guān)控制邏輯就會使內(nèi)部電荷泵提升工作電壓,以擦除EEPROM中的內(nèi)容并進行改寫;若經(jīng)判斷發(fā)現(xiàn)所對應(yīng)的密碼和權(quán)限不符,則返回出錯信息[2]。
2 讀寫器硬件設(shè)計
目前的RFID讀寫器大多采用一塊射頻芯片完成整個系統(tǒng)的收發(fā),雖簡單易行,但降噪性能和系統(tǒng)靈敏度始終沒有改善。
本設(shè)計提出模擬、數(shù)字部分分別研發(fā)的思想,硬件框圖如圖1所示。由DSP芯片產(chǎn)生脈沖位置編碼(PPM)信號,再對13.56MHz載頻進行調(diào)制。已調(diào)信號的功率很弱,需先進行功率放大,再經(jīng)濾波和調(diào)諧加到天線上,以提高對卡的操作距離。系統(tǒng)可通過DSP實現(xiàn)輸出功率控制,最小功率為0.25W。天線線圈在13.56MHz工作頻率上呈現(xiàn)阻抗形式,為了實現(xiàn)與50Ω系統(tǒng)的功率匹配,需先通過匹配電路將此阻抗轉(zhuǎn)換為50Ω電阻,然后通過50Ω同軸電纜連接到讀寫器末級。在接收通道中,由標簽響應(yīng)回來的信號,首先通過帶通濾波器取出一邊帶,放大后送入解調(diào)器,最后將解調(diào)后的信號送入DSP芯片上作A/D采樣判決,并進行解碼和校驗,完成整個信號的接收處理。該讀寫器用于開放式門禁系統(tǒng)時,除完成簡單的標簽識別外,還需通過RS232接口與上位機通信, 由此形成大的數(shù)據(jù)網(wǎng)絡(luò),以實現(xiàn)對標簽的管理、操作等。因此讀寫器的硬件設(shè)計分為模擬部分和數(shù)字部分。模擬部分即射頻模塊;數(shù)字部分又可分為主控模塊,電源管理模塊和對外接口模塊、所選芯片如表1所示。
?
?
2.1 模擬部分
本設(shè)計自主研發(fā)了一塊供電電壓為24V的模擬板,簡要論述如下。
2.1.1 發(fā)送模塊
??? 發(fā)送模塊的功能:(1)13.56MHz的晶振產(chǎn)生載波信號,DSP將欲發(fā)送的信息及調(diào)制幅度(10%)傳送至74HC125D芯片端,完成ASK調(diào)制;(2)NPN型射頻功率晶體管實現(xiàn)功率放大;(3)經(jīng)匹配電路將載頻由天線發(fā)送出去。
2.1.2 接收模塊
??? 接收模塊的功能:(1)設(shè)計窄帶濾波器取出一邊帶,并濾除13.56MHz頻率分量;(2)二級放大電路;(3)將邊帶信號與本地13.56MHz載波混頻后獲得調(diào)制到423kHz單副載波上的中頻信號;(4)將中頻信號放大并包絡(luò)檢波出原始信號;(5)運放LM358整形放大;(6)將解調(diào)后的模擬信號送至DSP采樣。
該射頻模塊的輸出阻抗為50?贅,外接天線的匹配狀況對系統(tǒng)的接收性能有直接影響,用網(wǎng)絡(luò)分析儀調(diào)試天線諧振在13.56MHz,輸出阻抗為50?贅。此外,應(yīng)防止和抑制電磁干擾,提高電磁兼容性,要選擇介電常數(shù)公差小的基材。射頻部分盡量使用SMT(表面貼裝式)元件,減少過孔,并在表面加接地金屬屏蔽層[3]。
2.2 數(shù)字部分
2.2.1 主控模塊
本系統(tǒng)采用DSP芯片TMS320F2812作為信號采集和處理的核心。該芯片采用高性能的靜態(tài)CMOS技術(shù),是基于TI C×28內(nèi)核的32位定點數(shù)字信號處理器。其優(yōu)化的事件管理器、快速靈活的中斷管理,為RFID讀寫系統(tǒng)提供了更加靈活、高效的控制方案[4]。
在本設(shè)計中,DSP芯片的供電電壓為3.3V和1.8V,外部采用27.12MHz晶振,通過片內(nèi)鎖相環(huán)5倍頻后,時鐘頻率高達135.6MHz。DSP的主控作用體現(xiàn)在:它首先通過片上自帶的12位ADC對模擬板發(fā)來的信號進行采集,并將采集后的數(shù)據(jù)暫存在片內(nèi)存儲器中,通過軟件配合實現(xiàn)噪音處理、曼徹斯特解碼及檢測碰撞等,隨后進行具體讀寫命令的判斷和執(zhí)行,并通過串行接口RS232與上位機通信。DSP的GPIO口具體使用情況如下:
GPIOA:用于通道(bit5)、相位(bit8)和調(diào)制度(bit14)選擇、命令(bit15)的輸出以及讀寫器的開關(guān)控制(0x0000)。
GPIOB:報警動作。
GPIOD:運行燈(bit5),報警燈(bit6)指示。
GPIOF:串行口232通信(bit4發(fā)、bit5收)。
在該模塊的設(shè)計中,還需總線隔離器74HC245芯片,實現(xiàn)射頻模塊與DSP的GPIOA口的連接。
2.2.2 電源管理模塊
該模塊的主要器件為L7805及PS767D318,電路原理如圖2所示。其中,24V輸入電壓經(jīng)三端穩(wěn)壓器L7805后,穩(wěn)壓至5V。由于DSP的供電電壓為3.3V和1.8V,故還需外接雙輸出低壓差電壓轉(zhuǎn)換器PS767D318,實現(xiàn)第二級電平轉(zhuǎn)換。
?
2.2.3 對外接口模塊
該模塊的主要器件為MAX232芯片,它是一款符合EIA RS-232標準和V28規(guī)范的雙向發(fā)送/接收接口芯片,通過標準的九針串口與上位機相連。
3 讀寫器軟件設(shè)計
3.1 總體設(shè)計流程
讀寫器應(yīng)用于開放式門禁系統(tǒng)時,需要PC機監(jiān)控,兩者以主從方式工作。主控模塊上電復(fù)位完成初始化后,進入等待狀態(tài)。當PC機發(fā)來指令后,中斷喚醒主控模塊接收指令并處理相應(yīng)程序,完畢后將信息返回PC機并再次進入等待狀態(tài),總體流程如圖3所示。當中斷喚起讀寫器發(fā)送命令并已檢測到有標簽進入時,便進行接收。接收部分流程如圖4所示。主控模塊在發(fā)出命令后,立即對模擬板發(fā)來的信號ADC采樣,并不斷采集噪聲,隨后完成檢測數(shù)據(jù)、解碼、校驗、防碰撞等處理,最后將標簽信息發(fā)回PC機,退出中斷。
?
?
3.2 多卡識別時防碰撞算法的實現(xiàn)
當讀寫器處于工作狀態(tài)時,其天線覆蓋范圍內(nèi)的所有標簽都將被激活,隨時準備響應(yīng)讀寫器的命令,這就造成了標簽的碰撞。
在ISO15693協(xié)議中,適用于多卡識別的命令有Inventory、Stay quiet等。Inventory用以查詢天線覆蓋范圍內(nèi)的UID(標簽識別號),其幀格式包括Flags(標志位)、Mask length(掩碼長度)、Mask value(掩碼值)等。讀寫器發(fā)送Inventory命令時須定制所需的時隙長度,并在指令域后添加掩碼碼長和碼值。假設(shè)Mask length,Mask value均為0,時隙長度slot設(shè)為16,則讀寫器在slot=0時發(fā)送Inventory命令,工作區(qū)域內(nèi)卡號尾數(shù)為0的標簽將會首先響應(yīng),并以一定的幀格式發(fā)回自己的UID,隨后在時隙slot=1時,讀寫器繼續(xù)發(fā)送EOF,工作區(qū)域內(nèi)尾數(shù)為1的標簽將會響應(yīng)。依此類推,直到讀寫器發(fā)出第15個EOF,一個完整的Inventory命令結(jié)束。若在工作區(qū)域內(nèi)有兩張標簽的卡號分別為****82H和****12H,則在slot=2時,兩張卡均響應(yīng)且產(chǎn)生碰撞。此時需記錄下碰撞位置2,然后在下一個Inventory命令中,設(shè)置Mask length=4、Mask value=2,則在新一輪的slot中,兩張標簽將分別在slot=8和slot=1時響應(yīng),這樣就很好地解決了防碰撞問題。Stay quiet命令用于使工作區(qū)內(nèi)與發(fā)送幀中UID相同的標簽處于靜止狀態(tài),不再響應(yīng)任何ISO命令。下面給出防碰撞算法的實現(xiàn)編碼(以16時隙為例):
function push(mask,address);pushes on private stack
function pop(mask,address);pops from private stack
function pulse_next_pause;generates a power pulse
function store(VICC_UID);stores VICC_UID
function poll_loop(sub_address_size as integer);
address length must be four (4) bits.
pop(mask,address)
mask=address & mask;generates new mask;send the Request
mode=anticollision
send_Request(Request_cmd,mode,mask length,mask[0])
for address=0 to(2^sub_address_size-1)
if no_collision_is_detected then;VICC is inventoried
store(VICC_UID)
??? else;remember a collision was detected
??? push(mask,address)
??? endif
??? pulse_next_pause
??? next sub_address;if some collisions have been detected and not yet processed,the function calls itself recursively to process the last;stored collision
?? if stack_not_empty then poll_loop (sub_address_size)
?? end poll_loop
?? main_cycle
?? mask=null? address=null
?? push(mask,address)? poll_loop(sub_address_size)
?? end_main_cycle
4 測試
? 研發(fā)設(shè)計過程中,對該讀寫器的性能進行了多項測試,主要測試項目及測試結(jié)果如下:
?(1)運行穩(wěn)定性:在長時間不關(guān)機情況下,運行正常,無死機或重新啟動現(xiàn)象,讀寫能力正常,工作距離有±5cm輕微浮動。
?? (2)與上位機通信情況:正常。
? ?(3)虛檢漏檢情況:無。
? ?(4)防碰撞能力:每秒40個。
? ?(5)讀寫距離:單天線1.1m左右,雙天線1.8m~2m。
? ?(6)速率問題:下行信號最快速率26.48kb/s,上行信號最快速率為26.69kb/s。對于開放式門禁系統(tǒng)完全滿足實際需求。對于那些對讀寫距離或速度有更高要求的系統(tǒng),如倉庫管理、不停車自動收費等系統(tǒng)需要用UHF頻段的射頻識別系統(tǒng)甚至是有源的射頻識別系統(tǒng)方案來解決。
?? 本文設(shè)計了一種符合ISO-15693協(xié)議的HF頻段RFID讀寫器,配合適當?shù)奶炀€,讀寫距離可達1.1m左右,多卡識別能力可達每秒40張?;谠撟x寫器的門禁系統(tǒng)已投入應(yīng)用,系統(tǒng)工作穩(wěn)定,效果良好。與市面上現(xiàn)有的HF頻段長距離讀寫器相比,在工作距離相同的情況下,多卡防碰撞識別能力有顯著提高,且產(chǎn)品信價比高,系統(tǒng)靈敏度好,運行穩(wěn)定可靠。在此讀寫器的基礎(chǔ)上,只要稍加改動也可開發(fā)成其他RFID應(yīng)用系統(tǒng),如考勤系統(tǒng)、公交車收費系統(tǒng)、超市自動售貨、電子防盜、圖書館、洗衣店等管理系統(tǒng)等。
參考文獻
[1] Klaus Finkenzeller.識別(RFID)技術(shù)[M].北京:電子工業(yè)工業(yè)出版社,2002,5.
[2] 周曉中,陽春華,劉偉群.非接觸式Mifare卡讀寫器開發(fā)[J].微型機應(yīng)用,2005,24(4):15.
[3] 武慧芝,朱云龍,羅海波.基于物流倉儲管理的RFID讀寫器設(shè)計[J].電子技術(shù)應(yīng)用,2006,32(3):75.
[4] 蘇奎峰,呂強,耿慶鋒,等.TMS320F2812原理與開發(fā)[M].北京:電子工業(yè)出版社,2005.