表中參數說明:Ri為CRC移位寄存器值(R0為低位),Ci為CRC移位寄存器初值(C0為低位),Di為輸入數據(D0為低位),Xi=Di XDR Ci,同一欄中數據的運算關系是異或(XOR)。
每次并行數據到來時,各CRC寄存器值按表4運算關系更新。最后一個字節數據輸入后CRC寄存器的值(R0~R15)即為該數據組的CRC值。模塊設計采用了VHDL語言,同步更新R0~R15寄存器的值,從表中看出,一次CRC計算最多完成4組XOR運算。如:R3<=C11 XOFR D7 XOR C7 XOR D0 XOR X0;R15<=D7XOR C7 XOR D3 XOR C3。
3 控制模塊
單片機擴展了RAM后,P2口只有P2.5~P2.7可以用來提供控制信號,不能滿足需要,因而在CPLD內部將3路信號擴展為8路控制信號,以實現對各部分進行協調控制。主要有編碼器和譯碼器的啟動信號、復位信號、指令標志信號、CRC輸出信號等控制信號。

4 性能分析
這里選用1片XILINX XC95144實現整個數據處理模塊的功能,使用軟件平臺是Xilinx Foundation 3.1i。XC95144內部有144個宏單元、3200可用門。圖5和圖6分別給出了編碼器和譯碼器的部分時序仿真結果及其說明。可以看到,二者均實現了協議要求,編碼器在準確的位置實現脈沖位置調制,譯碼器能準確地對曼徹斯特碼數據進行譯碼,并計算出輸入數據的CRC值。
用AT89C51單片機提供編碼數據以及模擬待譯碼曼碼數據流對模塊功能進行實測,用示波器觀察各測試點信號,結果基本上與時序仿真的波形圖相同,達到了預期設計的目標。
本文較系統地介紹了一類遠距離射頻卡讀寫器數字處理模塊的設計,特別在于:(1)采用單片CPLD實現了射頻卡讀寫器數字模塊功能,采用了原理圖和VHDL相結合自頂向下的設計方法[2][5],樣機PCB版面積小,開發周期短,性能穩定。其設計方案和思路對其他類別射頻卡讀寫器設計具有一定的參考價值。(2)提出了一種快速實現CRC-CCITT的并行運算方法,該方法適用于高速數據傳輸場合。
為了提高系統的安全性,可以對對寫入卡中的數據進行加密處理,即引入數據加密模塊,并將整個設計配置到一片容量更大的CPLD或FPGA中。





