華東師范大學(xué)信息科學(xué)與技術(shù)學(xué)院 王 近 劉 開
腦電信號是腦神經(jīng)細胞群在大腦皮層的電信號活動反映,屬于微弱的生物電信號,包含了全部生理信息,同時也能反映出大部分的病理狀態(tài)。腦電信號可以體現(xiàn)出生物體的健康狀況,甚至可以體現(xiàn)出復(fù)雜的心理與生理狀況。研究腦電信號對臨床疾病的治療有重要的意義,而且對生物電生理學(xué)等領(lǐng)域有一定的推動作用。其中腦機接口是研究腦電信號的主要方式,通過研究小鼠在實施某種特定行為時,其大腦相應(yīng)的腦神經(jīng)反應(yīng)區(qū)神經(jīng)元的工作情況與協(xié)調(diào)機制,為研究大腦如何控制行為提供了一種有效的方法。
以單片機為控制核心的嵌入式系統(tǒng)因其功能專一,可靠,價格便宜,因此在工控,電子智能儀器設(shè)備等領(lǐng)域有著廣泛的應(yīng)用。ATMEL公司的AVR系列單片機采用RISC結(jié)構(gòu),其速度,內(nèi)存容量,外圍接口的集成度,向串行擴展和更適合使用高級語言編程等眾多特性,使其得到了廣泛地應(yīng)用,成為單片機嵌入式系統(tǒng)的主流芯片之一。本文使用ATmega128單片機為控制核心,設(shè)計一種智能小鼠訓(xùn)練系統(tǒng),實現(xiàn)對小鼠行為訓(xùn)練的智能控制,配合腦機接口,檢測出小鼠在某種行為下的大腦的反應(yīng),從而方便了腦電信號的研究。
在該系統(tǒng)中,老鼠被放置于一個密閉的容器中,僅左,中,右三個洞口可以供其探頭,分別稱為a,b,c洞,三個洞口處各置一個高亮度的LED燈與紅外探測器。預(yù)期實現(xiàn)如下功能:
1.任意時刻b洞口處的LED燈亮,小鼠需在b洞探頭;
2.紅外b檢測到小鼠探頭,記錄時間,同時控制蜂鳴器給于一個頻率的聲音并開始計時,高頻聲音指示小鼠應(yīng)向a洞探頭,低頻表示向c洞探頭;
3.若小鼠做出正確的動作,蜂鳴器給予1個正確提示聲音并且控制水泵放水給小鼠以獎勵,記錄該時間,并得出小鼠完成這個過程所用的時間;
4.若小鼠做出錯誤的動作,給予1個錯誤的聲音提示,并且led燈閃爍2下發(fā)出警告,記錄小鼠發(fā)生錯誤的時間以及給予錯誤提示的時間節(jié)點。
小鼠訓(xùn)練流程圖如圖1所示。
1.基本原理
系統(tǒng)主要由單片機紅外發(fā)射接收電路、蜂鳴器電路、水泵電路以及PC與單片機之間的通信部分組成。
硬件部分分為兩個部分:核心控制板以及外圍電路板。控制板由ATmega128構(gòu)成其最小系統(tǒng);外圍電路板由系統(tǒng)所需的外圍設(shè)備電路如:繼電器,紅外等組成。通過編程利用單片機控制外圍電路。
軟件部分利用C語言完成基本系統(tǒng)功能的控制,利用Vb編程的基本控件完成界面功能,單片機與PC機的通信采用串行雙工方式實現(xiàn)雙方之間的命令收發(fā)。
2.單片機ATmega128及其最小系統(tǒng)簡介
ATmega128是Atmel公司8位RISC系列微控制器的最高配置的一款單片機,具有高性能,低功耗的特點,采用哈佛結(jié)構(gòu),通過在一個時鐘周期內(nèi)執(zhí)行一條指令,使其可以取得1MIPS/MHz的性能,從而緩解系統(tǒng)在功耗和處理速度之間的矛盾。內(nèi)部集成了128KB的Flash程序存儲器,4KB的EEPROM和SRAM數(shù)據(jù)存儲器,具有53個可編程I/O口,8個10位ADC轉(zhuǎn)換通道,以及4個獨立的定時/計數(shù)器等。ATmega128片內(nèi)集成了2個全雙工通用同步/異步串行收發(fā)器USART,AVR的USART是一個增強型的,高度靈活的串行通信設(shè)備,除了一般USART所具有的功能外,兩個串口均可以工作于同步或異步方式,使用起來非常靈活。ATmega128AVR有整套的開發(fā)工具,包括C編譯器,宏匯編,程序調(diào)試器/仿真器和評估板。
單片機芯片加上正確的時鐘電路,復(fù)位電路以及電源就可以構(gòu)成其最小系統(tǒng),一個單片機嵌入式系統(tǒng)的核心,就是一個單片機最小系統(tǒng),再根據(jù)實際電路的需要連接相應(yīng)的外設(shè),將編好的程序通過下載電路下載至單片機中,即可構(gòu)成一個單片機嵌入式系統(tǒng)。
1.系統(tǒng)硬件結(jié)構(gòu)設(shè)計
系統(tǒng)硬件結(jié)構(gòu)方框圖如圖2所示。
(1)單片機控制電路
單片機控制電路是系統(tǒng)的控制核心,該電路主要由ATmega128最小系統(tǒng)電路加上必要的外圍接口電路組成。
1)ATmega128有64個引腳,具有豐富的管腳資源,其中有8個端口共53個獨立的可編程I/O引腳,可以通過編程分別設(shè)置其輸入,輸出方式。單片機通過I/O引腳實現(xiàn)對外圍設(shè)備的控制。ATmega128引腳圖如圖3所示。
2)單片機的外部系統(tǒng)時鐘電路由引腳XLAT1與XLAT2外接16MHz石英晶體和電容組成諧振回路,配合片內(nèi)的OSC振蕩電路構(gòu)成振蕩源。外部時鐘電路如圖4所示。
3)復(fù)位電路如圖5所示。正常工作下,電路輸出到復(fù)位引腳上的信號為高電平;由于ATmega128是低電平復(fù)位,當(dāng)按下復(fù)位按鍵時,電容C3迅速放電,復(fù)位引腳上的電平被迅速拉低,單片機復(fù)位;此后VCC通過R16給電容充電,最終C3上的電壓為Vcc,復(fù)位狀態(tài)結(jié)束。
4)電源電路使用LM7805三端穩(wěn)壓芯片,將輸入的12V直流電壓轉(zhuǎn)化為5V輸出,作為單片機及部分外設(shè)的電源。IN4001為整流二極管,對輸入的交流成分進行整流,也對輸入電源正負反接進行保護。12V直流電壓可以由220V交流電通過電源適配器得到,這樣就可以使用220V交流電直接給系統(tǒng)供電。電源電路如圖6所示。
5)ATmega128支持多種下載方式,本電路匹配了2個2X5插針座,分別對用于ISP與JTAG兩種編程下載接口。JTAG口主要用于實現(xiàn)在片調(diào)試仿真和編程,ISP主要為編程下載使用。ISP下載口連線圖如圖7所示,JTAG下載口連線圖如圖8所示。
6)ATmega128提供了兩個全雙工的通用同步/異步串行收發(fā)器USART1與USART2,串行通信需要用到兩個I/O口RXD和TXD。PC機的串行口采用的是標(biāo)準(zhǔn)的RS232接口,單片機的串行接口電平是TTL電平,與RS232的電氣特性不匹配,因此為了使單片機的串行口能與RS232接口通信,必須將串口的輸入/輸出電平進行轉(zhuǎn)換。電路采用MAX232芯片來完成電平轉(zhuǎn)換,通過其電平轉(zhuǎn)換,連接單片機的兩個UART口,實現(xiàn)與PC機的異步通信,AVR系統(tǒng)RS-232接口電路連接圖如圖9所示。
(2)外圍電路
外圍電路由主要由紅外收發(fā)電路,蜂鳴器電路,繼電器控制水閥電路,高亮度LED電路組成。
1)紅外電路,通過一對紅外對管,紅外發(fā)射管根據(jù)其10-20mA的驅(qū)動電流,選擇相應(yīng)的電阻,大約為330歐姆,紅外接受管和一20K歐姆的電阻相連在發(fā)射管一端引出比較信號,另外要引出+5V和GND的引腳來方便與中央控制板相連接。
在中單片機控制板通過LM393構(gòu)成比較器,電路如圖所示,在比較器輸出端接上拉電阻,通過變阻器來調(diào)節(jié)比較電壓,和輸入信號作比較,在紅外接受管有信號時,即在紅外對管前有障礙物時,比較信號會由原來的高電平變?yōu)榈碗娖?,比較器輸出端的電壓也會從高電平變成低電平。紅外模塊電路如圖10所示。
2)蜂鳴器電路如圖11所示。原則上講,用單片機產(chǎn)生各種音樂發(fā)聲原理很簡單,就是由I/O引腳輸出不同頻率的脈沖信號,再將信號放大,推動發(fā)聲器件發(fā)聲(這里是指在要求不高的情況下,用不同頻率的脈沖方波代替正弦波)。
BZ為一個無源蜂鳴器,作為發(fā)聲器件(有源蜂鳴器的發(fā)聲頻率固定,不能使用),I/O口的脈沖輸出經(jīng)過三極管放大驅(qū)動蜂鳴器發(fā)聲;電阻RM1、RM2起到限流和保護作用,電阻RM1的值應(yīng)在5-10歐姆之間,太大了會降低蜂鳴器的發(fā)聲功率;又因為三極管驅(qū)動的為BZ內(nèi)部的電感線圈,所以要加上一個反峰保護器。
圖1 小鼠訓(xùn)練流程圖
圖2 系統(tǒng)硬件框圖
圖3 ATmega128引腳圖
圖4 外部時鐘電路
圖5 單片機復(fù)位電路
圖6 系統(tǒng)電源電路
圖7 ISP下載口連線圖
圖8 JTAG下載口連線圖
圖9 AVR系統(tǒng)RS-232接口電路連接圖
圖10 紅外模塊電路
圖11 蜂鳴器電路
圖12 繼電器控制電磁閥電路
圖13 主程序流程圖
圖14 紅外模塊狀態(tài)轉(zhuǎn)換圖
圖15 上位機系統(tǒng)控制界面
圖16 最小系統(tǒng)板原理圖
圖17 最小系統(tǒng)板PCB
圖18 ATmega28最小系統(tǒng)控制板
3)水泵使用電磁閥實現(xiàn),電磁閥是用電磁控制的工業(yè)設(shè)備,用在工業(yè)控制系統(tǒng)中調(diào)整介質(zhì)的方向、流量、速度和其他的參數(shù)。電磁閥是用電磁的效應(yīng)進行控制,主要的控制方式由繼電器控制。這樣,電磁閥可以配合不同的電路來實現(xiàn)預(yù)期的控制,而控制的精度和靈活性都能夠保證。電磁閥的工作原理就是利用給電磁鐵通電,電磁閥里面的鐵芯運動,來控制流體的通斷。通電時,電磁線圈產(chǎn)生電磁力把關(guān)閉件從閥座上提起,閥門打開;斷電時,電磁力消失,彈簧把關(guān)閉件壓在閥座上,閥門關(guān)閉。
本電路采用2v025-08兩位兩通電磁閥,標(biāo)準(zhǔn)電壓DC12V使用繼電器進行開關(guān)的控制,電路如圖12所示。電磁繼電器一般由鐵芯、線圈、銜鐵、觸點簧片等組成的。只要在線圈兩端加上一定的電壓,線圈中就會流過一定的電流,從而產(chǎn)生電磁效應(yīng),銜鐵就會在電磁力吸引的作用下克服返回彈簧的拉力吸向鐵芯,從而帶動銜鐵的動觸點與靜觸點(常開觸點)吸合。當(dāng)線圈斷電后,電磁的吸力也隨之消失,銜鐵就會在彈簧的反作用力返回原來的位置,使動觸點與原來的靜觸點(常閉觸點)釋放。這樣吸合、釋放,從而達到了在電路中的導(dǎo)通、切斷的目的。對于繼電器的“常開、常閉”觸點,可以這樣來區(qū)分:繼電器線圈未通電時處于斷開狀態(tài)的靜觸點,稱為“常開觸點”;處于接通狀態(tài)的靜觸點稱為“常閉觸點”。繼電器一般有兩股電路,為低壓控制電路和高壓工作電路。
NPN晶體管驅(qū)動時:當(dāng)晶體管Q1基極被輸入高電平時,晶體管飽和導(dǎo)通,集電極變?yōu)榈碗娖?,因此繼電器線圈通電,觸電吸合,電磁閥通電,開始放水。當(dāng)晶體管Q1基極被輸入低電平時,晶體管截止,繼電器線圈斷電,觸電斷開,電磁閥斷電,停止放水。
三極管采用中功率管,導(dǎo)通電流大于300mA。電阻R1為限流作用,限制從I/O流出的電流不能太大,從而保護I/O口,阻值為1KΩ;二極管D1釋放反峰電壓,保護三極管和I/O口不會被反峰電壓擊穿,一般選1N4148;電容C1作用是對繼電器動作時產(chǎn)生的尖峰電壓進行有效的過濾,從而提高系統(tǒng)的可靠性。另外,當(dāng)AVR上電時,I/O口三態(tài)高阻輸入方式,因此使用電阻R2在上電時將三極管的基極電位拉低,三極管截止,從而防止上電誤操作。
2.系統(tǒng)軟件設(shè)計
系統(tǒng)軟件部分分為兩個部分:C語言基本模塊與VB控制界面。
利用C語言完成基本功能的控制,主要分為以下幾個模塊:
(1)主程序模塊
主程序主要進行小鼠訓(xùn)練流程的控制,根據(jù)紅外等外部設(shè)備反饋的結(jié)果判斷小鼠的動作,并分析正誤,控制蜂鳴器及水閥等電路,從而指示小鼠的下一步動作。主程序流程圖如圖13所示。
(2)紅外模塊
紅外模塊主要使用狀態(tài)機的思想分別對三個洞口當(dāng)前監(jiān)測狀態(tài)進行判斷與控制,過程分為4個狀態(tài)。狀態(tài)0為初始狀態(tài),當(dāng)中間洞口的紅外監(jiān)測到小鼠探頭時,進入狀態(tài)1,再次判斷紅外監(jiān)測結(jié)果進行消抖并進入狀態(tài)2;當(dāng)監(jiān)測到小鼠探頭時間超過baseline后,進入狀態(tài)3,并返回當(dāng)前狀態(tài)值;當(dāng)監(jiān)測到小鼠探頭的時間超過delaytime后,進入狀態(tài)4;再次監(jiān)測到小鼠探頭返回狀態(tài)0。狀態(tài)轉(zhuǎn)換圖如圖14所示。
(3)小鼠動作判斷模塊
char judge_act(void)子函數(shù)主要對小鼠動作的正誤進行判斷,并返回判斷結(jié)果,當(dāng)蜂鳴器給出第二個聲音時,高頻指示小鼠應(yīng)在左洞口探頭,低頻指示小鼠應(yīng)在右洞口探頭,該函數(shù)根據(jù)蜂鳴器的發(fā)聲頻率以及紅外監(jiān)測小鼠的動作來判斷是否正確,并返回判斷結(jié)果。
(4)VB模塊
PC的系統(tǒng)控制界面如圖15所示,vb編程的基本控件主要完成控制界面的功能,需要突出的是利用了vb中的MSConn控件完成了串口通信的功能。根據(jù)上述的通信協(xié)議,利用PC機發(fā)出命令(包括開始,暫停,繼續(xù))來控制單片機運行整個邏輯,以及一系列的參數(shù);而單片機則會發(fā)出應(yīng)答包來確認正確收到命令,PC機也同樣利用MSComm控件來接受單片機發(fā)出的命。
如圖16、17、18。
以AVR單片機ATmega128為控制核心的嵌入式智能小鼠控制系統(tǒng)可以實現(xiàn)對小鼠行為訓(xùn)練的智能控制。系統(tǒng)由硬件和軟件部分組成.硬件部分由ATmega128構(gòu)成最小系統(tǒng)控制外設(shè)電路;軟件部分由PC作為上位機,單片機作為下位機,由VB完成編程,控制界面以及串行通信等一系列功能的設(shè)計。該系統(tǒng)硬件結(jié)構(gòu)簡單,軟件功能專一,成本低廉,性能可靠,有助于檢測小鼠在特定行為下的大腦反應(yīng),為腦點信號的研究提供了方便。
[1]馬潮.AVR單片機嵌入式系統(tǒng)原理與應(yīng)用實踐[M].北京航空航天大學(xué)出版社,2011,8(第二版).
[2]查明華.ATMEL ATMEGA128新型微控制器及應(yīng)用[OL].(2013/3/8)[2013/3/9].http://www.cnki.com.cn/Article/CJFDTotal-GYKJ200210022.htm.
[3]張桂香,姚存志.基于ATmega128單片機的智能供電測控系統(tǒng)設(shè)計[OL].(2013/3/8)[2013/3/9].http://lib.cqvip.com/qk/97650X/200908/31169601.html.