999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于FPGA的高速同步HDLC通信控制器設計

2010-09-19 08:41:10李志來
電子設計工程 2010年8期
關鍵詞:利用方法

陳 晨 , 李志來 , 徐 偉 , 金 光

(1.中國科學院 長春光學精密機械與物理研究所,吉林 長春 130033;2.中國科學院 研究生院,北京 100039)

高級數據鏈路控制HDLC(High-level Data Link Control)廣泛應用于數據通信領域,是確保數據信息可靠互通的重要技術。實施HDLC的一般方法通常是采用ASIC器件和軟件編程等。HDLC的ASIC芯片使用簡易,功能針對性強,性能可靠,適合應用于特定用途的大批量產品中。但由于HDLC標準的文本較多,ASIC芯片出于專用性的目的難以通用于不同版本,缺乏應用靈活性。例如 CCITT、ANSI、ISO/IEC等都有各種版本的HDLC標準,器件生產商都還有各自的標準,對HDLC的CRC序列生成多項式等有不同的規定。況且,專用于HDLC的ASIC芯片其片內數據存儲器容量有限,通常只有不多字節的FIFO可用。對于某些應用來說,當需要擴大數據緩存的容量時,只能對ASIC芯片再外接存儲器或其他電路,ASIC的簡單易用性就被抵銷掉了[1]。

FPGA是現場可編程門陣列,屬于超大規模集成電路,具有豐富的系統門、邏輯單元、塊RAM和IO引腳等硬件資源。由于FPGA具有重裝載功能,可以在其內部靈活實現各種數字電路設計,甚至可以動態改變其內部設計,動態實現不同的功能[2]。

因此,采用FPGA實現HDLC是一種可行的方法。HDLC通信控制器主要是對數據進行CRC校驗、‘0’比特插入和加幀頭幀尾操作。

1 “0”比特插入模塊

HDLC規程規定信息的傳送以幀為單位,每一幀的基本格式如圖1所示。

圖1 HDLC規程格式Fig.1 HDLC protocols format

HDLC規程指定采用8 bit的01111110為標志序列,稱為F標志。用于幀同步,表示1幀的開始和結束,相鄰2幀之間的F,既可作為上一幀的結束,又可作為下一幀的開始。標志序列也可以作為幀間填充字符,因而在數據鏈路上的各個數據站都要不斷搜索F標志,以判斷幀的開始和結束[3]。

由于HDLC具有固定的幀格式,以7EH為幀頭和幀尾,為了保證透明傳輸,即只有幀頭和幀尾出現連續的6個‘1’,其他地方不允許有連續5個以上的‘1’出現,否則就要進行‘0’比特插入,即只要遇到連續 5個‘1’,就在其后插入 1個‘0’。根據傳輸數據量的大小可采用以下2種思路實現‘0’比特插入操作。

1.1 遇‘0’緩沖實現法

由于數據中出現多少個連續的‘1’是不可控的,故最終插入‘0’的個數也是不可控的。例如要發送的“有效數據”(包含地址字段、控制字段、信息字段、幀校驗字段)為320 bit,則最多會插入64個‘0’。數據是串行輸入,每插入1個‘0’,則數據由5位變成 6位,則插‘0’后要輸入的數據就被“積壓”來,插入的‘0’越多,“積壓”的數據就越多。如果采用文獻[4]中的插‘0’方法,簡單的將‘0’插入,將會丟失 1位數據,設置1個64位的緩沖,每插入1個‘0’就把后面數據做為1位延時,插‘0’后在把已經延時1個時鐘周期的數據加進來,就保證不丟失數據。實際利用VHDL語言編譯時,其VHDL代碼為:

上述VHDL的思路:矢量a的第64位到第1位分別為datain延時64個時鐘周期的串行數據到延時1個時鐘周期的串行數據,i的初始數據為 0,每遇到連續 5個‘1’,插入 1個‘0’后,dataout輸出為datain延時i個時鐘周期的數據。這樣就做到了不丟失數據。圖2是利用ISE 9.1i仿真的波形圖。

由圖2可看到插‘0’操作后,數據比未插‘0’前變長了,而且變長了多少位是由數據內容決定的。

該方法編程簡單,占用FPGA資源少,在一個模塊內就能完成‘0’比特插入操作。

1.2 利用FIFO實現

遇‘0’緩沖實現法在傳輸大容量數據時,需要設置許多位緩沖,這樣就耗費大量的FPGA內部資源,而且隨著延時位數增加,門延時呈指數增長,累積到一定程度就會產生誤差,所有當數據量大時,上述的方法就不再適用,可以利用FIFO實現。

當數據量大時,“積壓”的數據相應也變大,可以利用FPGA內部資源FIFO節省邏輯資源,提高邏輯速度。選擇異步FIFO,即讀/寫時鐘不是同一個,這樣可高速寫入數據,再通過控制讀時鐘控制讀的信息。

利用FPGA實現的VHDL代碼為:

其基本思想是,一旦遇到5個連續的‘1’,就“抹掉”1個時鐘,利用ISE 9.1i仿真的波形圖如圖3所示。

設計一個FIFO與上述VHDL代碼產生的模塊相連,電路圖如圖4所示。

利用ISE 9.1i仿真得到的波形圖如圖5所示。可看到對datain進行了‘0’比特插入操作,保證數據不丟失。而且該方法可根據所選器件的片內資源設置任意大容量的FIFO,并且當片內FIFO的存儲量不夠時,可先存入一部分數據,等FIFO讀取一部分后,不滿時再存入一部分數據。

‘0’比特刪除操作是‘0’比特插入操作的反過程。在接收時為了還原原本的信息,就要刪除發送時插入的‘0’。以逐位延時法為例,dataout最一開始輸出延時了64個時鐘周期的串行數據,i的初始值為 64,當遇到‘11111’時,i減 1,輸出延時了i個時鐘周期的串行數據。而利用FIFO的方法就是遇到‘11111’,抹去1個寫時鐘,將數據寫入 FIFO,再按規定的時鐘把數據讀取,當然寫入的時鐘可用較高的時鐘周期。

2 CRC校驗模塊

幀校驗字段用于對幀進行循環冗余校驗,校驗的范圍從地址字段的第1個比特到信息字段的最后1個比特,但為了透明傳輸而插入的‘0’比特不在校驗范圍內。

CRC原理實際上就是在一個p位二進制數據序列之后附加一個r位二進制校驗碼,從而構成一個總長為n=p+r位的二進制序列,例如,p位二進制數據序列D=[dp-1dp-2...d1d0],r位二進制校驗碼R=[rr-1rr-2...r1r0],所得到的二進制序列就是M=[dp-1dp-2...d1d0rr-1rr-2...r1r0],附加在數據序列之后的這個校驗碼與數據序列的內容之間存在著某種特定的關系。如果因干擾等原因使數據序列中的某一位或某些位發生錯誤,這種特定關系破壞,因此,通過檢查這一關系,實現對數據正確性的檢驗[5]。

要傳輸p=16位數據1001011010101011,選定的r=16的校驗序列為10001000000100001,對應的FCS幀校驗列是用10010110101010110000000000000000(共 p+r=32位)對 2取模整除以10001000000100001后的余數 1010100011000001(共有r=16位)。因此,發送方應發送的全部數據列為10010110101010111010100011000001。接收方將收到的32位數據對 2取模整除以 r校驗二進制位列10001000000100001,如余數非0,則認為有傳輸錯誤位。

而多項式乘除法運算過程與普通代數多項式的乘除法相同。多項式的加減法運算以2為模,加減時不進位或錯位,和邏輯異或運算一致,即加法和減法等價。則對上述例舉的數據的CRC計算過程如圖6所示。

模擬上述計算CRC校驗值的方法,不難想到可用狀態機實現,設置一個17位的矢量,檢驗最高位是否為零。如果為零,則跳轉到狀態1,即所有位左移,最低位補1位數據;如果不為零,則跳轉到狀態0,最低位補1位數據,與“00010000001000010”異或,(以 CRC-CCITT 為例,由于 y16與‘1’異或必為‘0’,datain 與‘0’異或還為 datain),這種思路的VHDL代碼如下:

圖7為該VHDL代碼的仿真波形,可看到該方法模擬對2取模整除的一步步計算。

該方法思想簡單,是對2取模整除方法的模擬,直觀,易于理解,由于是串行輸入,不受需要CRC計算的數據位數限制。由于HDLC通信協議的最大優點是對要傳輸的信息文電比特結構無任何限制[6],也就是說,信息文電可以是任意的比特串,不會影響鏈路的監控操作。因此,這里給出的CRC串行算法符合HDLC傳輸文電比特結構任意的特點。

3 程序加載驗證

經過邏輯綜合和時序仿真后,利用ISE 9.1i集成開發軟件將程序燒入FPGA,利用示波器觀測FPGA按HDLC通信協議標準發出的信號。如要發送的“有效信號”(不含幀頭幀尾,未進行CRC校驗及 ‘0’比特插入之前的原始數據)為“1111 1111”,則經過FPGA處理后應發出的數據為“0111 1110 1111 1011 1000 1111 0111 1000 0011 1111 0 ”,利用示波器檢測到的信號波形如圖8所示。

由圖8可知,對數據進行CRC校驗,‘0’比特插入及加幀頭幀尾操作,發送數據正確,符合HDLC通信協議標準。

4 結束語

由于HDLC通信協議具有透明傳輸、可靠性高等優點,在數據鏈路層應用廣泛,而FPGA更具有靈活、高性能、低成本、平臺化、可定制等優點,具有系統級能的復雜可編程邏輯器件和現場可編程門陣列實現可編程片上系統也成為今后的發展方向。本文提出的基于FPGA實現HDLC/SDLC協議方法采用ISE 9.1i編譯、綜合、仿真、布線、燒寫,ISE軟件支持器件多,功能強大,操作更方便,因此,該實現方法具有很強的實用性,另外,程序加載入FPGA后發送數據正確,說明該實現方法實用、有效。

[1]王喜,吳祖民,魏武.HDLC的FPGA實現方法[J].通信與廣播電視,2005(3):23-29.

WANG Xi,WU Zu-min,WEI Wu.Realization of FPGA with HDLC[J].Communication&Audio and Video,2005(3):23-29.

[2]應三從,張行.基于FPGA的HDLC協議控制器[J].四川大學學報:工程科學版,2008,40(3):116-120.

YING San-cong,ZHANG Xing.New HDLC protocol controller based on the FPGA[J].Journal of Sichuan University:Engineering Science Edition;2008,40(3):116-120.

[3]婁景藝,王魯平,李飚.HDLC控制協議的FPGA設計與實現[J].電子設計工程,2005(5):64-66.

LOU Jing-yi,WANG Lu-ping,LI Biao.Design and implementation of a HDLC protocol controller based on the field programmable gate arrays[J].Electronic Design Engineering,2005(5):64-66.

[4]王魯平,李飚,胡敏霞.一種基于FPGA的HDLC協議控制器[J].電子產品世界,2003(11):13-14.

WANG Lu-ping,LI Biao,HU Min-xia.A HDLC protocol controller based on FPGA[J].Electronic Engineering&Product World,2003(06A):U013-U014.

[5]范紅旗,王勝,祝依龍.CRC編解碼器及其FPGA實現[J].數據采集與處理,2006,12(2):97-100.

FAN Hong-qi,WANG Sheng,ZHU Yi-long.CRC coder-encoder algorithm and its FPGA implementation[J].Journal of Data Acquisition&Processing,2006,21(B12):97-100.

[6]李曉娟,黃翌.基于FPGA的HDLC設計實現[J].現代電子技術,2007(6):35-37.

LI Xiao-juan,HUANG Yi.HDLC design realization based on FPGA[J].Modern Electronics Technique,2007,30(6):35-37.

猜你喜歡
利用方法
利用min{a,b}的積分表示解決一類絕對值不等式
中等數學(2022年2期)2022-06-05 07:10:50
利用倒推破難點
利用一半進行移多補少
學習方法
利用數的分解來思考
Roommate is necessary when far away from home
利用
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
主站蜘蛛池模板: 国产在线啪| 久久国产高潮流白浆免费观看| 免费一级α片在线观看| 黄色网址免费在线| 欧美日韩免费观看| 午夜小视频在线| 天堂成人av| 国产美女主播一级成人毛片| 日韩欧美国产中文| 老色鬼欧美精品| 婷婷激情亚洲| 91口爆吞精国产对白第三集| 人妻丰满熟妇av五码区| 亚洲欧洲日产国码无码av喷潮| 国产91丝袜在线观看| 亚洲精品va| 在线国产91| 亚洲精品成人7777在线观看| 日韩第一页在线| 一级不卡毛片| 成人午夜视频网站| 日韩毛片在线播放| 免费Aⅴ片在线观看蜜芽Tⅴ| AV片亚洲国产男人的天堂| 久久久久人妻一区精品| 熟妇无码人妻| 国产毛片片精品天天看视频| 在线国产欧美| 国产美女免费| 日韩欧美在线观看| 国产亚洲一区二区三区在线| 国产成人免费观看在线视频| 成人国产精品网站在线看| 国产欧美视频综合二区 | 中文字幕久久精品波多野结| 亚洲色图在线观看| 国产免费怡红院视频| 午夜无码一区二区三区| 国产视频入口| 欧美特黄一级大黄录像| 人妻少妇久久久久久97人妻| 伊人久热这里只有精品视频99| 伊人成人在线| 国产91精选在线观看| 天天色天天操综合网| 成人精品在线观看| 久久一本日韩精品中文字幕屁孩| 天天综合网色| 国产成a人片在线播放| 国产男人天堂| 国产一区二区三区视频| a级毛片网| 午夜免费小视频| 全裸无码专区| 久久成人国产精品免费软件| 999国内精品久久免费视频| 天堂va亚洲va欧美va国产 | 青青青国产视频手机| 午夜综合网| 日本一区二区三区精品国产| 久青草免费视频| 亚洲无码高清视频在线观看 | 国产精品女熟高潮视频| 不卡的在线视频免费观看| 久无码久无码av无码| 国产亚洲精久久久久久无码AV| 天堂成人在线视频| 狠狠综合久久| 国产成人无码Av在线播放无广告| 午夜精品福利影院| 国产无码高清视频不卡| 青青青国产免费线在| 最新国产高清在线| 国产裸舞福利在线视频合集| 亚洲天天更新| 丰满人妻中出白浆| 99精品这里只有精品高清视频| 亚洲精品高清视频| 综合色区亚洲熟妇在线| 在线播放国产99re| 国产欧美自拍视频| 999精品在线视频|