1.引言
隨著IP技術(shù)的迅速發(fā)展,,“Everything over IP”的觀念已深入人心。如何有效的將物理上分布于各個(gè)地方的串行設(shè)備接入互聯(lián)網(wǎng),,以實(shí)現(xiàn)基于IP技術(shù)的遙測(cè)遙控成為當(dāng)前研究和應(yīng)用的一個(gè)熱點(diǎn)。論文以嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks" title="VxWorks">VxWorks和高性能的嵌入式微處理器MPC860T" title="MPC860T">MPC860T為軟硬件平臺(tái),,提出了一個(gè)適合各種速率的串行設(shè)備接入IP網(wǎng)絡(luò)的高性能通信服務(wù)器的解決方案,,它充分發(fā)揮了操作系統(tǒng)VxWorks的實(shí)時(shí)性以及嵌入式微處理器MPC860T在網(wǎng)絡(luò)、通信方面的卓越性能,。利用該通信服務(wù)器不但可以將低速率的串行設(shè)備接入互聯(lián)網(wǎng),,也可以將具有較高速率、對(duì)實(shí)時(shí)性有較高要求的串行設(shè)備接入互聯(lián)網(wǎng),。
2.串口通信" title="串口通信">串口通信服務(wù)器的體系結(jié)構(gòu)
在實(shí)際應(yīng)用中,,各種監(jiān)測(cè)、控制設(shè)備多以串行通信的方式的和外界通信,。而串行設(shè)備千差萬(wàn)別,,特別是在數(shù)據(jù)的傳輸速率和數(shù)據(jù)格式方面有很大的不同:既有利用UART(universal asynchronous receiver transmitter,通用異步收發(fā))協(xié)議傳輸?shù)牡退俾蕯?shù)據(jù),,又有利用HDLC(high-level data link control,高級(jí)數(shù)據(jù)鏈路控制)等協(xié)議傳輸?shù)母咚俾蕯?shù)據(jù),;對(duì)數(shù)據(jù)傳輸實(shí)時(shí)性的要求也有很大區(qū)別:既有非實(shí)時(shí)性的串行數(shù)據(jù)傳輸,也有對(duì)實(shí)時(shí)性要求比較嚴(yán)格的串行數(shù)據(jù),如音,、視頻數(shù)據(jù),,高速設(shè)備的實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)等。如何有效的將各種串行設(shè)備合理的接入IP網(wǎng)絡(luò),,以實(shí)現(xiàn)基于互聯(lián)網(wǎng)的分布式遠(yuǎn)程監(jiān)控呢,?論文根據(jù)這一需求,提出了一種如圖1所示的串口通信服務(wù)器的體系結(jié)構(gòu),,該串口通信服務(wù)器能夠較好的將各種串行設(shè)備接入IP網(wǎng)絡(luò),,并且在實(shí)時(shí)性方面有比較突出的表現(xiàn):能夠?qū)⒏鞣N高速、實(shí)時(shí)性的音視頻數(shù)據(jù)快速接入IP網(wǎng)絡(luò),,以實(shí)現(xiàn)基于IP網(wǎng)絡(luò)的遙測(cè)遙控,。
在圖1所示的串口通信服務(wù)器體系結(jié)構(gòu)中,服務(wù)器配置程序?yàn)橛脩籼峁┝艘粋€(gè)基于C/S模式的服務(wù)器通信參數(shù)配置接口,,用戶可以利用運(yùn)行于個(gè)人計(jì)算機(jī)上的客戶端配置程序與通信服務(wù)器的配置串口通信以隨時(shí)改變通信參數(shù),;嵌入式實(shí)時(shí)操作系統(tǒng)主要完成各種任務(wù)的實(shí)時(shí)調(diào)度、中斷管理,、系統(tǒng)資源管理等功能,;所謂BSP(Board Support Package,板級(jí)支持包)就是針對(duì)該通信服務(wù)器特定的硬件平臺(tái)所編寫的底層程序,,它依賴于硬件,,主要包括初始化代碼和部分驅(qū)動(dòng)程序;FEC(Fast Ethernet Controller,快速以太網(wǎng)控制器)驅(qū)動(dòng)程序提供雙工100/10M自適應(yīng)以太網(wǎng)控制器驅(qū)動(dòng),;雙內(nèi)核的嵌入式微處理器用于運(yùn)行操作系統(tǒng),、應(yīng)用程序、配置程序以及通信協(xié)議的底層微碼,;外圍接口層對(duì)外提供各種標(biāo)準(zhǔn)的通信接口,,如RS-232、RJ-45等,。
3.串口通信服務(wù)器的硬件實(shí)現(xiàn)
在串口通信服務(wù)器中,,嵌入式微處理器的性能無(wú)疑是影響整個(gè)通信服務(wù)器性能的一個(gè)關(guān)鍵因素,根據(jù)圖1所示的通信服務(wù)器體系結(jié)構(gòu),,論文選用Freescale公司的雙內(nèi)核嵌入式微處理器MPC860T,。它是一款集成了雙內(nèi)核和豐富的外圍設(shè)備的微處理器,可廣泛應(yīng)用于各種控制領(lǐng)域,,特別是在通信和網(wǎng)絡(luò)領(lǐng)域有著優(yōu)異的性能,,其組成如圖2示?;赑owerPC體系結(jié)構(gòu)的MPC8xx內(nèi)核主要負(fù)責(zé)操作系統(tǒng)和應(yīng)用程序的運(yùn)行,;CPM模塊擁有獨(dú)立的基于RISC的通信處理器,,該通信處理器主要為SCC(Serial Communications Controllers,串行通信控制器),、SMC(Serial Management Controllers,,串行管理控制器)等通信信道提供服務(wù)、執(zhí)行通信協(xié)議的底層代碼以及控制DMA,。SIU主要負(fù)責(zé)系統(tǒng)的啟動(dòng),、初始化、中斷以及外部總線功能等,。FEC提供10/100M以太網(wǎng)控制功能,,它提供獨(dú)立的FIFO和突發(fā)DMA,因此可以在不影響CPM性能的情況下提供10/100M以太網(wǎng)連接,。其中4個(gè)SCC通道可以獨(dú)立配置成HDLC模式、異步HDLC模式,、10M以太網(wǎng)模式等,;2個(gè)SMC通道可以配置成UART模式、透明傳輸模式等,。
在實(shí)際應(yīng)用中UART協(xié)議和HDLC協(xié)議是串口通信常用的兩種通信協(xié)議,,并且HDLC是其它眾多協(xié)議(如SDLC、SS#7等)的基礎(chǔ),,因此該通信服務(wù)器的串口協(xié)議采用HDLC和UART,。基于MPC860T的串口通信服務(wù)器的硬件組成如圖3所示,。在該串口通信服務(wù)器中,,
4個(gè)SCC通道分別獨(dú)立工作于雙工的HDLC模式,以提供高速實(shí)時(shí)的串行數(shù)據(jù)傳輸,快速接入以太網(wǎng),;2個(gè)SMC通道獨(dú)立工作在UART模式提供低速率的數(shù)據(jù)通信,,SMC1提供系統(tǒng)級(jí)和任務(wù)級(jí)調(diào)試用串口,用戶可以利用SMC1通過(guò)運(yùn)行在個(gè)人計(jì)算機(jī)上的程序來(lái)配置服務(wù)器的相關(guān)參數(shù),,SMC2提供低速的串口通信,。FEC接口提供雙工100/10M 以太網(wǎng)接入端口;4M的Flash用來(lái)存儲(chǔ)操作系統(tǒng),、用戶應(yīng)用程序,、服務(wù)器配置程序等;32M的SDRAM用來(lái)運(yùn)行應(yīng)用程序,、存儲(chǔ)運(yùn)行過(guò)程的數(shù)據(jù)等,。BDM端口供軟硬件仿真調(diào)試使用,利用VisionProbe通過(guò)BDM口可以對(duì)軟硬件進(jìn)行調(diào)試,。
4.串口通信服務(wù)器的軟件實(shí)現(xiàn)
在串口通信服務(wù)器中,,操作系統(tǒng)也是影響通信服務(wù)器整體性能的另一個(gè)關(guān)鍵因素,。根據(jù)
圖1所示的體系結(jié)構(gòu)和所使用的微處理器,論文選用美國(guó)風(fēng)河公司的嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks,。VxWorks是美國(guó)風(fēng)河公司推出的一款實(shí)時(shí)操作系統(tǒng),。它以模塊化構(gòu)造并可高度裁減,這使其能夠在較小的存儲(chǔ)空間中高效穩(wěn)定的運(yùn)行,,非常適合于各種高性能,、多任務(wù)嵌入式實(shí)時(shí)系統(tǒng)的開(kāi)發(fā),廣泛應(yīng)用于通信,、航空航天等領(lǐng)域,。VxWorks系統(tǒng)的構(gòu)成主要有Wind內(nèi)核、I/O系統(tǒng),、BSP以及網(wǎng)絡(luò)協(xié)議棧等,。
基于VxWorks操作系統(tǒng)構(gòu)建的串口通信服務(wù)器軟件系統(tǒng)層次結(jié)構(gòu)如圖4所示。在該軟件
系統(tǒng)中,,由底向上依次是依賴于通信服務(wù)器硬件系統(tǒng)的BSP(包括UART驅(qū)動(dòng),、HDLC驅(qū)動(dòng)、config.h配置文件,、makefile編譯規(guī)則文件等)和以太網(wǎng)驅(qū)動(dòng)程序,;與硬件無(wú)關(guān)的操作系統(tǒng)層;屬于應(yīng)用層的通用服務(wù)器配置程序,。其中操作系統(tǒng)層由VxWorks提供,,服務(wù)器配置程序和BSP需要根據(jù)系統(tǒng)硬件具體實(shí)現(xiàn)。FEC驅(qū)動(dòng)需要作為BSP的一部分集成進(jìn)整個(gè)軟件系統(tǒng),,之所以將FEC驅(qū)動(dòng)單獨(dú)列出,,是因?yàn)镕EC驅(qū)動(dòng)是通用的,僅僅需要在BSP中進(jìn)行集成,。下面主要討論BSP和服務(wù)器配置軟件的實(shí)現(xiàn)方案,。
4.1 通信服務(wù)器BSP設(shè)計(jì)與實(shí)現(xiàn)
嵌入式系統(tǒng)中的BSP一般都是參考一個(gè)經(jīng)過(guò)了嚴(yán)格測(cè)試的、功能比較類似的BSP來(lái)設(shè)計(jì)和實(shí)現(xiàn)的,,串口通信服務(wù)器的BSP就是參考ADS860評(píng)估板的BSP來(lái)實(shí)現(xiàn)的,。根據(jù)串口通信服務(wù)器的體系結(jié)構(gòu)和硬件實(shí)現(xiàn),BSP的實(shí)現(xiàn)需要做以下工作:
? 將MPC860T的SCC1~SCC4通道設(shè)置成HDLC模式,,實(shí)現(xiàn)HDLC驅(qū)動(dòng)并將其掛接到VxWorks的TTY系統(tǒng),;
? 新建sysSccSerial.c文件以支持HDLC驅(qū)動(dòng)模式;
? 根據(jù)實(shí)際需要修改usrconfig.c或是usrSerial.c文件以便將HDLC通道作為標(biāo)準(zhǔn)的I/O設(shè)備,;
? 修改config.h,、configNet.h、makefile,、apc860.h等文件使相關(guān)的配置參數(shù)符合串口通信服務(wù)器的具體要求,,去除對(duì)10M以太網(wǎng)的支持,、添加對(duì)100/10M FEC以太網(wǎng)的支持;
其中HDLC驅(qū)動(dòng)程序的實(shí)現(xiàn)是BSP開(kāi)發(fā)中的重要一環(huán),,因?yàn)镾CCx通道的HDLC驅(qū)動(dòng)需要滿足高速率,、高實(shí)時(shí)性的要求,它的性能直接決定著整個(gè)通信服務(wù)器的性能,。
4.2 通信服務(wù)配置軟件設(shè)計(jì)與實(shí)現(xiàn)
串口通信服務(wù)器配置軟件是為用戶實(shí)時(shí)設(shè)置通信服務(wù)器的通信參數(shù)而提供的應(yīng)用程序,。它基于C/S模式構(gòu)建:由運(yùn)行于串口通信服務(wù)器上的服務(wù)器端配置軟件和運(yùn)行于用戶個(gè)人計(jì)算機(jī)上的客戶端軟件組成,它們通過(guò)計(jì)算機(jī)的串口和通信服務(wù)器的SMC1串口通信,。通信服務(wù)器的通信參數(shù)主要包括SMC2 的UART協(xié)議相關(guān)參數(shù)和SCCx 的HDLC協(xié)議相關(guān)參數(shù),。
5.結(jié)束語(yǔ)
利用VxWorks實(shí)時(shí)操作系統(tǒng)和MPC860T嵌入式微處理器設(shè)計(jì)和實(shí)現(xiàn)的串口通信服務(wù)器
性能穩(wěn)定、配置方便,,具有很好的實(shí)時(shí)性,,能夠較好的滿足各種串行設(shè)備接入互聯(lián)網(wǎng)的要求,特別適合于對(duì)數(shù)據(jù)傳輸速率和實(shí)時(shí)性要求較高的串行設(shè)備,。利用串口通信服務(wù)器可以方便的將各種串行設(shè)備接入IP網(wǎng)絡(luò),,從而實(shí)現(xiàn)基于互聯(lián)網(wǎng)的遠(yuǎn)程實(shí)時(shí)監(jiān)測(cè)和控制。
本文作者創(chuàng)新點(diǎn):充分利用了VxWorks 的實(shí)時(shí)性和MPC860T SCC通道提供的高速HDLC串口接入功能,,實(shí)現(xiàn)了將串行監(jiān)控設(shè)備高速接入IP網(wǎng)絡(luò)和遠(yuǎn)程實(shí)時(shí)監(jiān)控技術(shù)。