新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于DSP與FPGA實(shí)現(xiàn)的HDLC

基于DSP與FPGA實(shí)現(xiàn)的HDLC

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


引言

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

(高級(jí)數(shù)據(jù)鏈路控制)廣泛應(yīng)用于數(shù)據(jù)通信領(lǐng)域,是確保數(shù)據(jù)信息可靠互通的重要技術(shù)。實(shí)施的一般方法通常是采用ASIC器件或軟件編程等。

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

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


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

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

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

HDLC是面向比特的鏈路控制規(guī)程,其鏈路監(jiān)控功能通過一定的比特組合所表示的命令和響應(yīng)來實(shí)現(xiàn),這些監(jiān)控比特和信息比特一起以幀的形式傳送。以下是ISO/IEC3309標(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ù)、信息數(shù)據(jù))和幀校驗(yàn)序列。幀校驗(yàn)采用CRC算法,對(duì)除了插入的零以外的所有數(shù)據(jù)進(jìn)行校驗(yàn)。為了避免將數(shù)據(jù)中的7E誤為標(biāo)志,在發(fā)送端和接收端要相應(yīng)地對(duì)數(shù)據(jù)流和幀校驗(yàn)序列進(jìn)行插零及刪零操作。

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

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


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

HDLC協(xié)議操作由FPGA、DSP共同完成:HDLC接收端:首先由FPGA來收數(shù)據(jù),之后判斷幀頭“7E”及本機(jī)地址,如果是發(fā)給本機(jī)的數(shù)據(jù),則對(duì)后續(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”。


上一頁 1 2 下一頁

關(guān)鍵詞: DSP FPGA HDLC

評(píng)論


相關(guān)推薦

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

關(guān)閉