完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1 前言
目前市场上比较著名的实时操作系统有:VxWorks、PSOS、Nucleus、QNX、VRTX、Windows CE、PalmOS、LynxOS等。 其中,VxWorks是一个具有微内核、可裁剪的高性能强实时操作系统,在实时操作系统市场上处于领先地位。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、弹道制导、飞机导航等。在美国的F-16战斗机、B-2隐形轰炸机和爱国者导弹上,甚至火星探测器上都使用了VxWorks实时操作系统。在嵌入式实时操作系统中使用串口通信,不仅可扩展嵌入式设备通信能力,而且可扩大其应用范围。 |
|
相关推荐
3个回答
|
|
2 Vxworks简介
VxWorks是由wRS(wind River Systems,Inc.)公司开发的一套具有微内核、高性能、可伸缩的实时操作系统,支持广泛的网络通信协议,并能够根据用户的需求进行组合。其开放式的结构和对工业标准的支持使开发者只需做最少的工作即可设计出有效的适合于不同用户要求的系统。除了性能出众的操作系统之外,wRS公司还提供了优秀的实时操作系统开发工具Tornado。Tornado由三个高度集成的部分组成:Tornado工具。一整套强有力的交叉开发工具:VxWorks运行系统,是运行在目标机上的高性能、可裁剪的实时操作系统;连接目标机和宿主机的通信选项,加以太网、串行线路、在线仿真等。Tornado能够支持Windows、Unix等流行的工作平台和PowerPC、X86、ARM等几乎所有的目标处理器,所提供的工具可用于所有目标机.并具有两种调试模式(系统模式和任务模式)。除了基本的功能和开发工具外,Tornado还具有先进的系列网络产品,极大地扩展了Tornado的网络特性,并增强了嵌人式微处理器的网络特性。 |
|
|
|
3 串口通信基本原理
串口在嵌入式系统当中是一类重要的数据通信接口,其本质功能是作为CPU和串行设备间的编码转换器。当数据从CPU经过串行端口发送出去时,字节数据转换为串行的位;在接收数据时,串行的位被转换为字节数据。应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。 串口通信的优点是开发简单,在传输数据量不大、要求速度不高而传输距离较大的通信场合得到广泛应用。 在VxWorks中,将I/O系统设计成为任何类型的设备提供一个简单、统一、独立于设备的接口.任何对于串口的操作都可以视为对一个文件的操作.而不必了解串口设备或程序驱动实现的细节。在串口通信软件的设计中,当串口初始化完成后,在使用之前利用open()打开相应串口,然后进行配置。 VxWorks提供终端和伪终端设备驱动。Tty驱动针对实终端;pty针对仿真终端的程序。Tty设备有两种操作模式:raw模式和line模式。在raw模式下.每个刚从设备输入的字符对读者都是有效的;在line模式下所有输入字符被存储,直到NEWLINE字符输入。设备选项字使用带FIOSETOPTIONS功能的ioctl()程序来设置。 配置完成后,依据串口打开时的读写标志,调用函数write()、read()对串口进行只读操作、只写操作或同时进行读写操作。 为提高数据接收的实时性,可采用中断方式.利用VxWorks提供的select函数的事件触发机制,将读串口的任务阻塞使其一直等待数据,当有数据来到的时候该任务会立刻自动响应,提高系统的实时性。 4 环境配置 在本实时应用系统中采用486机作为目标机,串口通信时目标机VxWorks系统启动盘的制作步骤: (1)修改通用配置文件Tornado argetconfigpc486config.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 /*通道号*/ #define WDB_TTY_BAUD 9600 /*串口速率,可设置至38400*/ #define WDB_TTY_DEV_NAME tyCo/1 #define CONSOLE_TTY 0 #define DEFAULT_BOOT_LINE fd=0,0(0,0) hostname:/fd0/vxWorksh=主机ip e=目标机 ip u=主机上的登录用户名 (2)在Tornado集成环境中执行菜单命令Project>Make PC486>Common Targets>clean删除以前生成的文件。执行菜单命令Project>Make PC486>BootRom Targets > bootrom_uncmp 编译链接生成bootrom_uncmp;再选择Vxworks Target,编译生成Vxworks; (3)拷贝Tornado argetconfigpc486 ootrom_uncmp至Tornadohost in下; (4)重命名文件bootrom_uncmp为bootrom; (5)准备一张已格式化的空盘插入软驱; (6)在目录Tornadohost in下执行命令mkboot a:bootrom ; (7)拷贝Tornado argetconfigpc486VxWorks至软盘; (8)将系统制作盘插入目标机软驱,加电启动目标机即载入VxWorks系统。 |
|
|
|
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(/tyCo/0,O_RDWR,0);//打开串口并返回串口设备文件描述符 if(sfd==ERROR)//如果不能打开串口1则打印出错信息 printf(You cant open port com1!); } |
|
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 13:17 , Processed in 0.692311 second(s), Total 82, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号