新聞中心

        EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > CPLD在射頻卡讀寫器中的應(yīng)用

        CPLD在射頻卡讀寫器中的應(yīng)用

        作者: 時(shí)間:2009-07-15 來(lái)源:網(wǎng)絡(luò) 收藏

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

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

        本文引用地址:http://www.104case.com/article/157983.htm
        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

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

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

        3 控制模塊

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

        4 性能分析

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

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

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

        為了提高系統(tǒng)的安全性,可以對(duì)對(duì)寫入卡中的數(shù)據(jù)進(jìn)行加密處理,即引入數(shù)據(jù)加密模塊,并將整個(gè)設(shè)計(jì)配置到一片容量更大的或FPGA中。


        上一頁(yè) 1 2 下一頁(yè)

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 泸西县| 连南| 宁国市| 依兰县| 新野县| 南召县| 讷河市| 全南县| 黄龙县| 永安市| 图木舒克市| 红河县| 镇巴县| 大英县| 霍城县| 叶城县| 水富县| 沧州市| 正定县| 萝北县| 新巴尔虎右旗| 富顺县| 通江县| 无棣县| 乌兰浩特市| 屏东市| 岳池县| 海门市| 永寿县| 汤原县| 娄底市| 高碑店市| 沙洋县| 龙州县| 阿鲁科尔沁旗| 新密市| 昭平县| 兴文县| 易门县| 张掖市| 太仆寺旗|