欢迎来到天天文库
浏览记录
ID:34403815
大小:212.87 KB
页数:3页
时间:2019-03-05
《vxworks操作系统下基于缓冲队列网络通信应用new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、万方数据第22卷第3期电脑开发与应用文章绢号:1003—5850(2009)03-0067-02VxWorks操作系统下基于缓冲队列网络通信应用ApplicationofVxWorksRTOSBufferQueueNetworkCommunication樊争奇(华中光电技术研究所武汉光电国家实验室武汉430074)【摘要】光电系统控制端与受控端间进行网络信息交换,要实现系统操作层的零死时间,关键是网络信息及时处理。系统信息接收、处理和发送在VxWorks实时操作系统下采用缓冲队列和多任务实现方法。方法实现了信息的流水线处理,降低了通信双方的时间相关性,同时提
2、高CPU利用率和软件效率。【关键词】光电系统,缓冲球列,VxWorks实时操作系统,多任务中图分类号:TP399文献标识码:AABSTRACTToachievesystemoperatingzerodeadtimewhennetworkinformationexchangebetweencontrolsideandcontrolledsideofelectro-opticssystem,itisimportanttodealimmediatelywithnetworkinformation.Systeminformationreceiving,process
3、ingandsendingusethemethodsofbuffer—queueandmulti—taskinthevxworkRTOS.Themethodsachieveinformationpipelinedeal,lowertimecorrelationofthetwosidesandimproveCPUutilizationandsoftwareefficiency.KEYWORDSelectro—opticssystem,buffer—queue。vxworksRTOS,multi—task网络通信作为对系统灵活性、可配置性的基本要求,得到了Vxw
4、orks的良好支持:在驱动方面,VxWorks提供了很多网口源码级驱动,如基于PC的NE2000网卡驱动和基于采集板的Intel82559网口芯片驱动等;在协议方面,支持到TCP/IP层;在软件接口方面,完全支持BSDsocket。同时VxWorks操作系统具有强实时性和多任务功能,多个任务对资源的使用都是平权的,丰富的通信机制和调度方式使VxWorks下的任务编制非常灵活。利用VxWorks对多任务和BSDsocket良好支持,可以方便地实现网络通信。1系统通信模式为满足光电系统和外部控制界面的通信,设计网络通信模块,以保证控制界面能灵活对系统进行控制、参
5、数配置和目标数据的接收、处理。要求光电系统能接收并缓存控制端的信息,实现信息的按顺序处理,保证信息不丢失,并且能够将处理结果返回。为此设计了基于缓冲队列的双工网络通信模式,结合VxWorks对多任务的良好支持,能够基本上做到无死时间的信息接收。如图1。使用多个任务来实现网络通信,通信过程如下:接收用户操作信息,将其转换为受控端可理解的格式,通过socket接口下传到受控端,然后等待返回信息。受控端信息接收任务从socket接收信息,将其添加到接收缓冲队列;信息解释任务从接收缓冲队列中取出信息,根据具体情况执行特定的软硬件操作,操作结束后图1基于缓冲队列的双工
6、通信模式将执行结果添加到发送缓冲队列;信息发送任务从发送缓冲队列取出信息,通过socket接口将其返回控制端;当硬件产生中断,操作系统立即执行中断服务程序,中断服务程序通知中断服务任务,后者将中断信息添加至发送队列,信息发送任务上传到控制端。接收缓冲队列主要作用是缓存从控制端发下来的信息,保证所有的信息得到尽快接收,避免由于接收速度慢造成控制端网络发送模块的阻塞。发送缓冲队列是将需要发送的信息缓存再发送,这样分离了网络发送和硬件的中断,在控制端软件接收模块阻塞而导致网络阻塞的情况下,不影响中断响应速度。2缓冲队列实现建立缓冲队列,使用链表来动态实现队列中信息
7、的动态添加和删除。每个包含一个信息地址的单节称为链表的一个元素。链表需要实现元素向链表头和链表尾的添加,以及从链表头删除元素的功能。为节省空*2008—10—29收到,2009—01—29改回**樊争奇,男,1980年生,硕士,工程师,研究方向:光电装备软件总体技术。万方数据VxWorks操作系统下基于缓冲队列网络通信应用间,使用单向链表,并用两个全局的元素指针来指向链表头链表尾,用一个全局变量表示链表的长度,以省略查找过程,直接获得链表头和链表尾的内容。每个链表元素为一个结构体structemdSingle,结构体内容包含两项:网络信息头指针,指向链表下一
8、个元素的指针pNext。全局变量为指向链表头的指针q
此文档下载收益归作者所有