嵌入式VxWorks的多串口共享中断的驱动程序设计.docVIP

嵌入式VxWorks的多串口共享中断的驱动程序设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式VxWorks的多串口共享中断的驱动程序设计   摘要:该文介绍了嵌入式VxWorks操作系统的串行设备驱动程序的结构,分析了VxWorks启动过程中串行设备驱动的实现,设计了一个基于VxWorks操作系统的多串口共享中断的驱动程序,并且实现了将串口驱动程序以模块的方式动态加载到VxWorks操作系统中。   关键词:VxWorks操作系统;串口驱动程序;共享中断   中图分类号:TP316文献标识码:A文章编号:1009-3044(2009)33-9544-03   The Design of Driver for Multi Serial Sharing IRQ Based on VxWorks System   LIU Wei,TAO Ying   (Department of Information Engineering, Jiangxi Vocational College of Finance and Economics, Jiujiang 332000, China)   Abstract: This paper introduces the structure of serial port driver on the VxWorks system, then the achievement of the driver of serial driver is analyzed. The driver for multi serial sharing IRQ based on VxWorks system is designed, and loading VxWorks system with the module of the driver is achieved.   Key words: VxWorks system; serial port driver; sharing IRQ   VxWorks操作系统是美国Wind River公司开发的一种嵌入式实时操作系统,由于其高可靠性、强实时性以及可裁减性,广泛应用于航空航天、军事、民用通信和工业控制等领域。   在某大型控制系统中,我们需要开发一个具有4路串口通讯、1路CAN通讯以及2路以太网通讯的多种通讯方式并存的通讯设备。考虑到通讯能力以及通讯的实时性要求,CPU选用盛博公司PC104+总线的Pentium III处理器,串口选用具有PC104总线接口的4路串口扩展板,采用VxWorks操作系统来实现以上需求。由于每种通讯方式都采用中断方式触发,而系统硬件提供的中断源是有限的,针对这种情况,为了节省系统的中断资源,本文设计了一个基于VxWorks的多串口共享中断的驱动程序,并对该驱动程序的功能进行了长时间测试验证。   1 串行设备驱动的结构   在VxWorks操作系统中,串行设备作为一种特殊的字符型设备,操作系统为其提供一个简单、统一、独立于设备的接口,在应用层对于串行设备的任何操作都可以视为对一个文件的操作,而具体的实现是通过串行设备的驱动程序来完成。   在VxWorks中串行设备驱动采用3层抽象的软件结构,即I/O系统、虚拟设备ttyLib或tyLib以及硬件驱动,其结构示意图如图1所示。在VxWorks中,I/O系统并不直接与具体的硬件驱动进行交互,而是将驱动程序中与硬件无关的部分放在虚拟设备ttyLib中实现,再利用虚拟设备ttyLib与I/O系统进行通讯,使得I/O系统独立于具体的硬件驱动,而驱动程序的开发者只需要实现系统所提供的接口并且将其挂载到虚拟设备ttyLib就能完成具体串行设备驱动的设计,从而保证驱动代码的可复用性和接口的统一性。   2 串行设备驱动的实现   VxWorks在启动过程中对串行设备驱动的实现主要包括两部分:串口的初始化和串行设备的创建。串口的初始化主要包括初始化串口设备,分配串口所需的资源以及完成串口中断程序的系统挂接;串行设备的创建包括tty驱动的初始化和对tty设备的创建,即建立起I/O系统与硬件驱动层的联系。   2.1 串口的初始化   sysInit()作为VxWorks操作系统启动的入口程序会调用第一个C程序函数usrInit(),完成用户定义系统的初始化工作,而串口的硬件初始化是在usrInit()函数的子函数sysHwInit()中完成。对于VxWorks现有的Intel8250驱动(Tornado目录/target/src/drv/sio/i8250Sio.c),sysHwInit()还会调用sysSerial.c文件下的sysSerialHwInit(),sysSerialHwInit()函数主要对串行设备的设备描述符进行初始化,在初始化过程中还会调用

文档评论(0)

heroliuguan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8073070133000003

1亿VIP精品文档

相关文档