当前位置:
文档之家› 实时操作系统VxWorks下多串口通讯设计
实时操作系统VxWorks下多串口通讯设计
收稿日期 : 2010- 06 - 21 作者简介 : 王立新 ( 1978 - ) , 男 , 硕士 研究生 , 主要 从事图 像处理、 系统控制等研究。
1 Vx W orks系统串口通信配置
1 . 1 串口工作模式 VxW orks操作系统 中的串 行设备 ( 终端 tty 设
73
先存储在缓冲区中, 当输入 NEWL INE 字符后 , 整行 字符 ( 包括 NEWL I NE 字符 ) 同时 导入环 形存储区 中。当从一个 tty 设备以线性模式进行读操作时, 根 据用户读操作缓冲区的容量 , 可以从环形存储区中 读取两行的字符信息。 1 . 2 串口参数选择 VxW orks实时操作系统通过 I/O 控制函数 io ctl ( ) 对串口参数进 行选择。串 口控制功能字如 表 1 所示。
实际使用中, CPU 板和串口板通过 PC104 总线 连接。本文仅对与串口相关的模块进行介绍。系统 串口板提供 8 个串行口 ( P1~ P8) , 分别完成不同的 数据通信功能。 SEM /M SP 12( A )串口通信模块, 在 板集成了两个单元高性能的 16C554 控制芯片 ( 相 当于 8 个 16C550) , 可以达到更高的通讯速率而无 需占用过多的 CPU 资源。 SEM /M SP 12( A) 模块中 , J3 、J4 为模 块的串行 端口。该模块 共有 8 个串口 , 每个串口有 16 字节 FI FO, 并且 RS232 /RS422 /RS485 可选 , 光 电隔离输 出, 在标 准 配 置下 可 达 115 . 2kbps ( 460 . 8kbps 可 选 ), 低 功 耗 单 + 5V 供 电 , 工 作 温 度 范 围 较 宽 ( - 55 ~ + 70 ), 串口 的基 地址系 统加 电时 从 EEPROM 中取数据配置 , 上电后可通过软件配置 , 八个串口占用一个系统中断资源。串口通讯模块采 用两块 16C554 芯片 , 每块芯片控制四个串口。 要正确使用每个串行口, 除了硬件跳线设置正 确外 , 还要 对 SEM /M SP 12 ( A ) 模 块 的 在板 EEP ROM 进行软件设置。每个串行口的基地址和中断 号设置均保存在 EEPROM 中 , 上电后模块将从中读 取这些数据, 并且中断号的软件设置要与硬件跳线 设置相一致。在本文中, 通过跳线设定串口通讯模 块的基地址为 0x380 , 中断向量为 IRQ9, 通过编程设 定串口的工作参数 : 波特率为 115200bps。
图 2 多串口中断服务程序流程
RDA: IPort= sysInByte( Port+ 5); if ( IPort& 0x01 ) { W rk= sysInByte( P ort); if (! ( IPort& 0x04 ) ) { P r= pwk - > RXDR; Pw = pwk - > RX DW; p w k- > p RXD[ Pw ] = W rk ; Pw + + ; Pw& = pwk- > RXDS ; if ( Pw! } goto RDA; } AnyRC | = BIT; /* 置当前串口收到数据标志位 * / RCB it| = B I T; /* 置当前串口收到数据标志位 * / break ; case 0x06 : W rk= sysInByte( Port+ 5) ; } goto STA; EdA: sysOutB y te( I NTPTA, 0x20); sysOutB y te( I NTPTC, 0x20) ; }
0 引言
VxW orks是目前软件工程师采用最多的用于开 发实时嵌入式系统的商用实时操作系统。 Vx W orks 操作系统采用微内核设计 , 具有可伸缩性、 可裁减性 和高可靠性 , 适用于所有流行目标的 CPU 平台, 提 供了超过 1800 个应用编成接口, 用户可以根据自己 的需要对 Vx W orks进行配置。 V x W orks操作系统具 有良好的持续发展能力、 高性能的内核以及友好的 用户开发环境, 广泛地应用于通信、 军事、 航空和航 天等高精尖技术及实时性要求极高的领域中 , 如美 国的 F 16、 FA 18 战斗机、 B 2 隐形轰炸机和爱国者 导弹上 , 甚至在火星探测器上也使用了 V x W orks操 作系统。
( 下转第 79页 )
/* 多串口模块 M SP 12( A) 的中断服务程序* / vo id ne w _INTA _Server( vo id) { static char IPor, t W rk ; static in tPor, t PNo , Pr , Pw, B IT; static struct TPWK * p wk ; STA: IPort= sysInByte( B aseAddA + 0x02) ; if ( IPort= = 0) goto Ed A; BI T = 0x01; w hile( ( B I T & IP ort) = = 0) BIT < < = 1 ; sw itch( B IT ) { case 0x80 : PNo= 7 ; break ; case 0x40 : PNo= 6 ; break ; case 0x20 : PNo= 5 ; break ; case 0x10 : PNo= 4 ; break ; case 0x08 : PNo= 3 ; break ; case 0x04 : PNo= 2 ; break ; case 0x02 : PNo= 1 ; break ; case 0x01 : PNo= 0 ; break ; } Port= Port A dd[ PNo]; IPort= sysInByte( Port+ 2); if ( ( IP ort & 0x01) = = 0x01 ) goto STA; /* no IRQ * / p w k= & PWK[ PNo];
Ab stract : VxW orks is a real t i m e operat io n syste m deve lo ped byW indR iver com pany , and is popular in m any e m bedded system s. Vx W orks RTOS has super io r clipping ab ility . User can c lip dow n g roupw are based on require m ents by using the T ornado cross developm en t env ironm en. t U ser con fig ures kernel facilities o f system by se lect ing som e of the K ernel facilit ie s , and all kerne l facilities can be independently conf ig ured in to the system. T he rea liza tio n w ays and prog ra mm in g m ethod of mu lt i serial comm unication bet w een em bedded Vx W orks system o f x86 operat ing platfor m and PC w as in troduced . Key words : m ulti seria l comm un icat ion; VxW orks ; rea l ti m e operatio n system ( RTOS)
表 1 串口控制功能字 功能字 FI O BAUDRA TE FI O CAN CEL FI O FLU S H FI OG ETNAM E FI O GETOPT I ON S FI ONR EAD FI ONW R I TE FI O SETO PTI ON S 功能 设置串口波特率 取消读写操作 清空输入缓冲和输出缓冲 得到文件设备名 返回当前的设备选项字 得到输入缓冲中未读取的字节数 得到输出缓冲中的字节数 设置设备选项字 图 1 多串口初始化流程
1 . 3 串口数据读写 VxW orks实时操作系统可通过 se lect( ) 函数使 串口读写任务一直处于阻塞状态, 直到串口设备文 件准备好。通过 select宏实现对串口数据读写的监 测 , 即当在串口上有数据送来时或串口设备准备好 可以发送数据时 , Vx W orks实时操作系统通过 select 宏通知串口数据读写任务。 VxW orks提供的 select ( ) 函数有关宏定义如表 2所示。
应用领域。 Vx W orks实时操作系统具有良好的裁剪能力, 用户可通过交叉开发环境根据需求裁剪 组件 , 选择各种内核组件进行系统内核配置 , 编译系统内核时进行独立的加载和卸载 。 介绍了 基于 x86 平台的嵌入式 VxW orks系统与 PC 机多串口通信的实现方式以及串口通信的编程方法。 关键词: 多串口通信 ; VxW orks ; 实时操作系统
D esign of multi serial comm unication in embedded real ti m e Vx W orks operating system
WANG L i x in, MA Sheng x ian
( National K ey Laboratory of E lectro Op tic Syste m, In for m ation Con tro l Technology, Sanhe 065201, Ch ina)
中图分类号 : TP332
ห้องสมุดไป่ตู้
文献标识码 : A
文章编号 : 1009- 2552( 2010) 08- 0073- 03
实时操作系统 Vx W orks下多串口通讯设计