新闻  |   论坛  |   博客  |   在线研讨会
基于USB的嵌入式CCD图像数据采集系统的实现
yanqin | 2009-06-24 11:11:35    阅读:1089   发布文章

 

    ccd图像数据的采集与普通视频信号的采集相比,其最大的特点是数据传输速率高,传输通道多。目前,通用的ccd图像数据采集方法是在计算机中插入高速数据采集卡,采集卡与ccd相机间通过点对点物理层接口(如rs-422、rs-485)进行数据传输,高速数据采集卡接收到数据并通过pci总线将数据写入计算机内存,然后利用采集卡的存储功能将数据通过ide接口写入计算机硬盘。这种方法虽然简单可靠,但对多通道、高速图像数据的采集在数据传输和存储方面有一定的局限,容易引起数据帧的丢失,并且随着传输通道的增多,引起传输导线数量增加,系统功耗及噪声也随之增大。通用串行总线usb能很好地解决这些问题,具有连接方便、无需外接电源、即插即用、支持热插拔、高带宽、低功耗、低成本、动态加载驱动程序,级联星型拓扑结构扩充外设数量等特有优点,在主机和数据采集系统之间可以实现简单、快捷、双向、可靠的连接和通讯。

  1 硬件设计

  系统设计应具有稳定性、灵活性、通用性等特点。稳定性是指不仅要保证数据的无失真传输,而且要保证数据连续无丢帧存储。灵活性体现在系统的信号输入路数、系统的存储容量、磁盘连接方式等具有模块化与可重组性,系统稍做变通即可用于其他高速视频图像的采集。通用性体现在系统能适应于多个通道,不同速率的ccd图像数据采集,即要求系统能实现通道合并,并有较宽的数据传输频带。

  usb数据采集系统硬件结构图如图1所示。

  

  传感器输出的模拟信号,经多路开关选通接入信号放大器,信号放大器能自动调整增益的大小,对输入的信号在a/d转换器的量程内进行信号放大,然后由arm芯片控制进行a/d转换,再将转换后的数字信号送入嵌入式微控制器,由usb接口电路传递给pc机进行数据处理,同时将pc机端的客户应用程序发出的控制信号通过usb接口传送到以arm芯片为核心的数据采集系统。

  1.1 方案选择

  1.1.1 usb接口芯片和主控制器芯片的选择

  usb控制器有两类,一类是集成了usb接口的单片机,如cypress公司生产的ez-usb(基于8051)系列芯片cy7c68013、cy7c64613等;另一类是单独的usb控制器,如philips公司的pdiusbd12、isp1581,netchip公司的net2888,national公司的usbn9603、usbn9604等。前种芯片虽然编程简单,但需要购置专门的开发系统,投资较大,并且单片机性能有限;后者的特点是价格低廉、连接方便、可靠性高,但其片上不带cpu,必须选择微处理器来进行协议处理和数据交换。本系统选择了片上不带cpu的性价比较高的usb2.0控制芯片isp1581,它完全符合usb 2.0规范,速度可达480mbps。采用isp1581可以快速开发出高性能的usb2.0设备;同时为了满足速度要求,主控器芯片选择了高性能、低功耗的arm芯片s3c44b0x。

  1.1.2 信号放大电路和a/d转换芯片的选择

  在高速数据采集系统中,现场输入信号是变化范围较大的高频模拟信号,如果采用单一的增益放大,则放大后的信号幅值有可能超过a/d转换的量程,所以必须根据信号的变化来相应地调整放大器的增益。本系统选用了ad8321这种频带宽、噪声低、增益可数控,且十分适合在数据采集系统作前置放大用的高频模拟信号调理芯片。高频模拟信号放大后被送到模数转换器中,s3c44b0x自身虽集成有8路10位adc,但其内部集成的a/d转换只能输入0~100hz的模拟信号,且没有采样保持电路,因此需要对其进行扩展。为了满足8路采集,选择了高速a/d转换芯片ad7829,最大转换速率2msps,转换时间为420ns。

  1.2 硬件接口电路

  本系统硬件接口电路连接如图2所示。

  

  本系统利用s3c44b0x的pd口为双向口进行扩展,将ad7829的convst与s3c44b0x的pd1相连,用于产生转换脉冲;ad7829的eoc与s3c44b0x的pd0相连,用于产生转换结束信号。采集信号经a/d转换后,数据先存放在s3c44b0x的寄存器里, s3c44b0x先发控制信号再发数据给isp1581,在此将isp1581的缓冲区定义为8个,分别写入8路转换后的数据。而pc机通过usb接口与isp1581连接,isp1581负责分类和解释pc机发来的信号,具体操作流程如下:pc机发送给usb设备的数据以包的形式写入isp1581的缓存中,当缓存被写满或数据发送完毕后,isp1581就给arm发中断信号,arm响应中断信号进入中断服务程序执行相应的包处理。另一方面,usb设备不能主动向主机发送数据,只有当pc机要求usb设备发送数据时,arm才将主机需要的数据写入isp1581相应端点的缓存中。

  数据采集是由s3c44b0x的pd口发出脉冲作为ad7829的转换脉冲convst,当ad7829转换结束时,eoc输出有效低电平,s3c44b0x接到有效电平后,发下一路地址,然后读数据。当ad7829的和信号有效时,在数据读入s3c44b0x的数据缓冲区的同时将下一路的地址打入,这样循环采集8路模拟输入,直到数据采集结束,本过程的流程图如图3所示。

  

  2.2 usb部分软件设计

  usb系统软件由固件程序、usb系统驱动程序和应用程序三部分构成。

  2.2.1 固件程序的开发

  固件程序实际上是置于微控制器内部的程序文件,用来辅助硬件完成通信任务。通过isp1581的int中断信号与微控制器s3c44b0x的eint0中断口相连,当接收数据或发送数据成功时就会产生中断,固件程序的任务就是对这些中断进行响应,完成设备的配置,让usb驱动程序知道设备的能力,接收usb主控制器发来的数据和向主机发送数据。设备固件程序是设备运行的核心,本系统采用keil c进行编写。sp1581的固件程序采用模块化设计,包括主循环程序、中断服务程序、usb标准请求处理和批量数据传送请求处理四部分。固件模块结构见图4。

  

  2.2.2 应用程序

  应用程序包括win32dll程序和用户应用程序。win32动态连接库包含共享函数库的二进制文件,可以被多个应用程序同时使用。客户应用程序则是实现数据采集系统功能的软件程序,在本系统中采用visual c++进行编写。

  2.2.3 usb系统驱动程序

  usb系统驱动程序采用分层结构模型(wdm),该模型定义了分层的驱动程序, usb设备驱动程序不直接与硬件对话,而是通过usb驱动程序接口将usb请求块提交到总线驱动程序进而完成硬件操作。从系统的角度来说,在usb设备插入主机后,主机检测到usb设备,读取设备描述符,然后主机根据设备描述符中提供的厂商id和产品id等,启用相应usb设备驱动程序,读取usb设备中的配置描述符、接口描述符和端点描述符,根据需要选择恰当的配置、接口和端点,确定传输方式。这一过程完成后,pc机与usb设备之间就能够进行数据传输了。

  usb总线的特点使其非常适合用作小型仪器与主机之间的通讯接口,实现主机与便携式仪器之间的简单、快速和可靠的连接。将usb接口应用到数据采集系统中,提高了数据采集系统的速度,增强了系统的抗干扰能力和数据传输的可靠性。本文详细介绍了基于arm芯片s3c44b0x和usb2.0接口控制芯片isp1581的数据采集系统的软硬件设计开发方案,设计开发过程较为繁杂,涉及到多方面的软件程序与硬件电路的联合使用,通过实验测试,效果良好。

  参考文献

  [1] 罗浩,杨晓非.脱机式数据采集系统的设计[j]. 微计算机信息,2006,22(4):93-95.

  [2] 高美珍,洪家平. 基于usb接口和嵌入式芯片总线的数据采集系统[j]. 仪表技术与传感器,2005,(8):51-53.

  [3] 邢微,刘开华.数据采集系统usb2.0接口设计[j].电子测量技术,2006,29(1):12-13.

  [4] 夏益民,王广君. 基于usb总线的高速数据采集系统[j]. 国外电子元器件,2003,(10):20-23

  


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客