微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 谷物品质快速检测仪关键部件的研究与设计

谷物品质快速检测仪关键部件的研究与设计

时间:03-23 来源:微计算机信息 点击:

其工作原理,在此着重介绍ADS7825在并行输出方式下的工作过程,如下图2所示为其并行输出时电路原理图。在并行输出方式下,启动初始化过程是由R/C(pin22)脚变为低电平并至少保持40ns开始,启动转换。BUSY(pin24)脚变为低电平,并保持到数据转换和数据输出寄存器刷新完毕。如果BYTE(pin21)脚为低电平,在BUSY的上升沿,触发输出信号的高8位数字;相反,若BYTE脚为高电平,输出信号的低8位数字。最终转换的数据以完全二进制数字格式输出。REF是外部参考电压输入端或内部参考2.5V电压输出端。此引脚应与一个2.2μF电容相连,并与REF脚的输出阻抗构成一个低通滤波器滤过带限噪声。CAP为内部参考电压的缓冲输出端,也应与一个2.2μF电容相连,在ADS7825的转换周期内,这样连接可提供给内置D/A转换器最佳的转换写入电流,同时对缓冲输出也是一种补偿。另外,在BUSY为低电平期间,不再接受新的转换指令。ADS7825在并行输出模式情况下,根据通道选择方式的不同,还可以分为连续转换方式和可编程通道选择方式。在CS、R/C和PWRD同时接低电平的情况下,若CONTC(pin25)脚为高电平时,ADS7825处于连续转换工作模式。此时,ADS7825将按顺序连续采集和转换4路通道中的信号;而在CONTC变为高电平之前,当前通道号就相应存入A0和A1通道选择的寄存器中,也就是说在连续转换模式下(即CONTCE为HIGH),A0和A1为输出端。对于前一个通道来说,输出数据BUSY在跳变为高电平时变为有效。另外,每一次转换结束,BUSY要跳变为高电平时,A0和A1能够输出将要转换信号的通道号。

  在可编程通道选择方式下,模拟输入通道的选择是由程序控制指令完成的。控制器发出数据转换指令和要转换的通道号,通过片选信号与A0和A1端译码选择需要的模拟通道,此时A0和A1为数据通道选择输入端。在完成数据通道的选择之后,后续各引脚的工作过程与连续转换方式下的情况类似。

  图2. ADS7825并行输出电路原理图

  图3. CY7C68013和ADS7825连接原理图

2 USB接口单元

  USB接口单元的主要实现芯片是Cypress公司的CY7C68013,负责完成硬件系统和PC上位机之间的数据传输。Cypress公司的EZ-USB FX2系列芯片是世界上第一个集成USB2.0协议的微处理器,它支持12Mb/s的全速传输和480Mb/s的高速传输,可使用4种USB传输方式:控制传输、中断传输、块传输和同步传输,完全适用于USB2.0,并向下兼容USB1.1。其CPU采用增强型8051,它比标准8051的速度更快、功能更强,且指令集和标准8051完全兼容,并可使用C51编译器。FX2内部包含8.5KB的RAM,它们兼做程序存储器和数据存储器,增强型8051的固件代码就存储在该区域内,FX2也具有I2C总线,以使其能从外部EEPROM中下载芯片程序。另外,FX2系列芯片采用3.3V供电,且可使用USB总线电源,但是功耗较大。 [2]

  本系统中使用CY7C68013的PA0-PA6管脚作为AD工作状态的控制信号,以决定ADS7825数据采集和存储,PB0-PB7为8位数据总线根据工作状态进行高低8位的数据传输。如图3所示为CY7C68013和ADS7825连接原理图。

  2.2 软件程序的编写

  软件程序包括包括三部分,芯片固件程序、驱动程序、上位机Win32应用程序。

  1 芯片固件程序

  CY7C68013芯片固件程序负责PC发来的各种USB请求,以完成主机与外围电路间的数据传输。该固件框架使用Keil C51 C编写,其中使用了许多Keil C对标准C的扩展。固件框架主要包含初始化、处理标准USB设备请求以及USB挂起时的电源管理。

  框架完成了一个简单的任务循环(见图4)。首先框架初始化内部的状态变量,然后条用用户初始化函数TD_Init。从该函数返回后,框架初始化USB接口到未配置状态并使能中断。然后每隔1s进行一次设备重枚举,直到端点0接收到一个SETUP包。一旦检测到SETUP包,框架将开始交互的任务调度,其任务调度的步骤如下:

  ①调用用户函数TD_Poll,实现数据采集。

  ②判断是否有标准设备请求等待处理,如果有,则分析该请求并响应;其中,DR_VendorCmnd函数负责处理上位机发出的供应商定义请求,通过上位机发送请求来控制AD采集的开始和结束。

  ③判断USB内核是否收到USB挂起信号。如果收到,则调用用户函数TD_Suspend。从该函数成功返回后,再检测是否发生USB唤醒事件。如果未检测到,则处理器进入挂起方式;如果检测到,则调用用户函数TD_Resume,程序继续运行。如果从TD_Suspend函数返回FALSE,则程序继续运行。

  图4. 固件程序流程图

  图5. 驱动程序流程图

3 USB驱动程序和应用程序的开发

GPD(General Purpose Driver

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top