MPC860的HDLC通道驅動程序的設計與實現
闡述了MPC860芯片及其SCC接口的基本工作原理,介紹了在SCC通道上實現HDLC協議的基本設計思想及具體實現,并給出了主要功能函數的設計流程。
HDLC作為一種基于點到點/多點的數據鏈路層協議,常常用來連接路由器和網關等網絡設備。摩托羅拉公司生產的MPC860微處理器是當前應用非常廣泛的嵌入式微處理器,良好的性價比和強大的通信與網絡協議處理能力以及豐富的通信接口支持使其非常適合構建VOIP網關;特別是其SCC接口本身支持HDLC協議,因此可以通過它的一個SCC接口來為VOIP網關和信令網之間提供鏈路支持。VOIP作為一種基于IP的數據傳輸技術,廣泛地利用Internet全球互連環境,將傳統的PSTN電話網和Internet網絡合二為一,因此可以有效地降低系統成本和管理成本。作為一種高效且經濟的數據和話音通信方式,它是當前技術研究和開發的熱點。實現VOIP的關鍵是IP網關,其中信令網關主要將信令網的信令信息轉換成Internet網絡的相關報文控制信息。本文介紹如何在MPC860板的SCC2通道上實現HDLC的驅動程序,從而為信令網和網關之間提供鏈路支持。
1 HDLC簡介
HDLC是一個在同步網上傳輸數據并面向位的數據鏈路層協議,具有透明傳輸、可靠性高、傳輸效率高以及靈活性高等特點。它采用點對點或多點(多路播送或一對多)連接的主/從結構,要求每個從站都有唯一的地址,從站只有在允許通信時才能且只能和主站通信,這就消除了串行線路上由于幾個從站同時發送引起沖突的可能性。其它的通用的二層協議如SS#7、AppleTalk、 LAPB、LAPD等都是基于HDLC及其幀結構的。HDLC幀結構如圖1所示。
F:標志位,每個HDLC幀以8位序列(01111110)標志幀的開始和結束,這是HDLC中僅有的兩個包含連續六個1的可能組合。為了避免在其它域中出現這種組合,HDLC采用了一種叫作位插入的辦法實現組合,即每發現有連續五個1時便在下一位自動插入一個0,接收器在收到連續五個1之后又自動刪去插入的0。標志位除了標志幀的開始和結束外,還可用作時鐘同步,接收設備不斷地搜尋標志位,以實現幀同步,從而保證接收部分對后續字段的正確識別。另外,在幀與幀的空載期間,可以連續發送這種標志序列,用作時間填充。
A:目的地址位,用于指示報文發往何站。每個從站必須有唯一的地址,主站必須知道每個從站的指定地址。全“1”構成的地址在HDLC中定義為廣播地址,全“0”構成的地址在HDLC中定義為無站地址,用于測試數據鏈路的狀態。
C:控制位,用于系統初始化、標志幀的序號,并在報文發送完成后通知從站響應,對以前發送幀進行應答。尾隨控制段的信息通常用于報文傳輸、出錯報告和其它各種功能,這些功能由控制段的格式完成。有三種格式可供使用:報文格式、監控格式和無序號格式。
I:信息域,是可選的。如果信息存在,它必須有8位整數數量的長度。
CRC:幀校驗位,長度為16位或32位,幀校驗序列用于對幀進行循環冗余校驗,其校驗范圍從地址字段的第一比特到信息字段的最后一比特的序列,并且規定為了透明傳輸而插入的“0”不在校驗范圍內。
HDLC常被用來向X.25、ISDN和幀中繼網等提供信令和控制數據鏈路。
評論