基才HDLC協議的SDH傳輸系統板間通信的設計
摘 要:針對SDH傳輸系統板間通信傳統設計方法的不足,介紹一種采用HDLC協議進行設計的新方法.并在MPC852T型嵌入式微處理器上得以實現。嚴格的驗證證明其在可靠性和傳輸速率方面獲得了很好的性能。
關鍵詞:UART:HDLC:SDH:嵌入式微處理器;SCC
1 引言
板間通信總線是決定SDH系統設備是否穩定可靠工作的關鍵技術之一。板間通信的物理層信道不可能不發生差錯.必須選擇合適的數據鏈路層協議克服有差錯的信道。SDH系統網元內的板間通信受成本和復雜性的限制,一般都建議采用單板Mcu系統內置的串行通信機制來完成,MCU器件內置的通信接口中,以傳統的UART串行通信接口較為常見,UART異步串行通信理論上最大的速率為115 200b/s,因而傳輸效率低下,只適合板間簡單信息的互通。隨著單板軟件復雜程度的提高.通過板間通信總線傳遞的帶寬要求也會不斷增加:同時隨著系統變得更加復雜,板間通信總線報文本身的長度也在不斷增加中,板間的通信數據流量越來越大.對板間通信總線的傳輸要求也不斷提高。針對UART方式速率上的不足,擬對HDLC協議進行研究.并選用Motormla 的MPC852T型處理器.利用其對HDLC協議的支持,嘗試采用HDLC協議進行板間通信,驗證其在可靠性、通信速率等方面的改善。
2 HDLC在SDH傳輸系統中的運用
HDLC(High一level Data Link Control Proeedures,高級數據鏈路控制規程)廣泛應用于數據通信領域.是確保數據信息可靠互通的重要技術。HDLC按照包含地址、控制、信息、CRC(稱為幀)的標準格式進行發送和接收。所有的幀以1個開始標志(0x7E)開始,以1個結束標志(0x7E)結束。在開始和結束標志之間。1個幀包含地址域(A)、控制域(c)、O到5000字節的信息域(I)(可選)和FCS域,HDLC的幀結構如下:
HDLC以1個獨特的二進制系列01111111O(0x7E)來確定幀首(Opening Flag)、幀尾(ClosingFlag).經過編碼在1個幀的開始和結束標志之間的其他部分杜絕了出現5個連續的“l”。
地址域(A)用于多點通訊方式時設定站地址。幀接收時如果地址域(A)與本站不匹配.該幀不會被接收。還有1個值得注意的是。FCS域.采用循環冗余校驗((2RC)除標志域外的所有其他域的校驗值。HDI£通過:FCS域來保證數據的可靠傳輸。關于HDLC的詳細資料請參閱參考文獻。
SDH系統是目前電信系統中的主要傳輸手段,它由一些SDH網元組成.在光纖上進行同步信息傳輸、復用和交叉連接。傳統的SDH網元結構如圖1所示。
在圖1所示系統中.網元控制板NCP單元部件是SDH系統的重要組成部分.系統內部各功能單板的性能、告警等信息要通過該單元送到網管。同時網管的一些命令也必須通過。NCP下發到各單板。系統中板間通信組成了1個典型的多機系統.NCP單元為多機通信系統中主機.其他部件為從機。
NCP單元和其他部件通信可靠性要求高.信息量大而且實時性要求高。而SDH系統網元的背板總線線路長度相對較長.所以不得不考慮電磁干擾、信號完整性、阻抗匹配、電平選擇等問題。傳統的UART通信顯然無法勝任。以HDLC協議的優越性能,可以實現高可靠和高效的板間通信。
3 SDH傳輸系統板間通信設計
3.1 MPC852T
MPC85T是MPC866 PowerOUICC系列中的一款嵌入式通信處理器。MPC852T內核主頻可達100MHz.內部集成了CPU核(PowerQUICC)、系統接口單元(SIU)和通信處理器(CPM)3個模塊,由于它成本低、通信能力強、多種通信協議能靈活接口,因而特別適合于通信和網絡應用。MPC852T Pow-erQUICC集成了2個處理塊,1個處理塊是嵌入式Power PC核.另1個是RISC Controller。系統框圖如圖2所示。
通信協議處理器(CPM)模塊是需要關注的焦點,它促成了MPC852T強大的通信處理能力。CPM是RISC處理器,具備多個通信控制器,其中包括2個串行通信控制器(SCC),可運行多種通信協議(Ether-net、HDLC、UART、透明傳輸等)。SCC口是最具有特色的接口.通過操作相應的寄存器、獨立開發收發驅動程序或調用操作系統相關的驅動程序,SCC口就能完成優越的板間通信功能。
參考MPC852T Datasheet提供的數據,HDLC板間通信速率支持Nx64kb/s,N最大為64,即理論最大通信速率為4Mb/s,實用速率應視CPM利用率和Core處理能力而改變。而UART的理論最大速率為115.2kb/s.理論比較結果非常明顯。
3.2 MPC852T處理器SCC口的設計
硬件設計方面.HDLC數據鏈路層協議需要合適的物理層的支持.以達到高可靠性和高流量。考慮到SDH網元背板的線路走線長度和通信速率,列舉了常見的3種串行通信標準的主要特征。
由表1可以看出.RS一485的傳輸距離、速率都能滿足設計要求,而且成本低廉、易購,所以選擇RS一485來完成通信系統設計。如圖3所示。
在軟件編程方面。首先要設置SCC口的通道參數.本設計中將SCC3設置為HDLC模式。然后設計驅動程序.驅動程序運行時首先進行SCC3以及存儲區的初始化.其次才進行收發操作。SCC3及存儲區的初始化過程概括為:初始化SDCR以提供U總線上的優先級一設置SICR將時鐘連接到SCC3一設置SCC3參數RAM最大接收緩存長度一對命令寄存器(CPCR)寫入相應命令初始化發送和接收參數一初始化HDLC參數RAM,包括錯誤計數器和幀地址域一初始化接收和發送緩存描述字一初始化屏蔽寄存器以允許期望的事件發生的中斷一初始化CIMR以允許CPM設備產生中斷一初始化通用SCC3方式寄存器高、低位一初始化協議定義方式寄存器,包括標志的數量,HDLC總線方式.標志共享允許等一設置SCC3方式寄存器低位((GSMR_LX)中允許發送和,或接收。
初始化完成后,便可以進入收發狀態。接收過程為:當GSMR_LX寄存器中的ENR位允許時,HDLC控制器進入接收允許狀態,在該狀態下,控制器等待1個標志。當出現1個標志時,控制器進入地址允許狀態,等待1個非標志,該非標志必須為1個地址.控制器將地址與HADDRX和HMASK域的地址比較。地址匹配后,測RxBD狀態模式字節.如果接收準備好便開始接收,1個數據包分多個地方緩存.RxBD字節的L位可以指示是否為接收幀最后一個緩存.不是便繼續接收,是則完成CRC校驗后結束接收。流程如圖4所示。
圖4中:RxBD(ReceiverBuffer Descriptor,接收緩沖描述符)是SCC、SMC等控制器與緩沖區的接口。RxBD的數據結構如表2所示。
每個RxBD管理內存中的1個BUFFER區,RxBD中確定了這個BUFFER區的首地址和末地址。CPM將要接收的數據會被置于這個BUFFER區里,Data length描述了數據的長度.Status and con-trol描述了數據和BUFFER區的狀態。驅動程序通過設置、讀取RxBD中的各參數來判斷數據和BUFFER的狀態,控制數據的收發。
多個RxBD可以在DPRAM或者內存中連續放置,構成1個RxBD表,讓CPM的控制器可以在驅動程序介入處理之前接收或者發送多幀數據.數據幀數由RxBD表的個數所確定。
發送過程和接收相似,限于篇幅,不再贅述。
3.3 測試結果和性能分析
按照流程圖,采用C語言編程,并在PSOS操作系統上運行調試,為了檢查測試SCC3口的丟包率等性能,專門模仿TCP/IP中的ping命令編制了1條sping命令,用大數據包(1 024字節)長時間的測試SCC3口.測試的命令是:
sping子架號槽位號cpu號包大小次數最大時間間隔(10ms為單位)
測試平臺如圖5所示。接有網線的單板是NCP板,左下邊是光板,微機通過網線經交換機和NCP板進行通信,運行telnet命令后相當于對NCP板自身的操作。NCP板和光板通過背板以HDLC協議進行通信,此時執行sping命令便能測試SCC3口的性能。圖5是用于實測的硬件平臺。實測時.為了驗證對大數據包的處理能力,采用了1 024字節.并且重復了1 000次。
從測試結果看出:傳輸大數據包的丟包率為零;從傳輸速率來看,平均70ms的時間包括發出和接收的時間,單程是35ms,換算成實際的傳輸速率約為234.1kb/s。因為測試是在一塊正常運行的單板上進行的,MCU除了處理HDLC通信外.大部分資源都是在處理其他功能,因此實際測試結果要比理論值速低很多,但從目前傳輸系統板間通信所需的數據量來看,實測結果已經滿足要求。
4 結束語
本文針對UART在板間通信的局限性提出了采用HDLC協議重新設計的方法.并采用MPC852T實現了設計方案,通過編寫驅動程序在PSOS操作系統上進行調試,取得了比較滿意的結果。利用該方法已完成了SDH系統設備的研發,產品目前穩定可靠。該設計方法還可以延伸到路由器設備、移動通信基站、接人設備等單板之間的通信.具有比較高的應用值。
評論