微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于ARM7的串口服务器的实现

基于ARM7的串口服务器的实现

时间:08-29 来源:互联网 点击:

来的串口是COM3, 由图4可看出在面向连接的TCP协议下, 高速收发数据不会丢包。

2.2 实时多任务方案的设计

16个串口分别与网络端口组成16 个双向通道。为使代码灵活、透明, 程序不使用LW IP提供的SOCKET AP I。应用程序把每个双向通道分为发送, 接收, 串口3个任务, 加上LW IP本身需占用一个任务, 共需建立49个任务。μC /OS - Ⅱ最多能建立64 个任务, 其中8 个操作系统本身占用,剩56个能满足要求。由VSPM软件把网口模拟成16个串口, 串口服务器侦听的16 个端口分别是1 000~1 015, 如图5所示。

图5 网口虚拟扩展16个串口界面

网络端和串口端的数据接收会触发相应的中断。每个双向通道的3个任务各司其职, 网口端接收数据中断后在传输层协议判断信源的端口号,交给相应的接收任务, 处理完后交给串口任务把数据从相应串口发送; 串口接收数据后在中断程序中判断信源的通道号, 把数据交给串口任务,处理完后由发送任务通过网口把数据发送出去。

服务器支持TCP /UDP两种传输协议, 下面给出一个通道的TCP传输流程图, UDP部分代码只需在相应任务中调用LW IP给的UDP函数。TCP模式下串口服务器工作在Server模式, PC机工作在Client模式, 流程图, 如图6所示。

图6串口服务器单通道程序流程图

3.结论

文中本服务器是以性能不及ARM9且不能使用L inux的ARM7为主控芯片, 但两种开源代码μC /OS - Ⅱ实时操作系统和LW IP协议栈的有效结合避免了高额的软件费用, 而且能满足通信要求。实验证明, 基于LW IP和μC /OS - Ⅱ的串口服务器不仅能实现双向通信,而且传输数据实时、准确, 符合工业应用的要求。

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

网站地图

Top