華東師范大學信息科學與技術學院 王 近 劉 開
腦電信號是腦神經細胞群在大腦皮層的電信號活動反映,屬于微弱的生物電信號,包含了全部生理信息,同時也能反映出大部分的病理狀態。腦電信號可以體現出生物體的健康狀況,甚至可以體現出復雜的心理與生理狀況。研究腦電信號對臨床疾病的治療有重要的意義,而且對生物電生理學等領域有一定的推動作用。其中腦機接口是研究腦電信號的主要方式,通過研究小鼠在實施某種特定行為時,其大腦相應的腦神經反應區神經元的工作情況與協調機制,為研究大腦如何控制行為提供了一種有效的方法。
以單片機為控制核心的嵌入式系統因其功能專一,可靠,價格便宜,因此在工控,電子智能儀器設備等領域有著廣泛的應用。ATMEL公司的AVR系列單片機采用RISC結構,其速度,內存容量,外圍接口的集成度,向串行擴展和更適合使用高級語言編程等眾多特性,使其得到了廣泛地應用,成為單片機嵌入式系統的主流芯片之一。本文使用ATmega128單片機為控制核心,設計一種智能小鼠訓練系統,實現對小鼠行為訓練的智能控制,配合腦機接口,檢測出小鼠在某種行為下的大腦的反應,從而方便了腦電信號的研究。
在該系統中,老鼠被放置于一個密閉的容器中,僅左,中,右三個洞口可以供其探頭,分別稱為a,b,c洞,三個洞口處各置一個高亮度的LED燈與紅外探測器。預期實現如下功能:
1.任意時刻b洞口處的LED燈亮,小鼠需在b洞探頭;
2.紅外b檢測到小鼠探頭,記錄時間,同時控制蜂鳴器給于一個頻率的聲音并開始計時,高頻聲音指示小鼠應向a洞探頭,低頻表示向c洞探頭;
3.若小鼠做出正確的動作,蜂鳴器給予1個正確提示聲音并且控制水泵放水給小鼠以獎勵,記錄該時間,并得出小鼠完成這個過程所用的時間;
4.若小鼠做出錯誤的動作,給予1個錯誤的聲音提示,并且led燈閃爍2下發出警告,記錄小鼠發生錯誤的時間以及給予錯誤提示的時間節點。
小鼠訓練流程圖如圖1所示。
1.基本原理
系統主要由單片機紅外發射接收電路、蜂鳴器電路、水泵電路以及PC與單片機之間的通信部分組成。
硬件部分分為兩個部分:核心控制板以及外圍電路板。控制板由ATmega128構成其最小系統;外圍電路板由系統所需的外圍設備電路如:繼電器,紅外等組成。通過編程利用單片機控制外圍電路。
軟件部分利用C語言完成基本系統功能的控制,利用Vb編程的基本控件完成界面功能,單片機與PC機的通信采用串行雙工方式實現雙方之間的命令收發。
2.單片機ATmega128及其最小系統簡介
ATmega128是Atmel公司8位RISC系列微控制器的最高配置的一款單片機,具有高性能,低功耗的特點,采用哈佛結構,通過在一個時鐘周期內執行一條指令,使其可以取得1MIPS/MHz的性能,從而緩解系統在功耗和處理速度之間的矛盾。內部集成了128KB的Flash程序存儲器,4KB的EEPROM和SRAM數據存儲器,具有53個可編程I/O口,8個10位ADC轉換通道,以及4個獨立的定時/計數器等。ATmega128片內集成了2個全雙工通用同步/異步串行收發器USART,AVR的USART是一個增強型的,高度靈活的串行通信設備,除了一般USART所具有的功能外,兩個串口均可以工作于同步或異步方式,使用起來非常靈活。ATmega128AVR有整套的開發工具,包括C編譯器,宏匯編,程序調試器/仿真器和評估板。
單片機芯片加上正確的時鐘電路,復位電路以及電源就可以構成其最小系統,一個單片機嵌入式系統的核心,就是一個單片機最小系統,再根據實際電路的需要連接相應的外設,將編好的程序通過下載電路下載至單片機中,即可構成一個單片機嵌入式系統。
1.系統硬件結構設計
系統硬件結構方框圖如圖2所示。
(1)單片機控制電路
單片機控制電路是系統的控制核心,該電路主要由ATmega128最小系統電路加上必要的外圍接口電路組成。
1)ATmega128有64個引腳,具有豐富的管腳資源,其中有8個端口共53個獨立的可編程I/O引腳,可以通過編程分別設置其輸入,輸出方式。單片機通過I/O引腳實現對外圍設備的控制。ATmega128引腳圖如圖3所示。
2)單片機的外部系統時鐘電路由引腳XLAT1與XLAT2外接16MHz石英晶體和電容組成諧振回路,配合片內的OSC振蕩電路構成振蕩源。外部時鐘電路如圖4所示。
3)復位電路如圖5所示。正常工作下,電路輸出到復位引腳上的信號為高電平;由于ATmega128是低電平復位,當按下復位按鍵時,電容C3迅速放電,復位引腳上的電平被迅速拉低,單片機復位;此后VCC通過R16給電容充電,最終C3上的電壓為Vcc,復位狀態結束。
4)電源電路使用LM7805三端穩壓芯片,將輸入的12V直流電壓轉化為5V輸出,作為單片機及部分外設的電源。IN4001為整流二極管,對輸入的交流成分進行整流,也對輸入電源正負反接進行保護。12V直流電壓可以由220V交流電通過電源適配器得到,這樣就可以使用220V交流電直接給系統供電。電源電路如圖6所示。
5)ATmega128支持多種下載方式,本電路匹配了2個2X5插針座,分別對用于ISP與JTAG兩種編程下載接口。JTAG口主要用于實現在片調試仿真和編程,ISP主要為編程下載使用。ISP下載口連線圖如圖7所示,JTAG下載口連線圖如圖8所示。
6)ATmega128提供了兩個全雙工的通用同步/異步串行收發器USART1與USART2,串行通信需要用到兩個I/O口RXD和TXD。PC機的串行口采用的是標準的RS232接口,單片機的串行接口電平是TTL電平,與RS232的電氣特性不匹配,因此為了使單片機的串行口能與RS232接口通信,必須將串口的輸入/輸出電平進行轉換。電路采用MAX232芯片來完成電平轉換,通過其電平轉換,連接單片機的兩個UART口,實現與PC機的異步通信,AVR系統RS-232接口電路連接圖如圖9所示。
(2)外圍電路
外圍電路由主要由紅外收發電路,蜂鳴器電路,繼電器控制水閥電路,高亮度LED電路組成。
1)紅外電路,通過一對紅外對管,紅外發射管根據其10-20mA的驅動電流,選擇相應的電阻,大約為330歐姆,紅外接受管和一20K歐姆的電阻相連在發射管一端引出比較信號,另外要引出+5V和GND的引腳來方便與中央控制板相連接。
在中單片機控制板通過LM393構成比較器,電路如圖所示,在比較器輸出端接上拉電阻,通過變阻器來調節比較電壓,和輸入信號作比較,在紅外接受管有信號時,即在紅外對管前有障礙物時,比較信號會由原來的高電平變為低電平,比較器輸出端的電壓也會從高電平變成低電平。紅外模塊電路如圖10所示。
2)蜂鳴器電路如圖11所示。原則上講,用單片機產生各種音樂發聲原理很簡單,就是由I/O引腳輸出不同頻率的脈沖信號,再將信號放大,推動發聲器件發聲(這里是指在要求不高的情況下,用不同頻率的脈沖方波代替正弦波)。
BZ為一個無源蜂鳴器,作為發聲器件(有源蜂鳴器的發聲頻率固定,不能使用),I/O口的脈沖輸出經過三極管放大驅動蜂鳴器發聲;電阻RM1、RM2起到限流和保護作用,電阻RM1的值應在5-10歐姆之間,太大了會降低蜂鳴器的發聲功率;又因為三極管驅動的為BZ內部的電感線圈,所以要加上一個反峰保護器。

圖1 小鼠訓練流程圖

圖2 系統硬件框圖

圖3 ATmega128引腳圖

圖4 外部時鐘電路

圖5 單片機復位電路

圖6 系統電源電路

圖7 ISP下載口連線圖

圖8 JTAG下載口連線圖

圖9 AVR系統RS-232接口電路連接圖

圖10 紅外模塊電路

圖11 蜂鳴器電路

圖12 繼電器控制電磁閥電路

圖13 主程序流程圖

圖14 紅外模塊狀態轉換圖

圖15 上位機系統控制界面

圖16 最小系統板原理圖

圖17 最小系統板PCB

圖18 ATmega28最小系統控制板
3)水泵使用電磁閥實現,電磁閥是用電磁控制的工業設備,用在工業控制系統中調整介質的方向、流量、速度和其他的參數。電磁閥是用電磁的效應進行控制,主要的控制方式由繼電器控制。這樣,電磁閥可以配合不同的電路來實現預期的控制,而控制的精度和靈活性都能夠保證。電磁閥的工作原理就是利用給電磁鐵通電,電磁閥里面的鐵芯運動,來控制流體的通斷。通電時,電磁線圈產生電磁力把關閉件從閥座上提起,閥門打開;斷電時,電磁力消失,彈簧把關閉件壓在閥座上,閥門關閉。
本電路采用2v025-08兩位兩通電磁閥,標準電壓DC12V使用繼電器進行開關的控制,電路如圖12所示。電磁繼電器一般由鐵芯、線圈、銜鐵、觸點簧片等組成的。只要在線圈兩端加上一定的電壓,線圈中就會流過一定的電流,從而產生電磁效應,銜鐵就會在電磁力吸引的作用下克服返回彈簧的拉力吸向鐵芯,從而帶動銜鐵的動觸點與靜觸點(常開觸點)吸合。當線圈斷電后,電磁的吸力也隨之消失,銜鐵就會在彈簧的反作用力返回原來的位置,使動觸點與原來的靜觸點(常閉觸點)釋放。這樣吸合、釋放,從而達到了在電路中的導通、切斷的目的。對于繼電器的“常開、常閉”觸點,可以這樣來區分:繼電器線圈未通電時處于斷開狀態的靜觸點,稱為“常開觸點”;處于接通狀態的靜觸點稱為“常閉觸點”。繼電器一般有兩股電路,為低壓控制電路和高壓工作電路。
NPN晶體管驅動時:當晶體管Q1基極被輸入高電平時,晶體管飽和導通,集電極變為低電平,因此繼電器線圈通電,觸電吸合,電磁閥通電,開始放水。當晶體管Q1基極被輸入低電平時,晶體管截止,繼電器線圈斷電,觸電斷開,電磁閥斷電,停止放水。
三極管采用中功率管,導通電流大于300mA。電阻R1為限流作用,限制從I/O流出的電流不能太大,從而保護I/O口,阻值為1KΩ;二極管D1釋放反峰電壓,保護三極管和I/O口不會被反峰電壓擊穿,一般選1N4148;電容C1作用是對繼電器動作時產生的尖峰電壓進行有效的過濾,從而提高系統的可靠性。另外,當AVR上電時,I/O口三態高阻輸入方式,因此使用電阻R2在上電時將三極管的基極電位拉低,三極管截止,從而防止上電誤操作。
2.系統軟件設計
系統軟件部分分為兩個部分:C語言基本模塊與VB控制界面。
利用C語言完成基本功能的控制,主要分為以下幾個模塊:
(1)主程序模塊
主程序主要進行小鼠訓練流程的控制,根據紅外等外部設備反饋的結果判斷小鼠的動作,并分析正誤,控制蜂鳴器及水閥等電路,從而指示小鼠的下一步動作。主程序流程圖如圖13所示。
(2)紅外模塊
紅外模塊主要使用狀態機的思想分別對三個洞口當前監測狀態進行判斷與控制,過程分為4個狀態。狀態0為初始狀態,當中間洞口的紅外監測到小鼠探頭時,進入狀態1,再次判斷紅外監測結果進行消抖并進入狀態2;當監測到小鼠探頭時間超過baseline后,進入狀態3,并返回當前狀態值;當監測到小鼠探頭的時間超過delaytime后,進入狀態4;再次監測到小鼠探頭返回狀態0。狀態轉換圖如圖14所示。
(3)小鼠動作判斷模塊
char judge_act(void)子函數主要對小鼠動作的正誤進行判斷,并返回判斷結果,當蜂鳴器給出第二個聲音時,高頻指示小鼠應在左洞口探頭,低頻指示小鼠應在右洞口探頭,該函數根據蜂鳴器的發聲頻率以及紅外監測小鼠的動作來判斷是否正確,并返回判斷結果。
(4)VB模塊
PC的系統控制界面如圖15所示,vb編程的基本控件主要完成控制界面的功能,需要突出的是利用了vb中的MSConn控件完成了串口通信的功能。根據上述的通信協議,利用PC機發出命令(包括開始,暫停,繼續)來控制單片機運行整個邏輯,以及一系列的參數;而單片機則會發出應答包來確認正確收到命令,PC機也同樣利用MSComm控件來接受單片機發出的命。
如圖16、17、18。
以AVR單片機ATmega128為控制核心的嵌入式智能小鼠控制系統可以實現對小鼠行為訓練的智能控制。系統由硬件和軟件部分組成.硬件部分由ATmega128構成最小系統控制外設電路;軟件部分由PC作為上位機,單片機作為下位機,由VB完成編程,控制界面以及串行通信等一系列功能的設計。該系統硬件結構簡單,軟件功能專一,成本低廉,性能可靠,有助于檢測小鼠在特定行為下的大腦反應,為腦點信號的研究提供了方便。
[1]馬潮.AVR單片機嵌入式系統原理與應用實踐[M].北京航空航天大學出版社,2011,8(第二版).
[2]查明華.ATMEL ATMEGA128新型微控制器及應用[OL].(2013/3/8)[2013/3/9].http://www.cnki.com.cn/Article/CJFDTotal-GYKJ200210022.htm.
[3]張桂香,姚存志.基于ATmega128單片機的智能供電測控系統設計[OL].(2013/3/8)[2013/3/9].http://lib.cqvip.com/qk/97650X/200908/31169601.html.