王亭,赵红超,杨智勇,陆巍巍
(海军航空工程学院七系,山东烟台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-),男,副教授,硕士。