1网络监控系统中服务器与单片机实时通信的设计与实现孙继平1刘晓悦1,2(1.中国矿业大学(北京)煤炭资源与安全开采国家重点实验室;2.河北理工大学)摘要:本系统主要研究工作于危险环境的远程探险机器人的网络监控系统,采用C/S架构,运用实时通信技术(RTC)完成音频视频的采集、传输和播放,以获得远端逼真的环境信息;利用串口通信技术与单片机通信,获取安装在机器人上的传感器信息,使用网络通信套接字技术实现客户端与服务器端的远程通信,形成单片机、服务器、客户端流水线处理过程,对地下开采等危险作业区远程监控的进一步研究提供重要的参考模式。关键词:网络套接字;单片机;实时通信技术;音频;视频中图分类号:TP216+.2文献标识码:AThedesignandrealizeofthereal-timecommunicatebetweentheserverandsingle-chipinthenetworkofinspectingandcontrolLIUXiaoyue1,2SUNJiping11.CountryImportanceLaboratoryofCorfResourceandSafetyMining;ChinaUniversityofMining&Technology;Beijing1000802.SchoolofComputerandAutomaticcontrol;HebeiPolytechnicUniversity,TangShan100060,ChinaAbstract:Itstudiesthenetworksystemofinspectingandcontrolwithremoteexploringrobot.WiththeC/Spattern,thesystemappliesthereal-timecommunicate(RTC)technologytoaccomplishthecollectionandtransmissionandplayofaudioandvideo,andobtainstherealityenvironmentinformationfromthefar.Itappliestheserialporttechnologycommunicatingwiththesingle-chip,catchingtheinformationfromthesensorontherobot,andappliesthenetworksockettechnologycommunicatingbetweenserverandclient.Itispipeliningpatternofsingle-chipandserverandclient.Itistheimportantreferenceforthefurtherstudyabouttheremotecommunicationsinthedangerousworkinglikethemining.Keywords:networksocket;single-chip;RTC;audio;video1引言本系统主要是实现移动机器人的音频视频监视和网络控制的功能,用户可以通过安装在移动机器人的麦克风和摄像头进行音频和视频采集,利用网络进行音频视频信号的传输,可以在上位机上随时获得机器人当前所处的环境,在本地主机上能接收到远端主机采集的音视频信号,并能通过本地上位机键盘向远端发送控制命令,可对其进行高级控制:躲避障碍物、定向运动等。同时能够对特定的视频信号进行捕捉,并进行存储。2驱动系统移动机器人的控制系统与驱动系统采用各自独立的CPU进行控制。嵌入式计算机作为整个控制系统的核心,驱动系统中采用凌阳16位单片机SPCE061A作为控制核心。驱动系统与嵌入式计算机控制系统之间采用RS232串行通讯协议进行信号的传递。光电传感器用于速度检测以及MAX202进行串口通信中的电平转换芯片组成。控制系统通过简单的指令就可以实现移动机器人的各种行动的控制,为控制系统减轻负担,获得更佳的性能做出铺垫。总体结构图如图1所示:2图1驱动系统总体结构图3.网络控制命令传输的设计网络通信套接字(socket)是一种网络编程接口,它是对通信端点的一种抽象,提供了一种发送和接收数据的机制。用户目前可以使用两种套接字,它们是数据报套接字(DatagramSockets)和流式套接字(StreamSockets),在本系统中,控制命令的传输必须相当可靠,为了适合外部复杂恶劣环境,采用了流式套接字来传输网络控制命令。流式套接字可以将数据按顺序无重复地发送到目的地,它提供的是—种可靠的面向连接的数据传输方式。不管是对单个的数据报、还是对数据包,流式套接字都提供了—种流式数据传输。流式套接字使用传输控制协议(TCP),是基于连接的协议。当用户发送大批量数据或让发送的数据按顺序无重复地到达目的地时,使用流式套接字是最方便的。本项目使用了一个CAsyncSocket类,它是在很低程度上对WinSockAPI的封装,提供的低级接口几乎和WinSockAPI的函数调用直接对应。项目中用于通信的套接字都运用了面向对象中类继承的概念,CSocketClient、CSocketServer都是派生于CasyncSocket类。本系统采用C/S架构,服务器端一直处于对客户端请求的监听状态,客户端具体实施对连接的请求。4.服务器与下位单片机实时通信的设计使用流式套接字只是在服务器和客户端之间建立了通信链路。而控制命令也只是从客户端传输到了远程服务器上,要想控制命令能驱动机器人的电机,还必须将控制命令传输到下位单片机上,通过单片机和底层驱动电路来控制电机的转动方向。本系统采用了VisualC++中的MSComm控件串口通信技术来实现服务器和下位单片机通信。通信结构模块如图2所示:图2串口通信结构MicrosoftCommunicateionsControl是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。4.1串行通信协议分为面向字符的同步协议、面向比特的同步协议、起止式异步协议,本系统使用MSComm控件,采用起止式异步通信协议。凌阳16位单片机驱动芯片L298N直流减速电动机电平转换芯片MAX202光电传感器嵌入式计算机3图3表示了起止式异步协议的数据格式:图3起止式异步协议的数据格式起止式异步协议的特点是逐字符传输,并且传送一个字符总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求。每一个字符的前面都有一位起始位(低电平,逻辑值0),字符本身有5~7位数据位组成,字符后面是一位校验位(也可以没有校验位),最后是停止位,停止位后面是不定长度的空闲位。停止位和空闲位都规定为高电平,这样就保证起始位开始处一定有一个下跳沿。4.2MSComm控件通信方式MSComm控件使用起止式异步协议,提供两种处理通信的方式:事件驱动方式和查询方式,本项目采用的是事件驱动方式。事件驱动方式是处理串行端口交互作用的一种非常有效的方式。事件发生时需要得到通知,可以利用MSComm控件的OnComm事件捕获并处理这些通信事件,在OnComm事件处理函数中加入自己的处理代码,程序响应及时,可靠性高。每个MSComm控件对应一个串行端口。以设置MSComm控件的Settings属性为例,由于采用事件驱动方式,串口1和串口2的波特率是不一样的。m_hCom61.SetSettings(115200,n,8,1);//设置串口1数据传输参数;m_hCom51.SetSettings(9600,n,8,1);//设置串口2数据传输参数;当串口接收到数据后,将执行串口通信的响应函数OnCommMscomm();为了实现数据的及时传输,本项目设置为串口缓冲区有一个字符就响应。m_hCom61.SetRThreshold(1);//表示有一个字符引发一个事件。5实时串口通信技术的实现本系统需要传输的控制命令包括,机器人的前后左右、摄像头云台的上下、超声波传感器的探测到的障碍物的距离、光电传感器是否探测到障碍物。传感器布局如图4所示:图4传感器布局图4自定义的串口1通信协议:“#g/b/l/r___$”//命令机器人以多少占空比的速度前进/后退/左转/右转。“#E__$”//光电测速传感器探测机器人0.5秒内移动的距离。自定义的串口2通信协议:“uuu/sss/nnn”//云台电机的正转/停止/反转。“#F/L___$”//前方/左方超声波传感器探测到障碍物的距离。“*/&”//超声波传感器没探测到障碍物。“x/y/z”//前/左/右光电传感器是否探测到障碍物。利用这些自己制定的通信协议,可以实现对机器人的控制。从传感器的布局图中可以看出,在机器人的前面和后面均安装了两种传感器。因为超声波传感器能探测的距离有局限,超声波传感器只能探测到大于25cm的障碍物,当障碍物的距离很近时,返回的值为25cm。光电传感器能探测到障碍物的距离为大于20cm。因此,增加了一个光电传感器来探测距机器人很近的位置的障碍物。这样能探测的有效距离增加了5cm。本系统使用了两个单片机,使用两个串口分别与单片机通信。6.运行本系统在正在施工中的校园宿舍楼地下室试运行,现场坡路较多,坑洼不平,由于各室隔断较密,且布局复杂,比较符合本系统开发的面向对象。采用履带式驱动轮使得机器人能根据不同的路面自行调整,保证稳定行进;我们在地下室距离地面约30m放置无线路由器(单层),这样地面上的终端机随时根据用户的口令遥控地下机器人进行不同方位的转向、前进、后退;由于机器人的前后安装了超声波和光电两种传感器,探测障碍物的距离,设置的障碍物的距离100cm、50cm,机器人传送回来的距离障碍物最近距离为20cm,机器人移动的距离传送平均时间0.5秒,麦克风和摄像头分别采集音频和视频信息,摄像头分辨率为800×600,以每秒25帧传送动态视频图像,地面上的用户机动态接收地下机器人传送的信息,试验利用了单层无线路由器,控制距离约3~5米,若用多层无线路由器可控距离大幅度增加。7.结论网络监控系统既通过网络对某一地点情况的捕捉最直观的方式当然是视频监控,在本地主机上能接收到远端主机采集的音视频信号,传输采用VisualC++的网络套接字(TCP/UDP),能将服务器端采集到的声音视频信号通过无线网络传输到客户端显示出来,实现远程音视频的监控,并将无线局域网计算机通信技术和计算机串口通信技术及单片机技术有机地结合到一起,履带式驱动轮使得机器人能很好地适应各种不同的地面,提高了机器人的行动能力和生存能力。在控制系统中加入了遥感控制的思想,特别适合从事一些高危工作遥控探测车、无人机等,极大地降低了人员的危险系数。参考文献:[1]DouglasC.Schmidt,StephenD.Huston.C++networkprogramming.北京:清华大学出版社,2003-2004.37-107[2]李现勇.VisualC++串口通信技术与工程实践(第二版).北京:人民邮电出版社.2004年7月.55-88[3]陆其明.DirectShow实务精选.北京:科海电子出版社.2004年7月.10-241作者简介:孙继平,男,博士生导师,主要研究方向:通信与信息系统,Email:sjp@cumtb.edu.cn刘晓悦,女,博士研究生,主要研究方向:计算机通信,电话:0315-2885660,Email:liuxy@heut.edu.cn本文为教育部博士点基金项目(高等学校博士学科点专项科研基金):“矿井火灾图像识别与预报”(No.20050290010)