基于FPGA的高速同步HDLC通信控制器設(shè)計(jì)
而多項(xiàng)式乘除法運(yùn)算過(guò)程與普通代數(shù)多項(xiàng)式的乘除法相同。多項(xiàng)式的加減法運(yùn)算以2為模,加減時(shí)不進(jìn)位或錯(cuò)位,和邏輯異或運(yùn)算一致,即加法和減法等價(jià)。則對(duì)上述例舉的數(shù)據(jù)的CRC計(jì)算過(guò)程如圖6所示。本文引用地址:http://cafeforensic.com/article/191467.htm
模擬上述計(jì)算CRC校驗(yàn)值的方法,不難想到可用狀態(tài)機(jī)實(shí)現(xiàn),設(shè)置一個(gè)17位的矢量,檢驗(yàn)最高位是否為零。如果為零,則跳轉(zhuǎn)到狀態(tài)1,即所有位左移,最低位補(bǔ)1位數(shù)據(jù);如果不為零,則跳轉(zhuǎn)到狀態(tài)0,最低位補(bǔ)1位數(shù)據(jù),與“00010000001000010”異或,(以CRC-CCITT為例,由于y16與‘1’異或必為‘0’,datain與‘0’異或還為datain),這種思路的VHDL代碼如下:
圖7為該VHDL代碼的仿真波形,可看到該方法模擬對(duì)2取模整除的一步步計(jì)算。
該方法思想簡(jiǎn)單,是對(duì)2取模整除方法的模擬,直觀,易于理解,由于是串行輸入,不受需要CRC計(jì)算的數(shù)據(jù)位數(shù)限制。由于HDLC通信協(xié)議的最大優(yōu)點(diǎn)是對(duì)要傳輸?shù)男畔⑽碾姳忍亟Y(jié)構(gòu)無(wú)任何限制,也就是說(shuō),信息文電可以是任意的比特串,不會(huì)影響鏈路的監(jiān)控操作。因此,這里給出的CRC串行算法符合HDLC傳輸文電比特結(jié)構(gòu)任意的特點(diǎn)。
3 程序加載驗(yàn)證
經(jīng)過(guò)邏輯綜合和時(shí)序仿真后,利用ISE 9.1i集成開發(fā)軟件將程序燒入FPGA,利用示波器觀測(cè)FPGA按HDLC通信協(xié)議標(biāo)準(zhǔn)發(fā)出的信號(hào)。如要發(fā)送的“有效信號(hào)”(不含幀頭幀尾,未進(jìn)行CRC校驗(yàn)及‘O’比特插入之前的原始數(shù)據(jù))為“llll llll”,則經(jīng)過(guò)FPGA處理后應(yīng)發(fā)出的數(shù)據(jù)為“0111 1110 1111 1011 1000 1111 0111 1000 0011 1111 0”,利用示波器檢測(cè)到的信號(hào)波形如圖8所示。
由圖8可知,對(duì)數(shù)據(jù)進(jìn)行CRC校驗(yàn),‘0’比特插入及加幀頭幀尾操作,發(fā)送數(shù)據(jù)正確,符合HDLC通信協(xié)議標(biāo)準(zhǔn)。
4 結(jié)束語(yǔ)
由于HDLC通信協(xié)議具有透明傳輸、可靠性高等優(yōu)點(diǎn),在數(shù)據(jù)鏈路層應(yīng)用廣泛,而FPGA更具有靈活、高性能、低成本、平臺(tái)化、可定制等優(yōu)點(diǎn),具有系統(tǒng)級(jí)能的復(fù)雜可編程邏輯器件和現(xiàn)場(chǎng)可編程門陣列實(shí)現(xiàn)可編程片上系統(tǒng)也成為今后的發(fā)展方向。本文提出的基于FPGA實(shí)現(xiàn)HDL-C/SDLC協(xié)議方法采用ISE 9.1i編譯、綜合、仿真、布線、燒寫,ISE軟件支持器件多,功能強(qiáng)大,操作更方便,因此,該實(shí)現(xiàn)方法具有很強(qiáng)的實(shí)用性,另外,程序加載入FPGA后發(fā)送數(shù)據(jù)正確,說(shuō)明該實(shí)現(xiàn)方法實(shí)用、有效。
評(píng)論