打印

分享:基于DSP和USB总线的高频超声数据采集系统

[复制链接]
2064|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
叶落无痕|  楼主 | 2011-8-22 15:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
摘    要:
                  本文给出了一个高速超声数据采集系统设计方案。系统分为数据采集、数据预处理、通信接口三个模块。为了保证系统同时具有良好的实时性和高精度,采用了CPLD+DSP+USB的方案。

                  关键词: CPLD;ADC;DSP;USB接口  
                  引言
                  超声医学即利用超声波的物理特性进行诊断和治疗的一门影像学科,其临床应用范围广泛,目前已成为现代临床医学中不可缺少的诊断方法。

                  本系统是一个便携式软组织超声诊断仪的一部分,主要功能是高频超声信号采集。其工作机制,是在前端低频脉冲(20Hz~10KHz)的触发下,对由超声换能器产生的高频超声信号(1MHz~20MHz)进行采集,预处理,然后通过USB总线传输给PC机,由软件进行分析、处理。

                  在本设计方案中,高速CPLD芯片作为数据采集系统的核心部分,相比传统的MCU+ADC方法,CPLD是用硬件信号而不是软件编程来控制ADC,从而在速度上有很大的优势。而目前强大的VHDL编程语言也使得CPLD能很容易地实现预想的功能逻辑。数据处理部分,选用数据处理功能强大、处理速度高的DSP芯片作为CPU。而在与上位机通信方面,采用支持即插即用且成本也相对较低的USB接口。整体系统方面,各个子系统之间的数据传输和同步问题是技术难点。在经过反复比较和测试之后,采取高速存储器作为数据缓冲区的方案。

                  系统各组成模块
                  系统组成框图如图1,包括三个子系统:CPLD子系统,DSP子系统和USB子系统。其中,CPLD+ADC实现数据采集,DSP则负责数据处理,两者之间通过一片高速RAM来交换数据;USB芯片(AN2131Q)负责把数据通过USB线上传给主机,它和DSP之间通过一片锁存器进行通信。

                  数据采集子系统(CPLD子系统)
                  该子系统主要由一片Altera公司的CPLD和一片高速ADC所组成。
                  由于要采集的超声信号最高频率为20M,根据Nyquist定律,采样频率应该在40MHz以上,为了提高精度,系统采用了ADI公司的AD9283芯片。该芯片最高工作频率为100MHz,经过测试,可很好地满足系统带宽要求。

                  以往的便携式数据采集系统中,下位机部分ADC-RAM模块往往采用MCU作为CPU来控制,因此,采集频率直接受到MCU速度的制约,而且和RAM存储器的同步也成为问题。经过比较,本系统采用Altera公司的CPLD芯片来控制ADC和RAM,从而很好地解决了时序精度和同步的问题。

                  CPLD作为控制芯片,实现的功能逻辑为:
                  ● 接到DSP触发信号(START)之后,实现对ADC的控制,发出一个Start信号,ADC开始采样工作;
                  ●
                  与ADC控制信号同步提供RAM地址计数器(A0~A16)和写信号(/WE),使得每次ADC的结果直接存入RAM并且自动增加地址;

                  ● 当地址计数器达到最大的时候,发出中断信号(RAM_FULL),提示DSP系统RAM已满;
                  CPLD的功能逻辑用VHDL语言实现,其编译、仿真和综合采用Altera官方主页提供的MAXPLUXII  
                  Student10.1版,下载电缆自制。
                  数据处理子系统(DSP子系统)
                  由于系统在后期升级中,要求对下位机部分的数据进行较为复杂的预处理,同时系统在实时性方面要求较高。因此选用TI公司的TMS320C5409作为数据处理子系统的CPU。

                  DSP子系统的主要工作流程为:
                  1)
                  接到Trigger(由前端换能模块发出)中断(INT0)触发后,拉高START信号通知信号采集模块开始工作,然后进入等待;
                  2)
                  接到RAM_FULL中断(INT1)之后,知道RAM已经写满,首先将START信号拉低停止CPLD和ADC。然后开始逐个读RAM中的数据,根据系统要求做相应处理,之后借助锁存器发给AN2131Q;

                  3)
                  在本系统中,DSP软件部分的几个函数体包括:主循环;int0中断(前端触发);int1中断(RAM已满)。程序流程图见图2。

                  通信接口子系统(USB子系统)
                  该子系统完成的功能,就是通过锁存器接收DSP发过来的数据,然后通过自身的USB控制器发往HOST。
                  采用Cypress公司的AN2131Q作为USB通信芯片。AN2131Q功能框图如图3。该芯片的主要特性为:
                  ● 改进的8051内核。性能可达到标准8051的5~10倍,与标准8051的指令完全兼容;
                  ● 高度集成。传统USB外设的硬件设计通常包括非易失性存储器(如EPROM、EEPROM、FLASH
                  ROM)、微处理器、RAM、SIE(串行接口引擎)和DMA等。EZ-USB将上述多个模块集成在一个芯片中,从而减少了各芯片接口部分时序配合时的麻烦;

                  ● USB
                  内核。AN2131Q可以代替USB外设开发者完成USB协议中规定的80%~90%的通信工作,使得开发者不需要深入了解USB的低级协议即可顺利地开发出所需要的USB外设;

                  ● Cypress公司的EZ-USB系列芯片接收全部USB 的吞吐量。这种设计不受端点数目、缓冲区大小及传输速度的限制;
                  ●
                  软配置。外设未通过USB接口连接到PC机之前,外设上的固件存储在PC上;一旦外设接到PC机上,PC读取设备描述符,然后将该外设的固件下载到EZ-USB的RAM中并执行,这个过程叫做再枚举。这种基于RAM的软配置方法,可以允许无限的配置和升级。

                  ● 易用的软件开发工具。固件可独立于驱动程序被测试。驱动程序和固件的开发与调试相互独立,可加快开发的速度。
                  AN2131Q属于Cypress公司EZ-USB系列,其驱动在Cypress公司提供的例程中略加改动即可使用,简单可靠,编辑、编译工具为Microsoft的VC++6.0和98DDK,调试工具采用SOFTICE。驱动程序为上层应用程序提供了很多API接口。

                  数据采集子系统与处理子系统的通信与同步
                  本系统有采样速率快,数据量大的特点。本系统中,8位ADC的采样频率为100MHz,采样宽度为每次20ms,那么每次采样得到数据为100MHz*20ms=2KB;Trigger信号脉冲宽度采用50ms,由此可计算出每帧数据量为2KB
                  * 50ms * 10KHz =
                  1M。数据处理采用的DSP芯片满足这个速率要求,但是还要通过USB把数据传向主机,而系统采用的AN2131Q为USB1.1协议芯片,经过测算其达不到理论的1Mb/s,因此,两个子系统之间必须通过缓冲器进行通信。目前常用的多处理器间通信方法有三种:双口RAM;
                  高速FIFO; 总线开关加存储器。
                  其中前两者相对简单,容易控制,但是由于目前双口RAM和FIFO的速率和容量都达不到本系统的要求,因此最终选用最后一种方法,即高速RAM加总线开关的方法,由CPLD系统和DSP分时访问RAM。CPLD在START电平变低之后,地址线输出高阻,此时ADC的数据输出也是高阻,此时DSP才开始从RAM读数据,这一逻辑保证了不会发生总线冲突。

                  高速DSP系统与AN2131Q的通信控制
                  通过一片数据锁存器作为缓冲器,利用TMS320C5409的XF和BIO引脚和AN2131Q的两个IO口作为握手引脚;同时,DSP利用中断来管理数据传输;AN2131Q则通过轮循来管理数据传输。

                  系统整体调试
                  由于要采集的信号频率较高,因此,电路板的抗高频干扰问题是一个很重要的问题,经过测试,高频信号在系统中没有产生影响系统整体性能的干扰。用HP信号发生器分别产生500KHz、5MHz、10MHz、20MHz的信号进行测试,DSP子系统暂时没有对信号进行预处理而是原样不动的发给USB通信芯片(信号处理函数暂时设为空参数)。在应用程序中,上层软件利用多线程处理技术,把采集到的信号同时进行分析、显示、存储等,系统达到了令人满意的实时性。

相关帖子

沙发
cscis| | 2011-8-22 17:54 | 只看该作者
本文给出了的方案需要认真学习哟、、感谢lz分享 学习lz精神  争取也做21ic论坛的活跃用户

使用特权

评论回复
板凳
sqcumt123| | 2011-8-25 16:01 | 只看该作者
值得学习

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

92

帖子

1

粉丝