欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于Vxworks操作系统的串口通信程序设计与实现.pdf

    • 资源ID:74652234       资源大小:84.53KB        全文页数:5页
    • 资源格式: PDF        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于Vxworks操作系统的串口通信程序设计与实现.pdf

    10文章编码1 0 0 5-3 8 4 0 2 0 0 7 0 3-0 0 0 3-0 4 基于 V x w o r k s 操作系统的串口通信程序设计与实现 刘亚芬 上海师范大学,上海 2 0 0 2 3 4 摘要结合嵌入式实时操作系统 V x W o r k s实现风洞测控系统的实际应用,以其中的串口通信为例讨论了在 V x W o r k s 下实现串口通信的关键技术给出了基本原理环境配置和程序示例 关键词V x W o r k s 实时操作系统 嵌入式操作系统串行通信 1 前言 目前市场上比较著名的实时操作系统有VxWorksPSOSNucleusQNXVRTXWindows CEPalm 0SLynx0S 等 其中VxWorks 是一个具有微内核可裁剪的高性能强实时操作系统在实时操作系统市场上处于领先地位它以其良好的可靠性和卓越的实时性被广泛地应用在通信军事航空航天等高精尖技术及实时性要求极高的领域中如卫星通讯弹道制导飞机导航等在美国的 F-16 战斗机B-2 隐形轰炸机和爱国者导弹上 甚至火星探测器上都使用了 VxWorks 实时操作系统 在嵌入式实时操作系统中使用串口通信不仅可扩展嵌入式设备通信能力而且可扩大其应用范围 2 VxWorks 简介 VxWorks 是由 wRS(wind River SystemsInc)公司开发的一套具有微内核高性能可伸缩的实时操作系统支持广泛的网络通信协议并能够根据用户的需求进行组合其开放式的结构和对工业标准的支持使开发者只需做最少的工作即可设计出有效的适合于不同用户要求的系统除了性能出众的操作系统之外wRS 公司还提供了优秀的实时操作系统开发工具 TornadoTornado 由三个高度集成的部分组成Tornado 工具一整套强有力的交叉开发工具VxWorks 运行系统是运行在目标机上的高性能可裁剪的实时操作系统连接目标机和宿主机的通信选项加以太网串行线路在线仿真等Tornado 能够支持 WindowsUnix 等流行的工作平台和 PowerPCX86ARM 等几乎所有的目标处理器所提供的工具可用于所有目标机并具有两种调试模式(系统模式和任务模式)除了基本的功能和开发工具外Tornado 还具有先进的系列网络产品极大地扩展了 Tornado的网络特性并增强了嵌人式微处理器的网络特性1 3 串口通信基本原理 串口在嵌入式系统当中是一类重要的数据通信接口其本质功能是作为 CPU 和串行设备间的编码转换器当数据从 CPU 经过串行端口发送出去时字节数据转换为串行的位在接收数据时串行的位被转换为字节数据应用程序要使用串口进行通信必须在使用第8卷第2期 江右论坛 Vol.8 No.2 2007年5月 JIANGYOU FORUM May.2007 收稿日期2 0 0 7-0 5-2 万方数据 11之前向操作系统提出资源申请要求(打开串口)通信完成后必须释放资源(关闭串口)串口通信的优点是开发简单在传输数据量不大要求速度不高而传输距离较大的通信场合得到广泛应用 在 VxWorks 中将 I/O 系统设计成为任何类型的设备提供一个简单统一独立于设备的接口任何对于串口的操作都可以视为对一个文件的操作而不必了解串口设备或程序驱动实现的细节在串口通信软件的设计中当串口初始化完成后在使用之前利用open()打开相应串口然后进行配置 VxWorks 提供终端和伪终端设备驱动 Tty 驱动针对实终端 pty 针对仿真终端的程序Tty 设备有两种操作模式raw 模式和 line 模式在 raw 模式下每个刚从设备输入的字符对读者都是有效的在 line 模式下所有输入字符被存储直到 NEWLINE 字符输入设备选项字使用带 FIOSETOPTIONS 功能的 ioctl()程序来设置2 配置完成后依据串口打开时的读写标志调用函数 write()read()对串口进行只读操作只写操作或同时进行读写操作 为提高数据接收的实时性可采用中断方式利用 VxWorks 提供的 select 函数的事件触发机制将读串口的任务阻塞使其一直等待数据当有数据来到的时候该任务会立刻自动响应提高系统的实时性 4 环境配置 在本实时应用系统中采用 486 机作为目标机 串口通信时目标机 VxWorks 系统启动盘的制作步骤(1)修改通用配置文件Tornadotargetconfigpc486config.h在 config.h 文件中加入以下宏定义#define INCLUDE_WDB#define INCLUDE_WDB_TTY_TEST#undef WDB_COMM_TYPE#define WDB_COMM_TYPE WDB_COMM_SERIAL/*定义通信方式为串口联结*/#define WDB_TTY_CHANNEL 1/*通道号*/#define WDB_TTY_BAUD 9600/*串口速率可设置至 38400*/#define WDB_TTY_DEV_NAME tyCo/1#define CONSOLE_TTY 0#define DEFAULT_BOOT_LINE fd=0000hostname/fd0/vxWorks h=主机 ip e=目标机 ip u=主机上的登录用户名(2)在 Tornado 集成环境中执行菜单命令 Project Make PC486 Common Targets clean 删除以前生成的文件执行菜单命令 Project Make PC486 Boot Rom Targets bootrom_uncmp 编译链接生成 bootrom_uncmp 再选择 VxWorks Target,编译生成 vxworks (3)拷贝Tornadotargetconfigpc486bootrom_uncmp 至Tornadohostbin 下(4)重命名文件 bootrom_uncmp 为 bootrom(5)准备一张已格式化的空盘插入软驱 第三期 基于 V x w o r k s操作系统的串口通信程序设计与实现 万方数据 12(6)在目录Tornadohostbin 下执行命令 mkboot a:bootrom(7)拷贝Tornadotargetconfigpc486VxWorks 至软盘(8)将系统制作盘插入目标机软驱加电启动目标机即载入 VxWorkst 系统3 5 程序示例 5.1 在程序中加入下列头文件#include#include strLib.h#include#include#include#include#include#include#include types/vxTypesOld.h 5.2 打开串口 int open_com1(void)/打开串口 1 函数 int sfd/串口设备文件描述符 sfd=open(”tyCo0”0_RDWR0)/打开串口并返回串口设备文件描述符 if(sfd=ERROR)/如果不能打开串口 1 则打印出错信息 printf(You cant open port com1!);5.3 配置串口 int config_com1(void)/串口 1 配置函数 ioctl(sfd,FIOSETOPTIONS,OPT_LINE);/设 置 串 口 工 作 模 式 为 行 模 式LINE_MODE ioctl(sfd,FIOBAUDRATE,9600);/设置串口波特率为 9600bps ioctl(sfd,FIOFLUSH,0);/清空输入输出缓冲 ioctl(sfd,SIO_HW_OPTS_SET,CS8|STOPB|PARENB|PARODD);/设置 8 位数据位2 位停止位带校验位奇校验 5.4 串口接收数据 int accept _com1(void)/从串口 1 接收数据函数 while(1)char*accept _buf;FD_ZERO(&fds_data);/位码置零 FD_SET(sfd,&fds_data);/初始化位码 widthsfd+1;江右论坛 2007年 万方数据 13/任务阻塞等待读串口准备完毕 if(select(width&fds_dataNULLNULLNULL)=ERROR)return(ERROR);read(sfd,accept _buf,sizeof(accept _buf);/从串口读字符 printf(accept message is:%s nn,accept _buf);/输出接收到的信息 5.5 串口发送数据 int send_com1(void)/向串口 1 发送数据函数 char*send_buf=Data had accept!;/待发送数据 /任务阻塞等待写串口准备完毕 if(select(widthNULLdata_fdsNULL,NULL=ERROR)return(ERROR);if(FD_ISSET(sfd&fds_data)/检查串口准备好就向串口写数据 write(sfdsend_bufsizeof(send_buf);5.6 关闭串口 close(sfd)6 结束语 RS-232 串口通信虽速率不高但 RS-422 标准串行口通信则采用了双线传输大大增加了抗共模干扰的能力 最大数据传输速度可以达到 10Mb/s 这对于远程数据交换具有极大的优势 本文描述了在实时操作系统 VxWorks 中利用串口实现数据通信的方法 并给出了示例程序目前已经在我们开发的风洞测控系统中获得了应用该方法可将其串口通信可适用于工业控制等多方面具有广泛的适应性在嵌入式实时操作系统中使用串口通信不仅可扩展嵌入式设备通信能力而且可扩大其的应用范围 参考文献 1 孔祥营柏桂枝嵌入式实时操作系统 vxworks 及其开发环境 TornodoM北京:中国电力出版社2002.01 2 陈智育温彦军陈琪编著 VxWorks 程序开发实践.北京:人民邮电出版社2004.05 3 李方敏编著 VxWorks 高级程序设计.北京:清华大学出版社2004.05 作者简介刘亚芬1980 年出生女上海师范大学计算机应用学院硕士研究生 第三期 基于 V x w o r k s操作系统的串口通信程序设计与实现 万方数据基于Vxworks操作系统的串口通信程序设计与实现基于Vxworks操作系统的串口通信程序设计与实现作者:刘亚芬作者单位:上海师范大学,上海,200234刊名:江右论坛英文刊名:JIANGYOU FORUM年,卷(期):2007,8(3)参考文献(3条)参考文献(3条)1.李方敏 VxWorks高级程序设计 20042.陈智育;温彦军;陈琪 VxWorks程序开发实践 20043.孔祥营;柏桂枝 嵌入式实时操作系统vxworks及其开发环境Tornodo 2002 本文链接:http:/

    注意事项

    本文(基于Vxworks操作系统的串口通信程序设计与实现.pdf)为本站会员(qwe****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开