<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

          基于FPGA的高速同步HDLC通信控制器設(shè)計(jì)

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

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

          本文引用地址:http://www.ex-cimer.com/article/191467.htm

          d.JPG

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

          25z.jpg


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

          g.JPG


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

          25x.jpg


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

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



          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();