1 引言 IEEE 1394 是苹果公司研制的一种高速串行总(2)
2013-08-05 01:32
导读:4 系统软件设计 4.1 1394设备驱动程序设计 Windows 驱动模型(WDM)[5-6]是内核模式的驱动程序,属于PnP 驱动程序,并支持电源管理,WDM 定义了驱动程序分层,以适应即
4 系统软件设计
4.1 1394设备驱动程序设计
Windows 驱动模型(WDM)[5-6]是内核模式的驱动程序,属于PnP 驱动程序,并支持电源管理,WDM 定义了驱动程序分层,以适应即插即用系统.1394 系统驱动程序采用分层结构模型,从上而下分别为:设别驱动、总线驱动和端口驱动.在驱动协议栈中,不同的驱动程序扮演不同的角色,设备驱动程序(Device Driver)占据驱动协议栈的顶部,其功能是把应用软件的请求翻译成总线驱动程序(Bus Driver)能执行的事务,而总线驱动程序(Bus Driver)则为1394 总线提供了独立于硬件的接口,它处理来自设备驱动程序的I/O 请求包(IRP),然后将请求包发送给主板上PCI-1394 采集卡所使用的端口驱动程序(Port Driver).这样,Win32 应用程序通过设备驱动程序、总线驱动程序和端口驱动程序来控制PCI-1394 采集卡与设备进行通信,通常由IOCTL(I/O Control)控制码实现,通过1394 总线驱动程序和端口驱动程序来处理所有底层的通信细节.1394 驱动协议栈和通信框图分别如图5 和图6 所示.
用DDK[7]设计的1394 设备驱动由4 个模块组成:初始化模块、即插即用模块、电源管理模块以及I/O 模块.初始化模块提供设备驱动[8]的入口点,从而将不同的IRP 请求发向相应的执行模块.
即插即用模块用于实现1394 设备的热插拔和动态配置.当总线驱动程序在加电或者添/删除时检测到新设备,从设备中取出一个或多个标识符,用于检查所有可用的安装文件,发现合适的设备驱动程序.驱动程序被装入,调用AddDevice()入口点,告诉它发现一个新设备,并创建功能设备对象(FDO).总线驱动程序或者安装文件详细描述设备所需的硬件资源,使用仲裁器为每个设备分配资源.
电源管理模块负责设备的挂起和恢复.
I/O 模块完成I/O 请求的大部分工作.该模块定义了所需的I/O 控制代码,从而为应用程序提供了调用系统驱动程序的接口.
(科教范文网http://fw.NSEAC.com编辑发布)
4.2 客户应用程序设计
在高速图像传输系统中,应用程序是控制数据流的中心.采用VC++6.0 和2000DDK 实现,主要功能有:获取图像数据源、检测1394 设备、总线管理、分配1394 地址空间、设置等时资源和通道、完成1394 数据传输.一次等时传输流程如图7 所示.
5 总结
本文根据时代的发展和现实应用的需要,突破传统的利用常规的低速串行总线的模式,将1394 高速串行总线引入到高端的实时图像采集系统中,并取得了很好的效果,对1394 接口技术的推广应用具有重要的意义;本文1394 设备端采用微控制(MCU)+FPGA+1394 控制芯片的设计模式,实现了1394 设备端和PC 主机端间数据的实时传输和显示.
系统的设计特点及创新:(1)将1394 引入到红外成像系统中,实现了红外图像的高速率传输和实时显示,大大提高了整个红外成像系统的整体性能; (2)遵循IEEE1394 协议规范,因此具有通用性,易于移植;对1394 协议在计算机外设端的开放应用具有较大的参考价值;(3)1394 设备即插即用,自动开启数据传输,无须人工干预;(4)微控制器实现1394 芯片配置,编程灵活,易于调试;(5)数据传输完全由FPGA 控制,实现较高传输速率.
中国网提供大量免费硕士,如有业务需求请咨询网站客服人员!