基于SOPC的神经监测系统的设计与实现
2011-06-09彭俊淇黄启俊毛雪莹马启明
彭俊淇 黄启俊* 常 胜 毛雪莹 马启明 周 游
1(武汉大学物理科学与技术学院电子科学与技术系,武汉 430072)
2(武汉科技大学附属天佑医院,武汉 430070)
引言
神经外科手术作为广泛应用的临床手术之一,近年来得到了迅速的发展。作为一种临床手术,潜在的安全隐患可能导致手术的失败。通过对神经信号的监测来发现这些隐患,已成为医生在手术中判断病情的有力工具,此即为神经监测技术。
手术中常用的神经监测方法分为自发性肌电图(spontaneous EMG)和激发性肌电图(triggered EMG)。自发性肌电图也称自由描记肌电图,是在正常状态下通过表面电极或针电极连续记录肌肉静息电活动,手术中神经有牵拉等刺激时就会引起该神经所支配的肌肉产生动作电位而收缩。激(诱)发性肌电图是指有目的地用电刺激神经的方法,使肌肉收缩以描记肌电图。手术中的电刺激方法有恒流刺激和恒压刺激,两种方式各有利弊,但都是临床手术中常用的、安全有效的刺激方法。利用自发肌电图,结合诱发肌电图,可以准确定位面神经,术中可以持续监测自发面肌肌电图,以及时提示术者可能出现的机械性损伤[1]。总之,两种神经监测方法都是利用神经元的电传导特性[2],提取神经电信号中蕴含的丰富信息,然后用仪器对神经信号进行实时监测,帮助外科医生在手术过程中查找或监测运动神经及神经根,便于准确及时了解神经状态,减轻医生的工作压力,帮助避免手术中的各种神经损伤[3]。
利用上述两种神经元的电传导特性,用于临床的神经监测仪主要有两类:一类是肌电图描记系统,一类是机械压力系统。其共同点是:当刺激面神经时,仪器会发出警报声,以引起医生注意。前者通过记录面肌的肌电图(肌肉的复合动作电位),把信号反映在示波仪上,同时发出警报声;后者则通过将面肌的收缩与运动用压力传感器转换为电信号,然后将电信号显示在示波仪上,并发出警报声。相对而言,肌电图系统比机械压力系统更敏感,也是最常用的肌电检测系统。近年来,英国 Neurosign公司先后推出Neurosign 100/400/800/1000 系列神经监测仪器[4],价格非常昂贵。Neurosign 100/400采用纯模拟电路方式实现,在激励源设计、信号获取、分析和显示等方面均有所不足。与此同时,国内这方面的产品少且功能单一。针对Neurosign 100/400的不足及国内市场的需求,本研究设计了一款具有自主知识产权的SOPC神经监测系统。系统的信号采集及放大采用模拟电路,结合数字电路在抗干扰、信号处理分析及显示存储上的优势,通过合理的软硬件划分,充分发挥SOPC软硬协同的长处,还自定义加入了触摸式的控制终端,方便实际使用。
1 系统设计思路
设计目的:设计一款高集成度、低成本的神经监测设备,用于解决术中安全隐患。
设计原理:对监测的神经组织持续产生一个可安全接受的极微小电流并刺激神经[5],根据神经的电传导特性,将产生一个神经电信号,并作用于与该神经组织相连的肌肉组织当中。系统只要从这些肌肉组织中持续采集到与刺激信号同频率的电信号,就可以说明该神经组织是导通的,即是安全的。反之,一旦电信号中断,说明该神经组织受到了损害,可以及时提醒医生进行修复。
设计功能:首先能对神经组织产生脉冲激励信号,刺激产生神经电信号,然后能把采集到的神经电信号自适应放大到AD的采样范围,对神经电信号进行工频陷波,以消除电源噪声影响,再对神经电信号进行参数分析,最后送到显示器,进行波形和参数动态显示以及储存,达到在神经外科手术中监测的目的。功能设计还考虑了检测仪器使用的便捷式和交互性,可供医生方便地进行功能操作,让医生省时省心,让患者安心。
2 系统设计实现
图1给出了基于SOPC的神经监测系统的结构框图,整个设计分为模拟和数字两大部分。模拟部分包括刺激电路、预放大电路、前置处理电路(两通道CH0和CH1)及自适应放大电路。数字部分可分为硬件和软件两部分:硬件部分包括刺激信号的产生、神经电信号的模数转换控制、自适应放大控制、参数分析、信号特征显示;软件部分包括数据总线接口、硬件与软件接口控制、频率和幅度参数分析、数据存储及触摸屏控制模块。具体分为如下10大模块:
·刺激电路产生模块:由数字部分的FPGA产生特定频率的脉冲刺激信号,经模拟部分的电压/电流源转化后刺激神经类信号。
·预放大及前置处理模块:采集来自探针的神经电信号进行放大,经过高通滤波器处理,滤除极化电压及低频噪声,再经过低通滤波,滤除高频噪声。处理后的电压信号整体增益约100倍,频率响应范围为3~1 KHz,供后级信号处理及显示提示电路使用。
· 自适应放大模块:用 FPGA控制 DAC0832,从而控制神经电信号的放大增益,使信号的电压范围适应A/D转换模块的采集范围。
·AD转换模块:由模拟电路和FPGA数字控制协同完成,用FPGA控制MAX197进行模数转化,转换的数据输入到一个先进行出存储器(FIFO)进行缓存。
· 工频陷波模块:采用FPGA纯硬件方式实现,提取缓存的数据,进行数字预处理,去除电源等因素引起的噪声,完成50 Hz的工频陷波。
·参数分析模块:包括测量幅度模块和测量频率模块,对工频陷波后数据进行参数分析,由数字部分软硬协同设计完成。
· 特征显示模块:在触摸屏(LTM)或在VGA上,FPGA控制还原后的神经电信号频率和幅度参数和放大的肌电信号数据以数字和波形形式显示。脉冲刺激信号输出频率和幅度以静态汉字显示,神经电信号以波形显示。
图1 系统结构框图Fig.1 System block diagram
·硬件与软件接口控制模块:包括触摸屏(LTM)与Avalon总线的接口模块,以及信号处理后与Avalon总线的接口模块。
· SD卡存储模块:能够将神经信号数据根据要求存储入SD卡中,再由PC机读取出数据并绘制成波形,以便后续集中分析和对比。
·触摸屏控制模块:通过自定义人机交互界面,进行终端控制。
3 模拟电路部分
模拟电路包括电极、刺激电路和信号处理电路。
3.1 电极
采集神经电信号时需要合适的电极,电极的性能优良与否、电极的类型选择是否适合,将直接影响电信号的采集结果,需要根据手术和实验的不同要求,选用不同类型的电极。考虑到国外探针接口的专用性及购买不便(如 1697—00 Triple needle electrode等),以及SOPC的神经监测系统目前处于实验室研制阶段,电极选用针灸类的探针暂为替代,用 BNC接口刺刀螺母连接器(bayonet nut connector)和同轴电缆进行连接。同轴电缆是一种屏蔽电缆,具有传送信号稳定的优点。以后仪器定型时,可考虑采用国外高性能的探针座。针灸探针的机械性质和几何形状对生物体状态的影响很小,接触阻抗非常小,比较适合做电极。刺激电极有2个针端(V+)和(Vref),供刺激电路使用;采集电极有3个针端(V+)、(Vref)、(V -),供接收肌电信号使用。
3.2 刺激电路
由于要求输出脉冲电流[6],刺激频率选择3~30 Hz可调,脉冲宽度0.2 ms,而脉冲电流不易产生,所以首先由脉冲产生电路产生电压脉冲,频率3~30 Hz,脉冲宽度0.2 ms。然后,经过电压/电流转换电路转换成电流脉冲,转换电路利用可调旋钮,控制输出脉冲的峰值在0.05~5 mA之间。
3.3 前置处理盒电路
前置处理盒电路框图如图2所示,来自探针采集到的神经信号经过前置处理盒后,送到数字电路部分进行进一步处理。
图2 前置处理盒电路框图Fig.2 Block diagram of pre-processing box
1)预放大模块:为了对神经信号进行各种处理和显示,必须首先将神经信号放大到所要求的强度,而预放大模块是信号放大器的核心,具有输入阻抗高、高增益、共模抑制比(CMRR值大)、低噪声和低漂移等基本要求。
预放大电路如图3所示,由输入、滤波和仪用放大器3部分组成。首先对输入信号进行限流,然后经过低通滤波,达到低噪声的要求。同时,输入缓冲器采用电压负反馈,输入阻抗无穷大,可有效地将人体与电路系统隔离,消除信号源内阻高且不稳定的影响。
图3 预放大电路Fig.3 The circuit of Pre-amplifier
2)自适应放大模块[7]:预放大信号经过低通和高通滤波器处理后,频率保持不变,幅度增益约100倍,峰值达到mV级,但仍不满足A/D采样的要求,因而需要进一步放大。由于信号幅度波动较大,如果采用单一的放大增益,放大后的信号幅度可能超出所选 A/D芯片(MAX197)的量程。为了使信号符合MAX197的模拟输入范围(±5 V),二级放大利用D/A芯片(DAC0832)的电阻加权网络,根据输入信号的大小,自动调节输出增益的功能,实现自适应放大功能。
3)光电隔离:为了避免后级数字电路出现的尖峰电压脉冲及电流脉冲串入前级模拟电路,进而伤害到人体,需要光电隔离保护。光电隔离电路的前级为模拟电路,后级为数字电路,前后级所用的电源不同,为此选用电容隔离芯片ISO124搭建光电隔离电路。
4)A/D转换模块:选用美国美信公司(MAXIM)的多输入范围、8通道12位的模数转换器MAX197。使用 MAX197内部时钟模式,在 CLK口外接100 pF电容,对应内部时钟频率为1.56 MHz,采用内部采集控制,采集 CH0及 CH1这两条通道 ±5 V范围内的模拟信号。同时,选用内部参考电压,利用 FPGA进行控制,实现模拟到数字的转换。
依据MAX197对时序要求,采用有限状态机将转换过程分为7个状态跳转过程:(1)初始化,置模拟输入通道选择位为0;(2)根据通道选择位,初始化状态控制字;(3)产生WR_上升沿写入命令字开始转换;(4)判断转换是否完成,若完成则将状态置为E,未完继续等待;(5)将HEBN置0,读取转换结果低8位;(6)将HEBN置1,读取转换结果高4位,并根据通道选择位,将结果存入对应的寄存器中;(7)通道选择位为+1,以便在下个循环中改变输入信号通道,并在此状态下跳转至第二个状态。以此循环,实现两个模拟通道的依次转换及数据读取。
经过转换后,所选模式的输出数据格式为12位双极性数。为方便后续处理,加入数据转换模块将双极性数变为单极性数。同时,由于显示终端的数据只需8位,因此该模块转换后的单极性数只取高8位。
4 数字电路部分
数字电路部分通过Altera公司提供的SOPC工具,将硬件电路和NIOSⅡ软核结合起来,并通过合理的软硬件划分,对信号进行进一步的分析、处理、显示和存储,弥补了国外仪器的不足。
4.1 幅度和频率
信号的幅度直接反映神经信号的强弱。为了让医生更直观地了解神经是否异常,对采集来的刺激信号进行进一步的参数分析将大大提高系统的实用性。为实现神经信号的分析,通过FPGA对工频陷波后的数据进行依次移位寄存,采用Moore型时序状态机进行波形判别。引入除去快速抖动算法,排除干扰信号,准确找出最大值(max_out)和最小值(min_out),然后利用FPGA内部的DSP资源,根据幅度与AD转化的线性关系以及自动增益放大的公式,还原神经信号原始幅度参数。
信号的频率直接反映神经信号变化的快慢。设计中创新采用了NIOSⅡ软核实现等精度测频法,相比传统的单片机实现方法,具有速度快、精度高、灵活性好的特点。通过硬件电路倍频进行同步计数,用NIOSⅡ进行运算处理。经过测试,在使用硬件时钟频率50 MHz、NIOSⅡ时钟频率100 MHz的情况下,测频精度可达小数点后3位。
4.2 工频陷波
一般来说,IIR滤波器[8]的系数是固定的。当数据率很高时,如果数据/系数位数不高、滤波器的阶数又不是特别多,用 FPGA要比用 DSP得到的FIR滤波器效率和性能高得多,并且在硬件资源够用的情况下,用纯硬件实现要比用NIOSⅡ软件实现在速度和稳定性上都有极大的提高。本研究采用纯硬件方式,设计了一个二阶、采样率是20 kHz的带阻滤波器单陷50 Hz,与FIR数字滤波器相比,用较低的阶数就实现了陷波效果,并采用流水性结构实现,仿真结果表明陷波效果良好。硬件综合结果给出模块的最高工作时钟频率达到117.03 MHz,性能稳定可靠。
带阻滤波器参数设计采用 Matlab完成。在FPGA实现中,为节约逻辑资源并获得高速信号处理性能,采用内嵌的乘法器来完成乘累加运算,并且加入流水线操作。为平衡面积和速度,运算前系数扩大了2~20倍,最终输出数据时舍去输出信号的低20位。
经过Modelsim验证后的仿真如图4所示,结果表明经过滤波器陷波后,Matlab产生的50 Hz激励波形数据几乎变成了一条直线。
图4 IIR滤波器的Modelsim仿真Fig.4 Simulation of IIR filter on modelsim
4.3 SD卡存储设计
SD卡需要加入文件系统才能工作,纯硬件难以实现,系统利用NIOS II软核对文件系统支持的优势,通过自定义组件与Avalon总线实现数据通信,从而实现SD卡对数据的存储[9]。当神经监测时,一旦发现异常情况,只需触发开关便可将数据存储到SD卡中,再通过 PC机还原波形,即可进行集中分析和对比。
采集到的神经信号进行模拟前端处理,经过AD转化、数字工频陷波后,一旦此时外部给系统一个存储使能,数据流便会通过 Avalon bus缓存到SDAM中,实现数据流从硬件到软件的结合。接着由软件对SD卡进行写操作,将数据流以文件的形式存储到SD卡中。对于存储到SD卡中的文件,可以方便地通过PC机上的Matlab软件,将数据流还原成波形图形,便于医生以后进行直观的分析。
5 硬件实现和验证
5.1 模拟前置盒和封装后的机箱
Ⅰ型机的模拟前置盒如图5所示,包括刺激电路、AD转化芯片、自动增益放大模块和电源等,实现神经信号的预处理(包括刺激信号的产生、采集、放大和转化等)功能。探针用BNC接口和同轴电缆进行连接。主机如图6所示,面板上的功能主要有电源的开关、音量的调节、刺激脉冲的调节、多通道的切换等。前置盒与主机采用多芯屏蔽航空电缆和航空插头连接。I型机由全模拟电路组成,已经在武汉市汉阳医院进行过3次动物实验。试验时在兔子大腿肌肉的神经旁插入检测电极,利用激励信号刺激神经产生肌电信号,用所研制的神经监测系统将检测到的肌电信号放大,测试出肌电信号的幅度和频率,并与Neurosign 100监测仪做对比测试,所测的结果与Neurosign 100的对比测试数据一致。
图5 前置盒(Ⅰ型机)Fig.5 Front box(First generation product)
图6 仪器主机(Ⅰ型机)Fig.6 Mainframe(First generation product)
本研究给出的基于SOPC的神经监测系统为Ⅱ型机,是在Ⅰ型机的基础上加入了数字部分的处理(包括数字滤波、显示、存储和回放),设计参数(见表1)与I型机相同。目前在实验室测试中,各模块和整机的性能参数与Ⅰ型机相同。
5.2 自定义触摸式控制终端
显示终端如图7所示,主要显示频率、幅度特性参数以及神经脉冲波形,通过触摸操作可以方便地进行刺激频率的调整、采样率的调节、双通道的切换、脉冲的动静转化及数据的存储等。显示的汉字是16×16的点阵,显示分辨率为800像素 ×480像素。
5.3 整体测试结果
图7 触摸式控制终端Fig.7 Touch control terminal
整个系统设计采用QuartusⅡ9.0进行分析综合,采用NiosII 9.0 IDE进行软件调试,利用嵌入式逻辑分析仪(SignalTapⅡ Logic Analyzer,Quartus软件内嵌,美国Altera公司)进行实时测试。由于整个系统构架比较大,所以先进行子模块 Modelsim验证,或在嵌入式逻辑分析仪测试通过后进行整合,再完成整体实时测试。
利用Terasic公司的 DE 0平台,对系统进行下载硬件测试,其显示结果如图7所示,数据结果如表2所示。其中,Vout1为预放大输出电压峰值,Vout2为滤波(高通、低通)后输出电压峰值,A1为前置放大增益,Vout3为自适应放大输出峰值,A2为自适应放大增益,Vout4为最终显示峰值,A3为整体增益。嵌入式逻辑分析仪对关键路径(数模转换)的实时测试如图8所示,其中dout1为双通道的通道1,dout2为通道2。图8中工作的是通道2,ad_data为模数转化的数据,ad_clk、int_、rd_和 wr_为模数转化的驱动控制信号。
表1 技术参数Tab.1 Technical parameters
表2 数据结果Tab.2 Data results
图8 模数转化的SignalTap实时测试Fig.8 Real-time test of modulus transformation by SignalTap
6 讨论和结论
本研究目前在实验室通过信号发生器产生正弦波、方波和脉冲波来模拟神经信号进行测试,表2中的数据为示波器结合嵌入式逻辑分析仪实测所得。嵌入式逻辑分析仪是Quartus软件内嵌的测试工具,可以对数字信号进行实时测试,但受存储的影响,不能同时对所有数字信号进行实时测试,故只列出部分关键路径的实时测试图(见图8)。
和Ⅰ型机相比,Ⅱ型机采用了SOPC的设计思想、FPGA硬件和NIOSⅡ嵌入式软件协同设计的方法。在Ⅰ型机的基础上,加入了数字滤波、分析、显示和存储等,同时采用触摸代替按键控制,弥补了Ⅰ型机在信号处理、分析和人机交互等方面的不足。
本研究针对神经监测的重要性,完成了一个基于FPGA的神经监测解决方案,实现了对外科手术中运动神经的监测,是现代信息技术在医学领域的一个应用。先通过恒定电流刺激肌肉诱发神经电信号,再运用现代信号处理技术对其进行采集、放大、滤波、分析、显示和存储等。在触摸屏上实时观察显示的波形及其分析出来的参数,可以方便医生在手术中操刀,避免不必要的损伤。以后如果加入USB或者其他外设完成数据存储,在数据处理单元引入小波变换、神经网络等现代数字信号处理算法对神经信号进行处理和分析,就可以提供更丰富的生物信息,进一步提高系统的性能。此外,还可以调整电路设计,采用贴片电极,实现肌肉疲劳度测试等应用。
[1]王林综,述傅,先明.听神经瘤术中面神经电生理监测的应用进展[J].立体定向和功能性神经外科杂志,2008,21(2):117-118.
[2]Wei Lingyao.A new theory of nerve conduction[J].IEEE Spectrumll,1966,3(1):123 -124.
[3]Kilgore KL,BhadraN.Highfrequencymammalian nerve conduction block:simulations and experiments[C]//Proceeding of 28thIEEE EMBS Annual International Conference.New York:IEEE,2006:4974-4980.
[4]The Magstim CompanyLimited. Whatarethedifferences between the Neurosign 100,400,800 and 1000?[EB/OL].http://www.neurosign.com/support/faq13.html.2010/2010-11-10.
[5]Woo MY,Campbell B.Asynchronous firing and block of peripheral nerve conduction by 20 Kc alternating current[J].Bulletin Los Angeles Neurological Society,1964,29:87-94.
[6]江冠群,黄启俊,李湘琼,等.生物神经电极放大器系统的设计与实现[J].电子技术,2009,36(7):37-38.
[7]程晓玲,雷淑英.采用D/A转换器实现可编程放大器的设计[J].天津科技大学学报,2005,20(6):62-63.
[8]童位理.基于FPGA的IIR数字滤波器的快捷设计[J].元器件,2007,9(5):36-37.
[9]杨爽,郑丽芳.基于NIOSII和SD卡的数据采集系统的设计[J].核电子学与探测技术,2009,29(4):779-780.