亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于嵌入式的多路肌電信號(hào)采集系統(tǒng)的設(shè)計(jì)

        2017-10-18 01:39:12王夢(mèng)葛斌朱政康師巖琳
        生物醫(yī)學(xué)工程研究 2017年1期
        關(guān)鍵詞:雙口肌電電信號(hào)

        王夢(mèng),葛斌,朱政康,師巖琳

        (上海理工大學(xué)醫(yī)療器械與食品學(xué)院,上海 200093)

        1 引 言

        肌電信號(hào)(electromyographic signal, EMG)是產(chǎn)生肌肉力的電信號(hào)根源,是肌肉中許多運(yùn)動(dòng)單元?jiǎng)幼麟娢辉跁r(shí)間和空間上的疊加,反映了神經(jīng)、肌肉的功能狀態(tài),在基礎(chǔ)醫(yī)學(xué)研究、臨床診斷和康復(fù)工程中有廣泛的應(yīng)用[1]。它在人機(jī)工效學(xué)領(lǐng)域肌肉工作的工效學(xué)分析,康復(fù)醫(yī)學(xué)領(lǐng)域的肌肉功能評(píng)價(jià)以及體育科學(xué)中的疲勞判定、運(yùn)動(dòng)技術(shù)合理性分析、肌纖維類型和在無氧閾值的無損傷性預(yù)測(cè)等方面均有重要實(shí)用價(jià)值[2-4]。

        早期肌電信號(hào)的研究主要集中在對(duì)少數(shù)獨(dú)立通道進(jìn)行時(shí)域和頻域的研究[3]。近年來隨著對(duì)人體神經(jīng)肌肉系統(tǒng)的認(rèn)識(shí)進(jìn)步和研究的深入,對(duì)肌電信號(hào)的研究朝多通道、陣列式方向發(fā)展。目前通用的單路肌電信號(hào)采集儀已經(jīng)不能滿足醫(yī)療診斷的發(fā)展要求。肌電信號(hào)采集系統(tǒng)的性能瓶頸在于高速采樣數(shù)據(jù)的實(shí)時(shí)存儲(chǔ)和上下位機(jī)間的數(shù)據(jù)傳輸能力[4]。多通道的肌電信號(hào)要求更高的ADC的采樣吞吐,目前一般采用的微控制器以指令方式控制其執(zhí)行時(shí)序,但微控制器的速度優(yōu)先,而且一般需要3~4條指令完成一次數(shù)據(jù)采樣工作,制約了ADC的采樣吞吐[5]。而FPGA具有較高的運(yùn)行主頻,用于控制底層期間的執(zhí)行時(shí)序,具備良好的接口能力,能最大限度地保證ADC的采樣率[6]。為減少上位機(jī)數(shù)據(jù)存儲(chǔ)處理的時(shí)間消耗,提高整體系統(tǒng)的實(shí)時(shí)性,本研究采用一種獨(dú)立于CPU的后臺(tái)批量數(shù)據(jù)傳輸技術(shù)(DMA),實(shí)現(xiàn)底層數(shù)據(jù)采集單元與上位機(jī)之間的數(shù)據(jù)交互,解決了多路信號(hào)大量采集并實(shí)時(shí)傳輸?shù)膯栴}。

        2 系統(tǒng)的總體設(shè)計(jì)

        系統(tǒng)以Samsung 公司的S3C2440A 微處理器為核心,包含了多路A/D轉(zhuǎn)換、現(xiàn)場(chǎng)可編程門陣列FPGA、電源電路及其他接口電路等,系統(tǒng)結(jié)構(gòu)見圖1。本研究中FPGA模塊選擇了EP4CE10E22C8N芯片,該芯片的可編程邏輯單元為10kLE。ARM選用了目前性能很高的嵌入式處理器S3C2440A,可在400 MHZ高速頻率下工作,提供4個(gè)DMA通道,用于系統(tǒng)總線內(nèi)部或與外圍總線直接的數(shù)據(jù)交換,實(shí)現(xiàn)了核心板和數(shù)據(jù)采集部分等硬件電路設(shè)計(jì)及整個(gè)模塊功能測(cè)試。

        輸入的肌電信號(hào)經(jīng)過放大電路后,通過A/D轉(zhuǎn)換模塊將模擬肌電信號(hào)轉(zhuǎn)換成16位的數(shù)字信號(hào),F(xiàn)PGA對(duì)數(shù)字信號(hào)進(jìn)行預(yù)處理并存儲(chǔ)到雙口RAM中,F(xiàn)PGA同時(shí)響應(yīng)ARM,處理器以DMA方式將數(shù)據(jù)存儲(chǔ)到RAM中,再通過USB2.0接口依照系統(tǒng)通信協(xié)議接受上位機(jī)的命令進(jìn)行相應(yīng)的數(shù)據(jù)處理及傳輸。本研究的主要工作集中在ARM與FPGA的實(shí)時(shí)高速數(shù)據(jù)傳輸在肌電信號(hào)采集的應(yīng)用上,下面對(duì)這部分的設(shè)計(jì)與實(shí)現(xiàn)做一詳細(xì)說明。

        圖1 多路肌電信號(hào)實(shí)時(shí)傳輸流程圖

        2.1 硬件電路設(shè)計(jì)

        S3C2440A芯片開發(fā)采用了由ARM公司研發(fā)的先進(jìn)的ARM920T 核心,ARM920T 實(shí)現(xiàn)了MMU,AMBA 總線和哈佛結(jié)構(gòu)高速緩沖體系結(jié)構(gòu)。這一結(jié)構(gòu)具有獨(dú)立的16KB 指令高速緩存和16KB 數(shù)據(jù)高速緩存。S3C2440A提供8個(gè)Bank,每個(gè)Bank 有128M 字節(jié)。S3C2440A與外部存儲(chǔ)器相連時(shí),必須先給其分配在一個(gè)固定的Bank,本研究將bank1作為FPGA內(nèi)部RAM映射的空間。ACTEL公司的EP4CE10E22C8N芯片提供對(duì)ADC器件的采樣時(shí)序控制,將其作為特殊的內(nèi)存設(shè)備掛接到ARM的內(nèi)存地址空間。FPGA與ARM之間的接口邏輯關(guān)系見圖2。S3C2440A通過寫信號(hào)線(TXD)向FPGA發(fā)送上位機(jī)命令,F(xiàn)PGA控制A/D采樣并將采集到的數(shù)字信號(hào)緩存在雙口RAM中,RAM中寫滿510個(gè)字節(jié)后,F(xiàn)PGA發(fā)出滿信號(hào)作為中斷F_INT信號(hào),同時(shí)S3C2440A響應(yīng)中斷F_INT,向FPGA發(fā)送片選信號(hào)nGCS1。

        圖2FPGA與ARM之間的接口邏輯關(guān)系圖

        Fig2InterfacelogicdiagrambetweenFPGAandARM

        為提高總線利用率,需設(shè)計(jì)數(shù)據(jù)緩沖來實(shí)現(xiàn)不同速率數(shù)據(jù)傳輸之間的要求。雙口RAM是共享式多端口存儲(chǔ)器,一個(gè)存儲(chǔ)器配備兩套獨(dú)立的地址、數(shù)據(jù)和控制線,允許兩個(gè)獨(dú)立的CPU或控制器同時(shí)異步地訪問存儲(chǔ)單元,大大提高了通信效率。本研究采用FPGA來實(shí)現(xiàn)雙口RAM的功能可以很好的解決并行性和通信速度問題,前段肌電信號(hào)在寫入的同時(shí),ARM可以進(jìn)行數(shù)據(jù)的讀取。雙口RAM與ARM總線連接圖見圖3。EP4CE10的數(shù)據(jù)總線寬度為16位,S3C2440A的數(shù)據(jù)總線寬度為32位,因此將雙口RAM的地址線addr[8..0]與ARM的地址線的低九位相連,雙口RAM的數(shù)據(jù)總線與ARM 的數(shù)據(jù)總線相連。FPGA讀取信號(hào)convst高電平有效,雙口RAM的數(shù)據(jù)輸出q經(jīng)過一個(gè)十六位的三態(tài)緩沖器輸出。

        圖3 雙口RAM與ARM總線連接圖

        Fig3DualportRAMwithARMbusconnectiondiagram

        2.2 軟件設(shè)計(jì)

        在以S3C2440A芯片為主控的肌電信號(hào)采集系統(tǒng)中,S3C2440A除了要與上位機(jī)進(jìn)行數(shù)據(jù)傳輸外,還要接受上位機(jī)指令進(jìn)一步對(duì)數(shù)據(jù)進(jìn)行處理。由于采樣指令數(shù)據(jù)人為發(fā)送,不具有規(guī)律性,為了充分利用CPU,提高數(shù)據(jù)傳輸速度,本系統(tǒng)在使用DMA方式進(jìn)行肌電數(shù)據(jù)傳輸?shù)耐瑫r(shí),使用USB完成與上位機(jī)的數(shù)據(jù)交換(主要是上位機(jī)發(fā)送給S3C2440A的采樣指令,見表1)。USB通信的軟件設(shè)計(jì)主要是通訊數(shù)據(jù)格式、波特率等的設(shè)置,采用中斷模式, 使能FIFO 緩沖區(qū)(使用16 字節(jié)的接收緩沖區(qū))。

        表1 采樣指令

        設(shè)備驅(qū)動(dòng)程序是操作系統(tǒng)內(nèi)核和硬件之間的接口,DMA驅(qū)動(dòng)程序設(shè)計(jì)是控制FPGA與ARM與上位機(jī)的數(shù)據(jù)交換,是一個(gè)典型的字符設(shè)備驅(qū)動(dòng)程序。DMA驅(qū)動(dòng)程序初始化主要設(shè)置相關(guān)寄存器,在初始化時(shí)要正確設(shè)置目標(biāo)(緩沖區(qū)的)首地址、數(shù)據(jù)傳輸?shù)姆较?、源寄存器的首地址、地址指針是否遞增以及遞增方向等等。相關(guān)代碼以及注釋如下:

        #define BUF_SIZE (510) //定義緩存FIFO大小

        #define XDREQ0_RD_SRC_ADDR 0x08000000//定義讀取FPGA中數(shù)據(jù)的緩沖區(qū)地址

        系統(tǒng)加載后,驅(qū)動(dòng)程序進(jìn)行初始化,完成相關(guān)寄存器及存儲(chǔ)空間的映射。當(dāng)FPGA采集并存儲(chǔ)在RAM中的肌電數(shù)據(jù)達(dá)到一定數(shù)量時(shí),為了避免緩存溢出,ARM要從FPGA模塊中的緩沖區(qū)中讀取數(shù)字化的肌電數(shù)據(jù)。本系統(tǒng)中申請(qǐng)IRQ_DMA0中斷服務(wù)程序,用來響應(yīng)FPGA模塊的DMA中斷請(qǐng)求。應(yīng)用程序響應(yīng)中斷請(qǐng)求,啟動(dòng)DMA,發(fā)出讀命令將目的地址中的數(shù)據(jù)取走后,一次讀取操作結(jié)束,進(jìn)行下一次讀取并重復(fù)上述過程。部分代碼如下:

        staticstructfile_operationsdev_fops = {

        .owner = THIS_MODULE,

        .open = s3c2410_ad_open,

        .release = s3c2410_ad_close,

        .read = s3c2410_ad_read,

        };

        if (request_irq(IRQ_DMA0, s3c_dma0_irq, 0, "DMA0_FPGA", NULL))//申請(qǐng)中斷函數(shù)

        {

        printk("can't request_irq for DMA0 ");

        return -EBUSY;

        }

        /* 分配SRC, DST對(duì)應(yīng)的緩沖區(qū)*/

        dst0 = dma_alloc_writecombine(NULL, sizeof(unsigned short int)*BUF_SIZE, &dst0_phys, GFP_KERNEL);//目的

        if (NULL == dst0)

        {

        free_irq(IRQ_DMA0, NULL);

        dma_free_writecombine(NULL, sizeof(unsigned short int)*BUF_SIZE, dst0, dst0_phys);

        printk("can't alloc buffer for dst0 ");

        return -ENOMEM;

        }

        dma0_regs = ioremap(DMA0_BASE_ADDR, sizeof(struct s3c_dma_regs));//將DMA控制寄存器映射到內(nèi)核空間

        dma0_regs->disrc= XDREQ0_RD_SRC_ADDR ;//源的物理地址

        dma0_regs->disrcc = (0<<1) | (0<<0); //源位于AHB總線, 源地址遞增 (1<<0)

        dma0_regs->didst = dst0_phys; //目的的物理地址

        dma0_regs->didstc = (0<<2) | (0<<1) | (0<<0); //目的位于AHB總線, 目的地址遞增

        dma0_regs->dcon=(1<<30)|(1<<29)|(0<<28)|(1<<27)|(0<<23)|(0<<22)|(0<<21)|(1<<20)|(BUF_SIZE<<0); //使能中斷,單個(gè)傳輸,軟件觸發(fā)

        dma0_regs->dmasktrig = (1<<1) | (1<<0);//啟動(dòng)DMA

        3 實(shí)驗(yàn)設(shè)計(jì)與結(jié)果分析

        3.1 實(shí)驗(yàn)設(shè)計(jì)

        為了驗(yàn)證本研究介紹的多路肌電信號(hào)實(shí)時(shí)傳輸系統(tǒng)的性能,建立了圖4所示的實(shí)驗(yàn)平臺(tái)。本研究設(shè)計(jì)為6路的肌電信號(hào)處理與采集系統(tǒng),將三組雙路肌電傳感器與AD7976前端的6通道相連,多路數(shù)據(jù)采集卡通過USB與上位機(jī)連接。

        圖4 實(shí)驗(yàn)平臺(tái)

        本研究中,動(dòng)作設(shè)計(jì)為雙側(cè)上肢彎舉運(yùn)動(dòng)和雙側(cè)下肢的抬腿運(yùn)動(dòng)。具體動(dòng)作順序和內(nèi)容如下:(1)彎舉運(yùn)動(dòng),要求受試者兩臂平放于桌面,當(dāng)聽到指令后保持4 s不動(dòng),4 s后發(fā)力以肘關(guān)節(jié)為原點(diǎn)抬起雙側(cè)上臂,至上臂垂直于桌面為止;(2)抬腿運(yùn)動(dòng),要求受試者正坐于椅面,當(dāng)聽到指令后保持4 s不動(dòng),4 s后發(fā)力以膝關(guān)節(jié)為原點(diǎn)平抬雙側(cè)前腿,至前腿平行于桌面為止。

        肌電采集點(diǎn)為受試者兩側(cè)上肢的肱二頭肌與肱橈肌和兩側(cè)下肢的腓腸肌。采集前使用75%的酒精和一次性電極片自帶細(xì)砂紙進(jìn)行預(yù)置電極部位皮膚的去屑去脂肪,再將一次性銀/氯化銀電極雙極放在每一待測(cè)肌肉部位的隆起處并與肌纖維走向一致,在緊鄰雙極部位安放一同規(guī)格的參考電極。[9]

        實(shí)驗(yàn)前實(shí)驗(yàn)人員先給受試者示范和講解要完成的動(dòng)作,并要求受試者練習(xí)若干次直到所做動(dòng)作具有再現(xiàn)性,然后受試者聽實(shí)驗(yàn)人員口令去執(zhí)行本實(shí)驗(yàn)設(shè)計(jì)的動(dòng)作。

        3.2 數(shù)據(jù)分析

        以本系統(tǒng)的采樣定時(shí)倍率1,最高采樣率120 kHz為例,設(shè)置采樣時(shí)間為8 s。開始試驗(yàn)后8 s,從上位機(jī)得到的六路肌電信號(hào)圖,見圖5。其中通道1、通道3的采集點(diǎn)分別為上肢左、右側(cè)肱二頭??;通道2、通道4的采集點(diǎn)分別為上肢左、右側(cè)肱橈??;通道5、通道6的采集點(diǎn)分別為下肢左、右側(cè)腓腸肌。

        圖5六通道肌電信號(hào)圖

        Fig5Sixchannelselectromyographicsignal

        實(shí)驗(yàn)過程中使用Agilent Technologies示波器觀察FPGA發(fā)出的中斷F_INT信號(hào)和ARM響應(yīng)的DMA片選地址信號(hào)。FPGA控制AD采樣頻率為120 kHz,6個(gè)通道同時(shí)采樣,F(xiàn)PGA設(shè)置每采滿510個(gè)點(diǎn)就發(fā)出一次中斷F_INT信號(hào),周期t1=510×6*(1/120kHz)≈708 us。見圖6,F(xiàn)PGA采集數(shù)字信號(hào)周期t1時(shí)間內(nèi),ARM完成數(shù)據(jù)的讀取后仍剩余足夠的空閑時(shí)間t2,可用于ARM對(duì)采集的肌電數(shù)據(jù)進(jìn)行算法處理或用于對(duì)更多通道肌電信號(hào)的采集。

        采用SignalTap工具獲取的肌電信號(hào)數(shù)據(jù)存儲(chǔ)時(shí)序,見圖7。Convst為AD采樣時(shí)鐘,頻率為120 kHz;busy為FPGA忙信號(hào);cs為ADC采樣的片選信號(hào);rd為FPGA的讀時(shí)鐘信號(hào);rdaddr為FPGA的讀地址信號(hào),即DMA響應(yīng)中斷請(qǐng)求后發(fā)出的片選地址信號(hào);wrfull為滿信號(hào),即DMA中斷請(qǐng)求F_INT信號(hào);rdclock為ARM給FPGA 的讀時(shí)鐘信號(hào)。由測(cè)試結(jié)果可知,該系統(tǒng)操作完全符合AD采樣時(shí)序和DMA操作時(shí)序要求,系統(tǒng)能正常工作。

        圖6中斷信號(hào)和片選信號(hào)

        Fig6Interruptsignalandselectsignal

        圖7 肌電信號(hào)數(shù)據(jù)存儲(chǔ)時(shí)序

        4 結(jié)論

        針對(duì)多路肌電信號(hào)的采集和處理,本研究提出的基于嵌入式的多路肌電信號(hào)實(shí)時(shí)傳輸系統(tǒng)設(shè)計(jì)方案在采集肌電信息的同時(shí),能進(jìn)一步對(duì)肌電信息進(jìn)行算法處理,大大提升了整個(gè)系統(tǒng)的數(shù)據(jù)處理能力和控制功能。采樣時(shí)序由FPGA控制提供,確保了ADC器件的采樣吞吐,保證了肌電信號(hào)的多路采集;主控器件ARM采用DMA方式與上位機(jī)進(jìn)行數(shù)據(jù)交換,保證了ARM有足夠時(shí)間空余對(duì)采集的肌電數(shù)據(jù)進(jìn)行前期處理,減少了上位機(jī)的工作量,并最大限度地保證了采樣數(shù)據(jù)的實(shí)時(shí)性。本研究對(duì)多通道肌電圖機(jī)/誘發(fā)電位儀的開發(fā)有著重要意義。

        猜你喜歡
        雙口肌電電信號(hào)
        盆底肌電刺激聯(lián)合盆底肌訓(xùn)練治療自然分娩后壓力性尿失禁的臨床觀察
        基于聯(lián)合聚類分析的單通道腹部心電信號(hào)的胎心率提取
        雙口形式的戴維寧定理在電路分析中的應(yīng)用
        基于Code Composer Studio3.3完成對(duì)心電信號(hào)的去噪
        科技傳播(2019年24期)2019-06-15 09:29:28
        雙口RAM在機(jī)載嵌入式系統(tǒng)中的應(yīng)用
        基于隨機(jī)森林的航天器電信號(hào)多分類識(shí)別方法
        經(jīng)皮神經(jīng)肌電刺激治療上肢周圍神經(jīng)損傷的療效
        女生穿運(yùn)動(dòng)鞋與高跟鞋步行腰背肌電比較
        雙口RAM讀寫正確性自動(dòng)測(cè)試的有限狀態(tài)機(jī)控制器設(shè)計(jì)方法
        雙口RAM在無人機(jī)三余度飛控計(jì)算機(jī)數(shù)據(jù)交換中的應(yīng)用
        免费一区二区高清不卡av| 亚洲中文字幕无码一久久区| 日本午夜精品一区二区三区电影| 精品无码国产自产野外拍在线| 亚洲五月激情综合图片区| 色老板在线免费观看视频日麻批| 成人av资源在线播放| 淫片一区二区三区av| 自愉自愉产区二十四区| 国产成人午夜精品免费视频| 人妻无码AⅤ不卡中文字幕| 国产成人综合亚洲av| 中文字幕国产精品专区| 成人激情视频在线手机观看| 久久久国产精品| 久久午夜无码鲁丝片午夜精品| 欧洲freexxxx性少妇播放| 亚洲综合欧美在线| 中文字幕亚洲精品一二三区| 亚洲av网一区二区三区| 国产精品久久久久久一区二区三区| 精品性高朝久久久久久久| 无码日韩人妻AV一区免费| 日韩精品一级在线视频| 亚洲国产精品无码一线岛国| 国产精品白丝喷水在线观看| 99国产精品视频无码免费 | 不卡的高清av一区二区三区| 国产精品免费看久久久无码| 亚洲欧美日本| 国内精品一区二区2021在线| 久久2020精品免费网站| 少妇免费av一区二区三区久久| 精品综合久久久久久888蜜芽| 97无码人妻福利免费公开在线视频| 久久AⅤ天堂Av无码AV| 国产一区二区黄色网页| 亚洲日韩中文字幕在线播放 | 极品新娘高清在线观看| 欧洲成人一区二区三区| 亚洲免费人成在线视频观看|