新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 80C152單片機(jī)上HDLC通信規(guī)程中的應(yīng)用

80C152單片機(jī)上HDLC通信規(guī)程中的應(yīng)用

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

2.2 80152中的DMA

包含兩個(gè)相同的可16位尋址的通用8位DMA通道;DMA0和DMA1。與每個(gè)通道相關(guān)的有7個(gè)SFR。SARLn和SARHn分別保存源地址的低位和高位字節(jié),合在一起構(gòu)成16位源地址寄存器。DARLn和DARHn分別存儲(chǔ)目的地址的低位和高位字節(jié),合在一起構(gòu)成16位目的地址寄存器。BCRLn和BCRHn分別保存將被傳送字節(jié)數(shù)據(jù)地址的低位和高位字節(jié),合在一起成字節(jié)計(jì)數(shù)寄存器。DCONn包含控制和標(biāo)志位。

對(duì)DMA通道的初始化需設(shè)置控制寄存器、源地址和目的地址寄存器。

控制寄存器DCON的裝入值及意義如圖2所示。

7.gif

DCONn中的DASn(目的地址空間位)和IDAn(目的地址自動(dòng)加1位)用于指出數(shù)據(jù)傳送的物理目的空間。DCONn中的SASn(源地址空間位)和ISAn(源地址自動(dòng)加1位)用于指出數(shù)據(jù)傳送的物理源空間。采用DMA控制器來處理GSC數(shù)據(jù)傳送時(shí),當(dāng)DMA通道用于接收服務(wù)時(shí),首先將接收機(jī)傳送來的數(shù)據(jù)自動(dòng)送入到接收緩沖器RFIFO中,其源地址寄存器應(yīng)置成RFIFO地址(SARHN=x x H,SARLN=0F4H);然后,將接收緩沖器中的數(shù)據(jù)傳送到目的地址指定的物理空間,其可以是外部RAM、內(nèi)部RAM或SFR;最后,對(duì)收到的數(shù)據(jù)進(jìn)行CRC校驗(yàn),并通知CPU是否正確接收到該幀數(shù)據(jù)。當(dāng)DMA通道用于發(fā)送服務(wù)時(shí),首先將要發(fā)送的數(shù)據(jù)傳送到先入先出發(fā)送緩沖器TFIFO中,其目的地址寄存器應(yīng)置成TFIFO地址(DARHN=xxH,DARLN=85H);然后,將先入先出發(fā)送緩沖器TFIFO中的數(shù)據(jù)傳送給發(fā)射機(jī);最后,對(duì)發(fā)送出去的數(shù)據(jù)進(jìn)行CRC校驗(yàn),并通知CPU是否正確發(fā)送了該幀數(shù)據(jù)。

DCONn中的DM(請(qǐng)求方式位)和TM(傳送方式位)用于選擇DMA的工作方式。當(dāng)DMA服務(wù)于全局串行通道(GSC)時(shí),應(yīng)采用串行口請(qǐng)求方式。當(dāng)DCONn中的GO位置1時(shí),將啟動(dòng)DMA通道工作于全局串行傳輸方式。當(dāng)全局串行口接收或發(fā)送完一幀數(shù)據(jù)后,

DCONn中的DONE位被置1,并將該信號(hào)傳送給CPU來產(chǎn)生中斷。

3 操作

高級(jí)數(shù)據(jù)鏈路控制(High Data Link Control),簡(jiǎn)稱,是面向位的鏈路控制。它與基本型規(guī)程不同,鏈路的監(jiān)控功能是通過一定的位組合所表示的命令和響應(yīng)來實(shí)現(xiàn)的,這些命令和響應(yīng)可以與信息報(bào)文一起傳送。規(guī)程具有透明傳輸、可靠性高、傳輸效率高并具有極大的靈活性等特點(diǎn)。它是由IBM公司開發(fā)的協(xié)議,已廣泛于工業(yè)領(lǐng)域。它基于主/從結(jié)構(gòu),要求每個(gè)從部都有唯一的地址。從部只有在允許時(shí)才能且只能和主站,這就消除了串行線路上由于幾個(gè)從部同時(shí)發(fā)送引起沖突的可能 性。其幀結(jié)構(gòu)如圖3所示。

8.gif

BOF是HDLC的幀開始標(biāo)志,為01111110。這是HDLC中僅有的兩個(gè)包含連續(xù)6個(gè)1的可能組合之一,另一個(gè)可能的組合是中止符。這是因?yàn)镠DLC采用了一種叫做位插入的過程,每發(fā)現(xiàn)有連續(xù)5個(gè)1時(shí)在下一位自動(dòng)插入一個(gè)0,接收器在收到連續(xù)5個(gè)1之后自動(dòng)刪去插入的0。所有位插入和位刪除操作均由GSC完成。BOF除了標(biāo)志幀的開始,還用作時(shí)鐘同步和決定地址與控制字位置的參考點(diǎn)。

ADDRESS的地址字段,用于表示報(bào)文發(fā)往何站。每個(gè)從站必須有唯一的地址,主站必須知道每個(gè)從站的指定地址。然而有些報(bào)文需要發(fā)往一個(gè)以上的站,這些報(bào)文成為廣播地址或群地址報(bào)文。全1構(gòu)成的地址總是自動(dòng)地被GSC接收,在HDLC中定義為廣播地址。群地址是指適用于一個(gè)以上站的地址,GSC提供了幾個(gè)地址屏蔽位,以使GSC接收群地址。如果需要的話,用戶軟件可以接收所有的地址位,這種屏蔽方式使GSC不加區(qū)分地接收所有地址。

CONTROL是控制段,它用于系統(tǒng)初始化、標(biāo)志幀的序號(hào),并在報(bào)文發(fā)送完成后通知從站響應(yīng),對(duì)以前發(fā)送幀進(jìn)行應(yīng)答。由于GSC硬件沒有提供控制段的管理功能,用戶軟件擔(dān)負(fù)著控制段的插入、解釋和格式化。尾隨控制段的信息通常用于報(bào)文傳輸、出錯(cuò)報(bào)告和其他各種功能。這些功能由控制段的格式完成,有三種格式可供使用:報(bào)文格式、監(jiān)控格式和無序號(hào)格式。

INFO是報(bào)文段,它包含線路中一個(gè)器件希望發(fā)給另一個(gè)器件的報(bào)文(數(shù)據(jù)),其長(zhǎng)度可為用戶所定,但必須是8位的倍數(shù)。報(bào)文段由前面的控制段和后面的CRC為接收站所標(biāo)識(shí)。GSC把接收的位通過CRC發(fā)生器來決定報(bào)文段的末尾。當(dāng)最后一位或EOF收到后,剩下的位組成CRC。

CRC是循環(huán)冗余檢測(cè),是一種普通用于串行通信的錯(cuò)誤檢測(cè)方法。

4 系統(tǒng)誤碼率的分析

提供兩種CRC算法:16位和32位算法。在大多數(shù)HDLC中,16位CRC被使用,支持16位CRC的硬件結(jié)構(gòu)如圖4所示。

9.gif



評(píng)論


相關(guān)推薦

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

關(guān)閉