王亭,趙紅超,楊智勇,陸巍巍
(海軍航空工程學院七系,山東煙臺264001)
一種實用的彈-地通訊接口設計
王亭,趙紅超,楊智勇,陸巍巍
(海軍航空工程學院七系,山東煙臺264001)
為實現普通個人計算機和彈載計算機間的彈-地通訊,對某型彈載計算機專用的增強型通訊接口電路和通訊協議進行了分析,設計了與之匹配的適用于普通計算機的通訊接口硬件電路,并進行了基于VB6.0的通訊程序設計。實際測試及運行結果說明,設計的通訊接口可實現高速、遠距離、高可靠性的彈-地數據通訊,誤碼率低。
彈載計算機;彈-地通訊;波特率;校驗
彈(箭)載計算機是彈道導彈(火箭)控制系統的中心控制計算機,用于導彈(火箭)精確制導和姿態控制[1-3],一般設計為專用計算機,下面簡稱彈載計算機。在彈道導彈發射前,需地面測控計算機向彈載計算機裝訂彈道數據和飛行程序代碼;另外,在地面對導彈測試過程中,彈載計算機也起著配合地面測控系統,對導彈本身進行綜合測試和發射控制的作用[4-8]。這就需要彈載計算機和地面測控計算機之間進行大量的數據交換,這是通過彈載計算機和地面測控計算機之間的通訊(簡稱彈-地通訊)來實現的。
由于地面測控計算機和彈(箭)載計算機之間的距離一般都在幾十米甚至幾百米,因而彈-地通訊都需解決長線傳輸、數據傳輸速率高、高可靠性的問題。
彈-地通訊屬于長線數據傳輸,因而串行數據傳輸的方式常被采用。這種串行數據的傳輸通訊,對可靠性要求很高,也就是說,數據的傳輸必須使誤碼率降低到可容許的程度,甚至是零誤碼。
傳統的計算機之間全雙工的標準串行數據通訊接口有EIA RS-232C標準的通訊方式和RS-422A標準的通訊方式,雖然成熟地應用于各種串行數據通訊中,但都不能滿足彈-地通訊的要求[9-10]。
某型彈載計算機由于采用了非標準的增強型RS-232C模式的數據通訊接口驅動方式,既可以進行長達300 m的長線驅動,也可以進行高達128 000 bit/s的傳輸速率。在某應用系統中,由于不具備專用的地面測控計算機與此型彈載計算機進行彈-地通訊,而用普通計算機代替專用的測控計算機,并在普通計算機(PC)的基礎上設計了一個實用的串行通訊接口,成功實現了普通計算機和專用的彈載計算機之間的彈-地通訊。
本文針對普通計算機,在標準RS-232C的基礎上,進行了專用的、增強型串行數據通訊接口的電路設計,并采用VB6.0設計通訊程序,完成了彈-地通訊的設計任務。
1.1 串行彈-地通訊的設計基本要求
鑒于彈-地通訊的特點,為了實現高可靠性、高傳輸速率和長線串行數據的傳輸,相對于標準串行口通訊,必須采取一些具體的技術措施,一般主要包括以下幾個方面[11]。
1)限制數據傳輸的波特率。為了降低數據通訊的誤碼率,在滿足需要的情況下,盡量降低數據的傳輸速度。
2)提高傳輸信號電平,加大線路信號驅動功率。為了提高數據傳輸過程中的抗干擾能力,通常采取提高傳輸電平的方法(如將電平提高到15 V),并加大長線傳輸信號的驅動能力限制數據傳輸的波特率(如將信號的驅動電流加大到幾十毫安甚至幾百毫安),這樣可有效抑制干擾和改善信號的畸變。
3)采用差分平衡的收發方式,在收、發端分別采用光電隔離技術,對于降低傳輸的數據誤碼率有顯著效果,也可防止數據長線傳輸過程中的偶發性強電干擾(雷電、浪涌等)對兩端雙機電路的物理損壞。
4)物理長線傳輸采用雙絞線路。
5)采用有效的檢驗手段。發送端對所發數據進行冗余編碼或者提供校驗碼,在接收端進行相應的解碼和校驗。對于關鍵數據的傳輸,可采取將發送端發送的數據碼塊經接收端接收后,再返回發送端進行比較、核對等措施。
1.2 彈載計算機通訊接口分析
某型彈載計算機的彈-地通訊接口為串行數據通訊,物理層為雙光電隔離,長線驅動(可驅動300 m長線信號)。其收、發電路如圖1所示。

圖1 彈載計算機串行數據收發電路圖Fig.1 Receive-send circuit diagram of serial data of missile-borne computer
圖1 a)中,光電隔離器左端為通訊信號驅動部分,右端為彈載計算機的數字電路部分。當長線驅動信號+DR端有電流時,經光電隔離、電平轉換為TTL電平的RXD信號,連接彈載計算機的CPU。圖1 b)中,光電隔離器右端為彈載計算機數字電路部分,VCC2是彈載計算機的數字電路供電電源,對應的電源地為GND2。當彈載計算機的CPU發送數據信號-TXD時,經過光電隔離、信號調整和MIC4419電流驅動,產生長線驅動信號+TD。其中,T+15 V和TGND分別為地面提供的+15 V直流電源和地信號。
彈載計算機初始化通訊協議為RS232C標準總線的全雙工方式,一幀數據:1位起始位,8位有效數據位,1位停止位,無校驗位;128 000 bit/s的傳輸速率。
2.1 設計思路和方法
只要為地面計算機設計和彈載計算機相匹配的增強型串行口接口電路,完成彈-地通訊的物理層連接,配置通訊軟件,即可實現彈-地通訊。
普通計算機一般都具備標準的RS-232C通訊接口,但是其物理層的信號方式和彈載計算機的增強型通訊接口不匹配,其驅動能力、長線的通訊速率、抗干擾能力、通訊距離都不適合進行彈-地通訊,但可以充分利用此標準通訊接口,在此基礎上設計“通訊增強驅動模板”,將標準的RS-232C電平信號TXD、RXD進行電平轉換、光電隔離、放大驅動后,產生與彈載計算機通訊接口相匹配的信號,經屏蔽雙絞線交叉連接后,實現彈-地通訊的物理層電路設計。其原理示意圖如圖2所示。

圖2 彈-地通訊原理示意圖Fig.2 Schematic diagram of missile-ground communication
2.2 彈-地通訊增強驅動模板電路設計
圖2虛框內彈-地通訊“增強驅動模板”是設計的重點。采用MAX232A將計算機的標準串行口信號RS232-TXD(數據發送)、RS232-RXD(數據接收)轉換為TTL電平的TTL-TXD和TTL-RXD。MAX232A一般是在單片機或者DSP電路時,用來將中央處理器的串行口信號(TTL電平)轉換為標準的RS232C電平。本文將其反向應用,其轉換原理圖如圖3所示。
圖3中的VCC1和GND1使用地面計算機內部的+5 V直流電源。MAX232A的轉換速率為200 kHz,滿足本應用的128 000 bit/s的傳輸速率通訊。
TTL-TXD信號經過反相驅動器75452反相驅動后,經過光電隔離、放大驅動后,產生數據發送的隔離長線信號TD+,其工作原理圖如圖4所示。
圖4中光電隔離器右側信號放大驅動電路所需電源T+15 V、TGND是總線接口驅動電源,由地面計算機的內部電源VCC1、GND1進行DC/DC變換產生,和地面測控計算機(VCC1、GND1)、彈載計算機的電源(VCC2、GND2)都是隔離的,大大提高了信號傳輸的可靠性和接口的安全性。
彈載計算機通訊接口的數據發送信號+TD和地面計算機的“通訊驅動模板”的DR+連接,經限流電阻R11、光電隔離器和TGND構成回路。當彈載計算機端的-TXD底電平時,經光電隔離和驅動后,此長線驅動回路有電流流動,經地面計算機的“通訊驅動模板”的光電隔離器U4及其左邊電路進行隔離和整形驅動后,產生TTL-RXD信號。接收端的工作原理圖如圖5所示。

圖5 數據接收隔離轉換電路原理圖Fig.5 Schematic diagram of separated transformation circuit of data receiving
彈-地通訊增強驅動電路設計由于采取了數據傳輸的長線驅動措施,大大增強了信號的抗干擾能力并提高了通訊距離,在長線傳輸電路和地面計算機、彈載計算機之間都采取了高速光電隔離,增強了信號的傳輸能力和整個通訊接口的安全性。另外,MAX232A的反向應用也大大簡化了通訊接口的設計。至此,完成了彈-地通訊接口的物理層連接。
地面測控計算機采用Visual Basic 6.0進行測控程序的編寫。有關彈-地通訊的軟件編寫,采用了VB6.0的MSComm控件。由于彈-地通訊的物理層連接是在地面計算機的標準RS-232C串行口基礎上建立的,因而地面測控計算機通過MSComm對本機COM口進行控制,即可完成彈-地通訊數據的收發任務。
MSComm控件通過地面測控計算機的串行口端口進行傳輸和接收數據,為應用程序提供串行通訊功能[12]。
3.1 VB的MSComm控件設置
利用VB開發串行口通訊程序既可以使用MSComm控件實現,也可以調用Windows API函數實現。由于MSComm控件的功能和API調用一樣強,且使用更簡單,因而推薦使用MSComm控件來實現。在應用程序中加載一個MSComm控件,并對其屬性設置如圖6所示。其中,Settings屬性設置為:128 000,n,8,1。MSComm控件必須復合本應用的彈-地通訊協議。
在對串行口進行數據收發前,須通過設置MSComm控件的PortOpen屬性打開串行口。
Private Sub Form_Load()
If MSComm1.PortOpen=False Then
MSComm1.PortOpen=True
End If

圖6 MSComm控件屬性設置界面Fig.6 Interface of property setting of MSComm control
3.2 串行數據發送
VB通過MSComm控件的Output屬性進行數據發送,但文本數據和二進制數據的發送方式不一樣。
3.2.1 文本數據發送
地面測控計算機對彈載計算機的控制命令、指令一般采用文本數據(ANSI字符串)發送。
例如,控制彈載計算機的DAC1口輸出數據7F9H,其發送程序為:
Private Sub Command1_Click()
Dim FSCMD As String
FSCMD="$DAC17F9H*"
MSComm1.Output=FSCMD
End Sub
彈載計算機接收到這個字符串的控制命令后,將分離出其中的7F9H數據,通過DAC1口發出。
3.2.2 二進制數據發送
地面測控計算機通過彈-地通訊將彈載計算機的應用程序代碼向彈載計算機上傳加載,一些諸元數據、彈道數據上傳裝訂都需要進行二進制(BIN)的數據發送。
Output屬性可以傳輸二進制數據,但是由于Output屬性傳遞文本數據時必須定義一個包含字符串的Variant型變量,在發送二進制數據時,必須傳遞一個包含字節數組的Variant型變量到Output屬性。下面是VB發送一個16進制數據0A9H(對應的二進制為10101001B)的發送子程序:
Public Sub sentbyte(DBYTE)
Dim DATAs Variant
Dim SENDDAT(0)As Byte
SENDDAT(0)=DBYTE
DAT=SENDDAT
MSComm1.Output=DAT
End Sub
調用Call sentbyte(&HA9),即可發出數據0A9H。
3.3 串行數據接收
VB通過MSComm控件的Input屬性進行數據接收,接收的數據格式有文本數據和二進制數據,接收方式主要分為查詢讀取和事件驅動的讀取方式。
3.3.1 文本數據接收
MSComm控件的InputMode屬性默認為0-com InputModeText,即讀取的數據類型為文本格式。下段程序完成從彈-地通訊接口數據緩沖區讀取字符串信息,并在TEXT1窗口顯示。
Private Sub Command2_Click()
Dim ReadString As String
ReadString=MSComm1.Input
Text1.text=ReadString
End Sub
通過屬性InputLen,可設置并返回接收數據緩沖區的字符數。
3.3.2 二進制數據接收
MSComm控件的InputMode屬性設置為1-com InputModeBinary,即可設置讀取的數據類型為二進制格式。但用Input屬性讀取數據時,不能直接賦值給Byte類型變量,應先送給1個Variant型變量,返回1個二進制數據的數組,再賦值給Byte類型的變量中。下面是VB程序讀取1個二進制數據的子程序。
Public Sub Readbyte()
Dim DATAs Variant
Dim READDAT(0)As Byte
MSComm1.InputMode=com InputModeBinary
DAT=MSComm1.Input
READDAT=DAT
End Sub
變量READDAT即為讀取的二進制數據。
3.3.3 事件驅動的讀取方式
在實時性要求高的情況下,可通過MSComm控件的事件驅動OnComm(相當于計算機的中斷方式),采用讀取其屬性CommEvent的18個不同的值來細分不同的具體觸發事件[13]。
其中,當CommEvent=2時,說明觸發事件為:接口數據緩沖區已接收了Rthreshold個字節。下面是MSComm的事件驅動方式下,數據接收的事件驅動程序(類似于計算機的串行口中斷服務程序)。
MSComm1.RThreshold=1
Private Sub MSComm1_OnComm()
Dim cha as Variant
If MSComm1.CommEvent=2 then
cha=MSComm1.Input
……………..'處理語句
End If
采用事件驅動的讀取方式實時性好,但是要根據不同的實際應用情況定長度的、變長度的數據塊結合MSComm1.Rthreshold的設置、特殊字符(結束符等)來靈活運用。
在測控計算機應用程序的編寫過程中,為了保證數據傳輸的正確性,在彈-地通訊的串行數據傳送時,采取了以下2種技術措施[14]。
第1種是采用較為實用的累加和校驗方式。其具體校驗方法是:當傳輸數據塊為連續的N個字節數據時,在傳送前定義一個字節型數據變量A,然后將要傳輸數據進行加法運算:

A就是這N個字節型數據的累加和。加法過程中的溢出和進位自然丟失。數據發送程序先將N個數據發送完畢后,再發送A。當數據傳輸接收端接收完N個數據以及累加和數據A后,也將收到的N個數據進行累加。如果計算的累加和與收到的累加和相等,即認為數據傳輸正確。否則,再傳輸一次。
第2種措施是在地面測控計算機通過彈-地通訊向彈載計算機上傳其應用程序代碼文件時使用。其方法是彈載計算機收到地面計算機上傳的文件代碼后并不立即執行,而是將其下傳給地面計算機。地面測控計算機收到后形成另外一個代碼文件,然后將這2個文件進行按字節比對,全部對上的話說明通訊正確,就啟動彈載計算機執行剛才上傳的代碼程序。否則,重新上傳。
本文進行了彈-地通訊電路接口的硬件電路設計和地面測控計算機通訊接口的軟件設計。通過實際的調試和改進,確定了電路的具體參數,滿足了彈-地通訊的設計要求和指標。
經使用驗證,本文設計的彈-地通訊接口能夠在128 000 bit/s的傳輸速率下可靠地工作,誤碼率幾乎為零,而且其驅動距離達到300 m,說明了該彈-地通訊接口設計有效、實用。本文的設計方法對其他情況的長距離、高通訊速率、高可靠性、低誤碼率的非標準增強型計算機串行通訊接口的設計也提供了借鑒。
[1] 楚要欽,譚震,賀瑩,等.一種基于PowerPC的彈載飛控計算機設計[J].航空計算技術,2013,43(4):109-112. CHU YAOQIN,TAN ZHEN,HE YING,et al.Design of m issile-borne flight control computer based on PowerPC m icroprocessor[J].Aeronautical Computing Technique,2013,43(4):109-112.(in Chinese)
[2] 梁明,陳濤.對彈載計算機進行單元測試的方法研究[J].戰術導彈技術,2008(3):85-88. LIANG MING,CHEN TAO.Study of the method of unit test for missile-borne computer[J].Tactical Missile Technology,2008(3):85-88.(in Chinese)
[3] 李珊珊.嵌入式彈載計算機性能優化與實現[J].航空兵器,2011(3):56-59. LI SHANSHAN.Performance optim ization and implementation of the embedded m issile-borne computer[J]. Aero Weaponry,2011(3):56-59.(in Chinese)
[4] 崔吉俊.火箭導彈測試技術[M].北京:國防工業出版社,1999:155-156. CUI JIJUN.Rocket and missile test technology[M].Beijing:National Defense Industry Press,1999:155-156.(in Chinese)
[5] 王楨,熊育信,童鑫.一種機載設備的通訊接口電路的設計與實現[J].電子技術,2013(5):80-82. WANG ZHEN,XIONG YUXIN,TONG XIN.The design and implementation of a communication interface circuit in an airborne equipment[J].Electronic Technology,2013(5):80-82.(in Chinese)
[6] 陳耿.一種串口通訊新模型的研究與應用[J].電腦知識與技術,2013,9(4):689-692. CHEN GENG.Research and application of a new serialcommunication model[J].Computer Know ledge and Technology,2013,9(4):689-692.(in Chinese)
[7] 李金猛.基于EPM7192的RS232轉I0接口模塊的設計與實現[J].電腦設計工程,2013,21(15):168-170. LI JINMENG.Design and implementation of RS232 to I0 interface module based on EPM7192[J].Electronic Design Engineering,2013,21(15):168-170.(in Chinese)
[8] 李桂艷,趙文娟.RS485總線多機通信系統設計[J].科學之友,2013(10):159-160. LI GUIYAN,ZHAO WENJUAN.RS485 bus multicomputer communication system design[J].Friend of Science Amateurs,2013(10):159-160.(in Chinese)
[9] 張毅剛,彭喜源,譚曉昀.MCS-51單片機應用設計[M].哈爾濱:哈爾濱工業大學出版社,1997:228-230. ZHANG YIGANG PENG XIYUAN,TAN XIAOYUN. MCS-51 chip microcomputer application design[M].Harbin:Harbin Industry University Press,1997:228-230.(in Chinese)
[10] 孫立亭,王波,薛明.基于MCU的多機并行通信系統設計[J].儀表技術,2010(8):49-50. SUN LITING,WANG BO,XUE MING.MCU-based multi-machine parallel communication system design[J]. Instrumentation Technology,2010(8):49-50.(in Chinese)
[11] 張載鴻.微型機(PC系列)接口控制教程[M].北京:清華大學出版社,1992:232-280. ZHANG ZAIHONG.Micromachine(PC Series)interface control course[M].Beijing:Tsinghua University Press,1992:232-280.(in Chinese)
[12] 高春艷,劉彬彬.Visual Basic控件參考大全[K].北京:人民郵電出版社,2006:662-680. GAO CHUNYAN,LIU BINBIN.A complete inference collection on visual basic control[K].Beijing:People's Post and Telecommunications Press,2006:662-680.(in Chinese)
[13] 仲維俊.Visual Basic6.0完全自學手冊[K].北京:機械工業出版社,2007:263-285. ZHONG WEIJUN.Visual basic 6.0 complete self-study manual[K].Beijing:Machinery Industry Press,2007:263-285.(in Chinese)
[14] 賈永年,吳孝忠,楊曉斌,等.測控計算機與監控顯示系統[M].北京:國防工業出版社,2000:77-79. JIAYONGNIAN,WU XIAOZHONG,YANG XIAOBIN,et al.Test&control computer and monitor display system [M].Beijing:National Defense Industry Press,2000:77-79.(in Chinese)
A Type of Practice Interface Design for Missile-Ground Comunication
WANG Ting,ZHAO Hong-chao,YANG Zhi-yong,LU Wei-wei
(No.7 Department,NAAU,Yantai Shandong 264001,China)
In order to realize the missile-ground communication between general personal computer and missile-borne computer,the enhanced communication interface circuit and communication protocol of a type of missile-borne computer was analyzed.The communication interface hardware circuit of applying to general computer was designed.The communication program was designed based on VB6.0.From the actual test and working result,it was realized that high-speed long-distance high-reliability data communication,and the bit error rate also was low.It illustrates the effectivenesd and practicality of the designed communication interface.
missile-borne computer;missile-ground communication;baud rate;check
TJ760.3+5
A
1673-1522(2014)04-0323-06
10.7682/j.issn.1673-1522.2014.04.006
2014-03-11;
2014-06-19
王亭(1965-),男,副教授,碩士。