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