当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]VxWorks下基于缓冲队列的网络通信

1引言

现代监控系统的监控对象越来越复杂,越来越分散,信号采集终端呈现分布式趋势。各个信号采集终端经常用小巧灵便、易于控制和性价比高的嵌入式系统构成相对独立的数据采集系统,然后通过网络将数据传输到上位机服务器进行统一分析处理 [1]。负责数据传输的网络通信协议和软件在整个监控系统中起着十分重要的作用,然而周围环境的电磁干扰、上位机 CPU被占用等情况可能导致网络阻塞、连接中断等,如果软件不能及时发现故障并做出相应的处理,将会直接影响到整个系统的稳定性,导致数据采集中断,甚至使系统瘫痪。利用实时操作系统 VxWorks对多任务的良好支持,本文提出了一种基于缓冲队列的网络通信模式,并添加了网络状态监测功能,使系统能够快速的对网络断线等故障做出响应,提高了网络通信的稳定性和可靠性。

2 VxWorks及分布式数据采集系统介绍

VxWorks是美国风河( Wind River Systems)公司开发的一套具有微内核、可裁减的高性能实时操作系统,适用于当下所有流行的目标 CPU平台,支持广泛的网络通信协议,为开发者提供了高效的实时多任务调度、终端管理、实时的系统资源及实时的任务间通信功能,是嵌入式领域中应用最多的实时操作系统之一[2]。VxWorks采用了与 4.4BSD TCP/IP兼容的实时网络协议栈,使得网络开发变得易于进行和方便移植。利用 VxWorks对多任务和Socket的良好支持,可以方便地实现网络通讯。



图1是我们开发的一个基于 TCP/IP协议的分布式监测系统的结构示意图。该系统主要可分为三个层次结构:服务器、采样节点、传感器。传感器负责采集信号,将物理信号转换为电信号;采样节点首先对信号进行预处理,然后通过 A/D芯片将信号转换为数字信号,最后通过网络传送给服务器;服务器负责数据的接收、分析、存储并显示结果。服务器和采样节点之间通过TCP/IP协议进行数据的传输与接收,网络通讯程序的质量直接影响着整个系统的稳定性和可靠性。TCP/IP协议是目前广泛采用的一组完整的网络通信协议,可以用在各种各样的信道和底层协议之上,是一组不基于任何特定硬件平台而可实现异种机互联的网络通信协议,在网络通信中被广泛应用[3-4]。

 

[!--empirenews.page--]具体表现为,消息队列初始为空,数据发送任务阻塞在消息队列上,网络正常情况下,每有新的消息单元到达时,数据发送任务就将该消息单元指向的数据包立刻发送出去;如果某个时刻网络受到外界环境的影响变地不稳定或发生短暂阻塞,数据包不能及时发出,该数据包就可缓存在 Buffer中,其地址信息缓存在消息队列中,而不会丢失,等网络正常后再发送出去。基于缓冲队列的网络通信模式如图 3所示。根据待传输信息的紧急程度,不同的任务可以选择基于 FIFO或优先级向缓存队列中写入消息单元。


实验时,以一台普通 PC机作为上位机服务器,采样节点和服务器之间通过一个百兆的交换机相连。采样节点的所有采集通道全开,均设为最大采样率,服务器每隔 5秒钟查询一次节点状态,此时数据传输率约为 65Mbit/s,系统连续运行 8小时。实验结果显示服务器收到的数据包数目和采样节点发送的数据包数目相同,数据传输丢失率为 0.0%。

4网络监测原理

当网络发生中断时,系统软件应该能够尽快发现网络故障,并在网络恢复后仍可正常运行,因此软件应该具备网络监控功能,实时监测网络的连通性。监测网络连通性的一个比较简单的方法就是通过服务器向采样节点不间断发送 ICMP(Internet控制消息协议 )包,如果能收到回应则证明网络连通,反之则表示网络中断。此法虽然简单,但是当节点比较多时,大量的 ICMP数据包会占用 CPU资源,降低服务器的效率,故此法不可行。图 4是我们设计的一个网络监控原理图。


 

为避免影响到数据的实时传输,通信双方各建立两个 socket端口,一个作为数据通道专门用来传递数据信息,另一个用作监控通道,传递应答信号,监测网络的连通性;监控通道负责管理和维护数据通道。节点和服务器端运行的监控任务都是无限循环任务,每若干秒运行一次。在每一个循环周期内,采样节点都会向服务器发起一次连接,服务器端收到采样节点的连接请求后,和其建立连接,然后向其发送信号指令。采样节点收到信号指令后,向服务器发送应答信号,服务器若能在 T_wait时间内收到应答信号,则判定网络通畅,否则认为网络中断。如果某时刻网络出现断线,那么重新建立连接后,服务器会向采样节点发送重新连接指令,采样节点收到重新连接指令后,会关闭原有的数据传输 socket,重新和服务器建立数据传输通道。


实验时,通过插拔网线模拟网络的连通和断线。结果表明,在系统进行数据传输时拔掉网线,若在 20秒内再接上,由于采样节点具有一定的缓存能力,数据不会丢失,网络仍可正常工作;若拔掉网线,超过 20秒之后再接上网线,采样节点和服务器之间会重新建立连接,网络仍可正常工作,但由于缓存队列溢出,数据会发生丢失;若拔掉网线超过 30分钟,采样节点会判定网络中断、记录故障并自动关闭系统,插上网线后,服务器通过网络远程启动采样节点,系统继续正常工作。

5总结

利用 VxWorks对多任务和网络的良好支持,本文提出了一种基于缓冲队列的带网络状态监测功能的网络通信模式,目前已经在我们开发的分布式监控系统中得到应用。该网络通信模式使系统能够应付一定的网络故障,提高了系统的可靠性。该模式还可以方便地应用到其它嵌入式网络开发中,具有广泛的应用前景。本文作者创新点:本文提出的这种基于缓冲队列的带网络状态监测功能的网络通信模式,充分地利用了 VxWorks对多任务和网络的良好支持,消息队列不仅同步任务,还可作为缓存队列用来缓存数据,使系统能够应付一定的网络波动;监控任务的工作模式使系统能够快速发现网络故障并做出响应,待网络故障排除后仍可正常运行。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭