基于Linux 的PXIe 可重构仪器设备驱动程序开发
2021-04-29王法臻崔少辉
王法臻,崔少辉,王 成
(陆军工程大学石家庄校区,石家庄 050003)
0 概述
PXIe 总线是PCIe 总线在仪器领域的拓展,通过在PCIe 总线基础上附加必要的时钟信号、触发总线、星形总线和本地总线等,可形成PXIe 扩展信号[1]。PXIe 总线采用点对点的通信方式并利用差分信号进行数据传输,可使数据的传输速率和品质得到大幅提升。
设备驱动程序作为操作系统的重要组成部分,是应用程序与硬件完成数据交互所必需的媒介[2-3]。为满足自主设计的PXIe 可重构仪器与上位机之间的通信需求,在完成PXIe 接口硬件部分设计的基础上,必须开发相应的PXIe 设备驱动程序才能实现功能控制指令和测试数据经PXIe 总线的传输。因此,设计稳定可靠的驱动程序十分关键。
本文在研究Linux 字符设备驱动结构的基础上开发可重构仪器的PXIe 设备驱动程序。设计直接存储器存取(Direct Memory Acess,DMA)传输操作流程,并对应用程序与驱动程序数据的交互方式进行优化,从而提高数据传输效率,使PXIe 可重构仪器能够在国产操作系统下稳定运行。
1 PXIe 可重构仪器
通用自动测试系统(Automatic Test System,ATS)采用共享资源架构,其通过开关系统分配测试通道和资源,易产生开关延迟、测试资源竞争和死锁等问题[4]。多通道可重构仪器具备良好的通用性和灵活性[5-6],可根据用户需求进行重构从而获得不同的测试能力,且每路测试通道均具有独立完成测试的能力,因此为传统通用ATS 存在的问题提供了良好的解决方案。
多通道PXIe可重构仪器以Altera公司的Cyclone IV系列FPGA 为核心,配置测量功能电路模块,其32 路测试通道均具备数模转换、模数转换、波形产生以及电压比较等功能,各通道可根据测试需求通过重构实现一定的功能扩展。……
