嵌入式VxWorks实时操作系统的多串口通信的实现.docVIP

嵌入式VxWorks实时操作系统的多串口通信的实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式VxWorks实时操作系统的多串口通信的实现.doc

嵌入式VxWorks实时操作系统的多串口通信的实现   【摘要】VxWorks是一种由WindRiver公司开发的实时操作系统,可通过I/O控制函数Ioctl()对串口参数进行选择,通过Select宏实现对串口数据读写与监测。通过配置头文件中相应的配置宏来实现该系统的串口通信。并以DOS平台为例,介绍基于DOS平台的嵌入式VxWorks系统的多串口通信的实现方式以及串口通信的编程方法。   【关键词】串口通信;VxWorks;内核组件;实时操作系统   1.引言   在多个设备互连的实时信息控制系统中,常常涉及主控系统与多个设备之间的信息通讯,设备间通讯方式有多种,主要包括串口通讯、并口通讯、网络通讯、CAN总线通讯、429总线通讯和1533B总线通讯等。在VxWorks系统设计应用中,串口是一类非常重要的数据通信接口,是嵌入式设备应用最为广泛的一种通信方式,在嵌入式实时操作系统中实现串口通信,可大大提高系统的应用范围,提高系统获取信息的能力。因此,在VxWorks系统下串行通信程序首先必须清晰地了解和认识VxWorks系统下串口的层次结构。   2.VxWorks实时操作系统串口组件   VxWorks[1、2]实时操作系统具有良好的可裁剪能力,可裁剪的组件超过80个,用户可以通过交叉开发环境根据需求进行方便的配置。针对不同的功能要求,选择所需要的内核组件,在VxWorks实时操作系统微内核编译阶段,加载相应得支持组件,卸载不需要的功能组件。   通过配置VxWorks实时操作系统微内核,可以使系统运行所需的资源有效减少。   VxWorks的可裁剪性能方便地在全局配置头文件configALL.h和BSP。配置头文件config.h中通过包括(#define XXX)或去除(#undefXXX)配置宏来实现[4]。   #define INCLUDE_TTY_DEV //配置串口驱动程序   #define NUM_TTY 2 //配置串口数目   串口配置的具体步骤如下:   1)在内核配置文件configALL.h或config.h中加入如下串口配置宏定义:   #define INCLUDE_TTY_DEV //配置串口驱动程序   #define NUM_TTY 2 //配置串口数目   2)编译内核   VxWorks实时操作系统微内核驱动时将在根任务usrRoot()中调用串口设备驱动程序初始化函数ttyDrv()以及创建VxWorks系统串口设备函数ttyDevCreat(),建立能够被VxWorks系统识别的串口设备文件;   3)这样通过以上两个步骤,用户既可在自己编写的应用程序中通过open(),read(),write(),close()等函数调用串口设备文件来实现对串口设备的控制。   3.VxWorks系统中的串口通信配置   3.1 串口工作模式   VxWorks实时操作系统提供两种串口工作模式:RAW_MODE和LINE_MODE[3]。   LINE_MODE可用来模拟一个终端,当缓冲区满或遇到回车时才将数据从串口送出。此外它还对一些字符进行转义,例如ctrl-S被解释为暂停输出,超级终端就用这种方式。   RAW_MODE模式下不对字符做任何解释,一旦有字符送入串口缓冲,串口读取程序就可直接获取串口缓冲中的数据,用来传输数据。因此在串口通信应用中主要采用RAW_MODE串口工作模式进行数据通信传输。   3.2 串口参数选择   VxWorks实时操作系统通过I/O控制函数ioctl()对串口参数进行选择。串口控制功能字如表1所示。   表1 串口控制功能字   FIOBAUDRATE 设置串口波特率   FIOCANCEL 取消读写操作   FIOFLUSH 清空输入缓冲和输出缓冲   FIOGETNAME 得到文件设备名   FIOGETOPTIONS 返回当前的设备选项字   FIONREAD 得到输入缓冲中未读取的字节数   FIONWRITE 得到输出缓冲中的字节数   FIOSETOPTIONS 设置设备选项字   3.3 串口数据读写监测   VxWorks实时操作系统可通过select()函数使串口读写任务一直处于阻塞状态,直到串口设备文件准备好。通过select宏实现对串口数据读写的监测,即当在串口上有数据送来时或串口设备准备好可以发送数据时,VxWorks实时操作系统通过select宏通知串口数据读写任务。VxWorks提供的select()函数有关宏定义如表2。   表2 select宏   宏 功能   FD_ZERO 所有位置零   FD_SET 置相应文件描述符的位

文档评论(0)

yingzhiguo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档