1 导言
VxWorks是美国Wind River公司专门为嵌入式处理器规划的一种模块化、高性能的实时多使命操作体系。这儿提出一种VxWorks操作体系下CompactPCI总线驱动程序的规划及完成。该规划运用德国Kontron DT-64,选用Dual PentiLim 3 CPU,作业频率高达866 MHz,具有128 KB一级高速缓存和128 KB二级高速缓存。
2 BSP与VxWorks的联系
板级支撑包BSP(board support packet)通常是针对详细的硬件渠道,是用户所编写的发动代码和部分设备驱动程序的调集。在VxWorks操作体系中,BSP是介于底层硬件环境和VxWorks之间的一个软件接口,它的首要功用是体系加电后初始化方针机硬件、初始化操作体系及供给部分硬件的驱动程序。BSP与VxWorks之间的联系如图1所示。从图1发现,BSP不是一个设备驱动程序。它只能运转于指定设备的硬件环境中,对其进行操控和初始化。这儿首要论述在PCM发送,接纳模块的规划进程中,怎么运用DT-64 BSP来完成PCI总线的驱动程序。
3 总线及接口技能
因为CompactPCI标准界说依据PCI总线方法的复印加巩固而经用的PCI版别,而且适用于工业和嵌入式运用,本规划选用此标准。CompactPCI总线是3种技能的集成:通用PCI部分总线(Local Bus)的高性能,装置结实的欧卡结构,触摸牢靠的针孔衔接器(pin-antl-soeket connector)。
PCI部分总线是一种地址和数据复用的高性能32,64位总线,它在高度集成的外围操控器材、外围插件板和处理器/存储器之间起衔接效果。PCI总线为CPU和板上外设供给了便利的高速通讯衔接,作业频率为66 MHz或更高。PCI作为一种同步的、独立于处理器的32 bit或64 bit部分总线,在作业频率为33 MHz总线宽度为32 bit最低标准时其峰值吞吐速率可到达132 MB/s,适用于网络适配器、硬盘驱动器、视频卡、图形卡等各类高速外设。衔接到PCI总线上的设备分为主控和方针两类,PCI支撑多主体系。PCI总线的一个重要特点是存在装备空间,它供给一种装备相关,适合于现在或将来的体系装备机制,完成参数主动装备。体系软件经过读取装备空间中相应参数,即可确认PCI总线上挂接了什么设备以及需求哪些资源,经过对地址空间的重定位分配资源防止竞赛,完成PCI设备的即插即用。
衔接到PCI总线的用户功用板卡需求运用PCI总线接口操控器和PCI总线进行交互,在运用体系规划时选用OL5064器材。QL5064是一款32 bit/33 MHz的通用PCI总线操控器,契合PCI标准2.2版,本突发传输速率到达132 MB/s。可作为PCI总线的主控设备操控总线,也可作为方针设备呼应总线。Ql5064供给了PCI总线、E2ROM、LOCAL总线3个接口。LOCAL总线支撑复用/非复用的32 bit地址/数据,有3种作业形式:M、C和J。在体系实践数据收集时,将LOCAl总线设置为C形式,这是一种方针设备形式。选用NM93CS56L型串行E2PROM作为QL5064的装备器材,该器材经过E2ROM接口和QL5064相连。QL5064的长装备方法要求68个字节的信息,首要包含:设备识别号、供货商代码号、LO-CAL总线3个空间的性质、规模以及基址等,这些装备信息内容一般要预先规划并用编程器事前写入装备器材中。在计算机发动时,体系将依据装备信息分配器材所请求的资源。Q155064作为一种桥接器材,在PCI总线和LOCAL总线之间有3种首要数据传输形式:
(1)PCI Initiator数据传输形式 主控形式,LOCAL总线主设备经过QL5064拜访PCI总线存储空间和I/O空间;
(2)PCI Target数据传输形式PCI总线主设备经过QL5064拜访LOCAL总线存储空问和I/O空间;
(3)DMA数据传输形式QL5064作为两总线的主设备,从PCI总线存储空间读数据到LOCAL总线存储空间或许从LOCAL总线存储空间读数据到PCI总线存储空间。在体系规划中,运用PCI Target数据传输形式读写操控模块中的寄存器。
4 设备的装备技能
VxWorks是专门为实时嵌人式体系规划开发的操作体系软件,供给高效的实时使命调度、中止办理、实时的体系资源分配以及实时的使命间通讯。程序员可将首要精力放在运用程序自身,而不必关怀对体系资源的办理。
为说明在VxWorks操作体系下怎么完成CompaetPCI总线设备的驱动,需了解PCI设备的装备寄存器空间。PCI设备有3种物理存储空间:装备寄存器空间、存储器空间和I/O空间。PCI部分总线设备中装备寄存器空间是一容量为256 KB并具有特定记载结构的地址空间,该空间分为头标区和设备有关区两部分,空间头标区的界说如图2所示。
在装备空间中,只读空间有设备标识、供货商代码、修正版别、分类代码以及头标类型。其间供货商代码用来标识设备供货商;设备标识用来标识某一特别的设备;修正版别标识设备的版别号;分类代码用来标识设备的品种;而头标类型用来标识头类型以及是否为多功用设备。除供货商代码之外,其他字段的值由供货商分配。
PCI设备可以在地址空间中重定位是其重要功用之一,使得体系可合理地分配资源,乃至完全相同的两块PCI卡也可以在同一总线内作业而不会发生地址抵触。基地址寄存器的功用是分配PCI设备的体系地址空间,在基地址寄存器中,位0(最低位)均为只读位而且用来标识是存储器空间仍是I/O地址空间。假如该位为0,表明映射到存储器空间。映射到I/O空间的基址寄存器宽度总是32 bit,其间位0值为1 (用硬件完成),位1为保存位而且其读出值有必要为0,其他各位用来把设备映射到I/O空间。映射到存储器空间的基址寄存器可所以32 bit宽度,也可所以64 bit宽度。其间位0也要用硬件方法使其恒为0。位2和位1两位用来表明映射类型,其他各位用来将设备映射到存储器空间。
体系装备软件经过向基址寄存器写入全“1”后再读回的方法确认设备要求的地址空间规模,与地址空间无关的位其返回值为0。
在VxWorks操作体系下完成CompactPCI总线设备的驱动进程首要包含下面过程: