CPLD在射頻卡讀寫(xiě)器中的應用

發(fā)布時(shí)間:2010-8-2 10:18    發(fā)布者:lavida
關(guān)鍵詞: CPLD , 讀寫(xiě)器 , 射頻卡
1 系統工作原理和CPLD特性

射頻卡讀寫(xiě)系統又稱(chēng)射頻識別系統(Radio Frequency Identification),它是利用無(wú)線(xiàn)方式進(jìn)行非接觸式雙向數據通信,進(jìn)而達到識別目標并交換信息的目的。射頻識別技術(shù)發(fā)展迅速,在門(mén)禁、交通這、防盜、金融、身份證管理、工業(yè)自動(dòng)化等方面有著(zhù)廣泛的應用前景。按照相關(guān)標準,非接觸IC卡可以分為3種:(1)密耦合卡(ISO10536),作用距離0~1cm。(2)近耦合卡(ISO 14443),作用距離0~10cm。(3)疏耦合卡(ISO 15693),作用距離0~150cm[1]。

基于ISO 15693協(xié)議標準設計的射頻卡讀寫(xiě)器是目前中低頻段工作距離最遠(達1.5米)的射頻識別裝置。射頻卡由半導體廠(chǎng)商提供,目前國內外均有符合該標準的商用化射頻卡。



讀寫(xiě)器和射頻卡之間的數據交換主要有兩種:(1)下行數據是讀寫(xiě)器向射頻卡發(fā)送的具有固定幀格式的指令和數據:(1)上行數據是射頻卡響應讀寫(xiě)器指令后返回的數據。讀寫(xiě)器分前端收發(fā)模塊和后臺數據處理模塊。本文主要涉及數據處理部分,其主要功能有:指令裝配、下行數據編碼(讀寫(xiě)器→卡)、上行數據解碼(卡→讀寫(xiě)器)以及差錯控制模塊。射頻卡讀寫(xiě)器結構如圖1所示。

在實(shí)際應用中,密耦合卡和近耦合卡距離射頻卡讀寫(xiě)器作用距離特別小,一般每次只要求響應一張卡(如公交售票系統)。而疏耦合卡往往應用在對多卡同時(shí)進(jìn)行響應的場(chǎng)合(如多個(gè)持卡行李同時(shí)經(jīng)過(guò)門(mén)檢),讀寫(xiě)器與多卡同時(shí)進(jìn)行數據交換可以通過(guò)軟件設計加入“防碰撞機制”實(shí)現。但是由于讀寫(xiě)器在響應某張卡時(shí)的數據交換時(shí)間被限制在200μs~300μs內,選用普通單片機無(wú)法達到這一要求,因此在設計中選用了高速CPLD器件來(lái)實(shí)現編碼、解碼以及差錯控制功能。一方面在響應時(shí)間上滿(mǎn)足了實(shí)際應用的需要;另一方面簡(jiǎn)化了軟件設計。



CPLD是從PAL和GAL發(fā)展起來(lái)陣列型高密度PLD器件,內部由可編程邏輯宏單元、可編程I/O單元、可編程內部連線(xiàn)構成。它們大多采用E2PROM和FLASH閃存工藝,掉電后編程信息不丟失[2]。器件性能可以滿(mǎn)足不同場(chǎng)合的需要,如XILINX.htm" target="_blank" title="XILINX貨源和PDF資料">XILINX公司XC95XL系列CPLD具有低功耗特性,輸出電壓2.5V/3.3V,端到端延時(shí)5ns,系統最高工作頻率可達178M[3]。目前CPLD器件被廣泛應用于代替中小規模數字電路,提高系統的可靠性、抗干擾性能和處理速度。通過(guò)管腳鎖定和預留切換端口,可以在不改動(dòng)原PCB電路板的基礎上對模塊的功能進(jìn)行修改和完善,給調試帶來(lái)方便。

2 功能模塊實(shí)現

2.1 編碼器與譯碼器

單片機啟動(dòng)編碼后,編碼模塊向單片機發(fā)中斷(INT0)獲取待編碼的指令數據,同時(shí)將指令數據送入并行CRC模塊。當指令數據完成編碼后,控制電路將2字節CRC值緊接在數據之后進(jìn)行編碼。譯碼時(shí),譯碼器檢測到起始位后,開(kāi)始譯碼。譯碼后的數據通過(guò)中斷(INT1)通知單片機取走。并同時(shí)送入CRC并行運算模塊進(jìn)行校驗,單片機在特定的時(shí)刻(接收完最后一字節數據時(shí))讀取CRC校驗標志端口CRCALL0,判斷整個(gè)數據串的正確性。



編譯碼的數據格式如下:

(1)數據編碼 從讀寫(xiě)器到卡的數據采用脈沖位置調制即“1/256”編碼。用256個(gè)時(shí)隙表示8bit數據,通過(guò)控制bit脈沖出現的時(shí)間位置來(lái)表示0~255范圍內的數據。如圖2,在第255個(gè)位置出現的位置脈沖(9.44μs高電平的9.44μs低電平)表示數據E1(HEX),采用計數器加控制電路即可實(shí)現?刂撇糠謪f(xié)助實(shí)現數據無(wú)縫編碼及形成幀起始位和結束位,用VHDL設計易于實(shí)現。編碼后的數據進(jìn)行ASK調制(13.56MHz載波),經(jīng)天線(xiàn)發(fā)射出去。

(2)數據譯碼 從射頻卡返回的數據經(jīng)過(guò)一次解調(去掉13.56MHz載波)后,數據編碼格式如圖3所示?梢灾苯舆M(jìn)行數據譯碼,也可以去除子載波(423.75kHz)后得到Manchester碼再譯碼。這里采用后者,通過(guò)在每一bit的前、后半段時(shí)間內兩次取樣、判決、加以串并變換即可得到譯碼后的并行數據并送至并行CRC模塊進(jìn)行CRC校驗,同時(shí)送往單片機處理,行CRC模塊在校驗結束時(shí)通知單片機取校驗結果。

2.2 差錯處理模塊

與射頻卡內部電路配合,讀寫(xiě)器端采用了常用的CRC檢錯得傳機制。為了縮短處理時(shí)間,滿(mǎn)足讀寫(xiě)器在實(shí)際應用中對多張卡同時(shí)處理時(shí)的響應時(shí)間要求,設計采用硬件實(shí)現。



計算下行數據的CRC值以及對上行數據進(jìn)行CRC校驗,實(shí)際上都是完成數據的CRC計算,二者可以共用一個(gè)模塊,通過(guò)控制部分協(xié)調分工。通常CRC采用性反饋移位寄存器串行實(shí)現(見(jiàn)圖4)[4],這里提出了一種并行計算CRC的方法,具有更高的處理速度,使讀寫(xiě)器對響應時(shí)間縮短。

CRC-CCITT算法生成多相式為:x 16+x 12+x 5+1[4]。計算CRC實(shí)際上是將數據通過(guò)線(xiàn)性反饋移位寄存器,所有數據移入后CRC寄存器的值即為16位CRC值。并行CRC運算模塊每次輸入8位數據,相當于一次并行運算就得到了串行移位運算時(shí)需要8位移位所得的結束。由表1~表4可以知道并行CRC實(shí)現的原理:每個(gè)時(shí)鐘到來(lái)時(shí)完成8bit數據CRC值計算;下一個(gè)8bit數據到來(lái)時(shí),把上一個(gè)8bit數據的CRC值C15~C0作為初值,繼續完成并行CRC計算。即每次處理一個(gè)字節。

表1 移位前CRC寄存器值(初值)

R15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0
C15C14C13C12C11C10C9C8C7C6C5C4C3C2C1C0

表2 1次移位后CRC寄存器值

R15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0
X0
C15
C14
C13
C12
C11
X0
C10
C9
C8
C7
C6
C5
C4
X0
C3
C2
C1

表3 2次移位后CRC寄存器

R15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0
X1
X0
C15
C14
C13
C12
X1
C11
X0
C10
C9
C8
C7
C6
C5
X1
C4
X0
C3
C2

表4 8次移位后CRC寄存器值

R15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0
X7
X3
X6
X2
X5
X1
X4
X0
X3

X7
X2
X6
X1
X5
X0
C15
X4
C14
X3
C13
X2
C12
X1
C11
X7
X0
C10
X6
C9
X5
C8
X4

表中參數說(shuō)明:Ri為CRC移位寄存器值(R0為低位),Ci為CRC移位寄存器初值(C0為低位),Di為輸入數據(D0為低位),Xi=Di XDR Ci,同一欄中數據的運算關(guān)系是異或(XOR)。

每次并行數據到來(lái)時(shí),各CRC寄存器值按表4運算關(guān)系更新。最后一個(gè)字節數據輸入后CRC寄存器的值(R0~R15)即為該數據組的CRC值。模塊設計采用了VHDL語(yǔ)言,同步更新R0~R15寄存器的值,從表中看出,一次CRC計算最多完成4組XOR運算。如:R3

3 控制模塊

單片機擴展了RAM后,P2口只有P2.5~P2.7可以用來(lái)提供控制信號,不能滿(mǎn)足需要,因而在CPLD內部將3路信號擴展為8路控制信號,以實(shí)現對各部分進(jìn)行協(xié)調控制。主要有編碼器和譯碼器的啟動(dòng)信號、復位信號、指令標志信號、CRC輸出信號等控制信號。



4 性能分析

這里選用1片XILINX XC95144實(shí)現整個(gè)數據處理模塊的功能,使用軟件平臺是XILINX.htm" target="_blank" title="XILINX貨源和PDF資料">XILINX Foundation 3.1i。XC95144內部有144個(gè)宏單元、3200可用門(mén)。圖5和圖6分別給出了編碼器和譯碼器的部分時(shí)序仿真結果及其說(shuō)明?梢钥吹,二者均實(shí)現了協(xié)議要求,編碼器在準確的位置實(shí)現脈沖位置調制,譯碼器能準確地對曼徹斯特碼數據進(jìn)行譯碼,并計算出輸入數據的CRC值。

用AT89C51單片機提供編碼數據以及模擬待譯碼曼碼數據流對模塊功能進(jìn)行實(shí)測,用示波器觀(guān)察各測試點(diǎn)信號,結果基本上與時(shí)序仿真的波形圖相同,達到了預期設計的目標。

本文較系統地介紹了一類(lèi)遠距離射頻卡讀寫(xiě)器數字處理模塊的設計,特別在于:(1)采用單片CPLD實(shí)現了射頻卡讀寫(xiě)器數字模塊功能,采用了原理圖和VHDL相結合自頂向下的設計方法[2][5],樣機PCB版面積小,開(kāi)發(fā)周期短,性能穩定。其設計方案和思路對其他類(lèi)別射頻卡讀寫(xiě)器設計具有一定的參考價(jià)值。(2)提出了一種快速實(shí)現CRC-CCITT的并行運算方法,該方法適用于高速數據傳輸場(chǎng)合。

為了提高系統的安全性,可以對對寫(xiě)入卡中的數據進(jìn)行加密處理,即引入數據加密模塊,并將整個(gè)設計配置到一片容量更大的CPLD或FPGA中。
本文地址:http://selenalain.com/thread-18387-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页