基于Vxworks实时操作系统的串口通信程序设计与实现_第1页
基于Vxworks实时操作系统的串口通信程序设计与实现_第2页
基于Vxworks实时操作系统的串口通信程序设计与实现_第3页
基于Vxworks实时操作系统的串口通信程序设计与实现_第4页
基于Vxworks实时操作系统的串口通信程序设计与实现_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于Vxworks实时操作系统的串口通信程序设计与实现摘要:结合嵌入式实时操作系统Vxrks实现风洞测控系统的实际应用,以其中的串口通信为例,讨论了在Vxrks下实现串口通信的关键技术,给出了根本原理、环境配置和程序例如。关键词:Vxrks;实时操作系统;嵌入式操作系统;串行通信Abstratbiningiththeappliatinfindtunneleasureandntrlsysteithebeddedreal-tieperatingsysteVxrks,iththeserialuniatininitasanexaple,thekeytehniquesabutrealizatinfthe

2、serialuniatininVxrksaredisussed.uniatinehanis,envirnentnfigureandrrespndingprgraexaplesareprvided.KeyrdsVxrks;RTS;ebeddedperatingsyste;Serialuniatin1前言目前市场上比拟著名的实时操作系统有:Vxrks、PSS、Nuleus、QNX、VRTX、indsE、Pal0S、Lynx0S等。其中,Vxrks是一个具有微内核、可裁剪的高性能强实时操作系统,在实时操作系统市场上处于领先地位。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高

3、精尖技术及实时性要求极高的领域中,如卫星通讯、弹道制导、飞机导航等。在美国的F-16战斗机、B-2隐形轰炸机和爱国者导弹上,甚至火星探测器上都使用了Vxrks实时操作系统。在嵌入式实时操作系统中使用串口通信,不仅可扩展嵌入式设备通信才能,而且可扩大其应用范围。2Vxrks简介Vxrks是由RS(indRiverSystes,In)公司开发的一套具有微内核、高性能、可伸缩的实时操作系统,支持广泛的网络通信协议,并可以根据用户的需求进展组合,其开放式的构造和对工业标准的支持使开发者只需做最少的工作即可设计出有效的合适于不同用户要求的系统。除了性能出众的操作系统之外,RS公司还提供了优秀的实时操作系

4、统开发工具Trnad。Trnad由三个高度集成的局部组成:Trnad工具,一整套强有力的穿插开发工具;Vxrks运行系统,是运行在目的机上的高性能、可裁剪的实时操作系统;连接目的机和宿主机的通信选项,加以太网、串行线路、在线仿真等。Trnad可以支持inds、Unix等流行的工作平台和PerP、X86、AR等几乎所有的目的处理器,所提供的工具可用于所有目的机,并具有两种调试形式(系统形式和任务形式)。除了根本的功能和开发工具外,Trnad还具有先进的系列网络产品,极大地扩展了Trnad的网络特性,并增强了嵌人式微处理器的网络特性。13串口通信根本原理串口在嵌入式系统当中是一类重要的数据通信接口

5、,其本质功能是作为PU和串行设备间的编码转换器。当数据从PU经过串行端口发送出去时,字节数据转换为串行的位;在接收数据时,串行的位被转换为字节数据。应用程序要使用串口进展通信,必须在使用之前向操作系统提出资源申请要求(翻开串口),通信完成后必须释放资源(关闭串口)。串口通信的优点是开发简单,在传输数据量不大、要求速度不高而传输间隔 较大的通信场合得到广泛应用。在Vxrks中,将I/系统设计成为任何类型的设备提供一个简单、统一、独立于设备的接口,任何对于串口的操作都可以视为对一个文件的操作,而不必理解串口设备或程序驱动实现的细节。在串口通信软件的设计中,当串口初始化完成后,在使用之前利用pen(

6、)翻开相应串口,然后进展配置。Vxrks提供终端和伪终端设备驱动。Tty驱动针对实终端;pty针对仿真终端的程序。Tty设备有两种操作形式:ra形式和line形式。在ra形式下,每个刚从设备输入的字符对读者都是有效的;在line形式下所有输入字符被存储,直到NELINE字符输入。设备选项字使用带FISETPTINS功能的itl()程序来设置。2配置完成后,根据串口翻开时的读写标志,调用函数rite()、read()对串口进展只读操作、只写操作或同时进展读写操作。为进步数据接收的实时性,可采用中断方式,利用Vxrks提供的selet函数的事件触发机制,将读串口的任务阻塞使其一直等待数据,当有数据

7、来到的时候该任务会立即自动响应,进步系统的实时性。4环境配置在本实时应用系统中采用486机作为目的机,串口通信时目的机Vxrks系统启动盘的制作步骤:(1)修改通用配置文件Trnadtargetnfigp486nfig.h。在nfig.h文件中参加以下宏定义:#defineINLUDE_DB#defineINLUDE_DB_TTY_TEST#undefDB_TYPE#defineDB_TYPEDB_SERIAL/*定义通信方式为串口联结*/#defineDB_TTY_HANNEL1/*通道号*/#defineDB_TTY_BAUD9600/*串口速率,可设置至38400*/#defineDB_

8、TTY_DEV_NAEty/1#defineNSLE_TTY0#defineDEFAULT_BT_LINEfd=0,00,0hstnae:/fd0/vxrksh=主机ipe=目的机ipu=主机上的登录用户名(2)在Trnad集成环境中执行菜单命令PrjetakeP486nTargetslean删除以前生成的文件,执行菜单命令PrjetakeP486BtRTargetsbtr_unp编译链接生成btr_unp;再选择VxrksTarget,编译生成vxrks;(3)拷贝Trnadtargetnfigp486btr_unp至Trnadhstbin下(4)重命名文件btr_unp为btr;(5)准备

9、一张已格式化的空盘插入软驱;(6)在目录Trnadhstbin下执行命令kbta:btr;(7)拷贝Trnadtargetnfigp486Vxrks至软盘;(8)将系统制作盘插入目的机软驱,加电启动目的机即载入Vxrkst系统。35程序例如5.1在程序中参加以下头文件#inludevxrks.h#inludestrLib.h#inludestring.h#inludesiLib.h#inludeiLib.h#inludestdi.h#inludeitl.h#inludeseletLib.h#inludetypes/vxTypesld.h5.2翻开串口intpen_1(vid)/翻开串口1函数i

10、ntsfd;/串口设备文件描绘符sfd=pen(ty0,0_RDR,0);/翻开串口并返回串口设备文件描绘符if(sfd=ERRR)/假如不能翻开串口1那么打印出错信息printf(Yuantpenprt1!);5.3配置串口intnfig_1(vid)/串口1配置函数itl(sfd,FISETPTINS,PT_LINE);/设置串口工作形式为行形式:LINE_DEitl(sfd,FIBAUDRATE,9600);/设置串口波特率为9600bpsitl(sfd,FIFLUSH,0);/清空输入输出缓冲itl(sfd,SI_H_PTS_SET,S8|STPB|PARENB|PARDD);/设置8

11、位数据位,2位停顿位,带校验位,奇校验5.4串口接收数据intaept_1(vid)/从串口1接收数据函数hile(1)har*aept_buf;FD_ZER(fds_data);/位码置零FD_SET(sfd,fds_data);/初始化位码idthsfd+1;/任务阻塞等待读串口准备完毕;if(selet(idth,fds_data,NULL,NULL,NULL)=ERRR)return(ERRR);read(sfd,aept_buf,sizef(aept_buf);/从串口读字符printf(aeptessageis:%snn,aept_buf);/输出接收到的信息5.5串口发送数据in

12、tsend_1(vid)/向串口1发送数据函数har*send_buf=Datahadaept!;/待发送数据/任务阻塞等待写串口准备完毕if(selet(idth,NULL,data_fds,NULL,NULL=ERRR)return(ERRR);if(FD_ISSET(sfd,fds_data)/检查串口准备好就向串口写数据rite(sfd,send_buf,sizef(send_buf);5.6关闭串口lse(sfd);6完毕语RS-232串口通信虽速率不高,但RS-422标准串行口通信那么采用了双线传输,大大增加了抗共模干扰的才能,最大数据传输速度可以到达10b/s,这对于远程数据交换具有极大的优势。本文描绘了在实时操作系统Vxrks中利用串口实现数据通信的方法,并给出了例如程序,目前已经在我们开发的风洞测控系统中获得了应用。该方法可将其串口通信可适用于工业控

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论