新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA+DSP的HDLC(高級數(shù)據(jù)鏈路控制)功能實(shí)現(xiàn)

基于FPGA+DSP的HDLC(高級數(shù)據(jù)鏈路控制)功能實(shí)現(xiàn)

作者: 時(shí)間:2012-06-08 來源:網(wǎng)絡(luò) 收藏

引言

本文引用地址:http://m.butianyuan.cn/article/148918.htm

  的ASIC芯片使用簡易,針對性強(qiáng),性能可靠,適合應(yīng)用于特定用途的大批量產(chǎn)品中。但由于標(biāo)準(zhǔn)的文本較多,ASIC芯片出于專用性的目的難以通用于不同版本,缺乏應(yīng)用靈活性。有的芯片公司還有自己的標(biāo)準(zhǔn),對的CRC(循環(huán)冗余碼校驗(yàn))序列生成多項(xiàng)式等有不同的規(guī)定。專用于HDLC的ASIC芯片其片內(nèi)存儲(chǔ)器容量有限,通常只有不多字節(jié)的FIFO(先進(jìn)先出存儲(chǔ)器)可用。對于某些應(yīng)用來說,當(dāng)需要擴(kuò)大緩存的容量時(shí),只能對ASIC再外接存儲(chǔ)器或其他電路,ASIC的簡單易用性就被抵銷掉了。 HDLC的軟件編程方法靈活,通過修改程序就可以適用于不同的HDLC應(yīng)用。但程序運(yùn)行占用處理器資源多,執(zhí)行速度慢,對信號的時(shí)延和同步性不易預(yù)測。純軟件HDLC一般只能用于個(gè)別路數(shù)的低速信號處理。

  采用硬件技術(shù)處理信號,又可以通過軟件反復(fù)編程使用,能夠兼顧速度和靈活性,并能并行處理多路信號,實(shí)時(shí)性能能夠預(yù)測和仿真。

  


  采用軟件技術(shù)處理信號,也可以反復(fù)編程使用。、芯片雖成本略微高于ASIC芯片,但具有貨源暢通、可多次編程使用等優(yōu)點(diǎn)。在中小批量通信產(chǎn)品的設(shè)計(jì)生產(chǎn)中,用HDLC是一種值得采用的方法。

  HDLC的幀結(jié)構(gòu)和CRC校驗(yàn)

  為了使FPGA的設(shè)計(jì)能夠HDLC的基本功能并能按照各項(xiàng)標(biāo)準(zhǔn)的規(guī)定靈活采用不同的CRC校驗(yàn)算法,首先看一下HDLC基本的幀結(jié)構(gòu)形式。

  HDLC是面向比特的規(guī)程,其監(jiān)控功能通過一定的比特組合所表示的命令和響應(yīng)來,這些監(jiān)控比特和信息比特一起以幀的形式傳送。以下是ISO/IEC 3309標(biāo)準(zhǔn)規(guī)定的HDLC的基本幀結(jié)構(gòu)。

  

  其他的HDLC標(biāo)準(zhǔn)也有類似的幀結(jié)構(gòu)。每幀的起始和結(jié)束以7E(01111110)做標(biāo)志,兩個(gè)7E之間為段(含地址數(shù)據(jù)、數(shù)據(jù)、信息數(shù)據(jù))和幀校驗(yàn)序列。幀校驗(yàn)采用CRC算法,對除了插入的零以外的所有數(shù)據(jù)進(jìn)行校驗(yàn)。為了避免將數(shù)據(jù)中的7E誤為標(biāo)志,在發(fā)送端和接收端要相應(yīng)地對數(shù)據(jù)流和幀校驗(yàn)序列進(jìn)行插零及刪零操作。

  用FPGA+DSP實(shí)現(xiàn)HDLC功能

  對FPGA器件進(jìn)行功能設(shè)計(jì)一般采用的是Top to Down(從頂?shù)降?的方法,亦即根據(jù)要求的功能先設(shè)計(jì)出頂層的原理框圖,該圖通常由若干個(gè)功能模塊組成。再把各個(gè)模塊細(xì)化為子模塊,對較復(fù)雜的設(shè)計(jì)還可把各子模塊分成一層層的下級子模塊,各層的功能可以用硬件描述語言或電路圖來實(shí)現(xiàn)。

  

  DSP的設(shè)計(jì)則是按軟件順序執(zhí)行的方法,主函數(shù)調(diào)用子函數(shù),還可以把子函數(shù)分成下級子函數(shù),目前的DSP設(shè)計(jì)軟件主要是用C語言來完成。

  HDLC協(xié)議操作由FPGA、DSP共同完成:HDLC接收端:首先由FPGA來收數(shù)據(jù),之后判斷幀頭“7E”及本機(jī)地址,如果是發(fā)給本機(jī)的數(shù)據(jù),則對后續(xù)數(shù)據(jù)進(jìn)行判斷,如果有5個(gè)連“1”且后一位數(shù)據(jù)為“0”則將其后的一個(gè)“0”刪除,刪零后將數(shù)據(jù)存入FIFO中,收到幀尾“7E”時(shí)給出收結(jié)束標(biāo)志;然后由DSP讀收結(jié)束標(biāo)志,如果標(biāo)志為“1”讀空FIFO,清標(biāo)志位,將數(shù)據(jù)內(nèi)容進(jìn)行CRC校驗(yàn)。

  HDLC發(fā)送端:首先由DSP將數(shù)據(jù)寫入FPGA的FIFO之后,DSP給出標(biāo)志;FPGA收到標(biāo)志后,先發(fā)送幀頭“7E” ,然后發(fā)送數(shù)據(jù),如果數(shù)據(jù)中有5個(gè)連“1”則在其后插入1個(gè)“0”,數(shù)據(jù)發(fā)送結(jié)束后發(fā)送幀尾“7E”。

  FPGA設(shè)計(jì)

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

  FPGA接口模塊interface


上一頁 1 2 下一頁

評論


相關(guān)推薦

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

關(guān)閉