新闻中心

EEPW首页 > 测试测量 > 设计应用 > 基于TCP/IP的多数据流传输测控系统的设计与实现

基于TCP/IP的多数据流传输测控系统的设计与实现

作者:时间:2012-05-31来源:网络收藏

1.3 远程控制台模块
远程控制台负责对数传与实时处理模块、控制台模块的网络唤醒和网络监控,以及完成对远程设备电源的相关操作。远程控制台接收相邻模块的网络数据帧(包括数传与实时处理模块对多进行整合的数据帧和控制台模块转发的单片机采集数据帧),对控制台发送网络控制帧(完成参数设置、系统开启关闭、板卡操作、串口操作等任务),采用UDP协议进行通信。
1.4 控制台设备模块
控制台设备模块由CPCI工控计算机和继电器板卡组成。供电电源继电器卡采用NI PXI-2564 16路5 A SPST开关模块,它是大功率继电器卡,可进行电源输入和电源备份;断电及转电控制信号继电器卡采用ADLINK PXI-7901 16路通用SPDT开关模块,可进行电源的控制切换。系统结构及外部接口关系如图3所示。

b.jpg


系统采用Agilent N6700系列模块电源供电,控制台由RS 422串行通信接口连接到单片机测控模块、网络连接到远程控制台。为通信的稳定可靠,控制台与远程控制台间的千兆以太网通过光电转换器转为光纤连接。控制台接受远程控制台的控制,对来自单片机采集模块的数据进行解码及显示并传向远程控制台,通信采用UDP协议。

2 软件设计与实现
2.1 多重事件方式实现网口及串口通信
控制台模块需要接收远程控制台的远程控制命令帧和来自RS 422串行通信接口(与单片机采集模块相连)的串行数据,并把串行数据打包成既定格式UDP数据帧转发送到远程控制台,为此控制台软件需建立后台管理器(CTConManager)来开启网络监控线程、串口监控线程两个独立线程进行监控网口和串行口。二者流程图如图4所示。

d.jpg


软件需要把串口数据进行协议转换为UDP数据帧发送,所以网络监控线程采用等待多重事件的方式来处理由WSACreateEvent函数创建的网络事件(m_evtNetWork)和串口事件(m_evtOverlappedSeira1),串口监控流程采用异步事件模式监控串行口的数据接收。网络事件由WSAEvent Select函数与当前的socket接口绑定,串口事件由串口接收一个完整数据帧后设置到网络监控线程。当控制台网络可以接收到远程控制台的网络帧(即有网络事件发生)时,线程调用ProcessNetworkEvent函数来处理这个事件(即开始解析远程命令帧),相应串口事件调用网络监控线程的ProcessSerialEvent函数来处理这个事件(即发送数据帧)。线程中的网络超时事件(WSA_WAIT_TIME OUT)处理超时任务(ProcessTimeOut Event)包括串口和板卡状态的循环检测以及状态数据包的发送。
软件采用这种机制能及时响应多重事件,实现了串口和网络接口的对接,节省了设备资源,使系统效率得到了提高。
2.2 整合同步处理
根据系统要求,数传与实时处理模块将多个流的相同或不同字段的数据进行提取并整合为一个UDP数据报文并发送至远程控制台。
由于多个发送过程中很可能会出现某个数据流到达时间相对其他数据流有延迟,这就会造成在整合为UDP数据报文的过程中数据的不同步。为解决这个问题,软件采用基于数据队列的方式实现码流同步。首先将多个既定长度的TCP流数据(TCPDataValue)加入(push)多个相应队列(CDataQueue),当所有队列的长度大于等于1,即所有队列有元素时,将队列中的第一个(即最先压入队列)元素弹出(GetFirstDa ta),然后进行码流的数据提取。

tcp/ip相关文章:tcp/ip是什么




评论


相关推荐

技术专区

关闭