首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
»
ARM
» 基于ARM7的串口服务器的实现(2)
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于ARM7的串口服务器的实现(2)
发短消息
加为好友
yuyang911220
当前离线
UID
1029342
帖子
9914
精华
0
积分
4959
阅读权限
90
在线时间
286 小时
注册时间
2014-5-22
最后登录
2017-7-24
论坛元老
UID
1029342
性别
男
1
#
打印
字体大小:
t
T
yuyang911220
发表于 2015-11-25 20:24
|
只看该作者
基于ARM7的串口服务器的实现(2)
IP协议
,
服务器
,
以太网
,
程序
,
软件
接收主线除初始化以太网外, 需调用链路层初始化函数(3) , ( 3)中调用( 4)初始化RTL8019。
收到的数据先经过函数(8) , 然后通过信号量传送到函数(6) , 由( 6)调用( 7)得到数据个数, 最后由(5)根据以太网帧头携带的上层协议类型判断是交给IP协议还是ARP协议处理。
移植完毕, 进行数据收发实验验证。使用TCP传输协议, 由网口虚拟串口软件VSPM通过串口调试工具收发数据, 图4是以10 ms的发送速度在自发自收程序中收发数据的截图。
图4 TCP协议数据传输界面
由于COM1和COM2被PC机占用, 故由网口虚拟出来的串口是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 - Ⅱ的串口服务器不仅能实现双向通信,而且传输数据实时、准确, 符合工业应用的要求。
收藏
分享
评分
继承事业,薪火相传
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议