HDLC的DSP與FPGA實(shí)現
FGPA數據接收模塊HDLC_Receiver
本文引用地址:http://dyxdggzs.com/article/112019.htmHDLC_Receiver模塊的主要功能是:接收HDLC數據和時(shí)鐘,并用時(shí)鐘采樣數據;在接收的數據流中檢測有無(wú)“7E”及本機地址標志,如果有則接收數據,當檢測到數據流中有“1F”信號,并后一個(gè)數據是“0”時(shí),對數據進(jìn)行“刪零”操作;對經(jīng)“刪零”后的數據寫(xiě)入收FIFO;收到尾“7E”后,置收標志位,向interface模塊發(fā)出rx_data_ready信號,當DSP通過(guò)中斷接收到結束標志后,讀入數據,清標志位,檢查CRC校驗值是否正確。
rxhdlc模塊由接收數據子模塊rx_data、標志檢測子模塊7e_detector、數據刪零子模塊zero_delete等組成。對比HDLC_receive模塊和HDLC_Send模塊,雖然兩者一些子模塊的功能是相逆的,但原理類(lèi)似,不再重復說(shuō)明。在HDLC_Receiver模塊中采用了FIFO來(lái)作為HDLC接收數據緩存器,因此FPGA內部收數據和DSP讀數據通過(guò)各自的讀寫(xiě)口進(jìn)行。
FPGA中的接收超時(shí)判斷功能
當由于意外情況在總線(xiàn)上出現不完整數據時(shí),需對接收數據進(jìn)行超時(shí)判斷,已防止在收到幀頭“7E”后長(cháng)時(shí)間未收到后續數據或尾“7E”時(shí),死等數據,導致錯判,使用的策略是:當收到“7E”及本機地址后,啟動(dòng)計數器,計數時(shí)間長(cháng)于最長(cháng)幀一倍左右,如果從計時(shí)開(kāi)始到計時(shí)結束未收到“7E”則判超時(shí),重新接收數據;而如果在計時(shí)時(shí)間內收到“7E”則清零計數器,將數據存入收FIFO。
DSP軟件的內容主要包括send模塊和receive模塊和CRC校驗模塊。
DSP功能
DSP中的功能主要分為HDLC接收,HDLC發(fā)送。
DSP中的HDLC接收
DSP從FPGA接收到完成收標志后,接收數據,然后清FPGA標志位,將接收到的數據進(jìn)行CRC校驗后解幀,根據數據幀內容完成相關(guān)操作。
DSP中的HDLC發(fā)送
DSP將數據發(fā)送給FPGA,發(fā)送結束后,置FPGA發(fā)送完成標志位。DSP完成收數后還要進(jìn)行CRC校驗及解幀等操作,這就要根據具體的協(xié)議進(jìn)行。
具體實(shí)現
根據上述設計方法,已成功地實(shí)現了HDLC電路的設計。設計輸入在A(yíng)ltera公司的Quartus 8.0版本及CCS 3.0的軟件平臺上進(jìn)行。首先考慮擬設計的電路需要多少內部存儲器、工作速率多少、對外部處理器的接口有何要求等。根據這些考慮,以電路圖及DSP C語(yǔ)言結合的方法進(jìn)行設計輸入。對于時(shí)序電路,主要采用電路圖輸入的方法。
FPGA芯片選用的是Altera公司的ACEX 1K系列。該系列是Altera公司面向通信和消費類(lèi)數字產(chǎn)品推出的低功耗、高密度的高性能FPGA集成電路,具有可與ASIC相比擬的價(jià)位。DSP使用TI公司TMS320C5416,該芯片集成度高,結構簡(jiǎn)單,體積小可靠性高,價(jià)格低,可以裝入各種儀器儀表及控制裝置中,易于產(chǎn)品化。設計出的具有HDLC功能的FPGA芯片已應用于導航設備樣機的有線(xiàn)通訊鏈路中,成功實(shí)現了雙向數據通信。
結語(yǔ)
基于軟件編程與FPGA來(lái)共同實(shí)現HDLC協(xié)議,方法靈活、速度快。適合于DSP+FPGA的數字硬件平臺的接口設計,實(shí)現后可靠有效。
參考文獻:
[1]張德民. 數據通信[M]. 北京:科學(xué)技術(shù)文獻出版社,1997
[2]ISO/IEC 3309: Information technology-Telecommunications and information exchange between systems-High-level data link control (HDLC) procedures-Frame structure, P.4. Switzerland: International Electrotechnical Commission, Jun 2002
[3]TMS320C5416 DSP design reference
[4]Altera Corporation. MAX+plus II, Version 10.0, Sep 2000
[5]Altera Corporation. ACEX 1K Programmable Logic Family Data Sheet, Altera Digital Library,Version 3,2001
評論