预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于Vxworks实时操作系统的串口通信程序设计与实现摘要:结合嵌入式实时操作系统VxWorks实现风洞测控系统的实际应用,以其中的串口通信为例,讨论了在VxWorks下实现串口通信的关键技术,给出了基本原理、环境配置和程序示例。关键词:VxWorks;实时操作系统;嵌入式操作系统;串行通信[Abstract]Combiningwiththeapplicationofwindtunnelmeasureandcontrolsystemwithembeddedreal-timeoperatingsystemVxWorks,withtheserialcommunicationinitasanexample,thekeytechniquesaboutrealizationoftheserialcommunicationinVxWorksarediscussed.Communicationmechanism,environmentconfigureandcorrespondingprogramexamplesareprovided.[Keywords]VxWorks;RTOS;embeddedoperatingsystem;SerialCommunication1前言目前市场上比较著名的实时操作系统有:VxWorks、PSOS、Nucleus、QNX、VRTX、WindowsCE、Palm0S、Lynx0S等。其中,VxWorks是一个具有微内核、可裁剪的高性能强实时操作系统,在实时操作系统市场上处于领先地位。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、弹道制导、飞机导航等。在美国的F-16战斗机、B-2隐形轰炸机和爱国者导弹上,甚至火星探测器上都使用了VxWorks实时操作系统。在嵌入式实时操作系统中使用串口通信,不仅可扩展嵌入式设备通信能力,而且可扩大其应用范围。2VxWorks简介VxWorks是由wRS(windRiverSystems,Inc.)公司开发的一套具有微内核、高性能、可伸缩的实时操作系统,支持广泛的网络通信协议,并能够根据用户的需求进行组合,其开放式的结构和对工业标准的支持使开发者只需做最少的工作即可设计出有效的适合于不同用户要求的系统。除了性能出众的操作系统之外,wRS公司还提供了优秀的实时操作系统开发工具Tornado。Tornado由三个高度集成的部分组成:Tornado工具,一整套强有力的交叉开发工具;VxWorks运行系统,是运行在目标机上的高性能、可裁剪的实时操作系统;连接目标机和宿主机的通信选项,加以太网、串行线路、在线仿真等。Tornado能够支持Windows、Unix等流行的工作平台和PowerPC、X86、ARM等几乎所有的目标处理器,所提供的工具可用于所有目标机,并具有两种调试模式(系统模式和任务模式)。除了基本的功能和开发工具外,Tornado还具有先进的系列网络产品,极大地扩展了Tornado的网络特性,并增强了嵌人式微处理器的网络特性。[1]3串口通信基本原理串口在嵌入式系统当中是一类重要的数据通信接口,其本质功能是作为CPU和串行设备间的编码转换器。当数据从CPU经过串行端口发送出去时,字节数据转换为串行的位;在接收数据时,串行的位被转换为字节数据。应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。串口通信的优点是开发简单,在传输数据量不大、要求速度不高而传输距离较大的通信场合得到广泛应用。在VxWorks中,将I/O系统设计成为任何类型的设备提供一个简单、统一、独立于设备的接口,任何对于串口的操作都可以视为对一个文件的操作,而不必了解串口设备或程序驱动实现的细节。在串口通信软件的设计中,当串口初始化完成后,在使用之前利用open()打开相应串口,然后进行配置。VxWorks提供终端和伪终端设备驱动。Tty驱动针对实终端;pty针对仿真终端的程序。Tty设备有两种操作模式:raw模式和line模式。在raw模式下,每个刚从设备输入的字符对读者都是有效的;在line模式下所有输入字符被存储,直到NEWLINE字符输入。设备选项字使用带FIOSETOPTIONS功能的ioctl()程序来设置。[2]配置完成后,依据串口打开时的读写标志,调用函数write()、read()对串口进行只读操作、只写操作或同时进行读写操作。为提高数据接收的实时性,可采用中断方式,利用VxWorks提供的select函数的事件触发机制,将读串口的任务阻塞使其一直等待数据,当有数据来到的时候该任务会立刻自动响应,提高系统的实时性。4环境配置在本实时应用系统中采用486机作为