基于ATmega48的微功耗电刺激器的设计

发布时间:2010-8-20 14:34    发布者:lavida
关键词: Atmega48 , 电刺激器
运动障碍性疾病源于不同神经递质之间的失衡,而不同部位神经细胞的变形坏死是导致神经递质失衡的神经生物学基础。既往对运动性疾病的治疗主要通过药物治疗或苍白球手术破坏两种方法。第一种治疗途径或者是疗效差,或者是因药物副作用大患者不能耐受;而第二种途径即手术破坏的副作用也特别大。如果能够刺激脑内某一特定的核团,以改变核团的功能活动,就有可能在一定程度上纠正神经递质之间的失衡,从而达到治疗运动性疾病的目的。自1960年以来,神经病学家和神经外科学家通过研究发现,深部脑刺激(Deep Brain Stimulation, DBS)能够改善神经系统疾病如特发性震颤和帕金森氏病的某些症状。研究人员预测,DBS还可能用于治疗癫痫、疼痛、多发性硬化、瘫痪、强迫性神经症和抑郁症等疾病。  

为了研究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范围的电压下工作,在电池使用的有效电压范围内,单片机均可正常工作,能充分利用电池的容量。  

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单片机控制输出脉冲,精度高、功耗小、工作可靠、可以连续工作一个月以上,满足了实验的要求。
本文地址:https://www.eechina.com/thread-22828-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表