APP下载

激光打靶多路数据通信系统设计

2012-09-12锐,

电子测试 2012年11期
关键词:数据通信控件串口

周 锐, 周 健

(1. 中北大学 信息与通信工程学院, 太原 030051; 2.国营781厂, 兰州 730000)

0 引言

在我国部队中,战士在进行射击打靶训练时,现在一般仍采取传统的实弹射击训练方法,激光模拟训练器材还没有装备使用,实弹射击训练不仅浪费弹药,而且危险性高,组织实施比较困难。用激光射击系统模拟实弹射击,节省了弹药的同时又能提高训练的安全性并获得实弹射击同样的效果,大大提高战士们的实际水平。利用含有激光技术、单片机技术、传感器和微电子技术的模拟射击训练系统设计和实现,对国防建设现代化,军事训练智能化、提高部队整体素质,以及节约国防开支都具有重要意义。

1 系统总体设计

为了提高系统在通信过程中的性能,本系统在设计时采用RS485总线进行串行数据的通信。系统中计算机通过调用串口控件与外部的RS232C进行通信,RS232C与RS485总线标准间的转换通过RS232/RS485转换器来实现。各单片机与RS485总线的连接通过SN75176芯片来实现。

本系统的设计容量为12个终端和一台控制器(计算机),2者都与RS485总线进行连接通信,根据系统设计的具体要求,其总体设计框图如图1所示。

图1 多路数据通信系统总体结构设计

2 系统硬件和软件设计

2.1 RS485总线电路设计

RS485是一种多发送器的电路标准,电路结构是在平衡连接电缆两端由终端电阻,在平衡电缆上挂发送器、接收器、组合收发器。在一般的RS485总线多机串行通信系统设计中,均采用主从式结构。图2所示为采用SN75176芯片和RS485总线构成的单片机间多机通信的原理图。

图2 采用RS485构成的多单片机通信原理图

如图2所示,在总线末端需要接一个匹配电阻,来吸收总线上的反射信号,保证正常传输信号干净、无毛刺。匹配电阻的取值应该与总线的特性阻抗相当。

2.2 微机的串行通信协议设计

要保证通信的可靠性,必须有严格的通信协议。下面是本设计中涉及到的最基本的几条协议:

(1)系统中从机容量最多可为255台,分别设置其地址为00H~FEH;

(2)地址FFH是对所有从机都起作用的一条控制命令,命令各个从机可以恢复SM2=1时的状态;

(3)数据块的长度设为16个字节;

(4)主从机间的联络过程为:主机首先发送地址,被寻址从机返回本机地址给主机,如果判断其地址相符后,主机给其发送控制命令,该从机根据主机的命令回送主机本机的状态,如果主机判断状态正常,则开始发送或接收数据,其第一个字节是数据块的长度;

(5)设定主机发送的控制命令代码为:

00:要求从机接收数据块;

01:要求从机发送数据块;

(6)从机状态字的基本格式为:

D7 D6 D5 D4 D3 D2 D1 D0 ERR 0 0 0 0 0 TRDY RRDY

ERR=1,从机接收到非法命令;

TRDY=1,从机发送准备就绪;

RRDY=1,从机接收准备就绪。

本系统采用的标准是异步串行通信模式,传输的数据格式设置为11位,即:1位起始位、8位数据位、1位校验位、1位停止位。

通信协议包括3种帧格式:呼叫帧、应答帧和数据帧。

呼叫帧是由上位机发出的,它的格式为起始字符、下位机地址和异或校验位。依据其功能细分为呼叫帧1和呼叫帧2,呼叫帧1用来轮询各台下位机的状态;呼叫帧2则用来关闭轮询,而只与一台下位机进行通信,接下来上位机开始与某一台下位机通过数据帧进行一对一的大量数据通信。

应答帧只能由下位机发出。当下位机收到呼叫帧后,把本机地址和当前状态回发给上位机。

上下位机都能发出数据帧,这是上下位机间进行大量数据传输的基本格式。在发数据帧前,上位机通过呼叫帧2与某一台下位机形成一对一的连接。

2.3 通信功能实现的软件设计

控制AT89S52单片机串行口的控制寄存器共有2个:特殊功能寄存器SCON和PCON,分别用于设定4种不同的通信方式及定义波特率。它的串行口工作方式3是可变波特率的9位数据异步通信方式,发送或接收一帧数据为11位:1位起始位(0)、8位数据位、l位附加的校验位和1位停止位(1)。其中附加的第9位数据是可编程的,利用这一可控的第9位数据,同时设置好传输波特率和数据传输格式就可以实现多机通信。主机与从机的通信程序流程框图如图3所示。其中:左图为发送流程图;右图为接收流程图。

图3 通信程序设计流程图

2.4 Visual C++编程实现串口通信

本系统使用Visual C++中的MScomm控件实现串口通信功能。MScomm是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。

(1)在建立的Project中添加了类CMSComm,打开“Project->Add to Project ->Components->and Controls-> Registered ActiveX Controls”菜单选择Components: Microsoft Communi -cations Control version 6.0;(2)在对话框上添加MSComm控件及其ID的控制变量;(3)对串口进行初始化,设置MSComm控件的属性;(4)添加串口事件的消息处理函数OnComm()函数,在函数中编写数据处理代码;(5)编写串口发送等其它代码;(6)关闭串口。

3 系统测试与结论

图4是用Microsoft Visual Studio 2008编写测测试程序,从图中可以看出,系统达到了设计目标,基本实现了激光打靶数据通信的功能。后续的工作还要完善计算机上位机程序,完成激光打靶数据处理系统和数据库的建立。

图4 测试程序显示结果

本文所述的激光打靶多路数据通信系统满足了我军部队射击模拟训练的需要。体积小,经济实用,完全摆脱了其他电子训练设备臃肿的外貌。操作方便,维护简单,提高了部队进行群体射击训练的效率。解决了激光打靶系统的连网问题,满足了部队群体训练的需要。

[1]马明建,周长城.数据采集与处理技术[M].西安:西安交通大学出版社,1999.

[2]Intel Corporation.MCS51 Microcontroller Family Programmer’s Guide and Instruction Set[R].Intel Corporation ,1997.

[3]蔡美琴.MCS-51系列单片机系统及其应用[M].北京:高等教育出版社,1992.

[4]毛谦敏.单片机原理及应用教程[M].北京:国防工业出版社,2005.

[5]周志光,刘定良.单片机技术与应用[M].长沙:中南大学出版社,2005.

[6]M Asim Khan.PC RS422 INTERFACE,2002[EB/OL].http://wenku.baidu.com/view/0b790dd6 360cba1aa811da09.html.

[7]东方人华,李秀敏,凌宇欣.Visual C++ 6.0范例入门与提高[M].北京:清华大学出版社,2003.

[8]刘晓华.精通MFC[M].北京:电子工业出版社,2003.

猜你喜欢

数据通信控件串口
浅谈AB PLC串口跟RFID传感器的通讯应用
基于快牙平台实现全站仪与计算机的数据通信
关于.net控件数组的探讨
监测系统接口数据通信方式
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
一种高效可靠的串行数据通信协议及处理算法
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
TCN实时协议栈过程数据通信研究
ASP.NET服务器端验证控件的使用