基于usb的数据采集系统设计 学习笔记一

 

固件程序设计、驱动程序设计、应用程序设计

固件程序设计

固件是整个usb数据采集系统中设备程序设计的重要部分,固件程序的主要功能是让主机(PC机)可以检测和识别usb设备,一般包括两项任务:1)实现设备配置并将配置信息告知主机,为主机和设备之间的通信做好准备 2)根据用户的特定需求,实现对外围设备的具体控制。

带有usb控制芯片的单片机AT89C5131的固件设计工作主要包括:usb设备枚举、数据采集和响应设备请求。设备枚举主要是获取usb设备的信息和对usb设备进行配置的过程,设备枚举过程为usb设备控制传输类型,通过默认的控制端点0完成。设备枚举完成候主机即可通过配置好的out端点向usb设备(单片机)发送数据采集控制指令,设备接到指令后启动A/D转换,并在转换结束后通过单片机P0口读出转换的结果。数据采集完成后将读出的数据送入配置好的IN端点,准备发送数据给主机;数据发送后主机返回应答信号ACK表示发送成功,然后准备下一次数据采集传输。

       通过固件程序的执行,当usb设备(AT89C5131)连接到主机上时,主机能发现并识别新设备,然后建立连接并完成主机与设备间的数据传输任务。

       固件程序代码使用C51编写,并使用烧写的方式将程序存在外部EEPROM芯片AT28C64中,单片机上电复位后自动开始执行固件程序。

    固件程序的设计完成后,要实现usb设备(AT89C5131)和主机的通信还必须加载usb设备驱动程序。

驱动程序设计

驱动程序是windows操作系统中控制和连接硬件的关键模块,它给连接到计算机的硬件设备提供软件接口。Windows提供了多种usb设备的驱动程序,如usb鼠标,连接上即可使用。

但对于我们自己设计的数据采集系统,则需要针对特定的usb设备(AT89C5131、数据采集系统)来编制usb设备驱动程序,以使设备能通过usb与计算机进行通信。

Microsoftwindows定义了设备驱动程序的模型,usb设备驱动程序也必须遵循该驱动程序模型,即WDM分层驱动程序模型。

 

驱动程序开发软件很多,通常采用DDKDriverStudio

在进行驱动程序开发之前首先要明确usb设备的配置和驱动程序实现的功能。驱动程序的主要功能是实现对输入和输出端点的读写操作。即通过DriverWorks的程序向导生成可以完成对usb设备bulk类型端点进行读写的驱动程序工程文件了。

应用程序设计

采用MFC开发。

驱动程序和应用程序的通信

win32中,应用程序只需要通过几条简单的文件操作api函数就可以实现与驱动程序中的某个设备通信。利用api函数实现应用程序设计时,这些api函数的执行都对应着驱动程序的一些分发例程。

 

 

你可能感兴趣的:(windows,api,Microsoft,任务,程序开发,DDK)