碧波液压网 欢迎你,游客。 登录 注册

基于嵌入式USB接口的数据采集系统的设计

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。
液压导航网

  

  数据采集任务多在户外进行,所以数据采集系统通常要满足实时性、专用性、可靠性和低功耗等性能,这些特性在嵌入式系统中都能得到很好的体现,因此本文将以WindowsCE的嵌入式平台来开发效据采集系统。但是由于嵌入式系统的硬件结构不易改变,所以在进行数据采集设备扩展时应该选择接口简单灵活、数据传输率高和支持热拔插的传输总线,而USB接口则能很好地满足这些要求,同时USB还有总线供电和不受插槽、中断等硬件资源限制的特性,因此USB接口是数据采集设备与嵌入式系统进行数据传输的理想选择。综上所述,本文将设计一款基于嵌入式USB接口的数据采集系统以满足实际的需要,下面将从硬件设计,程序实现和实际测试3方面具体描述。

  1 硬件设计

  1.1 硬件结构框架

  本系统的硬件结构主要由控制中心、模数转换和USB协议实现3个部分组成,下面将针对这3个部分进行详细的介绍。具体的结构框架如图1所示。

  

图1 嵌入式USB接口的数据采集系统总体结构

  1)控制中心。本系统采用单片机提供地址数据复用总线、选通信号(D12_CS和AD_CS),读写信号(RD和WR)以及对中断信号(D12_INT和AD_INT)进行检测。

  2)模数转换。本系统采用MAX197芯片进行模数转换,该芯片具有采样保持功能和12位的高精度输出。单片机可向MAX197写入其特定的命令从而选择指定的通道进行模数转换,转换结束后,MAX197向单片机输出低电平的AD_INT信号,单片机采用轮询方式检测到后通过HBEN信号控制MAX197输出低8位和高4位的转换数据。

  3)USB协议实现。本系统采用PDIUSBD12作为USB设备端的控制芯片,该芯片实现了USB1.1传输协议。嵌入式系统要对USB设备进行读写均需通过信号D12_INT向单片机发送中断,单片机响应中断后只需对PDIUSBD12的不同寄存器进行读写操作就可以利用USB进行数据传输。

  1.2 固件程序设计

  硬件设备需要固件程序的控制以保证其正常运行,本文所设计的固件程序主要用于识别USB设备以及采集与传输数据。固件程序的总体流程如图2所示。

  

图2 固件程序的总体流程

  1)设备识别。USB设备的识别过程分别由操作系统和设备驱动两个部分通过USB协议的标准设备请求来完成。操作系统在USB设备连接时加载设备驱动程序并分配通信地址,驱动程序启动后通过中断读取相关描述符进行资源配置并使能传输端点,从而为应用程序提供接口。

  2)数据采集与传输。通过单片机的定时器可对数据的采集频率进行设置。本系统的数据采集频率为1 000 Hz,因此设置定时器每一毫秒中断一次进行数据采集,而主机端对USB设备的读写操作则通过外部中断实现,定时器中断优先级高于外部中断以保证采集频率固定为1 000 Hz.主机端通过写操作向USB设备发送控制信息,包括设备启动和停止的相关初始化与清理的工作,其中在对USB设备进行读操作前要先在端点的缓冲区填写64字节数据并通过命令使其有效,不然主机端对USB设备进行读操作时,无效的缓冲区将导致PDIUSBD12芯片不会产生中断,从而导致读操作失败。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码: 看不清?点击更换

最新评论