论文部分内容阅读
具有实时性、可靠性的CAN总线是目前应用最为广泛的现场总线之一,节点设备CAN板卡被用于构建船舶上的传输控制网络,其与主机的通信接口采用USB接口。通常操作系统所能提供的USB通用驱动程序,仅负责USB设备的枚举,但无法实现对特定设备的读写和控制。为了实现对特定设备的读写和控制,并为应用程序提供接口,需要在USB通用驱动程序的上层开发设备功能驱动程序。本文作者利用DDK在Windows2000环境下,根据USB控制芯片PDIUSBD12的特点,完成CAN板卡USB功能设备驱动程序的软件开发。首先作者介绍了CAN总线体系结构,分析了CAN总线物理层和数据链路层工作原理。然后对USB的通信协议及特点进行了论述,其中包括总线特征、协议定义、传输方式和电源管理等等,并对USB与其它常用接口的优缺点进行了比较。其次对Windows 2000操作系统的总体结构进行了简要的描述,其中包括对用户模式和内核模式的讨论。然后针对WDM驱动模型及设计方法进行了详细的讨论,其中包括对I/O请求、IRP处理及取消、电源管理、即插即用等技术细节的详细说明。接下来作者结合源程序论述如何利用DDK开发CAN板卡USB功能设备驱动程序,其中详细说明了设备初始化、读写设备、即插即用等重要例程。最后论文简要说明了驱动程序调试技术及安装。作者开发的USB功能设备驱动程序不仅能稳定的运行于windows 2k,而且还能移植到基于NT技术的其它操作系统,占用非分页内存较少,整个开发过程具有较强的代表性,对从事类似设备驱动程序开发的技术人员有较高的参考价值。