基于VxWorks的VME从板驱动设计与实现
摘要: 基于VxWorks操作系统设计了数据采集从板的驱动程序,程序框架上驱动程序将对从板的操作抽象为对字符型设备的操作,驱动程序在内部实现了数据IO操作的阻塞机制、查询机制及信号通知机制,采用这种方式设计的驱动程序向用户提供了统一的接口,方便用户使用,同时将硬件操作与应用程序分开便于驱动程序进行扩展;驱动设计工作是精密环境控制系统的一部分,驱动程序的设计方法可以广泛地应用于基于VME总线的从设备驱动设计。
关键词: VxWorks操作系统; VME总线; 设备驱动程序; 数据采集
中图分类号: TN919?34; TP368.1 文献标识码: A 文章编号: 1004?373X(2013)06?0079?04
基于VME总线搭建了精密环境控制系统,整个系统中基于VxWorks的VME总线驱动程序连接了软件操作与VME从板的硬件通信,VxWorks操作系统下驱动程序的开发是应用VxWorks操作系统的关键因素。本文应用通用公司的VG5?7457PowerPC嵌入式VME单板机作为主板及通用公司的VME?3122A作为数据采集从板组成数据采集系统。针对数据采集从板的通用特征详细的设计了基于VG5硬件和VxWorks操作系统的VME数据采集从板的驱动程序,在驱动程序的设计过程中,特别地考虑了驱动程序数据传输机制的设计,采用良好传输机制设计的驱动程序具有优良的驱动架构,便于移植及扩展。
1 采集系统的系统结构
1.1 采集系统结构分析
系统以VME总线为整体架构,VME总线上使用VG5?7457PowerPC嵌入式VME单板机作VME总线控制器,通过VME总线控制数据采集设备(AD数据采集卡),同时将控制输出经过VME总线下传到控制输出(DA数据输出卡),它同时通过以太网络与上位机相连;数据在VME总线的可靠传输是系统实现功能的关键部分,这主要通过在VG5单板机上设计基于VxWorks操作系统的VME总线的驱动来保证。
1.2 VG5主控板的结构分析及其对VME总线驱动的支持
驱动程序最终运行在VG5?7457单板机上,单板机的VME总线支持是实现单板机对VME总线驱动的关键因素。单板机系统的VME总线硬件结构如图2所示。
单板机使用Universe Ⅱ VME?to?PCI总线桥芯片实现系统的VMM总线,芯片实际上完成了VME总线与PCI总线的操作的互相转化,它同时具备多种转换方式,首先可以完成2个总线中断的互相转换操作,其次可以完成通过VME总线访问PCI总线,最后可以完成PIC总线访问VME总线;这些转换操作很多都是通过芯片的内部寄存器实现的。由于总线桥芯片的转换能力,使得VG5?7457单板机既可以作为VME主控板使用,又可以作为从板使用。
VxWorks操作系统下将VME总线地址映射为CPU的本地地址,其映射可以在相关的BSP文件中定义,设计中的映射如表1所示,将VME总线映射为CPU本地地址后,对从板的操作就转化为于对内存访问操作相似的读写操作,使得VME总线的驱动可以方便的实现。
写内存空间的函数使用sysOut*函数族来完成,需要提供给函数的参数是写入的地址及写入的数据;读内存空间使用sysIn*函数族来完成,需要提供的参数是读的地址,返回值是读到的内容。函数在VxWorks的BSP中定义,使用汇编语言的方法实现相关的操作。
2 数据采集板的硬件结构抽象
5 VME总线数据传输测试
6 结 论
设计了基于VxWorks操作系统的VME总线从板的驱动程序框架,着重介绍了驱动程序的机制及这些机制的实现方法;在设计的整体上重点地考虑了驱动程序的可维护性及可移转性。采用这种方式建立起来的驱动程序代码的可读性好,可维护性强,而且可以方便地移植到其他的应用场合。
参考文献
[1] GE公司.VME?3122A hardware reference[M].北京:GE公司,2007.
[2] 贺小琳.基于VxWorks的SD卡驱动程序的设计与实现[J].计算机工程与设计,2010,31(16):3573?3575.
[3] 曹桂平.VxWorks设备驱动开发详解[M].北京:人民邮电出版社,2011.
[4] 杨扬.VxWorks 下数据采集卡驱动程序开发[J].现代电子技术,2008,31(7):113?114.
[5] 魏永明.Linux设备驱动程序[M].3版.北京:机械工业出版社,2003.
[6] 宋宝华.Linux设备驱动开发详解[M].北京:人民邮电出版社,2008.
[7] 程敬原.VxWorks软件开发项目实例完全解析[M].北京:中国电力出版社,2005.
[8] 马均飞.软件测试设计[M].北京:电子工业出版社,2011.
[9] 王学龙.嵌入式VxWorks系统开发与应用[M].北京:人民邮电出版社,2003.
[10] Tundra Semiconductor Corporation. Universe II? VME?to?PCI bus bridge user manual [M].[S.l.]: Tundra Semicanductor Corporation, 2007:30?35.
[11] 刘小军,李秀娟.嵌入式操作系统VxWorks的内存管理技术研究[J].电子科技,2008(6):62?65.