- 相關(guān)推薦
基于USB接口的心電信號數(shù)據(jù)采集系統(tǒng)
摘要:介紹了基于USB接口的心電信號數(shù)據(jù)采集系統(tǒng),給出了該系統(tǒng)的硬件組成原理及軟件設(shè)計方法。由于該系統(tǒng)使用了高性能的USB專用芯片CY7C64613,因而具有使用方便、即插即用等特點。與筆記本電腦相連即可構(gòu)成移動式心電信號檢測分析儀器,具有較高的實用推廣價值。關(guān)鍵詞:USB;心電;數(shù)據(jù)采集
。币
心電信號是最廣泛的臨床檢查項目之一。心電信號數(shù)據(jù)采集系統(tǒng)是心電信號檢查的關(guān)鍵部件,它能在較強的噪聲背景下,通過電極將0.05~100Hz的微弱心電信號檢測出來,然后經(jīng)放大、A/D轉(zhuǎn)換后送入計算機進行處理。計算機的使用使得該系統(tǒng)在信號分析、儲存、打印等方面比傳統(tǒng)的心電圖機具有明顯的優(yōu)勢。但采集系統(tǒng)與計算機的通訊接口都存在插卡插拔麻煩,安全性差,且擴展槽數(shù)目有限等不足。為此?本文提出的基于USB接口的心電信號數(shù)據(jù)采集系統(tǒng)使用了目前最為先進的USB接口技術(shù),能夠支持即插即用和熱插拔功能。這是其它非USB接口無法比擬的。同時也可以與筆記本電腦相連以構(gòu)成移動式心電檢測分析儀。
。蚕到y(tǒng)的硬件組成
。玻毕到y(tǒng)組成
圖1所示為基于USB接口的心電信號數(shù)據(jù)采集系統(tǒng)的組成框圖。圖中?電極傳感器檢測到的心電信號經(jīng)輸入保護電路進行電壓限幅、高頻濾波后,再進行前置放大,然后經(jīng)光電隔離后,再次進行電壓放大,最后經(jīng)干擾抑制電路消除干擾后,在多路模擬開關(guān)的控制下將其中某一路信號接入A/D。CY7C64613是帶智能USB接口的單片機,通過它可以把A/D轉(zhuǎn)接后的數(shù)字信號經(jīng)USB接口傳輸?shù)接嬎銠C。
下面就數(shù)據(jù)采集系統(tǒng)的抗干擾措施、信號放大及USB通信等問題進行重點論述。
2.2系統(tǒng)抗干擾
作為醫(yī)療器械的心電信號數(shù)據(jù)采集系統(tǒng),由于其檢測對象是低頻、微弱的心電信號,干擾較大,因此?系統(tǒng)的抗干擾能力及安全可靠性至關(guān)重要。針對這種情況,本系統(tǒng)采取了多方面措施。圖2所示為輸入保護電路和高頻濾波電路。其中輸入保護電路是在每個電極和地之間加入兩個并聯(lián)的硅二極管以進行電壓限幅,從而限制輸入電壓不超過±600mv,確保病人和儀器的安全。高頻濾波電路用于阻止高頻干擾信號進入數(shù)據(jù)采集系統(tǒng)。本設(shè)計使用以FX101芯片為核心的低通濾波器。濾波截止頻率為:
。妫悖剑保痆2p(R1R2C1C2)1/2]
使用光電隔離電路和干擾抑制電路可進一步提高抗干擾能力。干擾抑制電路包括50Hz干擾抑制電路和肌電干擾抑制電路。前者用來濾掉50Hz工頻干擾(這是心電信號的主要干擾源),它是一個無源RC雙T網(wǎng)絡(luò)。后者用來抑制電極與皮膚接觸時引進的肌電信號,它是一個高載RC濾波器。
此外,還可采用軟件濾波的方法?赏ㄟ^在軟件中設(shè)置50Hz干擾濾波和漂移濾波等程序來進一步提高系統(tǒng)的抗干擾能力。
2.3放大電路
放大電路也是設(shè)計重點之一。一般情況下,心電信號必須進行放大才能送往計算機進行處理。由于極化電壓的影響,放大器的增益不能太高,因而本系統(tǒng)采用了前置放大電路和電壓放大電路兩級放大的方法。對前置放大電路的要求是:輸入阻抗高、失調(diào)溫漂小、共模抑制比高、輸入噪聲小。為此筆者選用了INA121芯片。INA121是TexasInstrumentsBB公司生產(chǎn)的低功耗儀器放大電路,性能優(yōu)越,它的差模輸入電阻為1012Ω,共模抑制比為106dB,輸入失調(diào)電壓為±200μv,輸入失調(diào)溫漂為±2μv/℃,輸入噪聲為20nV?Hz?1/2。前置放大電路的放大倍數(shù)設(shè)置為50。較小的前置放大倍數(shù)可以避免極化電壓的影響。電壓放大電路的放大倍數(shù)設(shè)置的較高(取為100倍),則可以保證總的放大倍數(shù)。
。玻矗眨樱聦S眯酒倪x擇
目前各個廠商推出的USB芯片類型眾多,功能各異。本系統(tǒng)選用Cypress半導體公司推出的EZ-USBFX全速系列中的CY7C64613-128NC芯片。EZ-USBFX系列芯片是帶智能USB接口的單片機,它以8051為核心。對于復雜與繁瑣的USB通信,該器件可提供EZ-USB固件函數(shù)庫與固件架構(gòu),從而可大幅度地降低編寫固件程序代碼的困難程度。CY7C64613支持USB協(xié)議1.1,同時可支持12Mbps的全速傳輸。此外,它還帶有增強版的8051核心和4kB或8kB的RAM,端點數(shù)量為32個,可采用智能型的USB核心程序。
。耻浖O(shè)計
本系統(tǒng)的軟件設(shè)計包括三部分:固件設(shè)計、驅(qū)動程序設(shè)計、應(yīng)用程序設(shè)計。
本設(shè)計中將心電信號數(shù)據(jù)采集系統(tǒng)規(guī)
劃為人工接口設(shè)備HID群組。該HID群組原是針對鍵盤、鼠標等輸入設(shè)備而設(shè)置與規(guī)劃的。但是,對于需要以雙向、適當?shù)念l率來進行數(shù)據(jù)交換的其它設(shè)備而言,也是一個非常好的設(shè)計范例與基礎(chǔ)架構(gòu)。因此,可以將這些設(shè)備規(guī)劃為HID群組,只要它們符合HID規(guī)范中所定義的各種特性與條件,就可以執(zhí)行HID設(shè)備的功能。在windows98與windows2000等操作系統(tǒng)中都已包含了HID群組的驅(qū)動程序,因此,用戶開發(fā)新設(shè)備時,無須重新編寫驅(qū)動程序。
。常惫碳(Firmware)設(shè)計
由于EZ-USBFX系列已提供了固件架構(gòu)(frameworks)。因此,可以利用這一架構(gòu)來簡化固件的開發(fā)。用戶僅需提供其USB描述符以及實現(xiàn)外圍功能的程序代碼?在PERIPH.C文件中?,即可完成完全兼容的USB設(shè)備設(shè)置。此外,Cypress公司還提供了副函數(shù)鉤子(functionhooks),利用該功能可以幫助用戶進行固件的設(shè)計。
在程序開始執(zhí)行后,固件架構(gòu)會執(zhí)行以下步驟:第一步,設(shè)置內(nèi)部狀態(tài)變量的起始值;第二步,調(diào)用用戶的初始設(shè)置函數(shù)TD-Init;第三步,在1s間隔后重新設(shè)備列舉(ReNumerate),直到收到SETUP封包為止;第四步,一旦SETUP封包被檢測到,固件架構(gòu)立即啟動與其合作的工作分配器。
。裕模撸桑睿椋簦ǎ┛捎脕韺τ脩粼O(shè)備(即數(shù)據(jù)采集系統(tǒng))進行初始化,并重新尋址描述符表。其程序代碼如下:
TD_Init();
。穑模澹觯椋悖澹模螅悖颍剑ǎ祝希遥模Γ模澹觯椋悖澹模螅悖;
。穑茫铮睿妫椋纾模螅悖颍剑ǎ祝希遥模Γ茫铮睿妫椋纾模螅悖;
。穑樱簦颍椋睿纾模螅悖颍剑ǎ祝希遥模Γ樱簦颍椋睿纾模螅悖颍
。椋妫ǎǎ祝希遥模Γ模澹觯椋悖澹模螅悖颍Γ埃澹埃埃埃
pReportDscr=(WORD)&ReportDscr
{
。桑睿簦模澹螅悖颍粒洌洌颍剑桑危裕牛遥危粒蹋撸模樱茫遥撸粒模模;
。牛簦模澹螅悖颍粒洌洌颍剑ǎ祝希遥模Γ模澹觯椋悖澹模螅悖;
DevDescrLen=(WORD)&UserDscr(WORD)&De-viceDscr+2;
。妫铮颍ǎ椋剑;i<DevDescrLen;i++)
。ǎǎ拢伲裕牛洌幔簦幔桑睿簦模澹螅悖颍粒洌洌颍椋剑埃茫;
。妫铮颍ǎ椋剑埃唬椋迹模澹觯模澹螅悖颍蹋澹;i++)
。ǎǎ拢伲裕牛洌幔簦幔桑睿簦模澹螅悖颍粒洌洌颍椋剑ǎǎ拢伲裕牛洌幔簦幔牛簦模澹螅悖颍粒洌洌颍椋;?
。穑模澹觯椋悖澹模螅悖颍剑桑睿簦模澹螅悖颍粒洌洌;
。铮妫妫螅澹簦剑ǎ祝希遥模Γ模澹觯椋悖澹模螅悖騙INTERNAL_DSCR_ADDR;
pConfigDscr-=offset;
。穑樱簦颍椋睿纾模螅悖颍剑铮妫妫螅澹;
pReportDscr-=offset;
}
。牛冢眨樱耞IRQ_ENABLE();
。牛冢眨樱拢撸牛危粒拢蹋臺RSMIRQ();
。
。常豺(qū)動程序設(shè)計
在Windows操作系統(tǒng)中,USB驅(qū)動程序是基于Win32DriverModel?WDM?的,它用階層式驅(qū)動程序模式,每個驅(qū)動程序階層負責處理一部分通信工作,具體框圖如圖3所示。設(shè)備驅(qū)動程序(含群組驅(qū)動程序)可與系統(tǒng)的總線驅(qū)動程序進行通信,總線驅(qū)動程序用來處理USB的硬件。用戶應(yīng)用程序并不直接與硬件打交道,而是使用Win32API調(diào)用函數(shù)對Win32子系統(tǒng)進行調(diào)用,同時給設(shè)備驅(qū)動程序發(fā)I/O請求包(IRP)。由于Windows操作系統(tǒng)中已包含了總線驅(qū)動程序和一些群組驅(qū)動程序,因此用戶只需編寫自己的用戶設(shè)備驅(qū)動程序或選用Windows提供的群組驅(qū)動程序即可。
在Windows系統(tǒng)中,HIDDEV.INF文件中已提供有HID群組的驅(qū)動程序,可以直接引用。從而省去了編寫繁瑣的用戶驅(qū)動程序的麻煩。
。常硲(yīng)用程序設(shè)計
在應(yīng)用程序中,需要設(shè)置與固件程序及驅(qū)動程序中相同的PID/VID碼,才能在設(shè)備管理中找到對應(yīng)的USB設(shè)備(數(shù)據(jù)采集系統(tǒng)
。。具體的設(shè)置程序代碼如下:
ConstMyVendorID=&H1234
。茫铮睿螅簦停校颍铮洌酰悖簦桑模剑Γ龋担叮罚
在Windows98驅(qū)動程序開發(fā)工具組(DDK)中,一般都具有用戶模式(即應(yīng)用程序階層)HID通信部分的完整指導準則。用戶通過調(diào)用API函數(shù),可以找到與設(shè)備描述符內(nèi)設(shè)置的VID/PID碼相符合的HID設(shè)備(即數(shù)據(jù)采集系統(tǒng))。有了API函數(shù)傳回的設(shè)備路徑名稱,就能用GreateFile()函數(shù)打開設(shè)備的指示(handle),然后使用HID特定的API函數(shù)來讀。郑桑模校桑拇a,最后再使用ReadFile()與WriteFile()函數(shù)來準備交換數(shù)據(jù)。具體編程方法可參閱Windows98DDK。
。唇Y(jié)論
基于USB接口的心電信號數(shù)據(jù)采集系統(tǒng)具有優(yōu)越的性能。試驗表明,其使用方便,性能穩(wěn)定。尤其是它與筆記本電腦相結(jié)合可構(gòu)成移動式心電信號檢測分析儀,從而方便地應(yīng)用于野外、救護車、病房等傳統(tǒng)心電分析儀不便使用的場合,具有很高的實用推廣價值。
【基于USB接口的心電信號數(shù)據(jù)采集系統(tǒng)】相關(guān)文章:
基于USB接口的數(shù)據(jù)采集系統(tǒng)設(shè)計08-06
基于USB總線的高速數(shù)據(jù)采集系統(tǒng)08-06
基于DSP的USB口數(shù)據(jù)采集分析系統(tǒng)08-06
基于DSP的 USB 口數(shù)據(jù)采集分析系統(tǒng)08-06
低軾耗數(shù)據(jù)采集系統(tǒng)的USB接口設(shè)計08-06
基于USB2.0總線的高速數(shù)據(jù)采集系統(tǒng)設(shè)計08-06
基于USB和多線程的實時數(shù)據(jù)采集系統(tǒng)08-06