2.1 启动电路设计
启动电路完成采集电路的可靠启动,具有自动判别有效启动信号的能力,能有效防止误触发。在系统电源接通后,系统处于低功耗待触发状态,系统功耗较小,系统可以完成长时间的等待状态。在此状态下,启动电路对启动线的信号进行判别,当启动信号的电平由低变为高,并且持续时间大于规定时间,启动电路通过记录决策电路启动采集系统开始数据采集,记录决策电路原理如图2所示,5V为系统自带电池供电,VCC为A/D变换电路及其他采集数据电路的供电电压,系统利用如图所示的决策电路控制VCC的供电,保证系统可靠的触发,本系统可保证20V以下不触发。D触发器的1脚和13 脚的输出状态转换图如图3所示,依图可见记录决策电路有效防止了误触发。
2.2 接口电路设计
利用计算机并行接口工作在ECP模式下,其控制端口提供的Auto Linefeed、Strobe和Select Printer 3根控制线,进行合理的组合,产生对速变、缓变信号的选择信号SelDat和读取数据时序信号RD,并产生系统复位信号RESET。SelDat信号输出到中心控制逻辑,产生存储器的片选信号,控制读取速变信号或缓变信号;读信号RD和复位信号RESET控制地址发生电路产生读取存储器所需的地址;RD使能存储器,通过并行接口的数据端口将存储器中的采集数据读到计算机。图4为并行接口ECP模式下接口电路连接框图。
接口电路读取缓变数据时序图如图5所示。
3 系统软件的设计
并行接口应用系统软件设计包括主机操作系统上的客户驱动程序和主机应用程序。客户驱动程序实际上是一系列控制硬件设备的函数,是操作系统中控制和连接硬件的关键模块。主机应用软件通过客户驱动程序与系统外设进行通信,其主要任务是将采集进来的数据流,根据所需处理功能的要求来完成各种基于Windows 程序的处理。
3.1 驱动程序设计
DriverStudio中的DriverWorks为WDM驱动程序提供了一个完整的框架,我们利用其DriverWizard生成驱动程序框架,然后添加各功能函数。在驱动程序*.cpp中,用户只需要自己填写下面函数:
在由Drivestudio生成的*Device.cpp中的*_Handler(I)函数中填写应用程序消息,如(READ_DATA,CTL_RTYPE)等,或将应用程序的值写给端口或把端口值由驱动程序返回给应用程序。在*_Handler(I) 中填写应用程序变量应在*Device.h中先定义,然后在*Device.cpp中的消息处理中填写产生此消息后自己如何处理的代码。