- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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 置相应文件描述符的位
您可能关注的文档
最近下载
- 《风景谈》精品课件.ppt VIP
- T11长轨列车卸轨作业指导书.pdf VIP
- 城市轨道交通交流供电系统的保护方式1城市轨道交通交流供电系.pptx VIP
- 《极简项目管理》读书笔记.pdf VIP
- 北京-绅宝D70-产品使用说明书-绅宝D70 2.3T-C7230C7G-绅宝产品使用说明书.pdf VIP
- 《地下工程防水技术规范》(GB50108-2008).pdf
- 2023 【小升初分班】小升初数学分班测试卷 (通用版,含答案).pdf VIP
- DLT 1253-2013 电力电缆线路运行规程.pdf VIP
- 商务谈判毕思勇课程教案.pdf VIP
- 信息处理技术员教程(第三版)第6章 演示文稿基础知识.pptx VIP
文档评论(0)