综合资讯 在线阅读 原文阅读 在线商城 下载专区 DATASHEET 技术论坛 商务频道

嵌入式系统  单片机  D S P  EDA/PLD  接口电路  存储技术  显示光电  电源技术
传感/控制  模拟技术  通信网络  无线通信  电测仪表  消费电子  汽车电子

所在的位置:首页技术文章通信网络正文
 
网络监控系统中服务器与单片机实时通信的设计与实现
发布日期:2008-06-21 作者:孙继平 刘晓悦 来源:电气自动化

摘要:本系统主要研究工作于危险环境的远程探险机器人的网络监控系统,采用 C/S架构,运用实时通信技术(RTC)完成音频视频的采集、传输和播放,以获得远端逼真的环境信息;利用串口通信技术与单片机通信,获取安装在机器人上的传感器信息,使用网络通信套接字技术实现客户端与服务器端的远程通信,形成单片机、服务器、客户端流水线处理过程,对地下开采等危险作业区远程监控的进一步研究提供重要的参考模式。 
关键词:网络套接字; 单片机;实时通信技术;音频;视频

1 引言

本系统主要是实现移动机器人的音频视频监视和网络控制的功能,用户可以通过安装在移动机器人的麦克风和摄像头进行音频和视频采集,利用网络进行音频视频信号的传输,可以在上位机上随时获得机器人当前所处的环境,在本地主机上能接收到远端主机采集的音视频信号,并能通过本地上位机键盘向远端发送控制命令,可对其进行高级控制:躲避障碍物、定向运动等。同时能够对特定的视频信号进行捕捉,并进行存储。

2驱动系统

移动机器人的控制系统与驱动系统采用各自独立的CPU进行控制。嵌入式计算机作为整个控制系统的核心,驱动系统中采用凌阳16位单片机SPCE061A作为控制核心。驱动系统与嵌入式计算机控制系统之间采用RS232串行通讯协议进行信号的传递。光电传感器用于速度检测以及MAX202进行串口通信中的电平转换芯片组成。控制系统通过简单的指令就可以实现移动机器人的各种行动的控制,为控制系统减轻负担,获得更佳的性能做出铺垫。

总体结构图如图1所示:

图1  驱动系统总体结构图

3.网络控制命令传输的设计

网络通信套接字(socket)是一种网络编程接口,它是对通信端点的一种抽象,提供了一种发送和接收数据的机制。用户目前可以使用两种套接字,它们是数据报套接字(Datagram Sockets)和流式套接字(Stream Sockets),在本系统中,控制命令的传输必须相当可靠,为了适合外部复杂恶劣环境,采用了流式套接字来传输网络控制命令。

流式套接字可以将数据按顺序无重复地发送到目的地,它提供的是—种可靠的面向连接的数据传输方式。不管是对单个的数据报、还是对数据包,流式套接字都提供了—种流式数据传输。流式套接字使用传输控制协议(TCP),是基于连接的协议。当用户发送大批量数据或让发送的数据按顺序无重复地到达目的地时,使用流式套接字是最方便的。                                             本项目使用了一个CAsyncSocket类,它是在很低程度上对WinSock API的封装,提供的低级接口几乎和WinSock API的函数调用直接对应。项目中用于通信的套接字都运用了面向对象中类继承的概念,CSocketClient、CSocketServer都是派生于CasyncSocket类。

本系统采用C/S架构,服务器端一直处于对客户端请求的监听状态,客户端具体实施对连接的请求。

4. 服务器与下位单片机实时通信的设计

使用流式套接字只是在服务器和客户端之间建立了通信链路。而控制命令也只是从客户端传输到了远程服务器上,要想控制命令能驱动机器人的电机,还必须将控制命令传输到下位单片机上,通过单片机和底层驱动电路来控制电机的转动方向。

本系统采用了Visual C++中的MSComm控件串口通信技术来实现服务器和下位单片机通信。通信结构模块如图2所示:

图2 串口通信结构

Microsoft Communicateions Control是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。

4.1  串行通信协议

分为面向字符的同步协议、面向比特的同步协议、起止式异步协议,本系统使用MSComm控件,采用起止式异步通信协议。

   图3表示了起止式异步协议的数据格式:

                   图3 起止式异步协议的数据格式

起止式异步协议的特点是逐字符传输,并且传送一个字符总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求。每一个字符的前面都有一位起始位(低电平,逻辑值0),字符本身有5~7位数据位组成,字符后面是一位校验位(也可以没有校验位),最后是停止位,停止位后面是不定长度的空闲位。停止位和空闲位都规定为高电平,这样就保证起始位开始处一定有一个下跳沿。

4.2  MSComm控件通信方式

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); // 表示有一个字符引发一个事件。

实时串口通信技术的实现

本系统需要传输的控制命令包括,机器人的前后左右、摄像头云台的上下、超声波传感器的探测到的障碍物的距离、光电传感器是否探测到障碍物。传感器布局如图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. 结论

网络监控系统既通过网络对某一地点情况的捕捉最直观的方式当然是视频监控,在本地主机上能接收到远端主机采集的音视频信号,传输采用Visual C++的网络套接字(TCP/UDP),能将服务器端采集到的声音视频信号通过无线网络传输到客户端显示出来,实现远程音视频的监控,并将无线局域网计算机通信技术和计算机串口通信技术及单片机技术有机地结合到一起,履带式驱动轮使得机器人能很好地适应各种不同的地面,提高了机器人的行动能力和生存能力。在控制系统中加入了遥感控制的思想,特别适合从事一些高危工作遥控探测车、无人机等,极大地降低了人员的危险系数。

 

参考文献:

[1] Douglas C. Schmidt, Stephen D. Huston.C++ network programming. 北京:清华大学出版社, 2003-2004. 37-107

[2] 李现勇.Visual C++串口通信技术与工程实践(第二版). 北京:人民邮电出版社.2004年7月.55-88

[3] 陆其明.DirectShow实务精选. 北京:科海电子出版社. 2004年7月.10-241


 (全文结束)

信息发布:   转引自: 【 】 【打印】 【关闭
 相 关 文 章
SPCE061A实现的电话防盗报警器 (11-30)
基于SPCE061A单片机的图形液晶模块的驱动设计 (01-06)
SPCE061A实现的电话防盗报警器 (02-27)
基于SPCE061A的车载DVD播放器设计与实现 (10-31)
以16位单片机实现信息家电连接internet的解决方案 (10-02)
基于SPCE061A的ACM12864J液晶显示模块应用设计 (09-04)
SPCE061A单片机与液晶显示模块HS12864-1的接口及其编程 (09-13)
智能语音播报作息时间控制器 (03-13)
基于Cyclone EP1C6和SPCE061A的LED大屏幕系统设计 (07-20)
基于SPCE061A单片机的二级倒立摆控制系统 (03-22)
基于SPCE061A的语音识别系统的设计 (06-13)
语音识别的智能门控系统设计 (06-16)
数控直流电流源的设计与实现 (12-21)
基于LabVIEW与凌阳SPCE061A实现串口数据采集 (08-24)
基于SPCE061A的嵌入系统接入互联网方法的研究 (08-10)
基于SPCE061A的指纹识别系统 (08-10)
基于VC++的数据监视系统 (06-17)
关于我们 ┋ 友情链接


深圳市福田区海滨广场恒福花园恒华阁11F
电话:0755-88305872 传真:0755-88305880
Copyright©2005-2007 无忧电子开发网版权所有

粤ICP备05064233号