<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 基于FPGA的高速同步HDLC通信控制器設計

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

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

該方法編程簡(jiǎn)單,占用資源少,在一個(gè)模塊內就能完成‘0’比特插入操作。
1.2 利用FIFO實(shí)現
遇‘0’緩沖實(shí)現法在傳輸大容量數據時(shí),需要設置許多位緩沖,這樣就耗費大量的內部資源,而且隨著(zhù)延時(shí)位數增加,門(mén)延時(shí)呈指數增長(cháng),累積到一定程度就會(huì )產(chǎn)生誤差,所有當數據量大時(shí),上述的方法就不再適用,可以利用FIFO實(shí)現。
當數據量大時(shí),“積壓”的數據相應也變大,可以利用內部資源FIFO節省邏輯資源,提高邏輯速度。選擇異步FIFO,即讀/寫(xiě)時(shí)鐘不是同一個(gè),這樣可高速寫(xiě)入數據,再通過(guò)控制讀時(shí)鐘控制讀的信息。
利用FPGA實(shí)現的VHDL代碼為:

本文引用地址:http://dyxdggzs.com/article/191467.htm

d.JPG

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

25z.jpg


設計一個(gè)FIFO與上述VHDL代碼產(chǎn)生的模塊相連,電路圖如圖4所示。

g.JPG


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

25x.jpg


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

2 CRC校驗模塊
幀校驗字段用于對幀進(jìn)行循環(huán)冗余校驗,校驗的范圍從地址字段的第1個(gè)比特到信息字段的最后1個(gè)比特,但為了透明傳輸而插入的‘0’比特不在校驗范圍內。
CRC原理實(shí)際上就是在一個(gè)p位二進(jìn)制數據序列之后附加一個(gè)r位二進(jìn)制校驗碼,從而構成一個(gè)總長(cháng)為n=p+r位的二進(jìn)制序列,例如,P位二進(jìn)制數據序列,r位二進(jìn)制校驗碼,所得到的二進(jìn)制序列就是,附加在數據序列之后的這個(gè)校驗碼與數據序列的內容之間存在著(zhù)某種特定的關(guān)系。如果因干擾等原因使數據序列中的某一位或某些位發(fā)生錯誤,這種特定關(guān)系破壞,因此,通過(guò)檢查這一關(guān)系,實(shí)現對數據正確性的檢驗。
要傳輸p=16位數據1001011010101011,選定的r=16的校驗序列為10001000000100001,對應的FCS幀校驗列是用100101101010101100000 00000000000(共p+r=32位)對2取模整除以10001000000100001后的余數1010100011000001(共有r=16位)。因此,發(fā)送方應發(fā)送的全部數據列為
10010110101010111010100011000001。接收方將收到的32位數據對2取模整除以r校驗二進(jìn)制位列10001000000100001,如余數非O,則認為有傳輸錯誤位。



關(guān)鍵詞: FPGA HDLC 通信 制器設計

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>