VxWorks下串口通信程序设计与实例.docVIP

  • 11
  • 0
  • 约 7页
  • 2016-09-10 发布于北京
  • 举报
VxWorks下串口通信程序设计与实例.doc

VxWorks下串口通信程序设计与实例   【摘要】本问讨论了在嵌入式实时操作系统VxWorks下结合PowerPC平台实现串口通信的相关技术,给出了基本原理和程序示例。详细介绍了串口设置时每个参数的配置方法及作用。   【关键词】VxWorks;PowerPC平台;串行通信;串口参数   1.前言   VxWorks是一个具有微内核、可裁剪的高性能强实时操作系统,在全球和国内被大量使用。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中。PowerPC处理器有非常强的嵌入式表现,因为它具有优异的性能、较低的能量损耗以及较低的散热量,包含串行和以太网控制器这样功能强大的集成I/O。在计算机系统通信应用中,RS232串口是目前广泛使用的设备通信控制接口,在嵌入式实时操作系统中实现串口通信,可大大提高系统的应用范围,提高系统获取信息的能力。   2.串口通信原理及优点   串口通信本质是CPU发出的命令数据经串行端口后转换为串行的位,接收方又把串行的位转换成字节命令回送CPU,实现通讯。串口通信有如下优点:   (1)开发简单,用户可以自定义数据格式,独占串口与另一方通讯。   (2)成本低廉,串口通信从转换芯片到传输介质相对其他通信成本廉价。   (3)使用灵活,有全双工RS232,亦有但双工RS485,而且转换方便。   在传输数据量不大,传输距离不大,比如一个变电站内,非常适合使用串口通信。   3.串口通信在Vxworks实现原理   在VxWorks中,将I/O系统设计成为任何类型的设备提供一个简单、统一、独立于设备的接口,任何对于串口的操作都可以视为对一个文件的操作,而不必了解串口设备或程序驱动实现的细节。下面以MPC8309 CPU添加12个串口为例解释实现过程:   (1)软件添加,修改对应BSP包,使系统支持12个串口,并且申请资源。编译BSP包,生成vxworks系统文件及bootrom文件。系统启动时用devs命令可以查看到串口。   (2)硬件支持,使CPU连接串口芯片。实际应用上串口应该是可灵活插拔的。系统支持12个,但具体数目及串口位置按实际连接串口数为准。节约成本。   (3)以上完成后就可用open()函数打开串口进行配置,用read(),write()函数进行读写操作。   (4)为提高数据接收的实时性,可采用中断方式,利用VxWorks提供的select函数的事件触发机制,当有数据来到的时候该任务会立刻自动响应。节省对CPU的占用,提高系统的实时性。   4.程序示例   以下程序对每个参数有详细的说明,以便学习交流。   #include lt;vxWorks.hgt;   #include strLib.h   #include lt;string.hgt;   #include lt;sioLib.hgt;   #include lt;ioLib.hgt;   #include lt;stdio.hgt;   #include lt;ioctl.hgt;   #include lt;selectLib.hgt; //用于支持select查询等待函数   4.1 初始化串口配置函数   int comInit(void) //初始化串口1   { int sfd;//串口设备文件描述符   sfd =open(“/tyCo/1”,0_RDWR,0);//打开串口”/tyCo/1”并返回串口设备文件描述符,这里   //打开的不是”/tyCo/0”,因为一般应用平台会用”/tyCo/0”做调试串口,由系统配置使用   if(sfd ==ERROR) //如果不能打开,打印出错信息   printf(“You can’t open port com1 !”);   ioctl(sfd,FIOSETOPTIONS, OPT_RAW); //设置串口工作模式为位模式:OPT_RAW   /*FIOSETOPTIONS对应的arg有OPT_LINE、OPT_RAW、OPT_ECHO等等,在通信中一定要用OPT_RAW模式,其他模式可能导致短数据包收不到。关于这些的定义,可以在sioLib.h,ioLib.h里寻找。*/   ioctl(sfd,FIOBAUDRATE,115200); //设置串口波特率为115200bps   ioctl(fd,FIOFLUSH,0); //清空输入输出缓冲   ioctl(sfd,SIO_HW_OPTS_SET, CLOCAL| CREAD|CS8|STOPB|PARENB|PARODD);   //设置为没有流控制C

文档评论(0)

1亿VIP精品文档

相关文档