两自由度振动偏移量实时采集设备的设计与实现

发布者:清新家园最新更新时间:2014-02-26 来源: ofweek关键字:两自由度振动  偏移量  SPI总线  USB总线 手机看文章 扫描二维码
随时随地手机看文章

  光电鼠标的工作机理是采用一种基于CMOS成像的图像识别方法,通过一个感光眼,不断的对物体进行拍照,并将前后两次图像进行DSP处理,得到移动的方向和间隔,因此,光电鼠标芯片具有一种传感器的基本功能。振动的检测,其基本原理可以归结到一种位移的检测。只是此种位移是围绕某个基本点进行往复移动。因此设计了一种采用光电鼠标传感器原理进行振动检测的设备。

  该设备是完全从市场应用的角度进行设计的,设备等间隔连续采集到的△x和△y值经上位机应用程序可以绘制出设备的各种运动参数曲线(包括位移、速度和加速度曲线)并进行相应的运动学分析。

  采用现行的鼠标芯片,采集设备可以在速度≤1m/s,加速度≤160m/s2 范围内实现偏移量在精度为15.88mm,反应时间为0.156ms的捕获。其精确性能、高速性能和低廉的价格使得该采集设备具备了广阔的应用前景。

  1 总体方案设计

  系统框图如图1所示,光源照在基板上,该设备固定在待测量物体上。设备主要由ADNS-3080、CY7C68013两块集成芯片及外围电路组成,工作后,ADNS-3080通过其影像撷取系统(IAS)不断捕获基板的图像,经其数字信号处理器(DSP)时频分析并提取出特征值△x、△y,保存至相应的寄存器,并使运动触发寄存器(Motion_Burst)的标志位置1,等待读取;CY7C68013通过SPI总线与作为SPI从设备的ADNS-3080进行通信,循环查询△x和△y的标志位,一旦发现置1,读取△x和△y值,并通过USB2.0接口向上位机传输。E2PROM采用了8KB的24C64,用于实现设备的C0或C2方式加载。CY7C68013采用端口模式模拟主SPI与ADNS-3080通信,与上位机数据传输采用USB中断模式。

  

  图1 系统原理框图

  2 设备硬件方案选择

  为充分减小系统的PCB板尺寸,设备使用了集成芯片、串行交换结构技术、USB供电等手段。集成芯片的使用还提高了设备抗EMI(电磁干扰)能力;USB2.0接口的使用提供了高速、可靠的数据通信和人性化的用户接口;非接触式的光电测量方法,避免了传统接触式测量中因磨损带来的误差,并可用于恶劣的环境,加大了设备的使用范围。

  2.1 ADNS-3080

  该集成芯片包括一个影像撷取系统(IAS),一个数字信号处理器(DSP)和一个四线串口(SPI接口)。

  IAS通过透镜和照明系统捕获精微的表面图像。这些图像经DSP处理后得出运动的方向和距离。DSP计算出相对位移值△x和△y,等待MCU读取。

  它具有如下特性:(1)高速运动的捕获-高达40inch/s和15个gn;(2)超过6400帧/秒的可编程帧速率;(3)支持高达1600cpi的分辨率。

  它虽然是一款高端鼠标芯片,但是其高性能的各项参数使其完全可以胜任绝大部分环境下物体两自由度振动偏移量的捕获。

  2.2 CY7C68013

  该芯片是Cypress半导体公司高速USB系列中的一款,它带有USB2.0串行接口引擎(SIE)、增强型的8051核(性能是标准51核的5~10倍)、8KB的RAM、高性能I/O口(最高支持96Mbit/s的传输)、支持三种方式(默认方式、C0、C2方式)加载设备。

  集成的SIE和公司提供的固件开发框架及丰富的参考源码大大降低了开发难度,只需简单了解USB通信协议即可开发出优秀的固件代码。8KB的RAM使其固件可以无限次下载;设备插上主机后,固件会自动从主机下载到设备RAM中,非常人性化;固件在主机上更改后再次编译到下载驱动(LoaderDriver)中即可实现对设备功能的增、删、改,无须专门的下载器和对应的设备下载接口。

  加载设备时,可以自由选择是否需要外接E2PROM来实现C0或C2方式加载。C0或C2方式加载可实现设备的更灵活的枚举功能,只需修改E2PROM中的VID(厂商标识符)、PID(产品标识符)即可使设备加载新的固件、新的USB驱动和相应的应用程序,轻易更改设备的功能;相比C0方式,C2方式可以实现固件直接从E2PROM中读取加载。无E2PROM连接时,设备采用默认方式加载实现设备的枚举和重枚举,节省硬件成本。CY7C68013使用自带I2C总线跟E2PROM连接。多种加载方式充分满足了用户的多样化需求。

  该芯片的枚举及重枚举的全过程如下:

  (1)设备上电后,复位电路直至PPL锁存24MHz晶振,工作频率稳定。

  (2)Cypress内核自动检测I2C总线是否有E2PROM。若E2PROM不存在或数据无效,则使用自带的硬件逻辑提供的默认VID和PID(默认值VID为0x04B4,PID为0x8613),以默认方式加载设备到上位机;若E2PROM数据有效,即从E2PROM读取VID&PID,并覆盖其自身的VID&PID,第一个字节为0xC0,则以C0方式加载设备,第一个字节为0xC2,则以C2方式加载。

  (3)上位机检测到USB设备插入,开始询问其IDs(通过在端口0发起一个GetDescriptor请求),最重要的是VID&PID。USB设备答复为??一个未下载的设备(nondownloadeddevice)。[page]

  (4)上位机获得此IDs,就开始加载LoaderDriver,加载后LoaderDriver执行固件的下载。LoaderDriver是用于下载FX2固件的驱动,此驱动在控制面板安装目录Driver下可以找到,修改时需安装DDK,然后在VC6.0中重新编译源文件。

  (5)LoaderDriver放开并重起FX28051。

  (6)被下载的固件开始运行。

  (7)FX28051控制断开USB总线。

  (8)上位机发现设备断开,于是释放LoaderDriver。

  (9)8051重新连接USB总线。

  (10)上位机发现设备插入,并开始询问IDs.。

  (11)8051固件根据其自身IDs回复VID&PID等。此时的VID&PID为固件的描述符文件里的VID&PID。

  (12)上位机得到IDs,并根据其信息加载对应的驱动程序。

  (13)上位机驱动程序和EZ-USB固件已经正确加载,并可以与应用程序执行数据传输和控制了。

  至此,应用程序即可调用设备驱动程序来发送和接收数据。

  3 系统软件设计

  3.1 控制面板简介

  控制面板主要用于FX2设备的开发调试(包括硬件设备测试和软件功能测试),具体有厂商请求测试(设备请求、配置请求、管道设置请求等)、各种方式数据传输测试、固件下载、E2PROM烧写、接口设置、端点设置等。

  3.2 烧写E2PROM

  记事本编辑好相应的Hex文件后,使用EZUSB控制台自带的工具hex2bix把Hex文件转化为iic文件,然后用EZ-USB控制台下载。

  

  图2 固件开发流程图

  3.3 CY7C68013的固件设计

  该固件的主要功能是完成该单片机及外围设备的初始化、设备的重枚举(ReNumeration)、接受主机的设备请求及完成相应的控制数据传输等。

  Cypress公司提供的固件开发框架和固件函数库简化并加速了设备固件的开发,大大提高了用户开发的效率,本设备固件的设计也是采用此方法。

  固件开发框架流程图见下图2所示。

  固件开发完成了USB设备的基本功能需求,设计固件时只需设计用户初始化函数TD_Init()、用户函数TD_Poll(),修改描述符表。TD_Init()完成需要用户自定义的初始化工作,设计时在TD_Init()中添加初始化CPU时钟频率、I/O端口模式、USB接口数据传输模式、清除所有等待的USB中断请求等(待确认)的代码。

  用户函数TD_Poll()在固件运行期间被循环调用,本设备主要完成对ADNS-3080的偏移量△x和△y值的连续读取。因为CY7C68013没有带主SPI接口,实现时用单片机固件程序模拟主SPI跟ADNS-3080通信。流程如图3所示。图4和图5是SPI通信的读写时序图。[page]

  

  图3 流程图

  

  图4 SPI接口读操作时序图

 

  

  图5 SPI接口写操作时序图

3.4 ADNS-3080的固件下载

  DSP固件开发有两种方式,一是自行开发程序,二是使用厂商已提供的固件程序。Agilent公司提供了ADNS-3080的固件adns3080_srom_51.inc(共1986个字节),从官方网站即可下载。本次设计该固件是通过主机的应用程序下载到设备端点,由单片机控制写入ADNS-3080SRAM中[7]。写入时先要对ADNS-3080进行下载前的初始化工作。下载完成以后通过读ADNS-3080的SROM_ID寄存器来检验下载是否成功。

  3.5 设备驱动及其Inf文件设计

  在设备开发时可以使用控制面板下载单片机固件,但最终产品需要自动完成固件下载和设备的重枚举。自动的固件下载和设备的重枚举两个功能的完成依赖于两个驱动,一个用于枚举设备后下载固件至单片机,叫下载驱动(EZ-LoaderDriver);一个用于设备重枚举后与主机通信,叫功能驱动。

  EZ-LoaderDriver源码由EZ-USB软件开发包提供,结合微软提供的DDK在VisualC++6.0开发环境下把固件和驱动重新编译即可。具体步骤:①使用EZ-USB软件开发包提供的Hex2C工具把单片机固件程序Hex文件转化为C文件;②用固件程序C代码中的firmware[]数据取替EZ-LoaderDriver中firmware.c文件中的数组,重新编译即可生成所需的EZ-LoaderDriver。

  功能驱动的设计可以使用Cypress公司提供的GPD(通用设备驱动程序),也可以自行开发。目前自行开发的方式有三种,使用微软提供的DDK、使用Windriver、使用DriveWorks,其中DriveWorks开发带有现成的驱动生成向导,开发较为容易,但没有前两种方式设计的驱动灵活。GPD目前有EZ-USB.sys和CyUSB.sys两个,它们提供了USB标准设备请求和数据传输连接,后者自带应用程序API函数,开发应用程序较为容易,因此本设备选择了CyUSB.sys。

  设备驱动的Inf文件是在设备第一次连接主机时为主机安装设备驱动提供相应的信息。Inf文件的内容主要包括驱动提供商名称、厂商标识符(VID)、设备标识符(PID)、驱动安装目录、添加的注册表信息等,设计时找一样本修改上述内容即可。

  4 结束语

  4.1 硬件电路设计注意事项

  在硬件电路设计时为了便于测试,采用了模块化的思想,分为供电模块、CY7C68013模块、ADNS-3080模块三块,且每一块都引出了相应测试管脚。

  板级设计中有两个高频电路块要注意的地方,说明如下:(1)保持D+和D-等间距布线,布线长度要小于75mm,且两线长度相差要在1.25mm以内,最好用地线包裹,避免通过过孔;(2)USB连接线使用屏蔽线,长度要小于5m;(3)晶振到CY7C68013的走线要尽可能短且远离D+和D-,使用陶瓷电容作为晶振电路电容。

  4.2 性能探讨与展望

  该设备具备软配置特性,即在E2PROM中烧写不同的VID、PID,可加载不同的一套固件、驱动和应用程序,而且可以无限次的加载,设备功能的修改、升级特别容易;再加之该设备可以对在速度≤1m/s,加速度≤160m/s2范围内振动的物体实现所有运动学参数2mm精度的实时采集分析。其开发难度小、使用范围广、升级便捷、设备接口人性化、数据采集实时精确等优点使得该设备具有了非常大的应用前景。

关键字:两自由度振动  偏移量  SPI总线  USB总线 引用地址:两自由度振动偏移量实时采集设备的设计与实现

上一篇:基于施耐德PLC的轨道交通环境控制解决方案
下一篇:宇电智能仪表在涤纶纺纤AIFCS温控系统中的应用

推荐阅读最新更新时间:2024-05-02 22:59

SPI总线的程序设计
  本设计的程序流程如图所示。   图 程序流程   实现代码如下。 (1)首先包含必要的头文件,然后定义程序中用到的全局变量及宏。    (2)初始化SPI,通过寄存器的配置设置SPI功能,并设定SPI工作在主控方式下。    (3)把端口A设为输出端口,并关闭所有中断,为了后面数据的锁存,把LACK置为低电平。    (4)通过在SSPBUF中写入数据,把需要发送的数据送到SPI数据线上,每次发送完毕之后清楚发送标志。    (5)主函数,在其中实现各个子函数的调用,实现SPI方式驱动数码管显示数据的功能。
[嵌入式]
基于TMS320F2812和USB100的CAN-USB总线通信系统设计
摘要:介绍了一种基于DSP的CAN控制器和USB芯片的USB总线和CAN总线的通信模块的设计,提出了一种使用USB接口实现CAN总线网络与计算机连接的方案。利用USB100芯片可在不了解任何USB协议的情况下,完成计算机RS 232串口升级为USB接口,同时CAN接口采用DSP片上CAN控制器,硬件设计极为简单。在DSP的控制下,PC机与CAN节点可以双向通信,通信波特率可高达1 Mb/s,传输数据稳定,可靠。实验证明,运用TMS320F2812片上eCAN模块来构成CAN总线通信系统更为简单,实用。 关键词:USB;CAN总线;eCAN;TMS320F2812 0 引言 随着计算机技术的飞速发展,全电子的计算机连锁控制系
[嵌入式]
基于TMS320F2812和USB100的CAN-<font color='red'>USB总线</font>通信系统设计
基于SPI总线的多路数据采集系统的设计
    随着微处理器的发展及其在各领域的广泛应用,人们对电子测量技术和电子仪器系统提出越来越高的要求,对测试速度和精确度的要求也与日俱增。测试系统主要包括对实时数据的高速采集、现场显示和分析处理3部分,其中最重要的一环就是实时数据高速采集,因为它关系到能否真实反映被测对象的状态和性能。根据实际项目需要,文中基于80C51F040单片机的SPI总线和AD7891芯片,设计实现了多路数据的高速采集。文中给出了系统的主要硬件电路和对时序控制的软件编程。 1 系统的硬件实现     本数据采集系统功能是能对多路电压和电流进行高速采集和分析处理,其要求精度高,线性度好,采集电压要求以1 mV为单位,模拟信号输入范围为-10~+10 V。
[单片机]
基于<font color='red'>SPI总线</font>的多路数据采集系统的设计
USB总线在同步相量测量单元中的应用
  1  引言   同步相量测量单元(PMU)测量装置与上位计算机之间的通讯速率普遍较低,不能将测量数据及时传送到上位机进行分析处理,通讯接口已成为整个系统性能提高的一个瓶颈,因此有必要使用一种传输速率、时延、稳定性均能满足同步相量测量数据传输的通用接口。   采用USB接口作为上位机与下位机的通讯接口方式可以解决这些问题。利用USB接口中断传输速率大,时延小,差错率极低的特点来完成实时相量数据的传输。在USB接口的实际应用中,驱动程序的开发是最为困难的部分,由于USB接口诞生较晚,目前尚未成为多数单片微机的标准设备,还需要使用专门的接口芯片进行连接,用户必须编写相应的驱动程序将数据转化为符合USB系统协议的格式进行传输。
[嵌入式]
基于SPI总线的电能计量芯片ATT7022及其在配电监测终端的应用
摘要:介绍了高精度电能计量芯片ATT7022的主要功能、性能比较、内部结构、接口方式及校表方法等,同时对ATT7022在电能配电监控终端的应用作了简要阐述。 关键词:SPI总线 ATT7022 电能计量 W77E58 配电监控终端 1 概述 ATT7022是珠海炬力集成电路设计有限公司生产的一款高精度三相电能计量芯片,该芯片对有功、无功功率的测量精度分别达到0.2s和0.5s,所能测量的电参数包括有功、无功、视在功率、双向有功和四角限无功电能;电压和电流有效值;相位、频率等。ATT7022具有计量参数齐全、校表功率完善等优点,简化了软件设计,缩短了软件开发周期。特别是AT7022可支持全数字校表,即软件校表。软件校表可提高
[应用]
SPI总线的4种工作模式
spi总线的4种工作模式 0 to 4 modes SPI接口的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。      SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,地位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到几Mbps。      SPI接口是以主从方式工作的,这种模式通常有一个主器件和一个或多个从器件,其接口包括以下四种信
[嵌入式]
SPI总线协议的通信原理及应用举例
  SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。   (1)SDO – 主设备数据输出,从设备数据输入   (2)SDI – 主设备数据输入,从设备数据输出   (3)SCLK – 时钟信号,由主设备产生   (4)CS – 从设备使能信号,由主设备控制   其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。这就允许在同一总线上连接多个SPI设备成为可能。
[嵌入式]
AN2131QC芯片USB总线通信的开发
  目前USB总线的芯片种类很多,主要有两种:一种是CPU集成USB控制器,例如EZ-USB AN2131,C8051F320 等;另一种是专用控制器,例如ISP1581,PDIUSB12,USB9602等。两者的选择主要是取决于USB外围设备的功能。本文主要以Cypress公司的AN2131QCL来说明USB控制设备的开发。   1 USB总线的网络配置   在USB总线网络中,只能有一个主机,一个主机通过USBHUB最多可以扩展127个USB外围设备。如果不通过HUB,那么USB总线的传输距离最好不超过5 m。图1是USB总线网络图。   从数据的传输流程可以知道,两个计算机无法直接通过USB总线进行通信。
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved