CN103617140B - 一种神经电信号压缩感知处理验证***及其构建方法 - Google Patents
一种神经电信号压缩感知处理验证***及其构建方法 Download PDFInfo
- Publication number
- CN103617140B CN103617140B CN201310606735.4A CN201310606735A CN103617140B CN 103617140 B CN103617140 B CN 103617140B CN 201310606735 A CN201310606735 A CN 201310606735A CN 103617140 B CN103617140 B CN 103617140B
- Authority
- CN
- China
- Prior art keywords
- data
- chip
- signal
- fpga chip
- fpga
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Logic Circuits (AREA)
- Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
Abstract
一种神经电信号压缩感知处理验证***,它包括FPGA芯片、FPGA芯片最小******电路、ADC采样芯片和电源芯片;模拟神经电信号经过ADC采样芯片转换为数字形式并送入FPGA芯片做压缩感知处理,处理结果通过USB驱动芯片及USB接口上传到上位机,电源芯片与各芯片连接并提供工作电压;其构建方法有五大步骤:一、ADC采样芯片同时采集16路模拟神经电信号并送入FPGA芯片;二、在FPGA芯片中对输入信号进行低通采样获得场电位信号并下采样;三、对输入信号进行高通滤波;四、将FIFO中的动作电位数据处理完毕;五:将场电位和动作电位观测值进行编码并按照预定的顺序通过USB接口串行地发送到上位机,并完成上位机与板卡通信,实现上位机对板卡工作状态的控制。
Description
技术所域
本发明涉及一种神经电信号压缩感知处理验证***及其构建方法,它是一种基于FPGA(Field Programmable Gate Array现场可编程逻辑门阵列)实现的神经电信号采集、压缩、处理、传输***及实现方法。属于实时数字信号处理技术领域。
背景技术
神经***疾病与脑内庞大的神经元放电活动密切相关,对脑组织中微弱的神经电信号进行高通量检测,有利于进一步了解大脑的功能和研究神经***疾病的发病机制。为了抑制外界噪声干扰,更加精确地对多点同时进行测量,目前绝大多数神经电信号采集***采用植入式微电极阵列来记录神经元细胞的放电活动。传统记录方式通过电缆来传输测量到的动作电位,但这会带来诸多问题如限制被测量机体的运动自由、不能充分反映被测者自然的状态、增加脑损伤的风险等。为了克服上述问题,近年来基于无线传输的神经电信号测量***得到了迅速发展。但同时受到两个因素的限制:
1)芯片功耗的限制。有研究表明,一个基于ASIC神经信号记录***的功耗密度必须小于800μW/mm2,否则会造成脑细胞损伤。此外,植入式ASIC无线神经信号记录***通常用电池供电,以感应耦合的方式为电池充电,这也限制了***功耗。
2)无线传输数据率的限制。神经电信号采集***通常需要同时采集100路甚至更多路的细胞外电位信息;动作电位信号频谱分布在300Hz-5kHz内,由奈奎斯特采样频率可知采样率应该大于10kHz,实际应用中通常设定采样率为20kHz;AD量化位数通常采用8-10bits,因此无线传输数据率应该在16Mbit/s左右,这对于无线传输显然是一个巨大的压力。
基于以上两点原因,必须在信号采集端对数据进行压缩,以减少数据传输量。同时由于ASIC的***功耗与基于其上的压缩算法复杂度有密切关系,所以要求压缩算法足够简单。
自2006年D.L.Donoho发表《Compressed sensing》,提出压缩感知理论应用于稀疏信号采集与压缩处理以来,压缩感知理论与应用得到快速发展。D.L.Donoho之后又提出将压缩感知理论应用于MRI医学图像,表明压缩感知即极大的降低了采样数据量而不影响重建图像的分辨率,同时对噪声具有很好的抑制作用。此后压缩感知理论在图像处理领域表现出蓬勃的生命力,被大量应用于医学、雷达图像处理中。
由于其优良的压缩性能以及成熟的理论基础,压缩感知在信号处理尤其是生物电信号处理领域得到广泛地应用。由于生物电信号具有稀疏、准周期等非常适合压缩感知的特性,同时生物电信号采集遇到***功耗以及数据量的限制而需要大幅度数据压缩,因此压缩感知成为生物电信号压缩采样的绝佳解决方案。研究者们就压缩感知理论、生物电信号压缩感知处理、基于压缩感知的生物电信号采集***设计等方面进行了大量深入研究,并取得卓越成就。
传统神经电信号采集压缩处理所最常采用的方法为小波变换等多尺度、多分辨率几何分析理论,遇到压缩比不能足够大、重建信号失真度大等问题。本发明人将先进的压缩感知理论应用于神经电信号采集***设计中,以期获取最大的压缩比而不丢失信号的原始信息。本发明设计实现了神经电信号压缩感知处理原理性验证电路***。该***以FPGA为核心处理器件,***电路除了FPGA工作所需的最小***电路外,只有两片AD7606数模转换芯片,可以同时将16路模拟神经电信号转换为数字信号送往FPGA处理,一个用来实现FPGA与主机通信的USB(Universal Serial Bus通用串行总线)驱动芯片,所有的控制逻辑及转换数据处理等都在FPGA中编程实现,这种设计可以大大减小电路的复杂度,为未来***实现集成化构建基本框架,验证可行性。
发明内容
1、目的:本发明的目的在于提供一种神经电信号压缩感知处理验证***及其构建方法,通过硬件编程语言来实现神经电信号的采集逻辑控制、滤波、数据选取判断、压缩感知处理、通信控制等,同时提供全面的神经电信号压缩感知处理方案。
2、技术方案:本发明的目的通过以下技术方案来实现。
(1)本发明是一种神经电信号压缩感知处理验证***,包括:FPGA芯片、FPGA芯片最小******电路、ADC(Analog Digital Converter模数转换)采样芯片、电源芯片。它们之间的位置连接关系及信号走向如图1所示,模拟神经电信号经过ADC采样芯片AD7606转换为数字形式并送入FPGA芯片做压缩感知处理,处理结果通过USB驱动芯片及USB接口上传到上位机,电源芯片与各芯片连接并提供工作电压。
该FPGA芯片选择Xilinx公司生产的Virtex-4XC4VSX55,它在接收到主机通过USB接口驱动芯片传送来的的控制指令信号后,根据控制指令完成信号的模数转换、数字滤波、有效信息选取以及压缩感知处理;在接收到数据回传指令时,将压缩后数据通过USB回传到上位机。
该FPGA芯片最小******电路,包括时钟源和程序加载FLASH,它们负责辅助FPGA核心芯片完成处理功能。时钟源为FPGA芯片提供正常工作所需的时钟信号;由于FPGA芯片是在断电之后程序自动被清除的,所以必须将程序代码固化到一个程序加载FLASH中,每次上电后,程序加载FLASH中的程序自动加载到FPGA芯片中以使其正常工作。由于FPGA芯片每次上电都要重新加载一次程序,所以要将程序代码固化到程序加载FLASH中。时钟源提供FPGA芯片工作的***时钟,晶体振荡器产生所需要的频率直接传送给FPGA芯片。该晶体振荡器是一个单独的元器件,它是作为FPGA芯片的时钟源。
该ADC采样芯片采用两片8路转一路的低速模数转换芯片AD7606,负责将最多至16路的模拟神经电信号转换为数字信号,并以时分复用的方法直接传送给FPGA核心芯片。
该电源芯片是LM1085和PTH05000,它提供整个***工作所需的电压。外界给***输入+5V的电压,通过电源芯片将+5V的电压转换成***所需要的+3.3V、+1.8V、+1.5V,来分别提供给FPGA核心芯片(+3.3V、+1.5V)、程序加载FLASH(+3.3V、+1.8V)、时钟源(+3.3V)、ADC采样芯片(+3.3V)。
(2)本发明是一种神经电信号压缩感知处理原理验证***的构建方法,其构建过程概述如下:ADC采样芯片同时采集16路模拟神经电信号送入FPGA处理芯片中;在FPGA中分别对每路神经电信号进行低通及高通滤波,分别得到神经电信号的场电位及动作电位部分;对场电位信号进行降采样以降低数据量,并送入FPGA片内RAM进行缓存;将动作电位与设定阈值作比较,选取有效信息;将得到的数据与压缩感知测量矩阵相乘,获得动作电位信号的观测值,将观测值数据存入FPGA片内RAM;将场电位和动作电位观测值进行编码并按照一定的顺序通过USB接口串行地发送到上位机,完成神经电信号采集过程。
综上所述,本发明一种神经电信号压缩感知处理原理验证***的构建方法,该方法具体步骤如下:
步骤一:ADC采样芯片同时采集16路模拟神经电信号并送入FPGA芯片
ADC采样芯片采用Analog Devices公司生产的AD7606,该芯片在低速多通道信号采样领域具有非常优越的性能。单片ADC具有8路模拟输入;输入电压范围最大可达到±10V;输入阻抗1MΩ;16位量化精度;单通道采样率200kSPS;具有非常灵活的串/并行接口;最低功耗100mW。AD7606芯片各通道采样时序采用时分复用的方式,其功能结构图如图1所示。
如图1所示,AD7606具有8路模拟输入,按照时分复用的方式对各通道独立进行采样和提取;每一通道都具有输入过压和过流保护、防混叠滤波器、采样保持放大器,16bit模数转换和数字滤波器。
本电路板卡设计两片AD7606芯片,可同时采集16路模拟输入信号。为实现模拟输入端电阻匹配消除偏置以及限流功能,在AD7606每一通道的模拟输入端串联阻值为1k的电阻;同时为增大输入电阻消除干扰,在输入端并联容值为470pf的电容,其原理图如图2所示。在FPGA上编写VHDL程序对两片AD7606进行控制,实现16路信号的并行采集和处理。AD7606原理图如图3所示。将AD配置引脚接入FPGA,通过编程可灵活实现AD7606功能的配置;设置驱动电压Vdrive为2.5V。
步骤二:在FPGA芯片中对输入信号进行低通采样获得场电位信号并下采样
该步骤由FPGA芯片中场电位控制模块完成,场电位控制模块主要将神经电信号中的低频成分(即场电位成分)提取出来,并进行5:1降采样处理。由于此***对线性相位响应没有要求,因此采用Xilinx ISE提供的FIR(Finite Impulse Response有限冲激响应滤波器)滤波器IP核(Xilinx ISE提供完成通用数字信号处理功能的IP核,可以直接调用),按照滤波需求设定相应的参数,其频率响应及参数设定如图4所示。
为了实现场电位信号的降采样,对FIR低通滤波器输出数据进行计数,每隔5个数据拾取一个数据进行后续处理,将其他数据丢弃,以进一步减少传输的数据量。
步骤三:对输入信号进行高通滤波,将滤波输出与设定阈值比较选择动作电位中的有效信息,将该固定长度的有效信息数据与测量矩阵相乘,获得动作电位信号的观测值
神经电信号中的动作电位信息包含在其高频成分中,首先将采集得到的神经电信号通过按参数设定的高通FIR滤波器,其频率响应如图5所示。
由AD7606芯片采集得到的数字信号位宽为16bits,经过高通FIR滤波器之后,为保持数据精度不下降,输出位宽扩展为24bits。频率为1kHz的正弦波经过FIR高通滤波器的输入输出关系如图6所示,其中红色线为FIR高通滤波器输入,蓝色线为其输出。如图所示,经过FIR滤波器之后,信号幅度获得固定的倍乘,相位移位90°。
之后监测高通FIR滤波器输出,依次将输出数据经过FIFO(First In First Out,先入先出队列缓冲器)。因为采集动作电位的时间长度为5ms,采样率设定为25kHz,所以有效动作电位数据长度为126个。设定上述FIFO深度为126,位宽24bits。比较FIFO输入端值与由上位机设定的阈值的大小,当比较输入数据满足条件时,将比较指示信号judge_flag置低不再进行阈值比较,此时已有前2ms采集的50个有效数据进入FIFO。之后等待75个数据周期,待全部有效数据都进入FIFO后将移位指示信号shift_flag置低,不再进行FIFO移位直至此次有效动作电位信号处理完成。经过上述选择过程之后,有效的动作电位序列被提取出来。之后经过与预先设定的观测矩阵相乘获得压缩测量数据。上述动作电位提取过程时序如图7所示。
为节约寄存器资源将正负1高斯随机矩阵例化存储于RAM(Rand-Access Memory随机存储器,FPGA核心芯片内部有固化的RAM,可以直接调用)中。设定动作电位有效信息数据压缩率为3:1,高斯随机矩阵规模为126X42,可以将数据长度为126的有效动作电位压缩为长度为42的压缩测量数据。在RAM中用1bit存储1个有效数据:1代表高斯矩阵中的1,0代表高斯矩阵中的-1。RAM使用规模:位宽43,深度126。
移位指示信号shift_flag上升沿表示有效动作电位提取完成,可以进行矩阵相乘以实现数据压缩。数据压缩过程示意图如图8所示,此压缩过程共使用到3个存储单元:高斯随机观测矩阵RAM(43X126)、有效动作电位存储FIFO(43X24)和压缩数据存储RAM(43X24)。其顺序说明如下:1,依次从动作电位存储FIFO中获取一个数据,分别与高斯随机矩阵RAM中的对应行数据相乘;2,结果与压缩数据RAM中数据相加;3,将相加结果重新存放到压缩数据RAM中;
步骤四:依此类推直至将FIFO中的动作电位数据处理完毕。数据压缩过程时序如图9所示。
经过上述数据压缩过程之后,获得了压缩数据序列(存储于压缩数据RAM中),每个数据位宽为24bits,与携带时间信息的8bits数据合并为32bits位宽数据。为方便地响应上位机指令将压缩数据上传到PC机中,先将压缩数据搬移到USB模块中的USBRAM中。搬移过程时序如图10所示。
步骤五:将场电位和动作电位观测值进行编码并按照预定的顺序通过USB接口串行地发送到上位机,并完成上位机与板卡通信,实现上位机对板卡工作状态的控制
上位机向硬件***发送指令以及从硬件***中读取实时数据都需要通过USB接口芯片完成,而FPGA中的USB模块完成对USB接口芯片的控制以及与上位机之间数据交换和通信过程。FPGA采用查询的方式读取USB FIFO中的数据指令,当查询得知数据下传通道有指令数据时进入指令处理状态机,如图11所示。
USB模块指令帧结构如图12所示。指令帧长度为8Bytes。根据USB2.0协议,同时为便于区别,设置帧头两个字节分别为0x7E和0x7F。第三个字节A用来区分指令类别:
0x00 自检命令
0x01 选择通道命令
0x02 设定阈值命令
0x03 接收数据命令
0x04 停止接收数据命令
0x05 软件复位命令
0x06 查询USBRAM中存储数据个数命令
最后的5个字节B携带了个指令的相关信息,例如通道数、阈值等。
接收指令数据之后截取其中的有效数据位并进行译码,按照指令信息完成相应操作:自检、设定阈值、选择通道、开始采集数据、停止采集数据。若指令成功处理,FPGA芯片应该向PC上传响应信息,通知PC机控制软件指令处理完成。当接收指令为接收数据命令时,USB模块从USBRAM中读取一组压缩数据序列并与帧头0x7F7E0300组合打包之后传送到CY7C68013A芯片的发送FIFO中。若接收指令为其他命令,则响应帧结构如图13所示。
USB模块采用与其他模块不同的时钟,此时钟是由USB驱动芯片CY7C68013A提供的48M时钟,FPGA芯片根据这一时钟进行数据的读写操作以及对芯片的使能控制,完成通信。USB模块通过SLOE、SLWR和SLRD信号控制数据的传输。在异步模式下,SLWR上升沿时FPGA向CY7C68013A写出数据;SLRD上升沿时,FPGA由CY7C68013A读取数据;SLOE为写数据使能信号。其时序如图14所示。
USB模块按照上述的读写工作模式对CY7C680130A进行控制,其响应阈值设定指令的时序如图15所示。
与USB模块通信的上位机控制软件界面如图16所示。
3、优点及功效:本发明的优点及功效在于:该神经电信号压缩感知采集原理验证***以FPGA核心芯片为核心处理器件,***电路除了FPGA核心芯片工作所需的最小***电路外,只有一个采集多路信号的低速ADC采样芯片和一个负责与主机通信的USB驱动芯片,所有的控制逻辑和协议转换数据处理等都在FPGA中编程实现,这种设计可以大大减小电路的复杂度,从而为未来采集***小型化集成化提供理论和技术验证。另外,在实现动作电位有效信息数据压缩时,采用通过FIFO缓存动作电位有效信息数据与例化于RAM中的伯努利随机矩阵相乘的方法,极大地减少了运算复杂度及资源占用率,降低了对***中各个器件性能的要求。
附图说明
图1为本发明***结构框图
图2 AD7606功能框图
图3 AD7606模拟输入端电阻电容配置原理图
图4 AD7606原理图
图5低通FIR滤波器频率响应及参数设定
图6高通FIR滤波器频率响应及其参数设定
图7正弦波经过FIR高通滤波器的输入输出关系
图8动作电位提取时序
图9数据压缩过程示意图
图10数据压缩过程时序图
图11压缩数据搬移过程时序
图12 USB模块指令处理状态机
图13 USB模块指令帧结构
图14除接收命令外其他命令的响应帧结构
图15(a)Slave FIFO模式下CY7C68013A写入时序;
图15(b)Slave FIFO模式下CY7C68013A读取时序
图16 USB模块响应阈值设定指令时序图
图17上位机控制软件界面
具体实施方式
下面根据发明内容,结合说明书附图,对本发明一种神经电信号压缩感知处理验证***及其构建方法,进行具体说明:
本发明通过硬件编程语言来实现神经电信号的采集逻辑控制、滤波、数据选取判断、压缩感知处理、通信控制等,同时提供全面的神经电信号压缩感知处理方案。
(1)见图1,本发明是一种神经电信号压缩感知处理验证***,包括:FPGA芯片、FPGA芯片最小******电路、ADC(Analog Digital Converter模数转换)采样芯片、电源芯片。它们之间的位置连接关系及信号走向如图1所示,模拟神经电信号经过AD7606芯片转换为数字形式并送入FPGA做压缩感知处理,处理结果通过USB驱动芯片及USB接口上传到上位机。
该核心芯片为FPGA芯片,它在接收到主机通过USB接口驱动芯片传送来的的控制指令信号后,根据控制指令完成信号的模数转换、数字滤波、有效信息选取以及压缩感知处理;在接收到数据回传指令时,将压缩后数据通过USB回传到上位机。
该FPGA芯片最小******电路,包括时钟源和程序加载FLASH,它们负责辅助FPGA核心芯片完成处理功能。时钟源为FPGA核心芯片提供正常工作所需的时钟信号;由于FPGA核心芯片是在断电之后程序自动被清除的,所以必须将程序代码固化到一个程序加载FLASH中,每次上电后,程序加载FLASH中的程序自动加载到FPGA芯片中以使其正常工作。由于FPGA芯片每次上电都要重新加载一次程序,所以要将程序代码固化到程序加载FLASH中。时钟源提供FPGA芯片工作的***时钟,晶体振荡器产生所需要的频率直接传送给FPGA芯片。该晶体振荡器是一个单独的元器件,它是作为FPGA芯片的时钟源。
该ADC采样芯片采用两片8路转一路的低速模数转换芯片AD7606,负责将最多至16路的模拟神经电信号转换为数字信号,并以时分复用的方法直接传送给FPGA芯片。
该电源芯片提供整个***工作所需的电压。外界给***输入+5V的电压,通过电源芯片将+5V的电压转换成***所需要的+3.3V、+1.8V、+1.5V,来分别提供给FPGA核心芯片(+3.3V、+1.5V)、程序加载FLASH(+3.3V、+1.8V)、时钟提供源(+3.3V)、ADC采样芯片(+3.3V)。
(2)本发明一种神经电信号压缩感知处理原理验证***的构建方法,其构建过程概述如下:ADC采样芯片同时采集16路模拟神经电信号送入FPGA芯片中;在FPGA芯片中分别对每路神经电信号进行低通及高通滤波,分别得到神经电信号的场电位及动作电位部分;对场电位信号进行降采样以降低数据量,并送入FPGA芯片内RAM进行缓存;将动作电位与设定阈值作比较,选取有效信息;将得到的数据与压缩感知测量矩阵相乘,获得动作电位信号的观测值,将观测值数据存入FPGA芯片内RAM;将场电位和动作电位观测值进行编码并按照一定的顺序通过USB接口串行地发送到上位机,完成神经电信号采集过程。
综上所述,本发明一种神经电信号压缩感知处理原理验证***的构建方法,该方法具体步骤如下:
步骤一:ADC采样芯片同时采集16路模拟神经电信号并送入FPGA芯片
ADC采样芯片采用Analog Devices公司生产的AD7606,该芯片在低速多通道信号采样领域具有非常优越的性能。单片ADC具有8路模拟输入;输入电压范围最大可达到±10V;输入阻抗1MΩ;16位量化精度;单通道采样率200kSPS;具有非常灵活的串/并行接口;最低功耗100mW。AD7606芯片各通道采样时序采用时分复用的方式,其功能结构图如图2所示。
如图3、4所示,AD7606具有8路模拟输入,按照时分复用的方式对各通道独立进行采样和提取;每一通道都具有输入过压和过流保护、防混叠滤波器、采样保持放大器,16bit模数转换和数字滤波器。
本电路板卡设计两片AD7606芯片,可同时采集16路模拟输入信号。为实现模拟输入端电阻匹配消除偏置以及限流功能,在AD7606每一通道的模拟输入端串联阻值为1k的电阻;同时为增大输入电阻消除干扰,在输入端并联容值为470pf的电容,其原理图如图3所示。在FPGA芯片上编写VHDL程序对两片AD7606芯片进行控制,实现16路信号的并行采集和处理。AD7606芯片原理图如图4所示。将AD配置引脚接入FPGA芯片,通过编程可灵活实现AD7606芯片功能的配置;设置驱动电压Vdrive为2.5V。
步骤二:在FPGA芯片中对输入信号进行低通采样获得场电位信号并下采样
该步骤由FPGA芯片中场电位控制模块完成,场电位控制模块主要将神经电信号中的低频成分(即场电位成分)提取出来,并进行5:1降采样处理。由于此***对线性相位响应没有要求,因此采用Xilinx ISE提供的FIR(Finite Impulse Response有限冲激响应滤波器)滤波器IP核(Xilinx ISE提供完成通用数字信号处理功能的IP核,可以直接调用),按照滤波需求设定相应的参数,其频率响应及参数设定如图5所示。
为了实现场电位信号的降采样,对FIR低通滤波器输出数据进行计数,每隔5个数据拾取一个数据进行后续处理,将其他数据丢弃,以进一步减少传输的数据量。
步骤三:输入信号进行高通滤波,将滤波输出与设定阈值比较选择动作电位中的有效信息,将该固定长度的有效信息数据与测量矩阵相乘,获得动作电位信号的观测值
神经电信号中的动作电位信息包含在其高频成分中,首先将采集得到的神经电信号通过按参数设定的高通FIR滤波器,其频率响应如图6所示。
由AD7606采集得到的数字信号位宽为16bits,经过高通FIR滤波器之后,为保持数据精度不下降,输出位宽扩展为24bits。频率为1kHz的正弦波经过FIR高通滤波器的输入输出关系如图7所示,其中红色线为FIR高通滤波器输入,蓝色线为其输出。如图所示,经过FIR滤波器之后,信号幅度获得固定的倍乘,相位移位90°。
之后监测高通FIR滤波器输出,依次将输出数据经过FIFO(First In First Out,先入先出队列缓冲器)。因为采集动作电位的时间长度为5ms,采样率设定为25kHz,所以有效动作电位数据长度为126个。设定上述FIFO深度为126,位宽24bits。比较FIFO输入端值与由上位机设定的阈值的大小,当比较输入数据满足条件时,将比较指示信号judge_flag置低不再进行阈值比较,此时已有前2ms采集的50个有效数据进入FIFO。之后等待75个数据周期,待全部有效数据都进入FIFO后将移位指示信号shift_flag置低,不再进行FIFO移位直至此次有效动作电位信号处理完成。经过上述选择过程之后,有效的动作电位序列被提取出来。之后经过与预先设定的观测矩阵相乘获得压缩测量数据。上述动作电位提取过程时序如图8所示。
为节约寄存器资源将正负1高斯随机矩阵例化存储于RAM(Rand-Access Memory随机存储器,FPGA核心芯片内部有固化的RAM,可以直接调用)中。设定动作电位有效信息数据压缩率为3:1,高斯随机矩阵规模为126X42,可以将数据长度为126的有效动作电位压缩为长度为42的压缩测量数据。在RAM中用1bit存储1个有效数据:1代表高斯矩阵中的1,0代表高斯矩阵中的-1。RAM使用规模:位宽43,深度126。
移位指示信号shift_flag上升沿表示有效动作电位提取完成,可以进行矩阵相乘以实现数据压缩。数据压缩过程示意图如图9所示,此压缩过程共使用到3个存储单元:高斯随机观测矩阵RAM(43X126)、有效动作电位存储FIFO(43X24)和压缩数据存储RAM(43X24)。其顺序说明如下:1,依次从动作电位存储FIFO中获取一个数据,分别与高斯随机矩阵RAM中的对应行数据相乘;2,结果与压缩数据RAM中数据相加;3,将相加结果重新存放到压缩数据RAM中;
步骤四:依此类推直至将FIFO中的动作电位数据处理完毕。数据压缩过程时序如图10所示。
经过上述数据压缩过程之后,获得了压缩数据序列(存储于压缩数据RAM中),每个数据位宽为24bits,与携带时间信息的8bits数据合并为32bits位宽数据。为方便地响应上位机指令将压缩数据上传到PC机中,先将压缩数据搬移到USB模块中的USBRAM中。搬移过程时序如图11所示。
步骤五:将场电位和动作电位观测值进行编码并按照一定的顺序通过USB接口串行地发送到上位机,并完成上位机与板卡通信,实现上位机对板卡工作状态的控制
上位机向硬件***发送指令以及从硬件***中读取实时数据都需要通过USB接口芯片完成,而FPGA中的USB模块完成对USB接口芯片的控制以及与上位机之间数据交换和通信过程。FPGA采用查询的方式读取USB FIFO中的数据指令,当查询得知数据下传通道有指令数据时进入指令处理状态机,如图12所示。
USB模块指令帧结构如图13所示。指令帧长度为8Bytes。根据USB2.0协议,同时为便于区别,设置帧头两个字节分别为0x7E和0x7F。第三个字节A用来区分指令类别:
0x00 自检命令
0x01 选择通道命令
0x02 设定阈值命令
0x03 接收数据命令
0x04 停止接收数据命令
0x05 软件复位命令
0x06 查询USBRAM中存储数据个数命令
最后的5个字节B携带了个指令的相关信息,例如通道数、阈值等。
接收指令数据之后截取其中的有效数据位并进行译码,按照指令信息完成相应操作:自检、设定阈值、选择通道、开始采集数据、停止采集数据。若指令成功处理,FPGA应该向PC上传响应信息,通知PC机控制软件指令处理完成。当接收指令为接收数据命令时,USB模块从USBRAM中读取一组压缩数据序列并与帧头0x7F7E0300组合打包之后传送到CY7C68013A芯片的发送FIFO中。若接收指令为其他命令,则响应帧结构如图14所示。
USB模块采用与其他模块不同的时钟,此时钟是由USB驱动芯片CY7C68013A提供的48M时钟,FPGA根据这一时钟进行数据的读写操作以及对芯片的使能控制,完成通信。USB模块通过SLOE、SLWR和SLRD信号控制数据的传输。在异步模式下,SLWR上升沿时FPGA芯片向CY7C68013A写入数据;如图15(a)所示。SLRD上升沿时,FPGA芯片由CY7C68013A读取数据;如图15(b)所示.;SLOE为写数据使能信号。
USB模块按照上述的读写工作模式对CY7C680130A进行控制,其响应阈值设定指令的时序如图16所示。
与USB模块通信的上位机控制软件界面如图17所示。
神经电信号压缩感知处理原理验证硬件电路的主要器件为:
FPGA芯片的选择:
选用Xilinx公司的Virtex-4XC4VSX55
Virtex-4系列是Xilinx公司面向从低密集到高密集设计推出的平台级FPGA芯片,该系列FPGA芯片基于IP核和专用模块设计,能够为电信、无线电、网络、视频和数字信号处理领域的应用提供完整的解决方案。
Virtex-4XC4VSX55是Virtex-4家族的一员。具有如下主要特点:
1)49152个可配置逻辑单元(5120个slice);
2)8个DCM(Digital Clock Manager)模块;
3)5760K bits RAM;
4)512个XtrememDSP Slice;
5)640个通用I/O管脚。
此外,Xilinx公司还提供了功能强大的开发平台(ISE),开发者可通过该平台完成全部设计。
程序加载FLASH芯片的选择:
选用Xilinx公司的XCF16P。
XCF16P容量为16Mbit,其存储容量可以支持多种Xilinx公司的FPGA核心芯片进行上电程序加载。
ADC采样芯片的选择:
选用ADI公司的AD7606
AD9433的主要特性如下:
1)采用5V模拟电源和3.3V数字电源供电;
2)采样率为200kSPS时,信噪比高达95.5dB;
3)输入阻抗1MΩ,每通道集成二阶模拟滤波器;
4)具有极好的线性特性:DNL=±0.5LSB
电源芯片的选择:
***电源采用LM1085和PTH05000用作主要电源芯片。
LM1085具有低压差电压的特点,当输出电流为5A时,压差电压仅为0.5V,瞬态响应快,0.015%线路电压调整,0.1%负载调整,有内部电流限制及发热限制,100%通过发热极限老化测试。
PTH05000是一种非隔离、体积小同时性能很高的电源模块。此系列芯片输入电压5V,通过不同阻值的配置电阻可以得到范围在0.9V~3.6V的输出电压,输出电流最高可达6A,效率最高可达94%。是需要考虑空间、性能及成本的应用场合中非常理想的选择。
USB接口驱动芯片选择:
USB接口驱动芯片选择Cypress半导体公司的CY7C68013A芯片。该芯片单片集成USB2.0收发器,智能串行接口引擎(SIE)和增强型8051微处理器,与FX2兼容。具有超低功耗的特点,在任何工作模式下,供电电流Icc都不会超过85mA。具有通用可编程接口(GeneralProgrammable Interface,GPIF),可与大多数并行接口直接相连,可支持多个Ready(RDY)输入和Control(CTL)输出。
***实现结果
应用VHDL硬件描述语言进行编程,将编写好的模块下载至Xilinx Virtex-4XC4VSX55中。实验过程中,使用外置DAC(Digital To Analog Converter,模数转换器)生成模拟神经电信号输入到神经电信号压缩感知处理硬件板卡,通过ChipScope Pro(XilinxISE软件自带的逻辑分析仪)、示波器及PC机进行观察。
整个***在FPGA中占用的资源如下:
表1***资源使用情况
本发明神经电信号压缩感知处理验证***的设计与实现,用VHDL语言在RTL级实现了神经电信号压缩感知测量,并且在实际的实验过程中测试通过,验证了神经电信号压缩感知测量的可行性,并且有以下特点:
硬件电路简单,体积较小,为未来***集成提供了探索和依据。
处理前端采用时分复用的多路采集方式,在压缩感知测量时采用了特殊的方法完成矩阵相乘,降低了对ADC及FPGA性能的要求
主要功能通过编程简单,易于修改,使***具有很大的通用性和灵活性。
完整实现预期的功能,实现简单。
可见,经电信号压缩感知处理验证硬件***具有很高的应用价值,在实际应用中具有很大的通用性和灵活性,有很好的应用前景。
Claims (2)
1.一种神经电信号压缩感知处理验证***,其特征在于:它包括:FPGA芯片、FPGA芯片最小******电路、ADC采样芯片和电源芯片;模拟神经电信号经过ADC采样芯片AD7606转换为数字形式并送入FPGA芯片做压缩感知处理,处理结果通过USB驱动芯片及USB接口上传到上位机,电源芯片与各芯片连接并提供工作电压;
该FPGA芯片是Virtex-4 XC4VSX55,它在接收到主机通过USB驱动芯片传送来的控制指令信号后,根据控制指令完成信号的模数转换、数字滤波、有效信息选取以及压缩感知处理;在接收到数据回传指令时,将压缩后数据通过USB驱动芯片回传到上位机;
该FPGA芯片最小******电路,包括时钟源和程序加载FLASH,它们负责辅助FPGA芯片完成处理功能;时钟源为FPGA芯片提供正常工作所需的时钟信号;由于FPGA芯片是在断电之后程序自动被清除的,所以必须将程序代码固化到一个程序加载FLASH中,每次上电后,程序加载FLASH中的程序自动加载到FPGA芯片中以使其正常工作;由于FPGA芯片每次上电都要重新加载一次程序,所以要将程序代码固化到程序加载FLASH中;时钟源提供FPGA芯片工作的***时钟,晶体振荡器产生所需要的频率直接传送给FPGA芯片;
该ADC采样芯片采用两片8路转一路的低速模数转换芯片AD7606,负责将最多至16路的模拟神经电信号转换为数字信号,并以时分复用的方法直接传送给FPGA芯片;
该电源芯片是LM1085和PTH05000,它提供整个***工作所需的电压;外界给***输入+5V的电压,通过电源芯片将+5V的电压转换成***所需要的+3.3V、+1.8V和+1.5V,来分别提供给FPGA芯片+3.3V和+1.5V;程序加载FLASH+3.3V和+1.8V;时钟源+3.3V;ADC采样芯片+3.3V。
2.一种神经电信号压缩感知处理原理验证***的构建方法,其特征在于:该方法具体步骤如下:
步骤一:ADC采样芯片同时采集16路模拟神经电信号并送入FPGA芯片;
ADC采样芯片AD7606具有8路模拟输入,按照时分复用的方式对各通道独立进行采样和提取;每一通道都具有输入过压和过流保护、防混叠滤波器、采样保持放大器、16bit模数转换和数字滤波器;电路板卡设计两片AD7606芯片,同时采集16路模拟输入信号,为实现模拟输入端电阻匹配消除偏置以及限流功能,在AD7606每一通道的模拟输入端串联阻值为1k的电阻;同时为增大输入电阻消除干扰,在输入端并联容值为470pf的电容,在FPGA芯片上编写VHDL程序对两片AD7606进行控制,实现16路信号的并行采集和处理;
步骤二:在FPGA芯片中对输入信号进行低通采样获得场电位信号并降采样;
该步骤由FPGA芯片中场电位控制模块完成,场电位控制模块主要将神经电信号中的低频成分即场电位成分提取出来,并进行5:1降采样处理;由于此***对线性相位响应没有要求,因此采用Xilinx ISE提供的FIR滤波器IP核,按照滤波需求设定相应的参数;为了实现场电位信号的降采样,对FIR低通滤波器输出数据进行计数,每隔5个数据拾取一个数据进行后续处理,将其他数据丢弃,以进一步减少传输的数据量;
步骤三:对输入信号进行高通滤波,将滤波输出与设定阈值比较选择动作电位中的有效信息,将该有效信息数据与测量矩阵相乘,获得动作电位信号的观测值;神经电信号中的动作电位信息包含在其高频成分中,首先将采集得到的神经电信号通过按参数设定的高通FIR滤波器,由AD7606芯片采集得到的数字信号位宽为16bits,经过高通FIR滤波器之后,为保持数据精度不下降,输出位宽扩展为24bits;经过FIR滤波器之后,信号幅度获得固定的倍乘,相位移位90°;之后监测高通FIR滤波器输出,依次将输出数据经过FIFO即先入先出队列缓冲器,因为采集动作电位的时间长度为5ms,采样率设定为25kHz,所以有效动作电位数据长度为126个;设定上述FIFO深度为126,位宽24bits,比较FIFO输入端值与由上位机设定的阈值的大小,当比较输入数据满足条件时,将比较指示信号judge_flag置低不再进行阈值比较,此时已有前2ms采集的50个有效数据进入FIFO;之后等待75个数据周期,待全部有效数据都进入FIFO后将移位指示信号shift_flag置低,不再进行FIFO移位直至此次有效动作电位信号处理完成;经过上述选择过程之后,有效的动作电位序列被提取出来,之后经过与预先设定的观测矩阵相乘获得压缩测量数据;为节约寄存器资源将正负1高斯随机矩阵例化存储于RAM随机存储器中;设定动作电位有效信息数据压缩率为3:1,高斯随机矩阵规模为126X42,将数据长度为126的有效动作电位压缩为长度为42的压缩测量数据;在RAM中用1bit存储1个有效数据:1代表高斯矩阵中的1,0代表高斯矩阵中的-1;RAM使用规模:位宽43,深度126;移位指示信号shift_flag上升沿表示有效动作电位提取完成,进行矩阵相乘以实现数据压缩;此压缩过程共使用到3个存储单元:高斯随机观测矩阵RAM43X126、有效动作电位存储FIFO 43X24和压缩数据存储RAM 43X24;其顺序说明如下:1,依次从动作电位存储FIFO中获取一个数据,分别与高斯随机矩阵RAM中的对应行数据相乘;2,结果与压缩数据RAM中数据相加;3,将相加结果重新存放到压缩数据RAM中;
步骤四:依此类推直至将FIFO中的动作电位数据处理完毕;
经过上述数据压缩过程之后,获得了压缩数据序列,每个数据位宽为24bits,与携带时间信息的8bits数据合并为32bits位宽数据;为方便地响应上位机指令将压缩数据上传到PC机中,先将压缩数据搬移到USB模块中的USBRAM中;
步骤五:将场电位和动作电位观测值进行编码并按照预定的顺序通过USB接口串行地发送到上位机,并完成上位机与板卡通信,实现上位机对板卡工作状态的控制;
上位机向硬件***发送指令以及从硬件***中读取实时数据都需要通过USB接口完成,而FPGA芯片中的USB模块完成对USB接口的控制以及与上位机之间数据交换和通信过程;FPGA芯片采用查询的方式读取USB FIFO中的数据指令,当查询得知数据下传通道有指令数据时进入指令处理状态机,指令帧长度为8Bytes;根据USB2.0协议,同时为便于区别,设置帧头两个字节分别为0x7E和0x7F,第三个字节A用来区分指令类别:
最后的5个字节B携带了各指令的相关信息;
接收指令数据之后截取其中的有效数据位并进行译码,按照指令信息完成相应操作:自检、设定阈值、选择通道、开始采集数据、停止采集数据;若指令成功处理,FPGA芯片向PC上传响应信息,通知PC机控制软件指令处理完成;当接收指令为接收数据命令时,USB模块从USBRAM中读取一组压缩数据序列并与帧头0x7F7E0300组合打包之后传送到CY7C68013A芯片的发送FIFO中;USB模块采用与其他模块不同的时钟,此时钟是由USB驱动芯片CY7C68013A提供的48M时钟,FPGA芯片根据这一时钟进行数据的读写操作以及对芯片的使能控制,完成通信;USB模块通过SLOE、SLWR和SLRD信号控制数据的传输;在异步模式下,SLWR上升沿时FPGA芯片向CY7C68013A写出数据;SLRD上升沿时,FPGA芯片由CY7C68013A读取数据;SLOE为写数据使能信号;USB模块按照上述的读写工作模式对CY7C680130A进行控制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310606735.4A CN103617140B (zh) | 2013-11-25 | 2013-11-25 | 一种神经电信号压缩感知处理验证***及其构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310606735.4A CN103617140B (zh) | 2013-11-25 | 2013-11-25 | 一种神经电信号压缩感知处理验证***及其构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103617140A CN103617140A (zh) | 2014-03-05 |
CN103617140B true CN103617140B (zh) | 2017-02-15 |
Family
ID=50167843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310606735.4A Active CN103617140B (zh) | 2013-11-25 | 2013-11-25 | 一种神经电信号压缩感知处理验证***及其构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103617140B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016000260A1 (en) * | 2014-07-04 | 2016-01-07 | Abb Technology Ltd | Standalone automation device and machine |
CN105245798B (zh) * | 2015-09-21 | 2018-02-23 | 西安文理学院 | 基于分块压缩感知的ccd 视频压缩测量成像***及控制方法 |
CN106327834A (zh) * | 2016-08-31 | 2017-01-11 | 北京浩坤科技有限公司 | 多通道信号采集设备和方法 |
CN106407568A (zh) * | 2016-10-26 | 2017-02-15 | 天津大学 | 结合有限元分析的帕金森状态下基底核刺激实时仿真平台 |
CN107193240A (zh) * | 2017-07-13 | 2017-09-22 | 江苏易格生物科技有限公司 | 一种高通量生理信号采集分析装置 |
CN107970031B (zh) * | 2017-07-24 | 2024-03-29 | 重庆博泰医疗科技有限公司 | 一种高通量多通道电生理信号记录与刺激*** |
CN109491854B (zh) * | 2017-09-12 | 2022-03-22 | 北京遥感设备研究所 | 一种基于FPGA的SoC原型验证方法 |
CN107562206B (zh) * | 2017-09-15 | 2020-02-07 | 中国科学技术大学 | 一种信号传输、存储和控制*** |
DE102018208118A1 (de) * | 2018-05-23 | 2019-11-28 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Authentifizieren einer über einen Bus übertragenen Nachricht |
CN109684243A (zh) * | 2019-02-21 | 2019-04-26 | 叶勇 | 一种通用型数据采集与信号处理***及其处理方法 |
CN109938696A (zh) * | 2019-03-22 | 2019-06-28 | 江南大学 | 神经电信号压缩感知处理方法及电路 |
CN110866369A (zh) * | 2019-12-16 | 2020-03-06 | 深圳供电局有限公司 | 用于电能表管理芯片验证的***及装置 |
CN112416844B (zh) * | 2020-11-27 | 2022-06-21 | 浙江大学 | 基于FPGA与GPU的Spike信号检测与分类装置 |
CN113033087B (zh) * | 2021-03-17 | 2022-06-07 | 电子科技大学 | 一种基于fpga用于光神经网络的高速数据传输方法 |
CN113011118B (zh) * | 2021-03-30 | 2022-09-16 | 无锡美科微电子技术有限公司 | 一种oled老化工装设计方法 |
CN113598934A (zh) * | 2021-08-28 | 2021-11-05 | 河南省人民医院 | 一种心房颤动的定位标测*** |
CN113741620A (zh) * | 2021-09-14 | 2021-12-03 | 北京坤驰科技有限公司 | 一种多通道信号发生器波形同步方法及*** |
CN114489343A (zh) * | 2022-02-08 | 2022-05-13 | 上海脑虎科技有限公司 | 一种高通道神经信号的数据压缩装置及方法 |
CN114947870A (zh) * | 2022-06-16 | 2022-08-30 | 武汉衷华脑机融合科技发展有限公司 | 一种带有包络检测器的神经接口电路及其控制方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0890905A2 (en) * | 1997-07-08 | 1999-01-13 | Shuttle Technology Limited | Computer interface apparatus |
CN101803917A (zh) * | 2010-03-29 | 2010-08-18 | 华中科技大学 | 一种生物电阻抗成像硬件*** |
CN103049417A (zh) * | 2012-12-18 | 2013-04-17 | 河海大学常州校区 | 一种基于usb传输的多路信号同步采集***装置及方法 |
-
2013
- 2013-11-25 CN CN201310606735.4A patent/CN103617140B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0890905A2 (en) * | 1997-07-08 | 1999-01-13 | Shuttle Technology Limited | Computer interface apparatus |
CN101803917A (zh) * | 2010-03-29 | 2010-08-18 | 华中科技大学 | 一种生物电阻抗成像硬件*** |
CN103049417A (zh) * | 2012-12-18 | 2013-04-17 | 河海大学常州校区 | 一种基于usb传输的多路信号同步采集***装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103617140A (zh) | 2014-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103617140B (zh) | 一种神经电信号压缩感知处理验证***及其构建方法 | |
CN106444505B (zh) | 一种多通道同步信号采集*** | |
CN203038273U (zh) | 多功能数据采集卡 | |
Abdallah et al. | A low-cost stand-alone multichannel data acquisition, monitoring, and archival system with on-chip signal preprocessing | |
CN106294056B (zh) | 芯片调试方法和装置 | |
CN207164980U (zh) | 一种地质灾害数据采集的遥测终端*** | |
CN106725461A (zh) | 微型化低功耗脑电信号采集与无线传输设备 | |
CN109030926A (zh) | 多通道电压采集模块 | |
CN102507190A (zh) | 一种自动数据记录和压缩的发动机试验数据采集*** | |
CN102438106A (zh) | 一种视频采集*** | |
CN203192048U (zh) | 一种高速高过载记录仪 | |
CN101858953A (zh) | 基于arm核芯片的数模转换器自动测试***及其方法 | |
CN208091481U (zh) | 一种数据采集装置 | |
Rieger et al. | A custom-design data logger core for physiological signal recording | |
CN107970031B (zh) | 一种高通量多通道电生理信号记录与刺激*** | |
CN206342471U (zh) | 一种心电信号采集与数据传输*** | |
CN206934102U (zh) | 微型化低功耗脑电信号采集与无线传输设备 | |
Zhang et al. | A low-power implantable neuroprocessor on nano-fpga for brain machine interface applications | |
CN103584857B (zh) | 自存储便携运动肌电信号采集装置 | |
CN201239203Y (zh) | 一种悬尾测试仪 | |
CN206792407U (zh) | 一种语言诱发脑电信号仪 | |
CN107885134A (zh) | 一种基于航电设备的故障数据记录方法及装置 | |
CN208339513U (zh) | 智能生物信息采集*** | |
CN202128702U (zh) | 头皮针常用针刺手法生物力学参数测试分析*** | |
Quiles et al. | Development of a wireless low power datalogger with high performance converter |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |