微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > EM200在分布式探测站组网通信的应用

EM200在分布式探测站组网通信的应用

时间:02-10 来源:互联网 点击:

MCU以中断方式经串口0接收探测站的数据,并将其按AT指令TCP发送命令格式传至EM200模块。EM200在完成当前TCP数据包发送处理后,将执行后的结果通过串口1返回给MCU,若MCU正忙于接收来自探测站的数据,则AT指令执行结果被压入TL16C752B接收缓存,并通过中断提示MCU此时串口1接收到数据,一旦MCU从串口0接收中断释放就立即转去处理串口1接收中断,足够大的缓存保证了EM200响应结果能被完整接收。

4 软件设计
4.1 转发平台的软件设计
由于EM200仅支持TCP协议中的客户端模式,而各个TCP客户端之间是不能直接通信的。因此在收发系统中必须引入中间转发平台作为TCP服务器端,通过TCP服务器对收到的客户端数据进行转发处理从而间接实现在客户端间的数据交换。TCP服务器端的软件编写较为容易,由于该软件最终运行在公网的PC上,可以在VB环境下利用WinSock组件来实现。TCP服务器开启两组监听端口分别监听来自接收端和发送端的链接请求,当建立起与发送端和接收端的TCP链接后,将发送端链接收到的数据从接收端链接发送出去,如此完成转发操作。
4.2 收发终端软件设计
针对分布式无源探测网络较高的实时性要求,若仍采用无限循环的前/后台软件架构是不合适的,而引入实时操作系统(RTOS)一方面可以提高整体的响应时间,另一方面可以将复杂的应用分解成多个相对独立子功能模块,降低了软件编写复杂程度。此处选择μC/OS-Ⅱ,其较少的硬件资源开销很适合ARM7这类MCU。
4.2.1 发送端软件设计
发送端可以拆分成三个进程,每个进程都是一个无限循环,依靠μC/OS-Ⅱ内核的调度机制,MCU在三个进程之间切换执行,实现发送端对探测站数据的接收和CDMA发送操作。
进程1的优先级最高,其任务是读取串口0收到的数据并将其压入在RAM中开辟的缓冲区。串口0的读取操作是由中断服务程序ISR配合RTOS中的信号量实现的。具体过程是在进程1中调用RTOS的OSSemPend函数阻塞当前进程,当串口0收到数据并触发中断后,在中断服务程序ISR中读出的串口0缓存数据,并调用RTOS的OSSemPost函数释放相应的信号量,则原先被阻塞的进程继续执行,此时将ISR中读出的数据压入RAM中开辟的缓冲区,完成一次循环,如图8所示。

进程2负责从串口1接收来自EM200模块的AT指令应答结果,由于预先得知TCP发送指令执行后的应答响应不会超过串口1的64 B FIFO缓存容量,因此实时接收的要求不如串口0严格,所以进程2优先级可低于进程1。进程2的架构与进程1基本相同,惟一区别是将读出的应答响应存到指定的AT指令暂存缓冲区,如图9所示。


进程3负责从RAM缓冲区中截取一段之前串口0接收到的数据,并按AT指令TCP发送格式打包并发送给EM200模块,然后检测AT指令暂存缓冲区中的应答响应结果,判断是否立即发出下一轮TCP发送指令给EM200,如图10所示。进程3对串口1执行发送操作,实时性相对进程1和进程2要求更低,因此进程3的优先级可设为三者中最低一级。

4.2.2 接收端软件设计
接收端也分为三个进程,依靠RTOS的调度机制,MCU在三个进程之间切换执行,实现接收端对来自CDMA网络数据包的接收并将解析后的有效数据发送给融合中心。
鉴于EM200收到自CDMA网络数据后会直接经串口将数据包输出的特性(不同于其他模块会将数据暂存在模块内部,只有当收到AT指令读命令后才会输出数据包),因此最高优先级进程1的任务就是通过串口1接收自EM200的数据包并将其压入在RAM开辟的缓冲区。如图11接收端的进程1架构与发送端进程1类似。

由于进程1中收到的数据包含有部分无效字符,因此中等优先级进程2负责解析缓冲区数据包中的有效数据,若检测到缓冲区中无完整的数据包,则调用RTOS提供的OSTimeDlyHMSM函数延时一定时间,在延时期内主动释放MCU的使用权,若检测到一个以上的完整数据包,则在解析处理后将有效数据送入在内存中开辟的串口0发送缓冲区,该进程架构如图12所示。

低优先级的进程3负责检测串口0的发送缓冲区是否为空,若不为空则通过串口0将缓冲区中数据发送出去,如图13所示。

只有在进程2延时期内且进程1处于挂起状态,负责串口0发送任务的进程3才得以执行。由于采用了延时的方式主动释放对MCU的使用权,因此延时的大小决定了进程3每次的执行时间,延时若设得过大可能会造成数据包解析不及时从而导致串口1收到的数据包在接收缓冲区中大量堆积,使得实时性大大降低。延时若设得过小则会导致进程3在发送一段较长的数据时被经常打断,微控制器的处理资源被浪费在频繁的进程切换上,综合考虑此处将延时设定为50ms。

5 结语
本文介绍了一套基于EM200模块的CDMA数据收发系统,利用该系统组建的分布式探测网络可适应各种地理环境,结合CDMA系统较短的传输时延配以合理的软硬件设计,能够确保整个网络较高的实时性能,满足分布式无源探测信息融合系统组网通信要求。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top