《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > 80C152單片機在HDLC通信規程中的應用

80C152單片機在HDLC通信規程中的應用

2009-02-06
作者:蘇雁泳 王 鋼

??? 摘? 要: 80C152單片機的工作原理和特點及其在HDLC通信規程中的應用,給出了它的編程方法,并對其系統誤碼率進行了分析。?

??? 關鍵詞: 全局串行通道? HDLC規程? CRC差錯檢驗

?

??? 80C152是一種基于MCS-51的高集成度8位微控制器,也是一種通用通信控制器。它既適用于外圍系統或器件的智能管理,也適用于低成本、高速串行通信場合。80C152是80C51的派生產品,保留了80C51的所有功能;增加了新的功能和外圍電路,包括:一種叫做全局串行通道(GSC)的高速多協議串行通訊接口,兩個直接存儲器存取(DMA)通道,HOLD/HLDA總線控制,第5、6、7個I/O口,較大的片內RAM容量。因而特別適用于綜合業務數字網(ISDN)、局域網和用戶定義的串行多機系統。?

1 80C152的主要特性與結構?

??? 80C152的主要特性如下:?

??? (1)MCS-51兼容的UART;?

??? (2)多種省電工作方式;?

??? (3)可尋址64K字節數據存儲器;?

??? (4)可尋址64K字節程序存儲器;?

??? (5)兩個通用定時/計數器;?

??? (6)多協議串行通信I/O口(最大2.048Mbps/2.4Mbps),支持CSMA/CD和SDLC/HDLC,用戶定義協議;?

??? (7)全雙工/半雙工通信;?

??? (8)256字節片內RAM;?

??? (9)兩個片內DMA通道;?

??? (10)保持/響應(HOLD/HLDA)總線控制;?

??? (11)7個I/O口;?

??? (12)58個SFR;?

??? (13)11個中斷源,除包含80C51的5個中斷源外,新增的6個中斷源用于全局串行通道。?

??? 上述(1)~(5)是與80C51相同的特性,(6)~(13)是80C152所特有或比80C51提高的特性。?

??? 其結構簡圖如圖1所示。?

?

?

2 全局串行通道?

??? 全局串行通道(GSC)是一個多協議、高性能的串行接口,用作通信控制器。GSC接口支持同步數據鏈路控制(SDLC)、具有沖突檢測的載波監聽多址訪問(CSMA/CD)、用戶定義協議和高速數據鏈路控制(HDLC)協議的子集。GSC功能包括:地址識別、沖突解決、CRC產生、標志產生、自動重發送和硬件應答特性。在使用片內時鐘時可實現高至2Mbps數據速率,在使用外部時鐘時可實現高至2.4Mbps數據速率。在使用串行通道的應用中,GSC可實現國際標準化組織(ISO)參考模型中所描述的開放系統互連(OSI)的數據鏈路層和物理鏈路層。?

2.1 GSC通道的DMA服務?

??? 有兩種方法來控制GSC:一是CPU控制;二是DMA控制。在用戶軟件處理一些任務時(如裝入TFIFO、讀RFIFO、檢查狀態標志、發送過程一般跟蹤),采用CPU控制。當任務數增加及使用較高的數據速率,CPU所需開銷成為主要時間消耗,最后,會達到CPU花費100%的時間去響應GSC請求。DMA通道可由用戶軟件設置為由DMA控制器來處理GSC數據傳送。80C152有兩個DMA通道,一個通道用于接收,一個通道用于發送。使用DMA通道時,CPU可省去為GSC緩沖器基本服務所需的時間。DMA通道可提供的服務類型為:裝入TFIFO、從RFIFO中移出數據、在收發結束時通知CPU和響應一定的出錯條件。在使用DMA通道時,準備串行發送的數據源或目的可以是內部存儲器、外部數據存儲器或任何SFR。對DMA和GSC寄存器進行初始化后的唯一任務是允許適當地中斷并通知DMA控制器什么時候啟動DMA。在DMA啟動后,CPU所需做的事就是響應出錯條件或等待傳送結束。80C152專門為GSC數據傳送提供了6個中斷源,它們是:GSCRV(GSC接收正確)、GSCRE(GSC接收出錯)、GSCTV(GSC發送正確)、GSCTE(GSC發送出錯)、DMA0(DMA通道0完成)、DMA1(DMA通道1完成)。?

2.2 80C152中的DMA?

??? 80C152包含兩個相同的可16位尋址的通用8位DMA通道:DMA0和DMA1。與每個通道相關的有7個SFR。SARLn和SARHn分別保存源地址的低位和高位字節,合在一起構成16位源地址寄存器。DARLn和DARHn分別保存目的地址的低位和高位字節,合在一起構成16位目的地址寄存器。BCRLn和BCRHn分別保存將被傳送字節數地址的低位和高位字節,合在一起構成字節計數寄存器。DCONn包含控制和標志位。?

??? 對DMA通道的初始化需設置控制寄存器、源地址和目的地址寄存器。?

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

?

?

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

??? DCONn中的DM(請求方式位)和TM(傳送方式位)用于選擇DMA的工作方式。當DMA服務于全局串行通道(GSC)時,應采用串行口請求方式。當DCONn中的GO位置1時,將啟動DMA通道工作于全局串行傳輸方式。當全局串行口接收或發送完一幀數據后,DCONn中的DONE位被置1,并將該信號傳送給CPU來產生中斷。?

3 HDLC操作?

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

?

?

??? BOF是HDLC的幀開始標志,為01111110。這是HDLC中僅有的兩個包含連續6個1的可能組合之一,另一個可能的組合是中止符。這是因為HDLC采用了一種叫做位插入的過程,每發現有連續5個1時在下一位自動插入一個0,接收器在收到連續5個1之后自動刪去插入的0。所有位插入和位刪除操作均由GSC完成。BOF除了標志幀的開始,還用作時鐘同步和決定地址與控制字位置的參考點。?

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

??? CONTROL是控制段,它用于系統初始化、標志幀的序號,并在報文發送完成后通知從站響應,對以前發送幀進行應答。由于GSC硬件沒有提供控制段的管理功能,用戶軟件擔負著控制段的插入、解釋和格式化。尾隨控制段的信息通常用于報文傳輸、出錯報告和其他各種功能。這些功能由控制段的格式完成,有三種格式可供使用:報文格式、監控格式和無序號格式。?

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

??? CRC是循環冗余檢測,是一種普遍用于串行通信的錯誤檢測方法。?

4 系統誤碼率的分析?

??? 80C152提供兩種CRC算法:16位和32位算法。在大多數HDLC應用中,16位CRC被使用,支持16位CRC的硬件結構如圖4所示。

?

?

??? 16位CRC發生器生成的多項式為:?

??? G(X)=X16+X12+X5+1?????????????????????????????????????? ?(1)?

??? CRC工作時,它把收到的位與現行CRC的位15進行異或,放到一個暫存器中。在CRC右移一位時,位15和接收位的異或值再與位4和位11進行異或。暫存器中的位移入位0中。HDLC所需的CRC長度為16位,接收時自動從幀中除去CRC,它不傳到CPU。然后把最后16位傳往CRC發生器,以保證留下正確的值。檢驗剩下值是否為001110100001111B(1D0FH)。如不匹配,則產生錯誤。用戶軟件允許該中斷,從而使CPU可對此進行處理。?

??? CRC校驗可以檢測長度不大于16的所有突發錯誤、所有奇數個錯誤和兩個獨立錯誤,以及其他大量錯誤圖樣。其計算公式如下:?

????

??? 根據上述計算公式可得,采用全局串行通道(GSC)來實現HDLC規程的數據傳輸,其系統誤碼率及幀漏檢概率如表1所示。?

?

?

5 編程應用實例?

??? 下面介紹采用DMA控制全局串行通道(GSC)來實現HDLC規程的編程方法。在該系統中應用兩路DMA通道分別控制數據的收、發,其數據收、發子程序的流程圖如圖5所示。

?

?

??? 在現代通信系統和計算機網絡中,其鏈路層和物理層多數均采用HDLC規程。采用80C152單片機來實現HDLC規程,具有成本低、硬件結構簡單、軟件編程容易等特點,又能夠保證高速、可靠的數據傳輸,具有廣泛的應用前景。?

參考文獻?

1 郭梯云,劉增基,王新梅.數據傳輸. 北京:人民郵電出版社,1998.10?

2 荀殿棟,陳紹廉. 微處理器應用技術與實例. 北京:電子工業出版社,1997.11?

3 樸 燕,王瑞光,王遵立. 一種快速CRC差錯校驗技術.電子技術應用, 1999;25(1)

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 久久综合久久综合久久综合 | 天天做天天爱天天一爽一毛片 | 日批在线观看视频 | 精品国产免费一区二区 | 三级黄色片日韩 | 欧美影片一区二区三区 | 免费看黄无遮挡滚床单视频 | 黄色网址在线免费看 | 欧美在线你懂的 | 欧美人与牲动交xxxxbbbb | 中文在线播放 | 免费视频日韩 | 最新国产成人综合在线观看 | 在线观看成年美女黄网色视频 | 在线播放你懂得 | 看一级毛片免费观看视频 | 亚洲黄色免费在线观看 | 日韩不卡一区二区三区 | 精品国产亚洲人成在线 | 翁熄粗大好爽 | 久久综合五月天婷婷伊人 | 中文字幕视频在线播放 | 天天插日日插 | 91成人抖音 | 一级欧美视频 | 九九色综合网 | 888xxxx免费视频 | 黄网站色视频免费观看w | 国产特黄特色一级特色大片 | 一级毛片儿 | 免费国产之a视频 | 中国一级黄色录像片 | 亚洲第一成年人网站 | 日本在线一区 | 人人干人人艹 | 日韩午夜精品 | 欧美日韩视频在线成人 | 阿v精品一区二区三区 | 在线观看视频一区 | 亚州毛色毛片免费观看 | 亚洲欧美第一 |