《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 基于ATmega48的微功耗電刺激器的設(shè)計(jì)

基于ATmega48的微功耗電刺激器的設(shè)計(jì)

2008-07-16
作者:杭和平1, 宋 娟1, 樊曉兵1

  摘 要: 介紹了基于ATmega48單片機(jī)設(shè)計(jì)、用于動(dòng)物實(shí)驗(yàn)的電刺激實(shí)驗(yàn)器的硬件結(jié)構(gòu)和軟件設(shè)計(jì)要點(diǎn)。敘述了ATmega48的特點(diǎn)及其低功耗設(shè)計(jì)的方法,給出了電壓調(diào)整DC/DC" title="DC/DC">DC/DC電路以及輸出脈沖電路的實(shí)現(xiàn)與控制方法。
  關(guān)鍵詞: 刺激器 ATmega48 微功耗" title="微功耗">微功耗設(shè)計(jì)


  運(yùn)動(dòng)障礙性疾病源于不同神經(jīng)遞質(zhì)之間的失衡,而不同部位神經(jīng)細(xì)胞的變形壞死是導(dǎo)致神經(jīng)遞質(zhì)失衡的神經(jīng)生物學(xué)基礎(chǔ)。既往對(duì)運(yùn)動(dòng)性疾病的治療主要通過藥物治療或蒼白球手術(shù)破壞兩種方法。第一種治療途徑或者是療效差,或者是因藥物副作用大患者不能耐受;而第二種途徑即手術(shù)破壞的副作用也特別大。如果能夠刺激腦內(nèi)某一特定的核團(tuán),以改變核團(tuán)的功能活動(dòng),就有可能在一定程度上糾正神經(jīng)遞質(zhì)之間的失衡,從而達(dá)到治療運(yùn)動(dòng)性疾病的目的。自1960年以來,神經(jīng)病學(xué)家和神經(jīng)外科學(xué)家通過研究發(fā)現(xiàn),深部腦刺激(Deep Brain Stimulation, DBS)能夠改善神經(jīng)系統(tǒng)疾病如特發(fā)性震顫和帕金森氏病的某些癥狀。研究人員預(yù)測(cè),DBS還可能用于治療癲癇、疼痛、多發(fā)性硬化、癱瘓、強(qiáng)迫性神經(jīng)癥和抑郁癥等疾病。
  為了研究DBS對(duì)癲癇治療的機(jī)理,首先開發(fā)了微型迷走神經(jīng)電刺激實(shí)驗(yàn)器(Vagus Nerve Stimulator,VNSr),并植入大鼠體內(nèi)進(jìn)行癲癇治療的研究。分別在大鼠出生后35天(Postnatal 35 days, P35)和P60時(shí)埋植神經(jīng)刺激器刺激電極和腦電圖(Electroencephalograph,EEG)記錄電極,借助電刺激器" title="電刺激器">電刺激器發(fā)出一定頻率、脈寬和強(qiáng)度的脈沖刺激迷走神經(jīng),通過觀察動(dòng)物自發(fā)性癲癇發(fā)作(Spontaneous Recurrent Seizures,SRSs)的頻率、皮層和海馬EEG的頻譜變化、水迷宮測(cè)定動(dòng)物的視-空間記憶功能及Timm和Thionin組織染色觀察大腦神經(jīng)病理學(xué)改變,來測(cè)定神經(jīng)刺激器對(duì)癲癇的治療作用。
  電刺激器由植入電極、連接導(dǎo)線及皮下脈沖發(fā)生器三部分組成。脈沖發(fā)生器產(chǎn)生的刺激電流經(jīng)刺激電極刺激迷走神經(jīng)。植入動(dòng)物體內(nèi)的電刺激器需要在設(shè)定的時(shí)間開啟。在一個(gè)時(shí)間間隔里,發(fā)出一定頻率的刺激脈沖電流。本文主要敘述電刺激器的設(shè)計(jì)思想。
1 電刺激器設(shè)計(jì)要求
  本系統(tǒng)中植入動(dòng)物體內(nèi)的電刺激器屬于開環(huán)控制,設(shè)定為間歇式工作方式,根據(jù)前期實(shí)驗(yàn)結(jié)果,結(jié)合參考文獻(xiàn)1提供的參數(shù),刺激器工作間隔時(shí)間為5分半鐘,刺激器每工作30秒,輸出一次刺激電流,然后停止工作5分鐘,如此循環(huán)往復(fù)。工作過程是輸出頻率30Hz、脈寬500μs的刺激電流。為了準(zhǔn)確控制設(shè)定的參數(shù),本系統(tǒng)中嵌入了單片機(jī)。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。


  電刺激器設(shè)計(jì)的關(guān)鍵是高可靠性、微型化和低功耗。因此采用紐扣式電池供電,選用低功耗、微小封裝的高可靠性單片機(jī)和元件。
2 電壓調(diào)整
  本系統(tǒng)采用3V紐扣式鋰電池供電,為了達(dá)到刺激電流的強(qiáng)度要求,需要將電壓提升。電壓的提升應(yīng)選用高效率緊湊型DC/DC進(jìn)行升壓??晒┻x用的緊湊型升壓DC/DC的IC元件很多,例如美國(guó)國(guó)家半導(dǎo)體公司的LM2703、LM2733,凌特公司的LT1615,德州儀器的TPS61040,臺(tái)灣易亨電子的AP1522等等。這幾種IC都是SOT23-5的緊湊型封裝,管腳完全兼容,這也是本系統(tǒng)選用這種IC的原因,不擔(dān)心芯片缺貨,將外圍元件參數(shù)稍做修改就可以對(duì)IC進(jìn)行互換。電壓調(diào)整電路的接線原理圖如圖2所示。


  LT1615是微功耗高效率的升壓DC/DC,輸入電壓范圍為1.5V~15V,適用于最大輸出電流小于100mA的場(chǎng)合。芯片在空載時(shí)的靜態(tài)工作電流為20μA,當(dāng)4腳SHDN為低電平時(shí)關(guān)閉芯片,其靜態(tài)工作電流僅為0.5μA。芯片的工作效率約為75%。輸出電壓值由圖中的R2和R4決定: 。
  使用3V電池直接給單片機(jī)供電。單片機(jī)通過圖中的ON_OFF控制包括DC/DC電路在內(nèi)的外圍電路的供電,在工作的間歇期進(jìn)入休眠狀態(tài)無輸出脈沖時(shí),將ON_OFF設(shè)為高電平,切斷外圍電路的供電,從而有效地降低系統(tǒng)的電流損耗。
3 ATmega48單片機(jī)及其脈沖發(fā)生電路
3.1 ATmega48單片機(jī)及應(yīng)用
  ATmega48單片機(jī)是Atmel公司在2004年底推出的微功耗高性能八位單片機(jī),采用TQFP32緊湊型封裝,批量生產(chǎn)時(shí)還可以選用更小體積的MLF32封裝(尺寸僅為5mm×5mm)。內(nèi)有4KB的Flash程序存儲(chǔ)器、256B的EEPROM和512B的靜態(tài)存儲(chǔ)器。支持ISP串行下載方式。
  ATmega48單片機(jī)為RISC結(jié)構(gòu),在1MHz頻率下速度為1MIPS。系統(tǒng)時(shí)鐘" title="系統(tǒng)時(shí)鐘">系統(tǒng)時(shí)鐘有外部低頻、外部高頻、內(nèi)部RC振蕩器時(shí)鐘等多種工作方式可以選擇。選擇方法是通過編寫熔絲位,并結(jié)合軟件編程與時(shí)鐘相關(guān)的寄存器實(shí)現(xiàn)。選擇單片機(jī)的時(shí)鐘頻率越高,單片機(jī)的功耗也越大。本系統(tǒng)選用128kHz的內(nèi)部RC振蕩器,在工作電壓為3V時(shí),靜態(tài)電流小于60μA。休眠狀態(tài)時(shí)靜態(tài)電流更低。ATmega48單片機(jī)內(nèi)有六種省電休眠模式,可以使儀器在非工作期間進(jìn)入休眠狀態(tài)。ATmega48的系統(tǒng)時(shí)鐘還可以通過編程分頻" title="分頻">分頻進(jìn)一步地降低時(shí)鐘頻率,減小功耗,在儀器休眠期,采用32倍的分頻系數(shù)將時(shí)鐘降低到4kHz。
  ATmega48單片機(jī)內(nèi)有兩個(gè)8位的定時(shí)/計(jì)數(shù)器,一個(gè)16位的定時(shí)/計(jì)數(shù)器,可以滿足本系統(tǒng)對(duì)開啟時(shí)間、脈寬、脈沖頻率的精確控制。另外單片機(jī)還有6個(gè)PWM輸出口,可以用于調(diào)節(jié)儀器的刺激強(qiáng)度。ATmega48單片機(jī)內(nèi)部有獨(dú)立的硬件看門狗時(shí)鐘,可以有效地防止單片機(jī)死機(jī)。
  本系統(tǒng)選用的ATmega48V是ATmega48的低電壓工作的芯片,選用ATmega48V作為電刺激器的主控芯片,幾乎不需要另加其他的元件。ATmega48V可以在1.8V~5.5V范圍的電壓下工作,在電池使用的有效電壓范圍內(nèi),單片機(jī)均可正常工作,能充分利用電池的容量。
3.2 脈沖發(fā)生電路
  通常具有一定驅(qū)動(dòng)功率的脈沖輸出電路首先產(chǎn)生脈沖波形,再將脈沖波形用集成的功率放大器作驅(qū)動(dòng)放大,放大電路工作在線性放大區(qū)。這種放大電路必須具有靜態(tài)電流來維持合適的靜態(tài)工作點(diǎn),功耗較大。為了降低耗電流,本系統(tǒng)的電刺激器用開關(guān)方式生成刺激脈沖。單片機(jī)及其脈沖發(fā)生器電路原理如圖3所示。J1是刺激電極的接線端子,OC0A是ATmega48V定時(shí)器0的PWM輸出口,根據(jù)實(shí)驗(yàn)的要求調(diào)節(jié)輸出強(qiáng)度。用PWM輸出以及R6、R7、C6和C7組成的濾波器調(diào)節(jié)U3A正相的輸入電壓。運(yùn)放U3A接為正相放大方式,放大倍數(shù)由R8和R9決定。Q2為功率放大三極管,增大輸出的驅(qū)動(dòng)能力。Q3工作在開關(guān)狀態(tài),用于控制輸出脈沖的寬度和頻率,當(dāng)ATmega48V的9腳是高電平時(shí),Q3導(dǎo)通,輸出刺激脈沖;導(dǎo)通500μs后,ATmega48V的9腳變到低電平,Q3關(guān)閉,脈沖結(jié)束;按10Hz的頻率循環(huán)往復(fù)。


4 功能實(shí)現(xiàn)及軟件編程
  ATmega48有131條指令,大多是單機(jī)器周期指令,指令系統(tǒng)非常豐富。ATmega48在指令設(shè)計(jì)時(shí)很好地考慮到C語言的操作模式,用C語言編程可以得到很高的代碼效率。ATmega48屬于AVR系列的單片機(jī),常用的用于AVR單片機(jī)開發(fā)的C語言有兩種:AVR-ICC和AVR-GCC。AVR-ICC是商業(yè)的AVR的C語言集成化開發(fā)工具(IDE),界面友好,使用簡(jiǎn)單,有生產(chǎn)和代理商很好的技術(shù)支持。而AVR-GCC是依靠網(wǎng)絡(luò)流行的公開源代碼的自由軟件,可以從網(wǎng)上(http://www.avrfreaks.net)免費(fèi)下載編譯軟件和各種工具軟件。由于AVR-GCC有大量的高手參與開發(fā)和眾多網(wǎng)上參與者的測(cè)試,其軟件的更新速度和代碼效率以及軟件缺陷率的排除都非常出色。但是AVR-GCC是由UNIX平臺(tái)上移植過來的,保留了類似UNIX的操作方式,對(duì)于不熟悉UNIX的WINDOWS用戶,其使用時(shí)入門很困難,只有熟練使用后才能感到其功能的強(qiáng)大。在http://www.avrfreaks.net網(wǎng)上有關(guān)于AVR-GCC的論壇,使用中的許多問題都可以在論壇上得到幫助。由于AVR-GCC具有低廉的使用成本和出色的功能,所以本系統(tǒng)選用AVR-GCC作為編程工具。
  電刺激器在工作的間歇期進(jìn)入休眠狀態(tài)。ATmega48有6種休眠方式,每一種方式休眠的部件不相同,休眠后單片機(jī)的功耗也不同。由于電刺激器在休眠時(shí)要求定時(shí)重新喚醒進(jìn)行工作,必須保留一個(gè)定時(shí)器的工作。因此選用的休眠方式為IDLE,在IDLE方式下定時(shí)器2仍然可以工作。以下是休眠部分的程序。
  set_sleep_mode(SLEEP_MODE_IDLE); //設(shè)置休眠方式為IDLE
  SMCR |= _BV(SE);            //允許休眠
  _asm_ _volatile_ ('sleep' 'nt' :: ); //進(jìn)入休眠
  SMCR &= ~_BV(SE); //從休眠中喚醒,進(jìn)入工作狀態(tài),不允許休眠
  定時(shí)器2用于對(duì)休眠期的時(shí)間間隔計(jì)時(shí)。t2_init_idle(void) 是進(jìn)入休眠狀態(tài)前初始定時(shí)器2的程序,SIGNAL(SIG_OVERFLOW2)是休眠狀態(tài)下定時(shí)器2的中斷服務(wù)程序。每1分鐘定時(shí)器2將會(huì)產(chǎn)生溢出中斷,喚醒單片機(jī)。
  void t2_init_idle(void){ //定時(shí)器2進(jìn)入休眠狀態(tài)前的初始化
  CLKPR=(1<<CLKPCE); //允許改變系統(tǒng)時(shí)鐘;進(jìn)入休眠狀態(tài)前改變系統(tǒng)時(shí)鐘
  CLKPR=0x05; //系統(tǒng)時(shí)鐘的分頻比例為32,系統(tǒng)時(shí)鐘為4kHz
  TCCR2A=0; //定時(shí)器/計(jì)數(shù)器2工作于定時(shí)器方式
  TIMSK2=(1<<TOIE2); //允許定時(shí)器2溢出中斷
  TCCR2B=0x07; //定時(shí)器2時(shí)鐘分頻比例為1024
  TCNT2=32; //定時(shí)器2產(chǎn)生1分鐘定時(shí)的初始值
  }
  SIGNAL(SIG_OVERFLOW2){ //定時(shí)器2溢出的中斷服務(wù)程序
  TCNT2=32; //重置定時(shí)器2產(chǎn)生1分鐘定時(shí)的初始值
  min++; //分鐘計(jì)數(shù)
  }
  當(dāng)喚醒5次,即休眠5分鐘后,單片機(jī)重新進(jìn)入喚醒工作狀態(tài)。在喚醒工作狀態(tài)下,使用定時(shí)器2控制脈沖的寬度和頻率,需要定時(shí)器2重新初始化,并將系統(tǒng)時(shí)鐘恢復(fù)到128kHz(程序略)。
  設(shè)置定時(shí)器0工作于PWM輸出方式,用于控制刺激強(qiáng)度。
  void t0_init(void){ //定時(shí)器0初始化為PWM輸出
  TCCR0B=(1<<CS01); //定時(shí)器0時(shí)鐘分頻比例為8
  TCCR0A=(1<<WGM00)|(1<<WGM01); //快速PWM方式
  TCCR0A|=(1<<COM0B1); //符合時(shí)為低電平,峰值變高
  OCR0B=outv; //輸出電平用OCR0B控制
  }
  系統(tǒng)總程序流程如圖4所示。


  電刺激實(shí)驗(yàn)器的開發(fā)是為了植入大鼠體內(nèi),研究電刺激對(duì)癲癇抑制的機(jī)理。本研究開發(fā)的電刺激實(shí)驗(yàn)器整體結(jié)構(gòu)尺寸為Φ17mm(直徑) x 7mm(厚)。脈沖發(fā)生放大電路用開關(guān)方式實(shí)現(xiàn),大大降低了系統(tǒng)的功耗。采用ATmega48單片機(jī)控制輸出脈沖,精度高、功耗小、工作可靠、可以連續(xù)工作一個(gè)月以上,滿足了實(shí)驗(yàn)的要求。
參考文獻(xiàn)
1 Dieter. S. Vagus nerve stimulation. Martin Dunitz Ltd, 2001
2 AVR ATmega48/88/168 Data Sheet. Atmel Corperation, 2005
3 LT1615 Micropower Step-up DC/DC Converters.Linear Technology Corporation, 1998
4 avr-libc Reference Manual. http://www.avrfreaks.net, 2003

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。