新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > EM200在分布式探测站组网通信的应用

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

作者: 时间:2012-02-10 来源:网络 收藏

3.2 解决途径
鉴于站发送的数据量和发送周期的不确定性,设计时必须考虑满负荷的工作状态,即连接站的串口0一直处于接收峰值的状态。为确保无丢失地接收站数据,串口0中断优先级必须高于串口1。在此前提下,问题可归结为当串口1中断被暂时屏蔽得不到及时响应时,如何完整接收超过串口1缓存容量的AT指令应答响应,解决途径是扩大串口1的FIFO缓存。
由于TCP发送指令返回的应答响应在18~21 B之间,所以串口1的接收缓存必须大于等于21 B,需另选大容量缓存的专用串口芯片来替代LPC2214串口1。这里采用具备64 B FIFO缓存的并转串芯片TL16C752B。值得注意的是虽然TL16C752B符合8080并行总线接口要求,但其写操作时序与相当部分的MCU不匹配,而绝大多数MCU没有调整此部分时序的功能,其中就包括此处选用的LPC2214。这就需要外加一片用作时序匹配的CPLD,此处选用了EPM240,该部分电路示意图如图7所示。

本文引用地址:https://www.eepw.com.cn/article/155305.htm

e.jpg


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

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所示。

h.jpg


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

i.jpg



评论


相关推荐

技术专区

关闭