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