首页
会员中心
到顶部
到尾部
计算机

基于单片机和USB接口技术的高速数据采集系统的设计6

时间:2020/10/27 9:25:53  作者:  来源:  查看:0  评论:0
内容摘要:  图5  ADC0809与89C52的接口电路3.6  计算机毕业设计PDIUSBD12与单片机接口电路PDIUSBD12与89C52的连接电路如图6所示。89C52的ALE和PD12的ALE相接,表示采用单独地址和数据总线配置。其AO脚接高电平用...
  图5  ADC0809与89C52的接口电路
3.6  计算机毕业设计PDIUSBD12与单片机接口电路
PDIUSBD12与89C52的连接电路如图6所示。89C52的ALE和PD12的ALE相接,表示采用单独地址和数据总线配置。其AO脚接高电平用于控制命令或数据输入到PDIUSBD I2,也就是编程中outportcmd()和outportdata()函数。此外89C52的多位地址/数据复用总线PO可直接与PDIUSBD12的数据总线相连,CLKOUT时钟输出为89C52提供时钟输入。在该数据采集系统中,用ADC0809采集0-5V的电压信号,经A/D转换后将数字量存入预先设定的缓冲区里,利用接口芯片D12将数据送至USB总线上。设备应用程序从缓冲区里取数据显示,通过数值来说明USB接口的采集速率比一般的串行总线速度高。当前端的电压信号不断变化的同时,在PC上可以观察到数据的变化,这就表明利用USB接口在数字采集系统中进行数据传输是能够实现的,而且能够很好的实现,硬件电路原理图祥见附图。
4 系统软件
4.1  PDIUSBD12的固件编程
4.1.1  PDIUSBD12的固件编程思想
  PDIUSBD 12是一款带有并行总线和局部DMA传输能力的高速USB接口器件,固件设计的目标就是使PDIUSBD 12在USB上达到最大的传输速率。外围设备例如打印机、扫描仪、外部的海量存储器和数码相机都可使用PDIUSBD 12在USB上传输数据。这些设备的CPU要忙于处理许多设备控制和数据以及图像处理等任务。PDIUSBD 12的固件设计成完全的中断驱动。当CPU处理前台任务时,USB的传输可在后台进行。这就确保了最佳的传输速率和更好的软件结构,同时简化了编程和调试。
 
              计算机毕业设计图6  PDIUSBD12与89C52的连接电路
 
                       图7  前后台工作原理
    后台ISR(中断服务程序)和前台主程序循环之间的数据交换通过事件标志和数据缓冲区来实现。其原理图如图7所示。例如,PDIUSBD12的批量输出端点可使用循环的数据缓冲区,当PDIUSBD12从USB收到一个数据包,那么就对CPU产生一个中断请求,CPU立即响应中断。ISR中固件将数据包从PDIUSBD12内部缓冲区移到循环数据缓冲区,并在随后清零PDIUSBD12的内部缓冲区以使能接收新的数据包。CPU可以继续它当前的前台任务直到完成,例如打印当前页。然后返回到主循环检查循环缓冲区内是否有新的数据并开始其它的前台任务。
    由于这种结构,主循环不关心数据是来自USB串口还是并口,它只检查循环缓冲区内需要处理的新数据。这个概念很重要,这样主循环程序专注于数据的处理而ISR能够以最大可能的速度进行数据的传输。
相似的,控制端点在数据包处理时采用了同样的概念。ISR接收和保存数据缓冲区中的控制传输并设置相应的标志寄存器。主循环向协议处理程序发出请求。由于所有的标准器件,级别和厂商请求都是在协议处理程序中进行处理,ISR得以保持它的效率,而且一旦增加新的请求只需要在协议层进行修改。
4.1.2  PDIUSBD12固件编程的结构
固件的积木式结构如图8所示,图中箭头表示数据传输方向。
 
                 图8   固件结构和数据流向
   下面是事件标志“EPPFLAGS”和Setup包数据缓冲区“CONROL_ XFER”的结构
体:
    //事件标志
    typedef union_ epp_ flags

Tags:



相关评论
广告联系QQ:45157718 点击这里给我发消息 电话:13516821613 杭州余杭东港路118号雷恩国际科技创新园  网站技术支持:黄菊华互联网工作室 浙ICP备06056032号