VxWorks是由美国Wind River公司开发的一款实时操作系统(RTOS),专为嵌入式处理器设计,以其模块化和高性能的特点在工业领域广泛应用。在VxWorks操作系统下设计和实现CompactPCI总线驱动程序对于嵌入式系统的开发至关重要,因为它能够使系统能够有效地与CompactPCI硬件进行通信。
CompactPCI(Compact Peripheral Component Interconnect)是一种工业级的PCI标准,结合了PCI的高性能和坚固耐用的欧卡结构,适应恶劣环境下的嵌入式应用。它基于PCI总线规范,提供32位或64位的数据宽度,工作频率通常为33MHz,最高可达66MHz,支持高速数据传输。
在VxWorks中,板级支持包(BSP)是操作系统与特定硬件平台间的桥梁。BSP包含了启动代码和部分设备驱动,负责初始化硬件、操作系统以及提供对硬件设备的驱动支持。BSP不直接等同于设备驱动,而是包含了驱动程序集合,为特定硬件环境提供服务。在设计CompactPCI总线驱动时,会利用像Kontron DT-64这样的硬件平台,它是一款高性能嵌入式计算机,具有强大的处理能力和高速缓存,且与PC/104+标准兼容。
设计PCI总线驱动程序时,需要考虑PCI总线的特性,如配置空间的存在,使得系统软件可以通过读取配置空间中的参数来识别和配置挂接的设备。PCI总线支持多种数据传输模式,包括主控模式、目标模式和DMA模式,这些模式允许数据在PCI总线和本地总线之间高效流动。
在本设计中,QL5064被选为PCI总线控制器,它符合PCI规范2.2版,支持32位/33MHz的数据传输,能实现高达132MB/s的突发传输速率。QL5064提供了与PCI总线、E2PROM和LOCAL总线的接口,可以作为主控或目标设备。为了配置QL5064,使用了NM93CS56L型串行E2PROM存储配置信息,这些信息在系统启动时被用于分配资源。
在实现设备驱动时,VxWorks的设备驱动模型扮演关键角色。驱动程序通常包括初始化、数据传输和关闭等函数,以便系统能够正确地与硬件交互。在CompactPCI总线驱动中,可能涉及到PCI Target数据传输模式来读写控制模块的寄存器,实现对硬件的控制和数据交换。
设计VxWorks下的CompactPCI总线驱动程序涉及到理解操作系统、硬件平台、PCI总线规范以及设备驱动编程。这种驱动程序的实现使得嵌入式系统能够在实时环境下高效地利用CompactPCI硬件资源,为复杂的应用提供可靠的支持。