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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于DSP與FPGA實現的HDLC

          基于DSP與FPGA實現的HDLC

          作者: 時間:2012-03-20 來源:網絡 收藏

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

          設計

          中實現的主要是鏈路層協(xié)議完成數據接口的收發(fā),并完成與的數據交互,該電路由接口模塊interface、數據發(fā)送模塊transmitter和數據接收模塊receiver三部分組成。

          接口模塊interface

          interface模塊的主要功能是:通過數據、地址總線和讀寫信號向FPGA讀寫并行數據。

          在本例中數據總線的寬度取決于所使用的的數據位。由于目前DSP處理器的多為64位或32位,而完成數據交互使用8位就夠了,因此這里采用8位的數據總線cpu_data[7..0]。地址總線包括譯碼選通發(fā)送FIFO和接收FIFO的寄存器地址,命令寄存器和狀態(tài)寄存器。

          對于DSP來說,FPGA可以看成是一個普通芯片,通過片選CS/、讀寫信號RD/和WR/,就可以選中FPGA并對其進行讀寫操作。

          當FPGA需要向DSP傳遞信息時,中斷信號輸出端interrupt/變?yōu)榈碗娖?,DSP響應后可到FPGA中的狀態(tài)寄存器去讀取詳細的中斷信息并做出相應的處理。

          FPGA數據發(fā)送模塊HDLC_Send

          HDLC_Send模塊的主要功能是:對HDLC產生內部數據發(fā)送時鐘tx_clk;鎖存DSP寫入FIFO的發(fā)送數據并按指定時序啟動發(fā)送;在發(fā)送數據段前加上7E起始標志;對發(fā)送的數據及CRC計算結果進行插零操作并附上7E結束標志把結果輸出(見圖1)。

          txhdlc模塊由發(fā)送數據子模塊、標志數據插零子模塊及“7E”發(fā)送等模塊組成。

          HDLC的數據發(fā)送時鐘tx_clk由外部輸入時鐘分頻得到,能以高于比特發(fā)送的速度執(zhí)行對內部操作。

          待發(fā)送數據是由外DSP通過interface模塊寫入指定地址的緩沖存儲器的。在HDLC中,可以選用的緩沖存儲器類型有FIFO存儲器、DPRAM存儲器、移位寄存器等。在本設計中,發(fā)送數據的存儲使用的FIFO存儲器。使用這種寄存器的優(yōu)點是:只對一個FIFO入口地址進行操作,簡化FPGA設計。DSP向FPGA寫完數據后,向狀態(tài)寄存器寫標志,表示數據發(fā)完可以發(fā)送,

          發(fā)送的數據CRC的計算結果附在數據后面,再經插零后附上7E標志就可輸出。發(fā)送數據子模塊監(jiān)視著每一個串行移出的數據,當發(fā)現數據流中出現5個連“1”時,就輸出控制信號1f_detect/暫停數據移位,此時子模塊zero_insert向數據流插入一個0比特。數據發(fā)送完畢后,“7E”發(fā)送子模塊發(fā)出7E作為結束標志,同時清除標志位。

          FGPA數據接收模塊HDLC_Receiver

          HDLC_Receiver模塊的主要功能是:接收HDLC數據和時鐘,并用時鐘采樣數據;在接收的數據流中檢測有無“7E”及本機地址標志,如果有則接收數據,當檢測到數據流中有“1F”信號,并后一個數據是“0”時,對數據進行“刪零”操作;對經“刪零”后的數據寫入收FIFO;收到尾“7E”后,置收標志位,向interface模塊發(fā)出rx_data_ready信號,當DSP通過中斷接收到結束標志后,讀入數據,清標志位,檢查CRC校驗值是否正確。

          rxhdlc模塊由接收數據子模塊rx_data、標志檢測子模塊7e_detector、數據刪零子模塊zero_delete等組成。對比HDLC_receive模塊和HDLC_Send模塊,雖然兩者一些子模塊的功能是相逆的,但原理類似,不再重復說明。在HDLC_Receiver模塊中采用了FIFO來作為HDLC接收數據緩存器,因此FPGA內部收數據和DSP讀數據通過各自的讀寫口進行。

          FPGA中的接收超時判斷功能

          當由于意外情況在總線上出現不完整數據時,需對接收數據進行超時判斷,已防止在收到幀頭“7E”后長時間未收到后續(xù)數據或尾“7E”時,死等數據,導致錯判,使用的策略是:當收到“7E”及本機地址后,啟動計數器,計數時間長于最長幀一倍左右,如果從計時開始到計時結束未收到“7E”則判超時,重新接收數據;而如果在計時時間內收到“7E”則清零計數器,將數據存入收FIFO。

          DSP軟件的內容主要包括send模塊和receive模塊和CRC校驗模塊。

          DSP功能

          DSP中的功能主要分為HDLC接收,HDLC發(fā)送。

          DSP中的HDLC接收

          DSP從FPGA接收到完成收標志后,接收數據,然后清FPGA標志位,將接收到的數據進行CRC校驗后解幀,根據數據幀內容完成相關操作。

          DSP中的HDLC發(fā)送

          DSP將數據發(fā)送給FPGA,發(fā)送結束后,置FPGA發(fā)送完成標志位。DSP完成收數后還要進行CRC校驗及解幀等操作,這就要根據具體的協(xié)議進行。

          具體實現

          根據上述設計方法,已成功地實現了HDLC電路的設計。設計輸入在Altera公司的Quartus8.0版本及CCS3.0的軟件平臺上進行。首先考慮擬設計的電路需要多少內部存儲器、工作速率多少、對外部處理器的接口有何要求等。根據這些考慮,以電路圖及DSPC語言結合的方法進行設計輸入。對于時序電路,主要采用電路圖輸入的方法。

          FPGA芯片選用的是Altera公司的ACEX1K系列。該系列是Altera公司面向通信和消費類數字產品推出的低功耗、高密度的高性能FPGA集成電路,具有可與ASIC相比擬的價位。DSP使用TI公司TMS320C5416,該芯片集成度高,結構簡單,體積小可靠性高,價格低,可以裝入各種儀器儀表及控制裝置中,易于產品化。設計出的具有HDLC功能的FPGA芯片已應用于導航設備樣機的有線通訊鏈路中,成功實現了雙向數據通信。

          結語

          基于軟件編程與FPGA來共同實現HDLC協(xié)議,方法靈活、速度快。適合于DSP+FPGA的數字硬件平臺的接口設計,實現后可靠有效。



          上一頁 1 2 下一頁

          關鍵詞: DSP FPGA HDLC

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();