基于VxWorks的多串口卡通信实现

发布者:ching80790最新更新时间:2010-01-27 来源: 电子测量技术关键字:VxWorks  多串口设备驱动  PC 手机看文章 扫描二维码
随时随地手机看文章

    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所示。

 

    D、C、B、A 四位表示base address,从data sheet中查表可知其跳线情况,以本项目为例,base address为0x300,则D、C、B、A分别为out、out、in、in,为1100。

2、3、4…15为该卡可用的中断号,要使用哪个中断就必须将其跳为in。本项目由于中断资源不足,只能用一个中断号即7号中断,因此只将7设为in。

    CK为频段范围跳线,对ST16C554来说必须为in。

    另外,EMM8在系统启动时会从板上的EEPROM 中读取各个端口的基本配置信息,主要是端口映射地址及分配的中断号,这些信息可以在启动后编程修改,但一般是固定的,因此只要在EEPROM 中配置一次并保存即可。

2、多串口驱动开发


2.1 I/O系统与串口设备驱动层次结构

    I/O系统与串口设备驱动层次如图3所示。

 

    图3中最底层就是要编写的驱动程序。在这里主要完成对具体硬件的各种操作,以及与上层的接口。硬件驱动层上面是ttyDrv和tyLib。这一层比较特殊,是Vxworks专门为串口设备准备的一个虚拟驱动库,它把跟具体硬件无关的操作集成在了这一层中。这样用户只编写与硬件有关的驱动和跟这一层的接口函数即可。从总的结构讲,这2层都属于设备驱动的范畴。再上一层是I/O系统层,Vxworks的I/O系统向上提供了7个基本的I/O接口,供应用程序调用;向下提供与各种设备驱动程序的接口。I/O系统把应用程序跟驱动程序有机地连接起来。最顶层就是用户根据应用需要编写的应用程序。ttyDrv是一个虚拟设备驱动,用于处理I/O系统与底层实际设备驱动程序(可以是用户设计的驱动程序)之间的通信。使用ttyDrv控制串口是比较常见的串口驱动实现方式,实际上,直接对硬件进行初始化,以中断方式进行串口通信也是可行的方式,且更加靠近底层,可以更自由、高效的控制串口。

2.2 EMM8驱动开发

    首先是对各串口的初始化和中断配置,初始化包括设置波特率以及数据格式。

    在实际的工程应用中,需要8个串口共同使用一个中断(中断资源不足),实现8串口的全双工同时收发。难点在于使用同一个中断且不能丢数据,对于驱动使用同中断问题,关键是接收数据的中断服务程序ISR。经过探索,不论是否使用单中断,读EMM8卡上I/O Register Map表中的一个中断状态寄存器(interrupt status register),可以指出当时是哪一个串口收到数据,读出该串口的数据即可。但是这种实现方法经过测试在接收时丢数据。后经研究发现,中断状态寄存器并不一定在某一个时刻只有一个端口位发生跳转。即CPU收到中断后,有可能是几个串口“同时”收到数据,这是因为中断控制器将同一个CPU中断分给了不同的串口。从CPU端看来只有一个中断,但从各串口来讲,这个中断有可能是几个串口“同时”产生的。因此要对中断状态寄存器进行轮询,由发生跳转的串口位接收该串口的数据。修改后,经过编写用例测试,可以稳定地使用单中断接收数据且不影响数据的发送。


2.3 驱动测试

    首先是各串口的功能测试,使用“串口调试助手”软件工具通过PC机与各目标机串口通信,收发数据,然后通过屏幕显示得到的数据,对比规定的预期结果,检测数据收发是否正确。经多次验证,工作稳定,通信正确。

    综合测试:使用2台PC104分别安装STV2050CPU模块和EMM8多串口模块各1块,2台PC通过网口(交换机)连接2台PC104,2个EMM8通过8根RS-232双头串口线连接。2台PC通过网口使用tornado的shell工具下载启动程序。2台PC104分别称为1主机和2主机。测试方法是:1主机同时发送8串口的数据,2主机8串口接收并转发回1主机。1主机接收返回的数据,判断是否通信错误。经检验正确通信300000次无错,多次验证。完成对EMM8多串口通讯模块全双工收发的测试。

    经过以上测试,表明本文所述的多串口卡通信实现方法有效,所开发模块稳定可靠。


3、结束语

    本文介绍了VxWorks嵌入式系统中的多串口卡通信的实现过程,因篇幅有限,不能列出详尽代码。本文以EMM8为例,采用驱动直接访问硬件的方法,较为简洁、高效地解决了单中断多串口全双工通信的问题,满足了项目需求,并经过了测试和验收。为日后类似问题的解决提供了一些参考和经验。

关键字:VxWorks  多串口设备驱动  PC 引用地址:基于VxWorks的多串口卡通信实现

上一篇:基于C8051F020的伺服阀温度零漂测控系统
下一篇:芯海科技SoC计量芯片可用于高性能衡器

推荐阅读最新更新时间:2024-05-02 20:59

施乐“蛇吞象”欲收购惠普,约价至350亿美元后仍被低估
惠普周四拒绝了施乐公司上调报价后的收购要约,称这份价值约为 350 亿美元的要约仍旧低估了这家 PC 厂商的价值。    施乐此前发出的初步收购要约被惠普以同样的理由拒绝,随后在上个月将收购报价上调 2 美元,至每股 24 美元。    惠普董事长奇普·伯格(Chip Bergh)表示,这项收购要约将令惠普股东不得不投资于一家合并后债务高到不负责任的公司。他发表声明称:“(合并)之后还将需要不现实的、无法实现的协同效应,这将令整个公司陷入危险。”他指出施乐的销售额正在下降,并表示施乐最近出售了该公司与富士胶片之间合资企业的股份,这就让人对该公司的未来状况感到担心。 施乐对惠普的收购被喻为“蛇吞象”,截至本周一收盘,惠普
[嵌入式]
施乐“蛇吞象”欲收购惠普,约价至350亿美元后仍被低估
全球电子业三驾马车瘸了两驾 PC、家电"零"增长
    全球电子行业三驾马车目前看来只有智能手机还在保持稳定增长态势,PC和家电的增长已经近乎陷入停滞,未来一年也仍然难以看到好转迹象。 明年电子行业的趋势将决定于三大因素:Windows8能否为PC带来新的换机需求,中国的房地产调控政策是否继续抑制对家电的消费需求,智能手机能否继续保持高速增长。 国际著名市场调研机构IDC和Gartner11日公布今年第三季度全球PC出货量数据并不乐观。IDC的数据显示,第三季度全球PC出货量达到8779.5万台,同比下滑8.6%,去年同期,全球PC出货量为9608万台。而Gartner数据显示,全球第三季度PC出货量为8750.04万台,同比下滑8.3%。而市场研究公司IHS iSuppli此前
[手机便携]
超微型半导体散热器问世
  利用珀耳帖效应的半导体散热器被很多人认为是PC散热的未来选择之一。近日Nextreme散热公司就发布了全世界最小的半导体散热器。         这款名为UPF(Ultra-High Packing Fraction)OptoCooler的散热器面积仅有0.55mm2,而散热效率并不低。在25°C的环境下,它最高可以带走420mW的热量,效率达到78W/cm2。而在85°C时,散热能力达到610mW,效率为112W/cm2。该散热器主要面向激光器、LED和其它传感器的散热用途。公司也希望能够将它推广到光电、电子、医疗、军事和航天用途。         UPF OptoCooler目前已经开始销售,千颗单价为12美元
[焦点新闻]
iSuppli:中国超越美国成全球最大PC市场
    调研公司iSuppli最新报告显示,去年中国首次超越美国成为全球最大PC市场。2011年第三季度,中国市场PC出货量曾超越美国,但整个2011年,中国PC市场出货量仍低于美国。但2012年,中国市场PC出货量为6900万部,而美国为6600万部。这是中国首次超越美国而成为全球最大PC市场。   iSuppli报告还显示,与全球PC市场相比,中国PC市场有着自己的特点。例如,在全球PC出货量中,台式机仅占36%,而中国市场台式机和笔记本电脑的比例各占50%。全球范围内,家用PC占总出货量的65%,而中国市场家用和商用PC各占50%。   iSuppli称,上述两大特点表明,中国的农村用户仍未完全向便携设备转移。iSuppli
[手机便携]
Gartner:2015年全球各类设备出货可达25亿
国际研究暨顾问机构 Gartner 表示, 2015年全球个人电脑(PC)、平板、ultramobile与行动电话等装置的加总出货量将达到25亿台/支,较2014年增加2.8%。就支出来看,全球运算装置市场(包括PC与 ultramobile)金额可望达到2,260亿美元,以当前美元汇价计算下滑7.2%。 若排除汇率波动影响(亦即以美元固定汇率计算),2015年全球运算装置支出将减少3.1%。全球PC市场全年出货量可望达到3.06亿台,较2014年减少2.4%。 Gartner研究总监Ranjit Atwal表示: PC采购的减少,主要系因市场预期欧洲等地区厂商将因本国货币兑美元汇率贬值而被迫提高产品
[物联网]
Gartner:2015年全球各类设备出货可达25亿
为提振PC市场需求 英特尔/AMD/英伟达三家好卖力!
  昨天有消息称PC厂商因为原材料上涨而准备涨价,考虑到PC市场现在这个样子,涨价可不是什么好事,尽管涨价是PC厂商不得不做的痛苦决定。2017年的一季度,Intel推出了Kaby Lake桌面版及200系芯片组, AMD 携Ryzen处理器及AM4主板杀回CPU市场,NVIDIA也推出了GTX 1080 Ti显卡,GTX 1080等显卡也降价了,这三家不可谓不卖力,但是依然没有提振主板市场需求,Q1季度销量还是继续下滑中。下面就随嵌入式小编一起来了解一下相关内容吧。  为提振PC市场需求 英特尔/AMD/英伟达三家好卖力!   今年Q1季度的PC市场相对来说要比以往热闹多了,Intel虽然一直被调侃挤牙膏,不过1月份依然
[嵌入式]
国运之争:万字深剖国产PC芯片到底差在哪?
文:杠杆游戏 摘要: 部分核心功能的国产化替代基本可实现,国产芯片整体差距和进口品牌还相当巨大 撰文|李实 (杠杆游戏的朋友重磅来稿) 前言: 近期,中兴公司被美国禁运的消息传得沸沸扬扬。虽然这起事件本质上还是国与国之间的外交争夺、技术争夺以及由中兴公司在美国的商务行为中的一些不当之处所引发。但是中兴公司被禁运后可能面临的破产倒闭等问题,却给国内不少企业敲响了警钟。 高科技产业始终是一个国家综合国力和技术实力最好的证明,尤其是集万千宠爱于一身的芯片行业,更是重中之重。 借由中兴禁运事件,我们不禁展开了联想:在大家日常使用的PC芯片上,国产化做得如何?有哪些可以国产、哪些不可以国产?假如面对全面禁运,国产的芯片、系统能
[嵌入式]
国运之争:万字深剖国产<font color='red'>PC</font>芯片到底差在哪?
市场已近天花板,华为为啥还盯着PC市场不放?
世界移动大会开幕前夕, 华为 发布了此前盛传已久的笔记本电脑,名曰Matebook,这是一款二合一笔记本,余承东在发布会上表示,“华为无论进入哪个新领域都要拿第一, PC 领域也不例外”。余承东可谓豪言壮语,可作为华为进军PC行业的第一款产品,Matebook真是略显苍白。 总结起来,续航和工艺算是官方主打的内容。 电池 一直是华为比较爱打的牌,Matebook可以实现10小时连续办公,高于竞争对手。工艺上,Matebook厚度6.9mm,同时机身重量640g,当然,这应该去掉键盘的重量和厚度,这个厚度和重量算是比较出色,相比而言, iPad  Pro厚度为6.9mm,重量713g。   除此之外,无风扇设计、指纹识别、
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved