模/数转换器需要外部提供基准电压,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端点的交互。值得说明的一点是,这种处理只是辅助性质的,大部分工作由硬件自动完成。