骨密度测量系统中数据采集与传输关键技术的研究
谭慧玲 李华宝 何爱军
【摘 要】摘 要 目的本文对超声骨密度测量系统中的高速数据采集和传输关键技术进行了研究,设计了数据采集系统。方法 该系统基于 Nios II软核,以现场可编程门阵列(field programmable gate array,FPGA)芯片 EP2C8Q208C8为核心,选择 ADC12C105芯片进行模数转换,然后经 USB接口芯片CY7C68013A上传至PC机进行分析、存储。最后对CY7C68013A的传输速度进行了测试。结果实验结果证实本文所设计的系统采样率高,数据传输速度快。结论该高速数据采集和传输系统是超声骨密度测量系统的研发基础。
【期刊名称】北京生物医学工程 【年(卷),期】2012(031)001 【总页数】4
【关键词】关键词 骨密度;测量系统;数据采集;数据传输;现场可编程门阵列
0 引言
随着人们生活水平的提高和寿命的延长,骨质疏松症已成为一种在世界范围内严重威胁人类健康的疾病[1],而对于骨质疏松症,预防比治疗更为重要。骨质疏松症可以通过测量骨密度进行预测,目前常用的方法是定量超声法,它具有重复性好、无辐射、无创伤及便于携带等优点,不仅可以测量骨密度,而且能测量骨强度和骨结构[2]。
基于定量超声理论的超声骨密度测量系统是利用超声测量技术,通过对跟骨处的宽带超声衰减(broadband ultrasonic attenuation,BUA)和超声速度
(speed of sound,SOS)等参数的测量来反映被测量者跟骨处骨密度的情况,从而作为判断骨质疏松症的依据[3]。高速数据采集和传输是超声骨密度测量系统中的关键技术,本文对其进行了研究。
1 系统总体设计
整个超声骨密度测量系统的硬件部分主要包括超声波的发射部分、超声波的接收部分、数据的采集部分、FPGA控制部分、USB控制部分以及PC机,其中FPGA控制电路是整个电路的核心部分。具体的框图如图1所示。
超声骨密度测量系统的工作流程是:在FPGA的控制下,发射模块发射的超声信号,穿过人体骨骼后形成微弱的衰减信号,接收模块的接收电路对该信号进行放大、滤波等处理;经ADC模数转换电路采集转换成数字信号后存储在SRAM中,最后由USB传送至PC机,求得SOS和BUA的值。
对于数据采集部分,本文选择ADC12C105芯片作为模数转换芯片。ADC12C105具有12位和105MSPS的转换速度。FPGA采用ALTERA公司的cyclone系列芯片 EP2C8Q208C8,它具有 8256个LE,36 个 M4K RAM block,同时具有 165 888 bit的RAM,主要用于NIOS软核的运行以及实现ADC控制模块、SRAM存储控制和USB传输的控制。FPGA芯片控制系统可以通过直接逻辑实现,也可以在其基础上实现SOPC系统对数据采集、传输的控制,本系统选择后一种方式。USB采用CYPRESS公司的支持USB2.0协议的高速设备芯片CY7C68013A,采用Slave fifo方式将数据传送给PC端。
2 NIOS软核的硬件开发
基于上述系统框图,设计了超声骨密度测量平台。选用Altera的Cyclone版本的NiosⅡ开发套件,包括NiosⅡ处理器、标准外围设备库、集成了SOPC
Builder系统设计工具的QuartusⅡ开发软件等,使用SOPC Builder来配置生成片上系统[4]。
NIOS的开发包括硬件开发和软件开发两部分。硬件开发是在QuartusⅡ中实现的,而软件开发部分是在NIOS IDE软件中实现的。
NIOS的硬件开发就是用QuartusⅡ 和 SOPC builder来建立自己需要的软核。硬件开发的全过程包括工程的建立,NIOSⅡ软核的构建,以及锁相环 PLL倍频和如何下载等[4]。其中NIOS II软核的构建是重点内容,在软核中构建了cpu、sdram、sysid、jtag_uart、epcs_flash_controller和 USB 传输模块,时钟设计为100 MHz。
在硬件设计过程中,使用SOPC Builder工具可以灵活地订制Nios II CPU的许多特性。可以使用Altera公司提供的IP核来加快设计者开发Nios II外设的速度,提高外设的能;也可以使用第三方的IP 核,或者使用 VHDL、Verilog来自己订制外设[5]。
本设计中,sdram、jtag_uart、epcs_flash_controller等模块直接使用Altera公司提供的IP核来设计,对于USB传输模块,利用PIO核来实现。而对于采样部分,由于NIOS软核采样的直接采样率不高,本文使用Verilog硬件描述语言来实现A/D采样并存储到SRAM中,然后再取出数据以FIFO的形式发送到NIOS II软核,开始一次USB通信。
对USB端口模块的设计,其一端信号需要和FPGA器件外部物理USB设备信号端口相连,另一端需要通过Avalon总线挂接到NIOS II处理器上,CY7C68013A 与 FPGA 的连接见图2[6]。
设计中采用PIO核实现USB模块。一个16位PIO核USB_DATA作为USB设