蔡駿王敏
(中國電子科技集團公司第二十八研究所江蘇南京210007)
串口通信設(shè)備以其通信協(xié)議簡單和可靠性高等特點,在工業(yè)生產(chǎn)、自動化控制和軍事領(lǐng)域中被廣泛應(yīng)用。但是串口通信也有其自身的局限性,如通信距離短,無法進行遠程數(shù)據(jù)傳輸和監(jiān)控,無法接入主流的TCP/IP 網(wǎng)絡(luò)等[1,2]。以太網(wǎng)通信已滲透到各行各業(yè)中,與串口通信相比,以太網(wǎng)的傳輸距離遠、速率高和擴展方便,人們需要一種能使傳統(tǒng)的串口通信設(shè)備快速接入以太網(wǎng)的手段。
串口服務(wù)器可以實現(xiàn)串口數(shù)據(jù)與以太網(wǎng)數(shù)據(jù)之間的雙向轉(zhuǎn)換,使傳統(tǒng)的串口通信設(shè)備快速接入以太網(wǎng),實現(xiàn)對串口通信設(shè)備的遠程監(jiān)控和數(shù)據(jù)共享功能。CPCI 總線是在PCI 總線技術(shù)基礎(chǔ)上發(fā)展而來,在抗震、散熱和電磁兼容等性能方面都有較大改進,具有可熱拔插、高開放性及高可靠性等特點,被廣范應(yīng)用于通訊、軍事、醫(yī)療和交通等領(lǐng)域[3]。設(shè)計了一種基于CPCI 總線的串口服務(wù)器模塊,主要由硬件板卡和客戶端軟件2 部分構(gòu)成。
串口服務(wù)器模塊典型應(yīng)用模式如圖1 所示,其中串口服務(wù)器模塊集成在CPCI 機箱設(shè)備中,用戶通過計算機上的客戶端軟件可以對串口服務(wù)器進行配置管理,同時實現(xiàn)與多路串口設(shè)備的數(shù)據(jù)交互。
圖1 串口服務(wù)器模塊典型應(yīng)用模式示意圖
串口服務(wù)器模塊采用標準的3UCPCI 板卡結(jié)構(gòu)設(shè)計,除了具備通用串口服務(wù)器的一般功能外,還具備自身的一些功能特點,主要功能包括:
①實現(xiàn)串口數(shù)據(jù)與以太網(wǎng)數(shù)據(jù)間通信格式和通信協(xié)議的相互轉(zhuǎn)換,使串口通信設(shè)備快速接入以太網(wǎng),便入遠程通信和集中監(jiān)控;
②實現(xiàn)對客戶端串口的擴展,通過網(wǎng)口擴展出的多個串口對應(yīng)用是透明的;
③板卡采用標準CPCI 接口,適合于模塊化應(yīng)用。
串口服務(wù)器模塊在接口、數(shù)據(jù)處理和環(huán)境適應(yīng)性等方面性能指標有:
①接口性能:串口服務(wù)器模塊對外提供8 路RS232 串行接口、1 路RS422 接口和2 路10/100 M 自適應(yīng)以太網(wǎng)接口,串口速率600 bps- 115 200 bps可調(diào);
②處理性能:支持各端口以全速率工作,數(shù)據(jù)實時處理和轉(zhuǎn)發(fā);
③環(huán)境適應(yīng)性:滿足軍品級設(shè)備對寬溫工作范圍(- 40- +85℃)和高海拔(5 km 以上)的嚴格要求。
串口服務(wù)器模塊的體系結(jié)構(gòu)包括CPCI 硬件板卡、客戶端軟件以及通信協(xié)議3 部分[4],如圖2 所示。硬件板卡是串口服務(wù)模塊的載體,主要由硬件平臺、操作系統(tǒng)和應(yīng)用程序3 部分組成;客戶端軟件由虛擬串口驅(qū)動程序和配置管理軟件2 部分組成,虛擬串口驅(qū)動程序用于屏蔽用戶對串口服務(wù)器模塊的感知性,配置管理軟件提供可視化操作界面,完成對串口服務(wù)器模塊的配置管理功能,通信協(xié)議規(guī)定硬件板卡與客戶端軟件間交互的數(shù)據(jù)內(nèi)容和格式。
圖2 串口服務(wù)器模塊體系結(jié)構(gòu)
串口服務(wù)器模塊的硬件結(jié)構(gòu)主要分為主控單元、接口單元和供電模塊3 部分。主控單元包含處理器和存儲部分等,實現(xiàn)數(shù)據(jù)處理、轉(zhuǎn)發(fā)和接口控制等功能。處理器采用Freescale 的PowerPC 處理器MPC8309,這是一款面向工業(yè)和網(wǎng)絡(luò)應(yīng)用的高性能嵌入式處理器,片上集成了豐富的通信接口,滿足串口服務(wù)器模塊多網(wǎng)口和多串口的通信應(yīng)用[5],存儲部分提供了512 MB 內(nèi)存、64 MB NOR FALSH 和1 GB NAND FLASH。
接口單元包含串口擴展模塊、信號隔離模塊和端口收發(fā)模塊。串口擴展模塊對外擴展出4 路UART 接口,用于滿足串口服務(wù)器模塊8 路RS232 串行接口的要求,其中串口擴展芯片采用TI 的TL16C752B,它以總線方式與處理器通信,片上集成2個獨立的UART 接口,波特率可調(diào),支持硬件和軟件流控;信號隔離模塊將電路板內(nèi)部信號與外部接口信號隔離,防止接口高電平信號以及靜電等外部因素對內(nèi)部電路的干擾和損害;端口收發(fā)模塊進行電平轉(zhuǎn)換,將TTL 電平轉(zhuǎn)換成適合在線纜上傳輸?shù)碾娖叫盘?。電源單元包括?fù)位、時鐘和電源轉(zhuǎn)換模塊,分別為硬件系統(tǒng)提供復(fù)位、時鐘和供電支持。
板載軟件是指運行在串口服務(wù)器模塊硬件板卡上的相關(guān)程序,分為系統(tǒng)支撐層和應(yīng)用層2 層。系統(tǒng)支撐層包括串口擴展芯片驅(qū)動和嵌入式Linux 2 部分,應(yīng)用層包括TCP/IP 協(xié)議棧[6]、數(shù)據(jù)處理轉(zhuǎn)發(fā)以及系統(tǒng)管理3 部分,如圖3 所示。
圖3 串口服務(wù)器模塊板載軟件結(jié)構(gòu)
數(shù)據(jù)處理轉(zhuǎn)發(fā)模塊根據(jù)串口和以太網(wǎng)通信協(xié)議要求完成二者之間數(shù)據(jù)格式轉(zhuǎn)換,它將收到的網(wǎng)絡(luò)數(shù)據(jù)包按照規(guī)定的協(xié)議解包,提取其中的串口數(shù)據(jù)和目標串口序號等信息,重新組成串口數(shù)據(jù)發(fā)送到相應(yīng)的串口設(shè)備;同理,當收到串口數(shù)據(jù)時,則會將串口數(shù)據(jù)和源串口序號打包成網(wǎng)絡(luò)數(shù)據(jù)格式,發(fā)送給對應(yīng)的主機。系統(tǒng)管理模塊根據(jù)客戶端軟件下發(fā)的配置管理命令,對串口服務(wù)器模塊的參數(shù)進行設(shè)置和查詢,并反饋系統(tǒng)運行狀態(tài)等信息。串口數(shù)據(jù)與網(wǎng)口數(shù)據(jù)的收發(fā)處理流程如圖4 所示。
圖4 串口服務(wù)器模塊數(shù)據(jù)處理流程
程序收到來自網(wǎng)絡(luò)的UDP 數(shù)據(jù)包后,首先提取并保存IP地址和端口號等必要信息,然后根據(jù)數(shù)據(jù)類型分別進行處理,若為業(yè)務(wù)數(shù)據(jù),則將數(shù)據(jù)按串口通信格式發(fā)送至對應(yīng)串口;若為控制數(shù)據(jù),則進行設(shè)置與查詢操作。在接收串口數(shù)據(jù)時,程序?qū)崟r查詢各串口接收緩沖區(qū),若有數(shù)據(jù),則將數(shù)據(jù)取出打包成IP 數(shù)據(jù)送到網(wǎng)絡(luò)上。
串口數(shù)據(jù)收發(fā)通過中斷方式實現(xiàn),程序為每個串口分配一個數(shù)據(jù)發(fā)送緩沖區(qū)和數(shù)據(jù)接收緩沖區(qū),2個緩沖區(qū)各自利用一個隊列,用于數(shù)據(jù)維護。串口發(fā)送中斷子程序?qū)崿F(xiàn)如下所示:
客戶端軟件由虛擬串口驅(qū)動程序和配置管理軟件2 部分構(gòu)成。如圖5 所示,虛擬串口驅(qū)動程序由2個獨立的模塊組成[7,8],一個是串口虛擬模塊,面向串口應(yīng)用程序,它將串口服務(wù)器模塊上的端口映射到客戶端上,使得這些串口在客戶端上具有與真實串口相同的表現(xiàn)形式和操作模式;另一個是網(wǎng)絡(luò)驅(qū)動模塊,面向網(wǎng)絡(luò)服務(wù),它接收串口虛擬模塊發(fā)送的串口數(shù)據(jù),按照規(guī)定的協(xié)議轉(zhuǎn)換成網(wǎng)絡(luò)數(shù)據(jù)包,通過網(wǎng)口發(fā)給硬件板卡,反之,對于來自硬件板卡的網(wǎng)絡(luò)數(shù)據(jù),網(wǎng)絡(luò)驅(qū)動模塊從中提取串口信息和業(yè)務(wù)數(shù)據(jù),提交給串口虛擬模塊。
圖5 虛擬串口驅(qū)動程序框架
配置管理軟件提供用戶友好的可視化操作界面,可以對串口服務(wù)器模塊的端口映射關(guān)系、串口波特率和工作模式等參數(shù)進行設(shè)置和查詢,并實時顯示對串口服務(wù)器模塊工作狀態(tài)的監(jiān)控信息。
串口服務(wù)器模塊在單塊CPCI 板卡上實現(xiàn)串口服務(wù)器的功能,與傳統(tǒng)串口服務(wù)器相比有以下優(yōu)勢:
①使用靈活:采用標準CPCI 接口設(shè)計,能夠方便地集成到其他電子設(shè)備中或者作為獨立的設(shè)備,提供串口服務(wù),滿足各種不同使用需求;
②擴展方便:在背板接口允許的情況下,可以快速擴展出多個串口服務(wù)模塊,并且支持熱拔插、即插即用,維修更換方便;
③功耗低:串口服務(wù)器模塊采用低功耗嵌入式處理模塊設(shè)計,系統(tǒng)集成度高,體積小和功耗低,滿足電子設(shè)備日益嚴格的功耗要求。
串口服務(wù)器模塊是為串口服務(wù)功能而設(shè)計,其基本應(yīng)用是為其他電子設(shè)備或作為獨立設(shè)備提供串口服務(wù)功能,使串口通信設(shè)備快速接入TCP/IP 網(wǎng)絡(luò),實現(xiàn)遠程控制和數(shù)據(jù)共享功能。此外,由于其特有的結(jié)構(gòu)和功能特點,串口服務(wù)器模塊還可以作為串口擴展模塊而應(yīng)用。將硬件板卡集成到需要擴展串口的設(shè)備中,安裝驅(qū)動軟件,即可通過一個網(wǎng)口擴展出多路串口。
本文設(shè)計并實現(xiàn)的串口服務(wù)器模塊,提供標準CPCI 接口,體積小和功耗低,可作為獨立的功能單元嵌入到其他電子設(shè)備中,為設(shè)備提供串口服務(wù)功能;也可以作為獨立功能設(shè)備,以串口服務(wù)器的形式提供相關(guān)功能。目前該模塊已成功應(yīng)用于某型接入控制設(shè)備中,經(jīng)測試,模塊運行穩(wěn)定、可靠性高和使用方便。
[1]葛 明.多路串口服務(wù)器的設(shè)計與實現(xiàn)[D].浙江:浙江大學(xué),2011.
[2]凌海軍,余晶晶,杜青玲.機動指揮通信車設(shè)備集中控制系統(tǒng)設(shè)計[J].指揮信息系統(tǒng)與技術(shù),2011,2(2):71- 75.
[3]張?zhí)炝?張思敏.CPCI- E 與VPX 總線標準的比較分析[J].工業(yè)控制計算機,2009,22(7):1- 5.
[4]范永剛,劉紹方,董 晶,等.基于ARM 高性能串口服務(wù)器的研究與實現(xiàn)[J].計算機工程與設(shè)計,2012,33(4):1378- 1384.
[5]MPC8309 PowerQUICC II Pro Processor[Z].USA:Freescale Sem iconductor,2010.
[6]郭傳雄,鄭少仁.對Linux 操作系統(tǒng)中TCP/IP 網(wǎng)絡(luò)協(xié)議的IP 層排隊分析[J].計算機學(xué)報,2001,24(8):1- 5.
[7]李 超.嵌入式串口服務(wù)器的設(shè)計與實現(xiàn)[D].湖北:武漢理工大學(xué),2009.
[8]何永輝,李 凱.基于RS- 485 串口通信的軟件測試方法研究[J].指揮信息系統(tǒng)與技術(shù),2010,1(6):27- 29.