实时操作系统VxWorks下多串口通讯设计
嵌入式VxWorks实时操作系统的多串口通信的实现
嵌入式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()等函数调用串口设备文件来实现对串口设备的控制。
基于VxWorks的双485口管理系统设计
基于VxWorks的双485口管理系统设计摘要:vxworks嵌入式操作系统具有高效的实时任务管理与调度、任务的同步与通信、内存管理、i/o管理、时钟管理等机制。
两个485口在通信速率、工作模式、控制方式上有较大差别且系统死线要求严格。
详细介绍了vxworks下双485口串行通信系统bsp、驱动程序和应用程序的开发过程。
基于vxworks构建的嵌入式串行通信系统实时性好,效率高,可根据硬件进行优化配置;利用vxworks的i/o系统将驱动程序作为内核过程,设备作为特殊文件处理,解决了工作方式不同的两个485口的驱动程序开发和接口统一问题。
关键词:通信系统;嵌入式串行通信引言vxworks是美国windriver公司专门为嵌入式微处理器设计的一种高模块化、高性能的实时多任务操作系统,具有很好的安全性、可靠性及系统灵活性[12]。
该系统要求两个485端口波特率分别为460.8 kb和614.4 kb;工作方式分别为程序查询式和中断驱动式;代写论文握手方式和通信控制方式也完全不具有相对的独立性和“并发性”,而且各个任务根据不同的“紧迫感”应具有不同的优先级。
根据以上多方面的要求和特点,基于优先级抢占式的多任务实时操作系统vxworks是该系统的首选[3]。
本文以研制某型训练装备为背景,详细介绍了基于vxworks的双485口通信系统设计方法和过程。
1串口通信基本原理串口通信作为最常用的通信方式,用途非常广泛,驱动易于编写,被绝大多数操作系统默认支持。
其基本功能是实现和串行设备间的编码转换发送数据时,字节数据经cpu通过通用异步接收发送器(简称uart)转换为串行位,从串行端口发送出去;接收数据时,串行位通过uart被转换为字节数据,并放入缓冲区,由cpu读取。
通过对uart的内部寄存器的控制实现字节数据和位数据的转换和通信。
通信时,uart按初始化设置,把起始位、校验位和停止位加到来自cpu的8位数据上,然后按设置的波特率把这个二进制位串发送到串行通信线上,如图1所示;同样,uart能自动从通信线上接收串行数据,并取出有效的数据位,然后转换成数据字符存入接收数据寄存器。
基于VxWorks的虚拟机串口通信的实现
基于VxWorks的虚拟机串口通信的实现
李洪;吴宁
【期刊名称】《信息系统工程》
【年(卷),期】2009(000)005
【摘要】以VMware Workstation为虚拟硬件开发平台,Tornado为交叉编译环境,通过网络下载的方式向虚拟机成功移植了VxWorks操作系统.介绍了虚拟机平台的构造和虚拟网卡驱动程序的移植过程,给出了内核映像的定制流程,详细探讨了bootrom的编译和引导盘的制作方法.最后,分析了VxWorks串口驱动的基本框架,并通过编译下载应用程序,实现了虚拟机平台和普通PC机之间的串口通信.
【总页数】6页(P110-115)
【作者】李洪;吴宁
【作者单位】南京航空航天大学信息科学与技术学院南京 210016;南京航空航天大学信息科学与技术学院南京 210016
【正文语种】中文
【中图分类】TP3
【相关文献】
1.基于VxWorks实时操作系统的多串口通信系统的实现 [J], 雷瑛;刘亘炜;张安;张磊
2.基于Vxworks实时操作系统的串口通信程序设计与实现 [J], 张军
3.VxWorks中基于RS485总线的串口通信协议及实现 [J], 张爱卿;唐普英;汪康洪
4.基于Vxworks实时操作系统的串口通信程序设计与实现 [J], 张军
5.VxWorks中基于RS485总线的串口通信协议及实现 [J], 张爱卿;唐普英;汪康洪因版权原因,仅展示原文概要,查看原文内容请购买。
实时操作系统VxWorks下多串口通讯设计
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) ; }
串口参数选择vxworks实时操作系统通过io控制函数ioctl串口控制功能字功能字功能fiobaudrate设置串口波特率fiocancel取消读写操作fioflush清空输入缓冲和输出缓冲fiogetname得到文件设备名fiogetoptions返回当前的设备选项字fionread得到输入缓冲中未读取的字节数fionwrite得到输出缓冲中的字节数fiosetoptions设置设备选项字串口数据读写vxworks实时操作系统可通过select函数使串口读写任务一直处于阻塞状态直到串口设备文件准备好
2 多串口初始化流程
基于 PC /104 模块的嵌入式系统 , 串行通信是 常用的通信方式之一。通过串行数据端口 , 可以实 现 PC /104 与 PC 机以及 PC /104 模块之间的通信。 本文采用盛博科技有限公司的 SE M /M SP - 12( A ) 嵌入式模块 , 在嵌入式系统中扩展 8 个以上的串行 端口, 实现多串口数据通信扩展设计。 VxW orks系统平台下多串口初始化操作流程如 图 1 所示。 74
VxWorks的多任务通信机制
VxWorks的多任务通信机制一、 VxWorks操作系统介绍VxWorks实时操作系统式由美国WindRiver公司推出的一个运行在目标机上的高性能、可裁减的嵌入式实时操作系统,VxWorks的核心是高性能的微内核wind,其具有快速任务切换、中断支持、抢占式和时间片轮转调度机制等特点,保证对外部事件的快速反应。
除了微内核,VxWorks还包括了I/O系统、文件系统、TCP/IP网络系统、图形系统、虚拟内存管理、板极支持包BSP (Board Support Package)等模块,而BSP层的存在使VxWorks可以方便地移植到各种硬件平台。
在目前的嵌入式操作系统市场,VxWorks占据着80%以上的市场份额,广泛地应用于通信、消费电子、交通运输、工业控制、航天航空等领域。
二、 VxWorks的多任务通信机制通常,在一个实时系统中,存在着多个并发的任务来协同实现系统的功能,操作系统必须为这些任务提供快速且功能强大的通信机制。
在VxWorks系统中,有信号量(semaphore)、消息队列(message queue)、管道(pipe)、事件(event)等通信机制,对一个系统开发人员来说,如何合理地使用这些通信机制,是系统能够长期高效、可靠、安全运行的关键。
1、信号量(semaphore)在VxWorks种,信号量是提供任务间同步和互斥的最快速、开销最小的机制,VxWorks有三种不同类型的信号量:(1)二进制信号量:可用于2个任务之间的同步工作。
如任务A 必须在任务B完成特定的动作以后才能进行,在这种情况下,任务A 可以获取信号量而处于阻塞(pend)状态,任务B在完成特定的动作后释放该信号量。
一般来说二进制信号量适用于一对一的任务之间的同步。
(2)互斥信号量:主要用于任务之间共享数据区的互斥保护,具有优先级反转、安全删除、递归等特性。
在有2个或2个以上的任务共享一个数据区的时候,必须使用互斥机制进行保护。
嵌入式实时操作系统Vxworks串口驱动程序的设计与实现
个 完 整 的 V w rs串行设 备驱 动 包 含 3层 抽 x ok
x xor v
象 软件 结构 :/ IO系 统 层 、t 驱 动 层 和 底 层 硬 件 驱 tr )
动 层 , 图 1所示 。 如
l l vo n I行备l ’ 串设
图 1 V w rs串 口驱动 层次结构 图 x ok
函数 属 于 竹 中间层 。
t Dv t r 及其支持 库 t i 为硬件与 IO系统 y y b作 L /
之 间 的接 口层 。 tDv是 一 个 虚 拟 的驱 动 , tLb t r y 在 yi 库 的支 持下 , 一管 理 xD v 硬 件 驱动 ) 按 照 字符 统 x r( , 设备 驱 动接 入 到 IO系 统 中 , 提 供 读 写 环 形缓 冲 / 并 区, 实现 与硬 件无 关 的功 能 。 j
维普资讯
第 7卷
第2期 1
20 0 7年 1 1月
科
学
技
术
与
工
程
V0 . N . 17 o 21
Nv o7 o .2 0
17 —89 2 0 ) 15 9 -4 6 11 1 ( 07 2 —6 90
S i n e T c n l g n n ie rn c e c e h oo y a d E gn e i g
顶层 的 IO系统 层 通 过 调 用 通 用 i i 中 的 / o b库 L ra ( 、 re ) i t ) 函数 , 给定 的参 数 中找 ed ) wi ( 、o l 等 t c( 从 到 相应 的设 备 描 述 符 , 后 找 到 设 备 驱 动 表 , 执 然 并 行设 备 驱动表 中相应 操 作 函数 , 设 备 驱 动 表 中 的 而
VxWorks下串口通信程序设计与实例
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命令可以查看到串口。
Vx Works中串口通信的实现
串 口通信 的优点 是开 发简单 , 传输 数据 量不 在
大 、 求 速度 不高 而传输 距 离较 远 的通信 场合 得 到 要
广 泛应 用。
在 Vx rs中, I0 系 统 设计 成 为 任何 类 wok 将 / 型 的设 备 提供 一 个简单 、 一 、 立 于设备 的接 口。 统 独
Ke r s:Vx o k ;s ra o y wo d W r s e i lc mm u ia i n;Po r n c to we PC;RTOS
widRi r 司 的嵌 入式 多 任 务 Vx r s n v 公 e wok 实 时操 作系统 是 目前 世 界 上 用 户 数 量 最 大 的 实 时操 作 系统 , 已成功 的应 用于 航 空 、 天 、 航 武器 控 制 、 舰
J n. 2 0 u ,0 7
V Wok 中串 口通 信的实现 x rs
李 慧
( 陵 科 技 学 院 信 息 技 术 学 院 , 苏 南 京 金 江 200 ) 1 0 1
摘
要 : P weP 以 o r C为 例 , 论 了 基 于 P weP 讨 o r C的 嵌 入 式 实 时 操 作 系统 V Wok 与 P 机 进 行 串 口 通 信 的 基 本 x rs C
维普资讯
第2卷 3
第 2期
金 陵 科 技 学 院 学 报 J URNA I I NS T O L OFJNL NG I TI UTE O E HNO O Y FT C L G
Vo . 3 No 2 12 . .
20 0 7年 6月
船 、 信 等领 域。 如在 美 国的 火 星探 测 器 、 国者 通 爱
编码 转换 器 。 当数据 从 C U 经过 串行 端 口发送 出 P 去时 , 节数 据转 换 为 串行 的位 ; 接收 数据 时 , 字 在 串 行 的位 被 转换 为字 节 数 据 。应 用 程 序 要使 用 串 口
一种基于VxWorks的串口调试系统的设计与实现
54软件开发与应用Software Development And Application电子技术与软件工程Electronic Technology & Software Engineering1 引言VxWorks 是由美国Wind River System 公司推出的一款具有微内核、可裁剪的实时操作系统。
它以其强大实时性、良好的可靠性、灵活的可裁剪性被广泛应用在高精尖技术及对实时性要求极高的领域,如航空航天、通信控制、军事国防、交通运输、医疗设备等。
串行接口简称串口,是一种采用串行通信方式的扩展接口,按位来发送和接收字节,如图1所示。
其特点是通信线路简单、传输距离长,只要一对传输线就能实现双向通信,成本较低。
所以在VxWorks 操作系统下采用串口通讯可以高效、方便的实现数据交互功能。
但是,基于VxWorks 操作系统下的设备在串口模块开发、设备间的串口数据调试过程中缺少一款能够实时显示串口接收数据、模拟发送串口数据的调试工具。
针对于以上背景本文提出了一种基于VxWorks 操作系统的串口调试系统的设计思想,可在设备中嵌入串口调试模块,当调试人员按下某个按键时即可调用串口调试模块,进而完成与其他设备间的串口数据调试工作。
2 系统总体设计共振柱试验、直剪慢剪试验、回弹再压缩试验、击实试验试验的个数和金额。
4.3.4 其它勘探测试费计算(1)软件自动计算测量定孔的个数和金额,该项可由用户在软件面板统一修改。
(2)软件自动计算注水试验试验、轻便触探试验的个数和金额。
(3)软件自动计算水位观测孔、明浜断面的个数和金额,该项可由用户在软件面板统一修改。
4.3.5 工程总费计算各项金额分别汇总统计:钻探、原位测试、其它勘探测试、波速试验费、室内水土试验、工程勘察技术费、波速试验技术费、工程测量技术费、室内试验技术费。
4.3.6 总报价计算根据上述各项金额分别汇总统计结果、进出场费(该项可由用户在软件面板统一修改)、下浮比例(下浮比例控制报价时,该项可由用户在软件面板统一修改),计算最终报价金额。
Vxworks实时操作系统的串口通信设计
V Wok ;g O e b d e pr t g s se x r s T S m e d d o ea i y t m n
Sr l o e i C mmu ia in a nc to
为 提 高 数 据 接 收 的实 时 性 , 可 采 用 中断 方 式 ,利 用 VXW 0 k 提 供 的 r s Slc e e t函数 的事 件 触 发机 制 ,将 读 串 口的 任 务 阻 塞使 其 一 直 等 待 数 据 , 当 有 数 据 来 到 的时 候 该 任 务 会 立 刻 自动 响 应 ,提 高 系 统 的 实 时 性 。
读 写标志 ,调 用 函数 wr t ( 、r a ( ie ) e d ) 对 串 口进 行 只读 操 作 、 只写 操 作 或 同 时进 行读 写操 作 。
的实 时操 作 系统 ;连 接 目标 机和 宿主机 的通信 选项 ,加 以太 网 、串行 线路 、在
线仿真等 。 r a o To d 能够支持 Wid ws n no 、 Un x等流行 的 工作平 台和 Po r i we PC、
一
、
前 言
目前 市场上 比较著名 的实 时操作 系
极大地 扩展 了 T r a o 网络特 性 ,并 on d 的 增强 了嵌 入式微 处理 器 的网络 特性 。 …
三 ,串 口通 信 基 本原 理
串 口 在 嵌 入 式 系 统 当 中 是 一 类 重 要 的 数 据 通 信 接 口 ,其 本 质功 能 是
作 为 C P U 和 串行 设 备 间的 编 码 转换
统有: x r s P O Nu lu 、 V Wo k 、 S S、 c s QNX、 e
VxWorks操作系统及实时多任务程序设计.
VxWorks 操作系统及实时多任务程序设计刘尉悦张万生邢涛王砚方(中国科技大学近代物理系,合肥, 230027摘要 :数字式声纳系统需要实时的显示其搜索、跟踪结果, 同时对用户命令作出及时的响应, 并实时控制前端的硬件。
本文介绍基于 VxWorks 实时操作系统和 X 窗口系统的显示及控制程序设计。
着重介绍本系统中基于 VxWorks 的实时多任务程序设计。
关键词:实时,实时操作系统, VxWorks , X-Window一. 系统概况本系统运行于 VME 总线系统 (MVME177上, 通过 VME 背板总线与各模件交换数据对各处理模件进行控制并把信号处理结果显示。
MVME177模件运行于嵌入式实时操作系统 VxWorks 下,人机交互界面基于 X 窗口系统。
二. 嵌入式实时操作系统 VxWorks 简介由于声纳系统在探测到某些目标后 (例如鱼雷要迅速作出反应, 所以要求控制及显示系统必须是实时操作系统。
实时操作系统, 要求能够随时打断正在执行的任务, 对内部和外部发生的事件在确定的时间内作出响应。
本系统采用的 VxWorks 是由美国 WindRiver 开发的一种类 UNIX 的高性能嵌入式实时操作系统。
它是目前世界上用户数量最大的实时操作系统。
具有优越的技术性能、丰富的应用软件支持、良好的技术服务和可靠的系统稳定性。
VxWorks 的主要性能特点有:1.高度可剪裁的微内核结构 VxWorks 的所需要的存储器空间大约为8KB~488KB(ROM、 620KB~29.3KB(RAM,具有极好的可伸缩性。
2.高效的多任务调度 VxWorks 支持中断驱动的优先级抢占式调度和时间片轮转调度, 并具有确定的、快速的上下文切换能力。
3.灵活的任务间通讯手段支持信号灯、消息队列、管道、信号和套接字等进程间通讯和互斥手段。
4.支持诸如 Ring buffer、 Link list 等共享内存技术。
基于VxWorks平台的多串口卡通信设计
基于VxWorks平台的多串口卡通信设计VxWorks 操作系统是美国Wind River 公司于1983 年设计开发的一种嵌入式实时操作系统(RTOS),良好的持续发展能力、高性能的内核以及友好的用户开发环境,使其在嵌入式实时操作系统领域居于领先地位,广泛应用于现代的各种嵌入式计算机系统中,比如军事指挥系统、武器控制系统或工业控制系统中。
而在这些系统中,往往不是单个计算机的控制,而是多个计算机以及其他设备组成通信网络共同完成控制作用,因此,对于每一个嵌入式计算机除了连接必需的外设之外,还需要考虑计算机之间的通信。
计算机间常用的通信方式是利用串行口来实现的。
本文在VxWorks 多串口通信的实现过程中未采用常见的标准VxWorks 虚拟设备ttyDrv 驱动方式,而是在用户的驱动程序中直接对硬件进行初始化,以中断方式进行串口通信。
1、环境及配置VxWorks 嵌入式开发采用图1 所示的主机一目标机方式。
其他硬件与本文关系不大,这里主要介绍串口卡,该卡是DIAMOND SYSTEM 公司生产的EMERALD-MM-8 型8 串口扩展卡(以下简称EMM8),是基于2 片ST16C554 芯片的8 串口集成板卡,每一路串口均可单独配置成符合RS-232C/RS-422A/RS-485 协议规范,最高速率可达115.2kb/s。
通用异步收发器(UART)ST16C554 用来扩展4 路串口通道。
每路通道各有一组16B 的收发FIFO 和移位寄存器,用来缓冲数据和串并转换。
每个通道有12 个8b 内部寄存器,用来存放收发数据以及配置该串口的工作模式,需要在初始化时对各寄存器进行设置。
本文根据工程的要求,将卡上的硬件跳线设好,如:各串口使用RS-232C 协议,按照datasheet 进行硬件跳线。
其中J9 的配置较为重要,如图2 所示。
VXWORKS的串口驱动原理和串口通信pdf
关键词:Vwr 行 信 字 设 数 结 xos串 通 k 符 备 据构
VW r 是Wn i; 司 发 一 具 微 核 高 、 裁 嵌 式 时 i R e公 开 的 套 有 内 、 性能 可 减的 入 实 操 x os k d v
作系统. x o s 于成功的应用于 19 年发射的 VW r 由 k 97 火星探侧器— “ 探路者” 而闻 名。 在 高 可靠、高 性能领域被广泛应用。 x o s V w r 的优良 k 性能和 Wi R e 公司近年来在市 n ir d v 场竟 争中的上佳表现都为V w r 的 x o s 应用和进一步开发 k 提供了 有力的保证。 V w r 在具备高效实时多任务内核和良 xo s k 好可伸缩性能的同时,还支持广泛的通信协 议,并能够根据用户的需求进行组合, 其开放式的结构和对工业标准的支持,使开发者只 需做很少的工作即可设计出 有效的适合于不同用户要求的系统。V w r x o s的系统调用支持 k PS 1 3 OI 0 . X 6标准,增强了用户程序的可维护性,也为用户程序在不同 0 操作系统之间的移
程序的 编写者调用,对于串口,主要库函数有两个: L 和seL . 妙 i ec i b lt b
串口驱动程序的结构如图3 :
1 Ss m 1 yx v
De ie vc
图3 串口驱动程序的结构
tD 是串口 虚驱动程序, 一 的 tr yv 它由 些设备无关的 通用代 码构成, 个 tD 可以 一 yr v 管 理多 个串口 实驱动程序xD 和xD 所对应的串口 备. yr和t i共同 成V x r xr v v 设 tD v y b 完 O系 L
1 . 两个重要的数据结构: .1 2 驱动表 ( ret l 和设备表(ei lt Dir e v a ) b ( ve D c i) s
VxWorks中串口通信的实现
VxWorks中串口通信的实现
李慧
【期刊名称】《金陵科技学院学报》
【年(卷),期】2007(23)2
【摘要】以PowerPC为例,讨论了基于PowerPC的嵌入式实时操作系统VxWorks与PC机进行串口通信的基本原理、关键技术和编程实现,突出了PowerPC平台的特点.介绍了一个具体的系统实现,对基于PowerPC的VxWorks 串口通信开发具有很强的实用价值.
【总页数】4页(P37-40)
【作者】李慧
【作者单位】金陵科技学院信息技术学院,江苏,南京,210001
【正文语种】中文
【中图分类】TP316.2
【相关文献】
1.嵌入式VxWorks实时操作系统的多串口通信的实现 [J], 吕志刚
2.基于VxWorks实时操作系统的多串口通信系统的实现 [J], 雷瑛;刘亘炜;张安;张磊
3.嵌入式VxWorks实时操作系统中串口通信的实现 [J], 孟英谦;王玲
4.VxWorks中基于RS485总线的串口通信协议及实现 [J], 张爱卿;唐普英;汪康洪
5.VxWorks中基于RS485总线的串口通信协议及实现 [J], 张爱卿;唐普英;汪康洪
因版权原因,仅展示原文概要,查看原文内容请购买。
VxWorks嵌入式实时操作系统中串口驱动程序的研究
件结构:标准I/O库(ioLib),tty库(ttyDrv/ tyLib)和底层SMC驱动(xxDrv),如图l所示。 从图1可以看出串口的驱动并不是直接和I/O系统 交互,中间存在一个ttyDrv(包括tyLib)。实际
}北京铁路信号工厂高级工程师,102613北京 收稿日期:2009-06-26
★★★
MPC860处理板中SMC串口驱动程序的
MPC860板以Motorola
实现
Power
QUICC系列
MPC860芯片为CPU,其通信处理模块(CPM)包 括2个串行管理控制器SMC。通过设置SMC,可 以实现UART协议。操作系统采用VxWorks,Vx— Works下的串口驱动程序是包括在板级支持包BSP 内的。根据上述串口设备驱动层次模型,其串口驱 动程序组成如下。 1.底层:与硬件直接相关的驱动 (ppe860sio.h/ppc860sio.e)。用来实现基本的串口
万 方数据
铁道通信信号2009年第45卷增刊
操作的功能,是串行设备驱动的主体。在
usrRoot
心JI{j程序 Open()
ioctl
0
read()write0
ppc860Sio.h中定义了串行I/O通道的数据结构, 如ppc860sme—chan,其中包括配置串行设备相关 的寄存器,以及SIO各驱动函数的定义。
上,内核启动时,在驱动程序表中安装的不是串行 设备驱动程序的函数,而是ttyDrv/tyLib提供的 函数。
胞用程序
●
t/0系统(ioI.ib)
I
lttV。rV卜.
I
-I
I
t,¨n
l
2串行设备驱动程序原理
在VxWorks中,I/O系统提供了与设备无关的 用户接口。这样,对于串行设备的任何操作都可以 视为对1个文件的操作,应用程序可以通过标准的 接口open、read、write、ioctl、close等访问串行设 备,而不必了解驱动程序实现的细节。
VxWorks中串口通信的实现
Real ization of Serial Communication in VxWorks
L I Hui (Jinling Institute of Technology , Nanjing 210001 , China)
Abstract : The basic t heory , key technology and programming realization between t he VxWorks R TOS based on Power PC and PC are int roduced in t his paper. The property of Power PC is ad2 dressed in t his paper. A special realization of embedded system is proposed in t his paper , which has st rong practice value to t he develop ment of Serial Communication in VxWorks based on Power PC. Key words : VxWorks ; serial communication ; Power PC ; R TOS
第 23 卷 第 2 期
金陵科技学院学报
Vol. 23 ,No. 2
2007 年 6 月
J OU RNAL OF J INL IN G INSTITU TE OF TECHNOLO GY
J un. ,2007
VxWorks 中串口通信的实现Ξ
李 慧
(金陵科技学院信息技术学院 ,江苏 南京 210001)
备有两种操作模式 : raw 模式和 line 模式 。在 raw 模式下 ,每个刚从设备输入的字符对读者都是有效 的 ; 在 line 模 式 下 所 有 输 入 字 符 被 存 储 , 直 到 N EWL IN E 字符输入 。设备选项字使用带 F IOSE2 TOP TIONS 功能的 ioctl () 程序来设置 。
实时操作系统VxWorks下多串口通讯设计
Ab t a t V W o k s a ra —i p r t n s s m e eo e y W i d v rc mp n ,a d i p p l ri s r c : x r si e lt meo e a i y t d v lp d b n Rie o a y n s o ua o e n
摘
要 :V Wok 是 一种 由 Wid i r 司开发 的 实时操作 系统 ,广泛 地应 用 于各 种嵌 入 式 实时 x rs n Rv 公 e
应 用领 域 。V Wok x rs实时操作 系统 具有 良好 的裁剪 能力 ,用户 可通过 交叉 开发 环境根 据 需 求裁 剪
组件 ,选择 各种 内核 组件 进行 系统 内核 配 置 ,编译 系统 内核 时进 行 独 立 的加 载和 卸 载 。介 绍 了
基 于 x6平 台的嵌 入 式 V Wok 8 x rs系统与 P C机 多 串1 通信 的 实现 方式 以及 串口通信 的编程 方法 。 : 7
关键词 :多串口通信 ;V Wo s x r ;实时操作系统 k
De i n o u t.e i lc m m u i a i n i m b d e sg fm lis ra o n c to n e ed d r a —i e Vx o k p r tn y t m e lt m W r so e a i g s se
和高可 靠 性 , 用 于 所 有 流行 目标 的 C U平 台 , 适 P 提
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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下多串口通讯设计