基于VxWorks的HDLC设备驱动库设计和实现.pdfVIP

基于VxWorks的HDLC设备驱动库设计和实现.pdf

  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 的HDLC设备驱动库设计与实现 常诚,陈煦阳 (北京邮电大学电信工程学院,北京 100876) (北京航空航天大学电子信息工程学院,北京 100083) Changcheng15@ 摘要:在VxWorks操作系统中,传统的HDLC设备驱动采用在应用程序中直接读写硬件寄存器 的方案实现,这种方案存在开发难度大、移植性差等问题。针对这种情况,本文提出了一种 新的HDLC设备驱动方案,将HDLC设备驱动中硬件无关的部分提取出来,在VxWorks I/O系统 和底层硬件驱动之间实现HDLC设备驱动库。描述了HDLC设备驱动库的总体方案,包括读、写、 初始化流程以及缓冲区的存储表示、接口函数,以SAB82538H为硬件验证了HDLC设备驱动库 的可用性。 关键词:VxWorks;HDLC;设备驱动库;SAB82538H 中图分类号:TP316.2 1.引言 为便于在VxWorks下开发设备驱动,VxWorks为开发者提供了串行设备、块设备等几类常 见设备的驱动库[1]。这些设备驱动库实现了同类型设备驱动中硬件无关的部分,驱动开发 者只需要关注硬件的具体细节,编写符合驱动库标准的程序接口。这样不但降低了驱动开发 的难度,而且可以向应用程序提供统一的接口。 高级数据链路控制 (HDLC)是面向比特的串行链路协议,发送和接收以帧为单位进行。 如果借助VxWorks提供的串行设备驱动库开发驱动,一方面需要在数据流中插入帧分隔符, 复杂度增加;另一方面,由于串行设备驱动库只支持单字节的数据操作,驱动的效率较低。 因此传统的HDLC设备驱动采用在应用程序中直接读写硬件寄存器的方案实现,这种方法的优 点在于效率较高,但存在开发难度大、移植性差等问题[2] [3]。 借鉴VxWorks设备驱动库的设计理念,本文提出了一种新的HDLC设备驱动设计方案,将 HDLC设备驱动中硬件无关的部分提取出来,在VxWorks I/O系统和底层硬件驱动之间实现 HDLC设备驱动库,克服了传统方式的缺陷。以西门子公司的HDLC控制芯片SAB82538H为例给 出设备驱动的完整实现过程。VxWorks版本号为5.5.1,集成开发环境选用Tornado2.2.1。 2.HDLC 设备驱动库设计 2.1 总体设计 HDLC 设备驱动库(以下简称 HDLC 驱动库)位于底层 HDLC 硬件驱动和 VxWorks I/O 系 统之间,如图 1 所示: 1 图1 总体方案框图 HDLC 驱动库主要维护 HDLC 帧的输入输出缓冲区,提供对缓冲区的互斥访问,对缓冲区 的读写以帧为单位进行。 HDLC 驱动库向应用程序提供四种基本 I/O 调用:open,read,write,ioctl,分别由 VxWorks I/O系统重定向到 HDLC 驱动库函数 hdlcOpen、hdlcRead、hdlcWrite 和hdlcIoctl。 HDLC 驱动库要求底层 HDLC 硬件驱动为每一个 HDLC 通道提供一个通道描述符 (HDLC_CHAN)。此描述符的数据结构由 HDLC 驱动库定义,其中包含硬件相关的接口函数集 (HDLC_DRV_FUNCS,包括启动发送函数 HDLCTxStartup,硬件配置函数 HDLCIoctl,回调安 装函数 HDLCCallbackInstall)。HDLC 通道描述符在创建 HDLC 设备时(调用 HDLC 驱动库函 数 hdlcDevCreate)作为入口参数传给 HDLC 驱动库。 HDLC 驱动库向底层 HDLC硬件驱动提供 getHDLCFrame 和putHDLCFrame 两个接口函数, 用于从HDLC驱动库的输出缓冲区中获得一帧数据和向HDLC驱动库的输入缓冲区放入一帧数 据。HDLC 驱动库在创建 HDLC 设备时通过调用接口函数集中的 HDLCCa

文档评论(0)

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

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

1亿VIP精品文档

相关文档