摘 要 介绍一种在实时操作系统VxWorks下通过LAN口与PC机进行实时通讯的实现方法,并提供了VxWorks通过多任务方式接收命令、产生随机数通过网络实时通讯送PC机并在PC机上显示的方法。
关键词 VxWorks、网络通讯、TCP/IP协议
VxWorks是Wind River公司推出的一个具有微内核、可裁剪的高性能强实时嵌入式操作系统,在实时操作系统市场上处于领先地位。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、弹道制导、飞机导航等。但VxWorks无类似于Windows系统友好的人机界面,对应用程序的控制不直观,使用网络与PC机连接进行通信便能实现嵌入式采集系统与人机界面的交互。基于VxWorks的网络通信系统在VxWorks下使用标准C的编程模式,通过网络实现与PC机通信。
一、VxWorks应用程序开发环境
除VxWorks具有性能出众的操作系统外,Wind River公司还提供了优秀的实时操作系统开发工具Tornado。Tornado包含三个高度集成的组件:Tornado工具,一套强大的交叉开发工具:VxWorks实时操作系统;一整套主机-目标间的通讯选项,例如:以太网、串行线路和ROM仿真等。
Tornado开发环境组成框图如图1所示,左边的框代表Tornado集成开发环境,它运行在开发主机上,可以基于Windows 9x/XP/NT、DIGITAL UNIX等主机操作系统。目标机上运行VxWorks实时操作系统,其上层运行用户应用程序。本文介绍的内容主机为PC机,操作系统为WindowsXP,目标机为AT5200 PC104计算机。
图1 Tornado开发环境组成框图
Tornado集成了用于VxWorks应用程序开发和调试的各种工具。开发者在主机系统里,利用这个集成环境组织、编写、编译和调试应用程序,然后在主机启动FTP服务下载VxWorks映像到目标机上运行、调试。编译在主机上完成,测试、调试需要主机目标机协调完成。
二、VxWorks网络通讯程序开发
本文介绍的基于AT5200 PC104计算机CPU为 PowerPC 5200/400MHz,该计算机板自带网络接口,在其VxWorks的BSP中完成了网络接口的底层驱动和TCP/IP层上的协议,我们只需在TCP/IP层之上进行通信即可。
网络通信模式采用server(服务端)和client(客户端)的通信方式,VxWorks作为服务端,PC机作为客户端。网络通信程序采用Socket机制,传输层采用TCP/IP协议。服务器端和客户端的建立过程如图2所示。
图2 服务器端和客户端的建立
服务器端的应用程序主要包括网络初始化、命令接收、命令处理和发送。主要负责网络连接,循环接收从PC机发送来的命令,并进行相应的命令处理向PC机发送数据。
1.网络初始化
(1)网络初始化需要用到的函数:
int socket(int domain,int type,int protocol)
该函数用于建立一个套接字并返回一个套按字的描述符。
STATUS bind(int s,struct socket *name,int namelen)
该函数将网络地址绑定到一个特定的套接字,使其它套接字可以连接它。
STATUS listen(int s,int backlog)
开始侦听,即允许对此套接字的连接。
|