一种神经电信号压缩感知处理验证系统及其构建方法

文档序号:6520665阅读:324来源:国知局
一种神经电信号压缩感知处理验证系统及其构建方法
【专利摘要】一种神经电信号压缩感知处理验证系统,它包括FPGA芯片、FPGA芯片最小系统外围电路、ADC采样芯片和电源芯片;模拟神经电信号经过ADC采样芯片转换为数字形式并送入FPGA芯片做压缩感知处理,处理结果通过USB驱动芯片及USB接口上传到上位机,电源芯片与各芯片连接并提供工作电压;其构建方法有五大步骤:一、ADC采样芯片同时采集16路模拟神经电信号并送入FPGA芯片;二、在FPGA芯片中对输入信号进行低通采样获得场电位信号并下采样;三、对输入信号进行高通滤波;四、将FIFO中的动作电位数据处理完毕;五:将场电位和动作电位观测值进行编码并按照预定的顺序通过USB接口串行地发送到上位机,并完成上位机与板卡通信,实现上位机对板卡工作状态的控制。
【专利说明】一种神经电信号压缩感知处理验证系统及其构建方法
[0001]技术所域
[0002]本发明涉及一种神经电信号压缩感知处理验证系统及其构建方法,它是一种基于FPGA (Field Programmable Gate Array现场可编程逻辑门阵列)实现的神经电信号采集、压缩、处理、传输系统及实现方法。属于实时数字信号处理【技术领域】。
【背景技术】
[0003]神经系统疾病与脑内庞大的神经元放电活动密切相关,对脑组织中微弱的神经电信号进行高通量检测,有利于进一步了解大脑的功能和研究神经系统疾病的发病机制。为了抑制外界噪声干扰,更加精确地对多点同时进行测量,目前绝大多数神经电信号采集系统采用植入式微电极阵列来记录神经元细胞的放电活动。传统记录方式通过电缆来传输测量到的动作电位,但这会带来诸多问题如限制被测量机体的运动自由、不能充分反映被测者自然的状态、增加脑损伤的风险等。为了克服上述问题,近年来基于无线传输的神经电信号测量系统得到了迅速发展。但同时受到两个因素的限制:
[0004]I)芯片功耗的限制。有研究表明,一个基于ASIC神经信号记录系统的功耗密度必须小于800 u W/mm2,否则会造成脑细胞损伤。此外,植入式ASIC无线神经信号记录系统通常用电池供电,以感应耦合的方式为电池充电,这也限制了系统功耗。
[0005]2)无线传输数据率的限制。神经电信号采集系统通常需要同时采集100路甚至更多路的细胞外电位信息;动作电位信号频谱分布在300Hz-5kHz内,由奈奎斯特采样频率可知采样率应该大于10kHz,实际应用中通常设定采样率为20kHz ;AD量化位数通常采用8-lObits,因此无线传输数据率应该在16Mbit/s左右,这对于无线传输显然是一个巨大的压力。
[0006]基于以上两点原因,必须在信号采集端对数据进行压缩,以减少数据传输量。同时由于ASIC的系统功耗与基于其上的压缩算法复杂度有密切关系,所以要求压缩算法足够简单。
[0007]自2006年D.L.Donoho发表《Compressed sensing》,提出压缩感知理论应用于稀疏信号采集与压缩处理以来,压缩感知理论与应用得到快速发展。D.L.Donoho之后又提出将压缩感知理论应用于MRI医学图像,表明压缩感知即极大的降低了采样数据量而不影响重建图像的分辨率,同时对噪声具有很好的抑制作用。此后压缩感知理论在图像处理领域表现出蓬勃的生命力,被大量应用于医学、雷达图像处理中。
[0008]由于其优良的压缩性能以及成熟的理论基础,压缩感知在信号处理尤其是生物电信号处理领域得到广泛地应用。由于生物电信号具有稀疏、准周期等非常适合压缩感知的特性,同时生物电信号采集遇到系统功耗以及数据量的限制而需要大幅度数据压缩,因此压缩感知成为生物电信号压缩采样的绝佳解决方案。研究者们就压缩感知理论、生物电信号压缩感知处理、基于压缩感知的生物电信号采集系统设计等方面进行了大量深入研究,并取得卓越成就。
[0009]传统神经电信号采集压缩处理所最常采用的方法为小波变换等多尺度、多分辨率几何分析理论,遇到压缩比不能足够大、重建信号失真度大等问题。本发明人将先进的压缩感知理论应用于神经电信号采集系统设计中,以期获取最大的压缩比而不丢失信号的原始信息。本发明设计实现了神经电信号压缩感知处理原理性验证电路系统。该系统以FPGA为核心处理器件,外围电路除了 FPGA工作所需的最小系统电路外,只有两片AD7606数模转换芯片,可以同时将16路模拟神经电信号转换为数字信号送往FPGA处理,一个用来实现FPGA与主机通信的USB (Universal Serial Bus通用串行总线)驱动芯片,所有的控制逻辑及转换数据处理等都在FPGA中编程实现,这种设计可以大大减小电路的复杂度,为未来系统实现集成化构建基本框架,验证可行性。

【发明内容】

[0010]1、目的:本发明的目的在于提供一种神经电信号压缩感知处理验证系统及其构建方法,通过硬件编程语言来实现神经电信号的采集逻辑控制、滤波、数据选取判断、压缩感知处理、通信控制等,同时提供全面的神经电信号压缩感知处理方案。
[0011]2、技术方案:本发明的目的通过以下技术方案来实现。
[0012](I)本发明是一种神经电信号压缩感知处理验证系统,包括:FPGA芯片、FPGA芯片最小系统外围电路、ADC(Analog Digital Converter模数转换)采样芯片、电源芯片。它们之间的位置连接关系及信号走向如图1所示,模拟神经电信号经过ADC采样芯片AD7606转换为数字形式并送入FPGA芯片做压缩感知处理,处理结果通过USB驱动芯片及USB接口上传到上位机,电源芯片与各芯片连接并提供工作电压。
[0013]该FPGA芯片选择Xilinx公司生产的Virtex_4XC4VSX55,它在接收到主机通过USB接口驱动芯片传送来的的控制指令信号后,根据控制指令完成信号的模数转换、数字滤波、有效信息选取以及压缩感知处理;在接收到数据回传指令时,将压缩后数据通过USB回传到上位机。
[0014]该FPGA芯片最小系统外围电路,包括时钟源和程序加载FLASH,它们负责辅助FPGA核心芯片完成处理功能。时钟源为FPGA芯片提供正常工作所需的时钟信号;由于FPGA芯片是在断电之后程序自动被清除的,所以必须将程序代码固化到一个程序加载FLASH中,每次上电后,程序加载FLASH中的程序自动加载到FPGA芯片中以使其正常工作。由于FPGA芯片每次上电都要重新加载一次程序,所以要将程序代码固化到程序加载FLASH中。时钟源提供FPGA芯片工作的系统时钟,晶体振荡器产生所需要的频率直接传送给FPGA芯片。该晶体振荡器是一个单独的元器件,它是作为FPGA芯片的时钟源。
[0015]该ADC采样芯片采用两片8路转一路的低速模数转换芯片AD7606,负责将最多至16路的模拟神经电信号转换为数字信号,并以时分复用的方法直接传送给FPGA核心芯片。
[0016]该电源芯片是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)。
[0017](2)本发明是一种神经电信号压缩感知处理原理验证系统的构建方法,其构建过程概述如下:ADC采样芯片同时采集16路模拟神经电信号送入FPGA处理芯片中;在FPGA中分别对每路神经电信号进行低通及高通滤波,分别得到神经电信号的场电位及动作电位部分;对场电位信号进行降采样以降低数据量,并送入FPGA片内RAM进行缓存;将动作电位与设定阈值作比较,选取有效信息;将得到的数据与压缩感知测量矩阵相乘,获得动作电位信号的观测值,将观测值数据存入FPGA片内RAM ;将场电位和动作电位观测值进行编码并按照一定的顺序通过USB接口串行地发送到上位机,完成神经电信号采集过程。
[0018]综上所述,本发明一种神经电信号压缩感知处理原理验证系统的构建方法,该方法具体步骤如下:
[0019]步骤一:ADC采样芯片同时采集16路模拟神经电信号并送入FPGA芯片
[0020]ADC采样芯片采用Analog Devices公司生产的AD7606,该芯片在低速多通道信号采样领域具有非常优越的性能。单片ADC具有8路模拟输入;输入电压范围最大可达到±10V ;输入阻抗IM Q ; 16位量化精度;单通道采样率200kSPS ;具有非常灵活的串/并行接口 ;最低功耗100mW。AD7606芯片各通道采样时序采用时分复用的方式,其功能结构图如图1所示。
[0021]如图1所示,AD7606具有8路模拟输入,按照时分复用的方式对各通道独立进行采样和提取;每一通道都具有输入过压和过流保护、防混叠滤波器、采样保持放大器,16bit模数转换和数字滤波器。
[0022]本电路板卡设计两片AD7606芯片,可同时采集16路模拟输入信号。为实现模拟输入端电阻匹配消除偏置以及限流功能,在AD7606每一通道的模拟输入端串联阻值为Ik的电阻;同时为增大输入电阻消除干扰,在输入端并联容值为470pf的电容,其原理图如图
2所示。在FPGA上编写VHDL程序对两片AD7606进行控制,实现16路信号的并行采集和处理。AD7606原理图如图3所示。将AD配置引脚接入FPGA,通过编程可灵活实现AD7606功能的配置;设置驱动电压Vtwv6为2.5V。
[0023]步骤二:在FPGA芯片中对输入信号进行低通采样获得场电位信号并下采样
[0024]该步骤由FPGA芯片中场电位控制模块完成,场电位控制模块主要将神经电信号中的低频成分(即场电位成分)提取出来,并进行5:1降采样处理。由于此系统对线性相位响应没有要求,因此采用Xilinx ISE提供的FIR (Finite Impulse Response有限冲激响应滤波器)滤波器IP核(Xilinx ISE提供完成通用数字信号处理功能的IP核,可以直接调用),按照滤波需求设定相应的参数,其频率响应及参数设定如图4所示。
[0025]为了实现场电位信号的降采样,对FIR低通滤波器输出数据进行计数,每隔5个数据拾取一个数据进行后续处理,将其他数据丢弃,以进一步减少传输的数据量。
[0026]步骤三:对输入信号进行高通滤波,将滤波输出与设定阈值比较选择动作电位中的有效信息,将该固定长度的有效信息数据与测量矩阵相乘,获得动作电位信号的观测值
[0027]神经电信号中的动作电位信息包含在其高频成分中,首先将采集得到的神经电信号通过按参数设定的高通FIR滤波器,其频率响应如图5所示。
[0028]由AD7606芯片采集得到的数字信号位宽为16bits,经过高通FIR滤波器之后,为保持数据精度不下降,输出位宽扩展为24bits。频率为IkHz的正弦波经过FIR高通滤波器的输入输出关系如图6所示,其中红色线为FIR高通滤波器输入,蓝色线为其输出。如图所示,经过FIR滤波器之后,信号幅度获得固定的倍乘,相位移位90°。
[0029]之后监测高通FIR滤波器输出,依次将输出数据经过FIFCKFirst In First Out,先入先出队列缓冲器)。因为采集动作电位的时间长度为5ms,采样率设定为25kHz,所以有效动作电位数据长度为126个。设定上述FIFO深度为126,位宽24bits。比较FIFO输入端值与由上位机设定的阈值的大小,当比较输入数据满足条件时,将比较指示信号judge_flag置低不再进行阈值比较,此时已有前2ms采集的50个有效数据进入FIFO。之后等待75个数据周期,待全部有效数据都进入FIFO后将移位指示信号shift_flag置低,不再进行FIFO移位直至此次有效动作电位信号处理完成。经过上述选择过程之后,有效的动作电位序列被提取出来。之后经过与预先设定的观测矩阵相乘获得压缩测量数据。上述动作电位提取过程时序如图7所示。
[0030]为节约寄存器资源将正负I高斯随机矩阵例化存储于RAM (Rand-Access Memory随机存储器,FPGA核心芯片内部有固化的RAM,可以直接调用)中。设定动作电位有效信息数据压缩率为3:1,高斯随机矩阵规模为126X42,可以将数据长度为126的有效动作电位压缩为长度为42的压缩测量数据。在RAM中用Ibit存储I个有效数据:1代表高斯矩阵中的1,0代表高斯矩阵中的-1。RAM使用规模:位宽43,深度126。
[0031]移位指示信号shift_flag上升沿表示有效动作电位提取完成,可以进行矩阵相乘以实现数据压缩。数据压缩过程示意图如图8所示,此压缩过程共使用到3个存储单元:高斯随机观测矩阵RAM(43X126)、有效动作电位存储FIF0(43X24)和压缩数据存储RAM (43X24)。其顺序说明如下:1,依次从动作电位存储FIFO中获取一个数据,分别与高斯随机矩阵RAM中的对应行数据相乘;2,结果与压缩数据RAM中数据相加;3,将相加结果重新存放到压缩数据RAM中;
[0032]步骤四:依此类推直至将FIFO中的动作电位数据处理完毕。数据压缩过程时序如图9所示。
[0033]经过上述数据压缩过程之后,获得了压缩数据序列(存储于压缩数据RAM中),每个数据位宽为24bits,与携带时间信息的8bits数据合并为32bits位宽数据。为方便地响应上位机指令将压缩数据上传到PC机中,先将压缩数据搬移到USB模块中的USBRAM中。搬移过程时序如图10所示。
[0034]步骤五:将场电位和动作电位观测值进行编码并按照预定的顺序通过USB接口串行地发送到上位机,并完成上位机与板卡通信,实现上位机对板卡工作状态的控制
[0035]上位机向硬件系统发送指令以及从硬件系统中读取实时数据都需要通过USB接口芯片完成,而FPGA中的USB模块完成对USB接口芯片的控制以及与上位机之间数据交换和通信过程。FPGA采用查询的方式读取USB FIFO中的数据指令,当查询得知数据下传通道有指令数据时进入指令处理状态机,如图11所示。
[0036]USB模块指令帧结构如图12所示。指令帧长度为8Bytes。根据USB2.0协议,同时为便于区别,设置帧头两个字节分别为0x7E和0x7F。第三个字节A用来区分指令类别:
[0037]0x00 自检命令
[0038]0x01选择通道命令
[0039]0x02设定阈值命令
[0040]0x03接收数据命令
[0041]0x04停止接收数据命令
[0042]0x05软件复位命令
[0043]0x06查询USBRAM中存储数据个数命令[0044]最后的5个字节B携带了个指令的相关信息,例如通道数、阈值等。
[0045]接收指令数据之后截取其中的有效数据位并进行译码,按照指令信息完成相应操作:自检、设定阈值、选择通道、开始采集数据、停止采集数据。若指令成功处理,FPGA芯片应该向PC上传响应信息,通知PC机控制软件指令处理完成。当接收指令为接收数据命令时,USB模块从USBRAM中读取一组压缩数据序列并与帧头0x7F7E0300组合打包之后传送到CY7C68013A芯片的发送FIFO中。若接收指令为其他命令,则响应帧结构如图13所示。
[0046]USB模块采用与其他模块不同的时钟,此时钟是由USB驱动芯片CY7C68013A提供的48M时钟,FPGA芯片根据这一时钟进行数据的读写操作以及对芯片的使能控制,完成通信。USB模块通过SLOE、SLWR和SLRD信号控制数据的传输。在异步模式下,SLWR上升沿时FPGA向CY7C68013A写出数据;SLRD上升沿时,FPGA由CY7C68013A读取数据;SL0E为写数据使能信号。其时序如图14所示。
[0047]USB模块按照上述的读写工作模式对CY7C680130A进行控制,其响应阈值设定指令的时序如图15所示。
[0048]与USB模块通信的上位机控制软件界面如图16所示。
[0049]3、优点及功效:本发明的优点及功效在于:该神经电信号压缩感知采集原理验证系统以FPGA核心芯片为核心处理器件,外围电路除了 FPGA核心芯片工作所需的最小系统电路外,只有一个采集多路信号的低速ADC采样芯片和一个负责与主机通信的USB驱动芯片,所有的控制逻辑和协议转换数据处理等都在FPGA中编程实现,这种设计可以大大减小电路的复杂度,从而为未来采集系统小型化集成化提供理论和技术验证。另外,在实现动作电位有效信息数据压缩时,采用通过FIFO缓存动作电位有效信息数据与例化于RAM中的伯努利随机矩阵相乘的方法,极大地减少了运算复杂度及资源占用率,降低了对系统中各个器件性能的要求。
【专利附图】

【附图说明】
[0050]图1为本发明系统结构框图
[0051]图2AD7606功能框图
[0052]图3AD7606模拟输入端电阻电容配置原理图
[0053]图4AD7606 原理图
[0054]图5低通FIR滤波器频率响应及参数设定
[0055]图6高通FIR滤波器频率响应及其参数设定
[0056]图7正弦波经过FIR高通滤波器的输入输出关系
[0057]图8动作电位提取时序
[0058]图9数据压缩过程示意图
[0059]图10数据压缩过程时序图
[0060]图11压缩数据搬移过程时序
[0061]图12USB模块指令处理状态机
[0062]图13USB模块指令帧结构
[0063]图14除接收命令外其他命令的响应帧结构
[0064]图15 (a) Slave FIFO 模式下 CY7C68013A 写入时序;[0065]图15 (b) Slave FIFO 模式下 CY7C68013A 读取时序
[0066]图16USB模块响应阈值设定指令时序图
[0067]图17上位机控制软件界面
【具体实施方式】
[0068]下面根据
【发明内容】
,结合说明书附图,对本发明一种神经电信号压缩感知处理验证系统及其构建方法,进行具体说明:
[0069]本发明通过硬件编程语言来实现神经电信号的采集逻辑控制、滤波、数据选取判断、压缩感知处理、通信控制等,同时提供全面的神经电信号压缩感知处理方案。
[0070](I)见图1,本发明是一种神经电信号压缩感知处理验证系统,包括:FPGA芯片、FPGA芯片最小系统外围电路、ADC(Analog Digital Converter模数转换)采样芯片、电源芯片。它们之间的位置连接关系及信号走向如图1所示,模拟神经电信号经过AD7606芯片转换为数字形式并送入FPGA做压缩感知处理,处理结果通过USB驱动芯片及USB接口上传到上位机。
[0071]该核心芯片为FPGA芯片,它在接收到主机通过USB接口驱动芯片传送来的的控制指令信号后,根据控制指令完成信号的模数转换、数字滤波、有效信息选取以及压缩感知处理;在接收到数据回传指令时,将压缩后数据通过USB回传到上位机。
[0072]该FPGA芯片最小系统外围电路,包括时钟源和程序加载FLASH,它们负责辅助FPGA核心芯片完成处理功能。时钟源为FPGA核心芯片提供正常工作所需的时钟信号;由于FPGA核心芯片是在断电之后程序自动被清除的,所以必须将程序代码固化到一个程序加载FLASH中,每次上电后,程序加载FLASH中的程序自动加载到FPGA芯片中以使其正常工作。由于FPGA芯片每次上电都要重新加载一次程序,所以要将程序代码固化到程序加载FLASH中。时钟源提供FPGA芯片工作的系统时钟,晶体振荡器产生所需要的频率直接传送给FPGA芯片。该晶体振荡器是一个单独的元器件,它是作为FPGA芯片的时钟源。
[0073]该ADC采样芯片采用两片8路转一路的低速模数转换芯片AD7606,负责将最多至16路的模拟神经电信号转换为数字信号,并以时分复用的方法直接传送给FPGA芯片。
[0074]该电源芯片提供整个系统工作所需的电压。外界给系统输入+5V的电压,通过电源芯片将+5V的电压转换成系统所需要的+3.3V、+1.8V、+1.5V,来分别提供给FPGA核心芯片(+3.3V、+1.5V)、程序加载FLASH (+3.3V、+1.8V)、时钟提供源(+3.3V)、ADC采样芯片(+3.3V)。
[0075](2)本发明一种神经电信号压缩感知处理原理验证系统的构建方法,其构建过程概述如下:ADC采样芯片同时采集16路模拟神经电信号送入FPGA芯片中;在FPGA芯片中分别对每路神经电信号进行低通及高通滤波,分别得到神经电信号的场电位及动作电位部分;对场电位信号进行降采样以降低数据量,并送入FPGA芯片内RAM进行缓存;将动作电位与设定阈值作比较,选取有效信息;将得到的数据与压缩感知测量矩阵相乘,获得动作电位信号的观测值,将观测值数据存入FPGA芯片内RAM ;将场电位和动作电位观测值进行编码并按照一定的顺序通过USB接口串行地发送到上位机,完成神经电信号采集过程。
[0076]综上所述,本发明一种神经电信号压缩感知处理原理验证系统的构建方法,该方法具体步骤如下:[0077]步骤一:ADC采样芯片同时采集16路模拟神经电信号并送入FPGA芯片
[0078]ADC采样芯片采用Analog Devices公司生产的AD7606,该芯片在低速多通道信号采样领域具有非常优越的性能。单片ADC具有8路模拟输入;输入电压范围最大可达到±10V ;输入阻抗IM Q ; 16位量化精度;单通道采样率200kSPS ;具有非常灵活的串/并行接口 ;最低功耗100mW。AD7606芯片各通道采样时序采用时分复用的方式,其功能结构图如图2所示。
[0079]如图3、4所示,AD7606具有8路模拟输入,按照时分复用的方式对各通道独立进行采样和提取;每一通道都具有输入过压和过流保护、防混叠滤波器、采样保持放大器,16bit模数转换和数字滤波器。
[0080]本电路板卡设计两片AD7606芯片,可同时采集16路模拟输入信号。为实现模拟输入端电阻匹配消除偏置以及限流功能,在AD7606每一通道的模拟输入端串联阻值为Ik的电阻;同时为增大输入电阻消除干扰,在输入端并联容值为470pf的电容,其原理图如图3所示。在FPGA芯片上编写VHDL程序对两片AD7606芯片进行控制,实现16路信号的并行采集和处理。AD7606芯片原理图如图4所示。将AD配置引脚接入FPGA芯片,通过编程可灵活实现AD7606芯片功能的配置;设置驱动电压Vtwve为2.5V。
[0081]步骤二:在FPGA芯片中对输入信号进行低通采样获得场电位信号并下采样
[0082]该步骤由FPGA芯片中场电位控制模块完成,场电位控制模块主要将神经电信号中的低频成分(即场电位成分)提取出来,并进行5:1降采样处理。由于此系统对线性相位响应没有要求,因此采用Xilinx ISE提供的FIR (Finite Impulse Response有限冲激响应滤波器)滤波器IP核(Xilinx ISE提供完成通用数字信号处理功能的IP核,可以直接调用),按照滤波需求设定相应的参数,其频率响应及参数设定如图5所示。
[0083]为了实现场电位信号的降采样,对FIR低通滤波器输出数据进行计数,每隔5个数据拾取一个数据进行后续处理,将其他数据丢弃,以进一步减少传输的数据量。
[0084]步骤三:输入信号进行高通滤波,将滤波输出与设定阈值比较选择动作电位中的有效信息,将该固定长度的有效信息数据与测量矩阵相乘,获得动作电位信号的观测值
[0085]神经电信号中的动作电位信息包含在其高频成分中,首先将采集得到的神经电信号通过按参数设定的高通FIR滤波器,其频率响应如图6所示。
[0086]由AD7606采集得到的数字信号位宽为16bits,经过高通FIR滤波器之后,为保持数据精度不下降,输出位宽扩展为24bits。频率为IkHz的正弦波经过FIR高通滤波器的输入输出关系如图7所示,其中红色线为FIR高通滤波器输入,蓝色线为其输出。如图所示,经过FIR滤波器之后,信号幅度获得固定的倍乘,相位移位90°。
[0087]之后监测高通FIR滤波器输出,依次将输出数据经过FIFCKFirst In First Out,先入先出队列缓冲器)。因为采集动作电位的时间长度为5ms,采样率设定为25kHz,所以有效动作电位数据长度为126个。设定上述FIFO深度为126,位宽24bits。比较FIFO输入端值与由上位机设定的阈值的大小,当比较输入数据满足条件时,将比较指示信号judge_flag置低不再进行阈值比较,此时已有前2ms采集的50个有效数据进入FIFO。之后等待75个数据周期,待全部有效数据都进入FIFO后将移位指示信号shift_flag置低,不再进行FIFO移位直至此次有效动作电位信号处理完成。经过上述选择过程之后,有效的动作电位序列被提取出来。之后经过与预先设定的观测矩阵相乘获得压缩测量数据。上述动作电位提取过程时序如图8所示。
[0088]为节约寄存器资源将正负I高斯随机矩阵例化存储于RAM (Rand-Access Memory随机存储器,FPGA核心芯片内部有固化的RAM,可以直接调用)中。设定动作电位有效信息数据压缩率为3:1,高斯随机矩阵规模为126X42,可以将数据长度为126的有效动作电位压缩为长度为42的压缩测量数据。在RAM中用Ibit存储I个有效数据:1代表高斯矩阵中的1,0代表高斯矩阵中的-1。RAM使用规模:位宽43,深度126。
[0089]移位指示信号shift_flag上升沿表示有效动作电位提取完成,可以进行矩阵相乘以实现数据压缩。数据压缩过程示意图如图9所示,此压缩过程共使用到3个存储单元:高斯随机观测矩阵RAM(43X126)、有效动作电位存储FIF0(43X24)和压缩数据存储RAM(43X24)。其顺序说明如下:1,依次从动作电位存储FIFO中获取一个数据,分别与高斯随机矩阵RAM中的对应行数据相乘;2,结果与压缩数据RAM中数据相加;3,将相加结果重新存放到压缩数据RAM中;
[0090]步骤四:依此类推直至将FIFO中的动作电位数据处理完毕。数据压缩过程时序如图10所示。
[0091]经过上述数据压缩过程之后,获得了压缩数据序列(存储于压缩数据RAM中),每个数据位宽为24bits,与携带时间信息的8bits数据合并为32bits位宽数据。为方便地响应上位机指令将压缩数据上传到PC机中,先将压缩数据搬移到USB模块中的USBRAM中。搬移过程时序如图11所示。
[0092]步骤五:将场电位和动作电位观测值进行编码并按照一定的顺序通过USB接口串行地发送到上位机,并完成上位机与板卡通信,实现上位机对板卡工作状态的控制
[0093]上位机向硬件系统发送指令以及从硬件系统中读取实时数据都需要通过USB接口芯片完成,而FPGA中的USB模块完成对USB接口芯片的控制以及与上位机之间数据交换和通信过程。FPGA采用查询的方式读取USB FIFO中的数据指令,当查询得知数据下传通道有指令数据时进入指令处理状态机,如图12所示。
[0094]USB模块指令帧结构如图13所示。指令帧长度为8Bytes。根据USB2.0协议,同时为便于区别,设置帧头两个字节分别为0x7E和0x7F。第三个字节A用来区分指令类别:
[0095]0x00 自检命令
[0096]0x01选择通道命令
[0097]0x02设定阈值命令
[0098]0x03接收数据命令
[0099]0x04停止接收数据命令
[0100]0x05软件复位命令
[0101]0x06查询USBRAM中存储数据个数命令
[0102]最后的5个字节B携带了个指令的相关信息,例如通道数、阈值等。
[0103]接收指令数据之后截取其中的有效数据位并进行译码,按照指令信息完成相应操作:自检、设定阈值、选择通道、开始采集数据、停止采集数据。若指令成功处理,FPGA应该向PC上传响应信息,通知PC机控制软件指令处理完成。当接收指令为接收数据命令时,USB模块从USBRAM中读取一组压缩数据序列并与帧头0x7F7E0300组合打包之后传送到CY7C68013A芯片的发送FIFO中。若接收指令为其他命令,则响应帧结构如图14所示。[0104]USB模块采用与其他模块不同的时钟,此时钟是由USB驱动芯片CY7C68013A提供的48M时钟,FPGA根据这一时钟进行数据的读写操作以及对芯片的使能控制,完成通信。USB模块通过SL0E、SLWR和SLRD信号控制数据的传输。在异步模式下,SLffR上升沿时FPGA芯片向CY7C68013A写入数据;如图15 (a)所示。SLRD上升沿时,FPGA芯片由CY7C68013A读取数据;如图15 (b)所示.;SL0E为写数据使能信号。
[0105]USB模块按照上述的读写工作模式对CY7C680130A进行控制,其响应阈值设定指令的时序如图16所示。
[0106]与USB模块通信的上位机控制软件界面如图17所示。
[0107]神经电信号压缩感知处理原理验证硬件电路的主要器件为:
[0108]FPGA芯片的选择:
[0109]选用XiIinx 公司的 Virtex-4XC4VSX55
[0110]Virtex-4系列是Xilinx公司面向从低密集到高密集设计推出的平台级FPGA芯片,该系列FPGA芯片基于IP核和专用模块设计,能够为电信、无线电、网络、视频和数字信号处理领域的应用提供完整的解决方案。
[0111]Virtex-4XC4VSX55是Virtex-4家族的一员。具有如下主要特点:
[0112]I) 49152个可配置逻辑单元(5120个slice);
[0113]2) 8 个 DCM (Digital Clock Manager)模块;
[0114]3) 5760K bits RAM ;
[0115]4) 512 个 XtrememDSP Slice ;
[0116]5) 640个通用I/O管脚。
[0117]此外,Xilinx公司还提供了功能强大的开发平台(ISE),开发者可通过该平台完成全部设计。
[0118]程序加载FLASH芯片的选择:
[0119]选用Xilinx 公司的 XCF16P。
[0120]XCF16P容量为16Mbit,其存储容量可以支持多种Xilinx公司的FPGA核心芯片进行上电程序加载。
[0121]ADC采样芯片的选择:
[0122]选用ADI公司的AD7606
[0123]AD9433的主要特性如下:
[0124]I)采用5V模拟电源和3.3V数字电源供电;
[0125]2)采样率为200kSPS时,信噪比高达95.5dB ;
[0126]3)输入阻抗IMQ,每通道集成二阶模拟滤波器;
[0127]4)具有极好的线性特性:DNL=±0.5LSB
[0128]电源芯片的选择:
[0129]系统电源采用LM1085和PTH05000用作主要电源芯片。
[0130]LM1085具有低压差电压的特点,当输出电流为5A时,压差电压仅为0.5V,瞬态响应快,0.015%线路电压调整,0.1%负载调整,有内部电流限制及发热限制,100%通过发热极限老化测试。
[0131]PTH05000是一种非隔离、体积小同时性能很高的电源模块。此系列芯片输入电压5V,通过不同阻值的配置电阻可以得到范围在0.9V~3.6V的输出电压,输出电流最高可达6A,效率最高可达94%。是需要考虑空间、性能及成本的应用场合中非常理想的选择。
[0132]USB接口驱动芯片选择:
[0133]USB接口驱动芯片选择Cypress半导体公司的CY7C68013A芯片。该芯片单片集成USB2.0收发器,智能串行接口引擎(SIE)和增强型8051微处理器,与FX2兼容。具有超低功耗的特点,在任何工作模式下,供电电流Icc都不会超过85mA。具有通用可编程接口(General Programmable Interface, GPIF),可与大多数并行接口直接相连,可支持多个Ready (RDY)输入和 Control (CTL)输出。
[0134]系统实现结果
[0135]应用VHDL硬件描述语言进行编程,将编写好的模块下载至XilinxVirtex_4XC4VSX55 中。实验过程中,使用外置 DAC (Digital To Analog Converter,模数转换器)生成模拟神经电信号输入到神经电信号压缩感知处理硬件板卡,通过ChipScopePro (Xilinx ISE软件自带的逻辑分析仪)、示波器及PC机进行观察。
[0136]整个系统在FPGA中占用的资源如下:
[0137]表1系统资源使用情况
[0138]
【权利要求】
1.一种神经电信号压缩感知处理验证系统,其特征在于:它包括:FPGA芯片、FPGA芯片最小系统外围电路、ADC采样芯片和电源芯片;模拟神经电信号经过ADC采样芯片AD7606转换为数字形式并送入FPGA芯片做压缩感知处理,处理结果通过USB驱动芯片及USB接口上传到上位机,电源芯片与各芯片连接并提供工作电压; 该FPGA芯片是Virtex-4XC4VSX55,它在接收到主机通过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每一通道的模拟输入端串联阻值为Ik的电阻;同时为增大输入电阻消除干扰,在输入端并联容值为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移位直至此次有效动作电位信号处理完成;经过上述选择过程之后,有效的动作电位序列被提取出来,之后经过与预先设定的观测矩阵相乘获得压缩测量数据;为节约寄存器资源将正负I高斯随机矩阵例化存储于RAM随机存储器中;设定动作电位有效信息数据压缩率为3:1,高斯随机矩阵规模为126X42,将数据长度为126的有效动作电位压缩为长度为42的压缩测量数据;在RAM中用Ibit存储I个有效数据:1代表高斯矩阵中的1,0代表高斯矩阵中的-1 ;RAM使用规模:位宽43,深度126 ;移位指示信号shift_flag上升沿表示有效动作电位提取完成,进行矩阵相乘以实现数据压缩;此压缩过程共使用到3个存储单元:高斯随机观测矩阵RAM43X126、有效动作电位存储FIF043X24和压缩数据存储RAM43X24 ;其顺序说明如下:1,依次从动作电位存储FIFO中获取一个数据,分别与高斯随机矩阵RAM中的对应行数据相乘;2,结果与压缩数据RAM中数据相加;3,将相加结果重新存放到压缩数据RAM中; 步骤四:依此类推直至将FIFO中的动作电位数据处理完毕; 经过上述数据压缩过程之后,获得了压缩数据序列,每个数据位宽为24bits,与携带时间信息的8bits数据合并为32bits位宽数据;为方便地响应上位机指令将压缩数据上传到PC机中,先将压缩数据搬移到USB模块中的USBRAM中; 步骤五:将场电位和动作电位观测值进行编码并按照预定的顺序通过USB接口串行地发送到上位机,并完成上位机与板卡通信,实现上位机对板卡工作状态的控制; 上位机向硬件系统发送指令以及从硬件系统中读取实时数据都需要通过USB接口芯片完成,而FPGA中的USB模块完成对USB接口芯片的控制以及与上位机之间数据交换和通信过程;FPGA采用查询的方式读取USB FIFO中的数据指令,当查询得知数据下传通道有指令数据时进入指令处理状态机,指令帧长度为SBytes ;根据USB2.0协议,同时为便于区别,设置帧头两个字节分别为0x7E和0x7F,第三个字节A用来区分指令类别: 0x00 自检命令 0x01选择通道命令 0x02设定阈值命令 0x03接收数据命令 0x04停止接收数据命令 0x05软件复位命令 0x06查询USBRAM中存储数据个数命令 最后的5个字节B携带了个指令的相关信息,例如通道数、阈值; 接收指令数据之后截取其中的有效数据位并进行译码,按照指令信息完成相应操作:自检、设定阈值、选择通道、开始采集数据、停止采集数据;若指令成功处理,FPGA应该向PC上传响应信息,通知PC机控制软件指令处理完成;当接收指令为接收数据命令时,USB模块从USBRAM中读取一组压缩数据序列并与帧头0x7F7E0300组合打包之后传送到CY7C68013A芯片的发送FIFO中;USB模块采用与其他模块不同的时钟,此时钟是由USB驱动芯片CY7C68013A提供的48M时钟,FPGA芯片根据这一时钟进行数据的读写操作以及对芯片的使能控制,完成通信;USB模块通过SLOE、SLffR和SLRD信号控制数据的传输;在异步模式下,SLWR上升沿时FPGA芯片向CY7C68013A写出数据;SLRD上升沿时,FPGA芯片由CY7C68013A读取数据;SL0E为写数据使能信号;USB模块按照上述的读写工作模式对CY7C680130A进行控 制。
【文档编号】G06F13/38GK103617140SQ201310606735
【公开日】2014年3月5日 申请日期:2013年11月25日 优先权日:2013年11月25日
【发明者】张玉玺, 樊文贵, 王晓亮, 袁常顺, 王俊 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1