• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术文章 > 基于USB的数据采集系统的设计与研究

基于USB的数据采集系统的设计与研究

录入:edatop.com     点击:

3.3 电源电路设计

在本设计中,需要3种大小不同的供电电源,除了ADC0804需要的+5 V供电电源外,还有CY7C68013需要的+3.3 V的供电电源,模数转换器ADC0804需要的+2.5 V的基准电压电源。由于整个系统可以使用总线电源供电,不需要外加电源,因此需要把+5 V的总线电源转换为系统各个部分所需的电源。+3.3 V电源是CY7C68013所需芯片供电电压。设计中,选用的是MAxIM公司的电源转换芯片MAX882n 0,连接电路如图3所示。

模/数转换器需要外部提供基准电压,ADC0804需要+2.5 V电压,而且基准电压是否稳定、精确,直接影响数据转换的精度。而NationalSemiconductor公司的LM336-2.5 V是一个能提供精确+2.5 V电压的器件,他的集成电路是精确的2.5 V并联推挽稳压二极管组成,还有一个用来调节温度对电压影响的引脚ADJ。芯片所产生的2.5 V的电压可以很方便的从5 V电压系统中获得。

4数据采集系统的软件设计

该数据采集系统的软件系统主要由3部分组成:USB固件程序(Firmware)、I_JSB设备驱动程序以及客户应用程序。3部分程序之间相互协作来完成整个采集卡的功能。

4.1 固件程序设计

固件程序是指运行在设备CPU中的程序。只有在该程序运行时,外设才能称之为具有给定功能的外部设备。固件程序负责初始化各硬件单元,重新配置设备及A/D采样控制。固件代码的存储位置有3种:第一种是存在主机中,设备加电后由驱动程序把固件下载到片内RAM后执行,即"重新枚举";第二种方法是把固件代码固化到一片E2PRAM中,外设加电后由FX2通过I21C总线下载到片内RAM后自动执行;最后一种方法是把程序固化到一片R()M中,使之充当外部程序存储器,连在FX2三总线上。本文选用第一种方式,这种方式便于系统的调试和升级。

Cypress公司为CY7C68013提供了一个开发框架,可以在KEILC51环境下开发。由于开发框架的引入,大大缩短了用户的研发周期。该框架由以下几部分组成:

(1)Fw.C中包含了程序框架的MAIN函数,管理整个51内核的运行,因为CypreSS对这个部分的功能进行了精心划分,一般是不用改动的。

(2)用户必须将PERIP H.C实例化,他负责系统周边器件的互联。固件的设计主要针对这个文件,用户必须根据自己系统的需要,实例化这个文件,以实现自己的功能。在这个文件中有几个函数是比较关键的,在这里做特别说明:

TD Init函数,负责对USB端点进行初始化设置。本设计中将端点6设置为1 024个字节,缓存深度为4级,模式设为自动输入方式。

TD Poll函数,负责系统中循环任务的处理。他主要是对各个端点的状态进行查询,处理各种OUT或IN端点的交互。值得说明的一点是,这种处理只是辅助性质的,大部分工作由硬件自动完成。

GPIFINIT.C,其中只有一个Gpiflnit函数;他是GPIF模块的初始化函数,一般在TD Init函数中调用。这个函数是由Cypress公司提供的一个GPIF、Designer开发工具根据用户设计的波形生成的,用户不需要自己设计波形查询表,减轻了设计者的工作强度。DSCR.A51是描述表文件,负责LISB设备的描述工作,CY7C68013在上电后自动利用其中的VID和PID取代默认的VID和PID。

4.2驱动程序的编写

数据采集系统的设备驱动程序和应用程序都是设备的主机端程序。设备驱动程序是硬件和应用程序之间的桥梁,通过驱动程序,应用程序可以对硬件进行控制。该系统需要2个驱动程序,即通用驱动和下载固件的驱动。通用驱动完成与外设和用户程序的通信及控制;而下载固件的驱动则只负责在外设连接LISB总线后把特定的固件程序下载到FX2的RAM中,使FX2的CPU重启,模拟断开与USB总线的连接,完成对外设的重新设置。主机根据新的设置安装通用驱动程序,重新枚举外设为一个新的USB设备。

在本系统的驱动程序开发中,使用的开发工具是Jun-go公司的winDriver,他支持多种操作系统。winDriver开发的优点是用户不需要了解操作系统内部的具体工作机理,同时也不需要了解各个系统DDK(Developing orDebugging in Kernel)的开发工具,用户只需使用winDriv-er提供的开发平台,即可完成驱动程序的设计工作,剩下的底层细节由winDrivei内核统一处理。从而降低了对开发者编程能力的要求,同时也大大缩短了开发周期。下面就使用winDriver开发驱动程序的步骤做简要说明:

启动winDrivet。的Dri veiwizard工具;利用Driver--wizard检测硬件是否正常;在Driverwizard中选择所使用的开发环境,这里使用VC++6.0开发环境,并生成驱动程序代码;对生成的代码进行修改,使其符合系统的需要;在winDrivet环境的用户模式下,调试驱动程序;如果程序需要内核访问以提高驱动程序的效率,进入内核开发。

4.3 用户程序的编写

用户程序是系统与用户的接口,他通过通用驱动程序完成对外设的控制和通信。在编写用户程序时,首先要建立与外设的连接,然后才能实施数据的传输。启动采样后,为了保证不丢失数据,用户程序应该建立一个工作线程专门获取外设传来的数据。程序中主要用到2个API函数:CreateFile()和DeviceloControl()。CreateFile()取得设备句柄后,DeviceloControl()根据该句柄完成数据传输。程序框图如图5所示。

5 结 语

本文系统地介绍了基于USB接口的数据采集系统,完成了软硬件的设计工作。数据采集系统具有最大20 kS/s的采样速率,8位分辨率,采样精度小于1%,输入范围为一5~+5 V。在本数据采集系统的设计中,CY7C68013芯片灵活的接口和可编程特性简化了外部硬件的设计,提高了系统的可靠性,也利于PCB板的制作与调试。基于USB 2.0的数据采集卡可以即插即用,弥补了传统采集板卡插拔困难的不足。随着时代的进步,技术的发展,USB必将在更广阔的领域得到更深层次的运用。

来源:维库开发网

上一篇:服务质量(QoS)测试方法介绍
下一篇:IP地址分类以及C类IP地址的子网划分

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图