<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 醫(yī)療電子 > 設(shè)計(jì)應(yīng)用 > 基于FPGA腦機(jī)接口設(shè)計(jì)

          基于FPGA腦機(jī)接口設(shè)計(jì)

          作者: 時(shí)間:2017-06-07 來源:網(wǎng)絡(luò) 收藏

          接口BCI(Brain Computer Interface)是一種新穎的人機(jī)接口方式。它的定義是:不依賴于腦的正常輸出通路(外周神經(jīng)系統(tǒng)及肌肉組織)的腦-機(jī)(計(jì)算機(jī)或其他裝置)通訊系統(tǒng)[1]。要實(shí)現(xiàn)接口,必須有一種能反映人腦不同狀態(tài)的信號(hào),并且能夠?qū)崟r(shí)或短時(shí)對(duì)這種信號(hào)進(jìn)行提取和分類[2]。瞬態(tài)視覺誘發(fā)電位與刺激之間具有嚴(yán)格的鎖時(shí)同步關(guān)系,能比較準(zhǔn)確地檢測(cè),而且它所需的視覺刺激頻率比較低,不容易引起視覺疲勞。因此本研究采用瞬態(tài)視覺誘發(fā)電位來實(shí)現(xiàn)接口。

          本文引用地址:http://www.ex-cimer.com/article/201706/350393.htm

          腦機(jī)接口系統(tǒng)是由人和機(jī)器構(gòu)成的閉環(huán)系統(tǒng)[3]。除人本身外, 腦機(jī)接口系統(tǒng)包括:信號(hào)采集、信號(hào)處理、外部設(shè)備及控制部分。本文的方案采用取代計(jì)算機(jī),作為腦機(jī)接口的控制和信息處理器。主要包括腦電采集電路、基于的VGA視覺刺激器和開發(fā)板三部分,如圖1所示。

          電極帽和腦電采集電路組成了腦電信號(hào)采集部分。VGA視覺刺激器屬于外部設(shè)備及控制部分。FPGA開發(fā)板是整個(gè)系統(tǒng)的核心,它不僅實(shí)現(xiàn)了信號(hào)處理,而且還實(shí)現(xiàn)了對(duì)腦電采集電路的控制和VGA控制器。FPGA開發(fā)板采用Cyclone II EP2C35 DSP開發(fā)板,F(xiàn)PGA芯片為Cyclone II EP2C35F672。

          1 系統(tǒng)設(shè)計(jì)

          1.1 腦電采集電路的設(shè)計(jì)

          腦電信號(hào)比較微弱,而且淹沒在很強(qiáng)的背景噪聲和干擾中。必須設(shè)計(jì)合適的電路,在放大腦電信號(hào)的同時(shí),通過濾波抑制噪聲,提高信噪比,得到較好的模擬腦電信號(hào),并通過AD轉(zhuǎn)換為適合于FPGA處理的數(shù)字信號(hào)。

          本文設(shè)計(jì)的腦電采集電路主要包括有源電極、右腿驅(qū)動(dòng)電路、模擬電路、數(shù)字電路和電源。有源電極用來傳導(dǎo)腦電信號(hào),右腿驅(qū)動(dòng)電路可以降低共模電壓。模擬電路包括前置放大電路、高通濾波電路、放大濾波電路和電壓抬升電路,實(shí)現(xiàn)模擬信號(hào)調(diào)理和信噪比的提高。數(shù)字電路包括AD轉(zhuǎn)換電路和光耦隔離電路,主要功能是模擬信號(hào)到數(shù)字信號(hào)的轉(zhuǎn)換。

          1.2 基于FPGA的VGA視覺刺激器的設(shè)計(jì)

          腦機(jī)接口視覺刺激器通??梢栽谟?jì)算機(jī)顯示器或電視機(jī)上通過硬件和軟件兩種方式產(chǎn)生,也可以設(shè)計(jì)專門的圖形顯示電路[4]。采用硬件實(shí)現(xiàn)視覺刺激,最大優(yōu)點(diǎn)是性能穩(wěn)定,但修改和升級(jí)比較困難。

          本文的方案是基于FPGA的VGA視覺刺激器,采用VGA顯示器作為視覺刺激器,通過VHDL編程的方式產(chǎn)生圖形刺激信號(hào)。FPGA是一種半定制電路,具有很強(qiáng)的在線修改能力,可以隨時(shí)修改設(shè)計(jì)而不必改動(dòng)硬件電路。因此,通過編程可以靈活地產(chǎn)生不同的刺激模式,修改和升級(jí)十分方便。按照VGA顯示器逐行掃描的工作原理和VGA工業(yè)標(biāo)準(zhǔn)[5],在FPGA中設(shè)計(jì)了VGA控制器,包括分頻模塊、掃描時(shí)序產(chǎn)生模塊、圖像描述模塊、刺激頻率控制模塊和光標(biāo)控制模塊,其框圖如圖2所示。

          分頻模塊產(chǎn)生像素輸出頻率和刺激所需的頻率。CycloneⅡEP2C35芯片具備4個(gè)增強(qiáng)型嵌入式鎖相環(huán)(PLL),每個(gè)鎖相環(huán)可以提供3個(gè)輸出時(shí)鐘,頻率非常穩(wěn)定,還可以分頻和倍頻。用鎖相環(huán)IP核調(diào)用嵌入式鎖相環(huán),直接分頻產(chǎn)生像素輸出頻率,保證了系統(tǒng)時(shí)鐘的精確和穩(wěn)定。計(jì)數(shù)器分頻得到刺激所需的頻率,可產(chǎn)生不同的刺激頻率。

          掃描時(shí)序產(chǎn)生模塊提供VGA行掃描和場(chǎng)掃描的時(shí)序。對(duì)像素輸出頻率計(jì)數(shù)分頻,產(chǎn)生行掃描頻率,其頻率為31.469 kHz。然后,對(duì)行掃描頻率計(jì)數(shù)分頻,得到場(chǎng)掃描頻率,其場(chǎng)頻為59.94 Hz。

          圖像描述模塊描述需要產(chǎn)生的刺激圖形,包括位于屏幕上下左右4個(gè)方向的4個(gè)方塊和0、1、2、3數(shù)字。4個(gè)方塊是實(shí)現(xiàn)多項(xiàng)目標(biāo)選擇的刺激目標(biāo),光標(biāo)用來反饋選擇的結(jié)果。通過行坐標(biāo)和場(chǎng)坐標(biāo)來描述方塊和數(shù)字的位置及大小。在方塊上標(biāo)注數(shù)字,以區(qū)別不同的方塊。圖形的改變或運(yùn)動(dòng)可引起有效的誘發(fā)電位,因此,方塊的顏色是黑色和白色交替變化的。為了使方塊更顯著,底色采用深石板灰色。

          刺激頻率控制模塊設(shè)計(jì)了刺激的模式。采用同頻次復(fù)合刺激方式,即在單位時(shí)間內(nèi)各個(gè)視覺刺激模塊閃爍的次數(shù)相同,但各個(gè)刺激模塊閃爍的時(shí)刻相互錯(cuò)開。通過計(jì)數(shù)器分頻產(chǎn)生模塊閃爍的時(shí)鐘。閃爍時(shí)刻的錯(cuò)開用相位延時(shí)實(shí)現(xiàn),用系統(tǒng)時(shí)鐘產(chǎn)生一個(gè)計(jì)數(shù)器,根據(jù)計(jì)數(shù)器的計(jì)數(shù)控制延時(shí),達(dá)到精確定時(shí)的要求。當(dāng)閃爍的時(shí)鐘信號(hào)為低電平時(shí),方塊為黑色;為高電平時(shí),方塊為白色。在刺激模塊黑變白的同時(shí),發(fā)出觸發(fā)信號(hào)。

          光標(biāo)控制模塊描述光標(biāo)的圖形,控制光標(biāo)的移動(dòng)。通過改變光標(biāo)的坐標(biāo)和分頻來控制光標(biāo)移動(dòng)的方向和速度。光標(biāo)的顏色為紅色。

          基于FPGA的VGA視覺刺激器充分利用了FPGA半定制電路的特點(diǎn),采用同步時(shí)序設(shè)計(jì)方式,不但性能穩(wěn)定,而且能根據(jù)需要靈活地設(shè)計(jì)不同的視覺刺激器。它實(shí)現(xiàn)方便,功能強(qiáng)大,兼具用硬件或軟件方式實(shí)現(xiàn)視覺刺激器的優(yōu)點(diǎn)。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();