基于ATmega48的微功耗电刺激器的设计
扫描二维码
随时随地手机看文章
为了研究DBS对癫痫治疗的机理,首先开发了微型迷走神经电刺激实验器(Vagus Nerve Stimulator,VNSr),并植入大鼠体内进行癫痫治疗的研究。分别在大鼠出生后35天(Postnatal 35 days, P35)和P60时埋植神经刺激器刺激电极和脑电图(Electroencephalograph,EEG)记录电极,借助电刺激器发出一定频率、脉宽和强度的脉冲刺激迷走神经,通过观察动物自发性癫痫发作(Spontaneous Recurrent Seizures,SRSs)的频率、皮层和海马EEG的频谱变化、水迷宫测定动物的视-空间记忆功能及Timm和Thionin组织染色观察大脑神经病理学改变,来测定神经刺激器对癫痫的治疗作用。
电刺激器由植入电极、连接导线及皮下脉冲发生器三部分组成。脉冲发生器产生的刺激电流经刺激电极刺激迷走神经。植入动物体内的电刺激器需要在设定的时间开启。在一个时间间隔里,发出一定频率的刺激脉冲电流。本文主要叙述电刺激器的设计思想。
1 电刺激器设计要求
本系统中植入动物体内的电刺激器属于开环控制,设定为间歇式工作方式,根据前期实验结果,结合参考文献1提供的参数,刺激器工作间隔时间为5分半钟,刺激器每工作30秒,输出一次刺激电流,然后停止工作5分钟,如此循环往复。工作过程是输出频率30Hz、脉宽500μs的刺激电流。为了准确控制设定的参数,本系统中嵌入了单片机。系统结构框图如图1所示。
电刺激器设计的关键是高可靠性、微型化和低功耗。因此采用纽扣式电池供电,选用低功耗、微小封装的高可靠性单片机和元件。
2 电压调整
本系统采用3V纽扣式锂电池供电,为了达到刺激电流的强度要求,需要将电压提升。电压的提升应选用高效率紧凑型DC/DC进行升压。可供选用的紧凑型升压DC/DC的IC元件很多,例如美国国家半导体公司的LM2703、LM2733,凌特公司的LT1615,德州仪器的TPS61040,台湾易亨电子的AP1522等等。这几种IC都是SOT23-5的紧凑型封装,管脚完全兼容,这也是本系统选用这种IC的原因,不担心芯片缺货,将外围元件参数稍做修改就可以对IC进行互换。电压调整电路的接线原理图如图2所示。
LT1615是微功耗高效率的升压DC/DC,输入电压范围为1.5V~15V,适用于最大输出电流小于100mA的场合。芯片在空载时的静态工作电流为20μA,当4脚SHDN为低电平时关闭芯片,其静态工作电流仅为0.5μA。芯片的工作效率约为75%。输出电压值由图中的R2和R4决定: 。
使用3V电池直接给单片机供电。单片机通过图中的ON_OFF控制包括DC/DC电路在内的外围电路的供电,在工作的间歇期进入休眠状态无输出脉冲时,将ON_OFF设为高电平,切断外围电路的供电,从而有效地降低系统的电流损耗。
3 ATmega48单片机及其脉冲发生电路
3.1 ATmega48单片机及应用
ATmega48单片机是Atmel公司在2004年底推出的微功耗高性能八位单片机,采用TQFP32紧凑型封装,批量生产时还可以选用更小体积的MLF32封装(尺寸仅为5mm×5mm)。内有4KB的Flash程序存储器、256B的EEPROM和512B的静态存储器。支持ISP串行下载方式。
ATmega48单片机为RISC结构,在1MHz频率下速度为1MIPS。系统时钟有外部低频、外部高频、内部RC振荡器时钟等多种工作方式可以选择。选择方法是通过编写熔丝位,并结合软件编程与时钟相关的寄存器实现。选择单片机的时钟频率越高,单片机的功耗也越大。本系统选用128kHz的内部RC振荡器,在工作电压为3V时,静态电流小于60μA。休眠状态时静态电流更低。ATmega48单片机内有六种省电休眠模式,可以使仪器在非工作期间进入休眠状态。ATmega48的系统时钟还可以通过编程分频进一步地降低时钟频率,减小功耗,在仪器休眠期,采用32倍的分频系数将时钟降低到4kHz。
ATmega48单片机内有两个8位的定时/计数器,一个16位的定时/计数器,可以满足本系统对开启时间、脉宽、脉冲频率的精确控制。另外单片机还有6个PWM输出口,可以用于调节仪器的刺激强度。ATmega48单片机内部有独立的硬件看门狗时钟,可以有效地防止单片机死机。
本系统选用的ATmega48V是ATmega48的低电压工作的芯片,选用ATmega48V作为电刺激器的主控芯片,几乎不需要另加其他的元件。ATmega48V可以在1.8V~5.5V范围的电压下工作,在电池使用的有效电压范围内,单片机均可正常工作,能充分利用电池的容量。[!--empirenews.page--]
3.2 脉冲发生电路
通常具有一定驱动功率的脉冲输出电路首先产生脉冲波形,再将脉冲波形用集成的功率放大器作驱动放大,放大电路工作在线性放大区。这种放大电路必须具有静态电流来维持合适的静态工作点,功耗较大。为了降低耗电流,本系统的电刺激器用开关方式生成刺激脉冲。单片机及其脉冲发生器电路原理如图3所示。J1是刺激电极的接线端子,OC0A是ATmega48V定时器0的PWM输出口,根据实验的要求调节输出强度。用PWM输出以及R6、R7、C6和C7组成的滤波器调节U3A正相的输入电压。运放U3A接为正相放大方式,放大倍数由R8和R9决定。Q2为功率放大三极管,增大输出的驱动能力。Q3工作在开关状态,用于控制输出脉冲的宽度和频率,当ATmega48V的9脚是高电平时,Q3导通,输出刺激脉冲;导通500μs后,ATmega48V的9脚变到低电平,Q3关闭,脉冲结束;按10Hz的频率循环往复。
4 功能实现及软件编程
ATmega48有131条指令,大多是单机器周期指令,指令系统非常丰富。ATmega48在指令设计时很好地考虑到C语言的操作模式,用C语言编程可以得到很高的代码效率。ATmega48属于AVR系列的单片机,常用的用于AVR单片机开发的C语言有两种:AVR-ICC和AVR-GCC。AVR-ICC是商业的AVR的C语言集成化开发工具(IDE),界面友好,使用简单,有生产和代理商很好的技术支持。而AVR-GCC是依靠网络流行的公开源代码的自由软件,可以从网上(http://www.avrfreaks.net)免费下载编译软件和各种工具软件。由于AVR-GCC有大量的高手参与开发和众多网上参与者的测试,其软件的更新速度和代码效率以及软件缺陷率的排除都非常出色。但是AVR-GCC是由UNIX平台上移植过来的,保留了类似UNIX的操作方式,对于不熟悉UNIX的WINDOWS用户,其使用时入门很困难,只有熟练使用后才能感到其功能的强大。在http://www.avrfreaks.net网上有关于AVR-GCC的论坛,使用中的许多问题都可以在论坛上得到帮助。由于AVR-GCC具有低廉的使用成本和出色的功能,所以本系统选用AVR-GCC作为编程工具。
电刺激器在工作的间歇期进入休眠状态。ATmega48有6种休眠方式,每一种方式休眠的部件不相同,休眠后单片机的功耗也不同。由于电刺激器在休眠时要求定时重新唤醒进行工作,必须保留一个定时器的工作。因此选用的休眠方式为IDLE,在IDLE方式下定时器2仍然可以工作。以下是休眠部分的程序。
set_sleep_mode(SLEEP_MODE_IDLE); //设置休眠方式为IDLE
SMCR |= _BV(SE); //允许休眠
_asm_ _volatile_ ('sleep' 'nt' :: ); //进入休眠
SMCR &= ~_BV(SE); //从休眠中唤醒,进入工作状态,不允许休眠
定时器2用于对休眠期的时间间隔计时。t2_init_idle(void) 是进入休眠状态前初始定时器2的程序,SIGNAL(SIG_OVERFLOW2)是休眠状态下定时器2的中断服务程序。每1分钟定时器2将会产生溢出中断,唤醒单片机。
void t2_init_idle(void){ //定时器2进入休眠状态前的初始化
CLKPR=(1<<CLKPCE); //允许改变系统时钟;进入休眠状态前改变系统时钟
CLKPR=0x05; //系统时钟的分频比例为32,系统时钟为4kHz
TCCR2A=0; //定时器/计数器2工作于定时器方式
TIMSK2=(1<<TOIE2); //允许定时器2溢出中断
TCCR2B=0x07; //定时器2时钟分频比例为1024
TCNT2=32; //定时器2产生1分钟定时的初始值
}
SIGNAL(SIG_OVERFLOW2){ //定时器2溢出的中断服务程序
TCNT2=32; //重置定时器2产生1分钟定时的初始值
min++; //分钟计数
}
当唤醒5次,即休眠5分钟后,单片机重新进入唤醒工作状态。在唤醒工作状态下,使用定时器2控制脉冲的宽度和频率,需要定时器2重新初始化,并将系统时钟恢复到128kHz(程序略)。
设置定时器0工作于PWM输出方式,用于控制刺激强度。
void t0_init(void){ //定时器0初始化为PWM输出
TCCR0B=(1<<CS01); //定时器0时钟分频比例为8
TCCR0A=(1<<WGM00)|(1<<WGM01); //快速PWM方式
TCCR0A|=(1<<COM0B1); //符合时为低电平,峰值变高
OCR0B=outv; //输出电平用OCR0B控制
}
系统总程序流程如图4所示。
电刺激实验器的开发是为了植入大鼠体内,研究电刺激对癫痫抑制的机理。本研究开发的电刺激实验器整体结构尺寸为Φ17mm(直径) x 7mm(厚)。脉冲发生放大电路用开关方式实现,大大降低了系统的功耗。采用ATmega48单片机控制输出脉冲,精度高、功耗小、工作可靠、可以连续工作一个月以上,满足了实验的要求。