阮小微 林霖 王濤
摘 要: 為了實(shí)現(xiàn)多頻探測(cè)音的聲導(dǎo)抗測(cè)試方法,提升聲導(dǎo)抗診斷靈敏度,設(shè)計(jì)一種基于FPGA的多頻耳聲導(dǎo)抗測(cè)試系統(tǒng)。采用FPGA芯片協(xié)調(diào)多模塊同步工作,實(shí)現(xiàn)上位機(jī)通信、探測(cè)音產(chǎn)生、氣壓改變、聲壓和氣壓信號(hào)采集、數(shù)據(jù)緩沖和傳輸?shù)群诵墓δ?,由上位機(jī)軟件對(duì)數(shù)據(jù)實(shí)時(shí)處理和鼓室導(dǎo)抗圖顯示。系統(tǒng)對(duì)多名正常聽(tīng)力成年人采用1 000 Hz高頻和226 Hz低頻探測(cè)音進(jìn)行測(cè)試試驗(yàn),結(jié)果穩(wěn)定并與理論分析一致,表明該系統(tǒng)設(shè)計(jì)正確和工作可靠。
關(guān)鍵詞: FPGA; 多頻探測(cè)音; 耳聲導(dǎo)抗測(cè)試; 診斷靈敏度; 同步工作; 鼓室導(dǎo)抗圖
中圖分類(lèi)號(hào): TN304.94?34; TH77 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2018)12?0063?04
Abstract: A multi?frequency ear acoustic immittance testing system based on FPGA is designed to realize the acoustic immittance testing method for multi?frequency probing sounds and improve the sensitivity of acoustic immittance diagnosis. The FPGA chip is used to coordinate multiple modules′ synchronous working, so as to realize the key functions such as communication with the upper computer, generation of probing sounds, air pressure variation, acquisition of sound pressure and air pressure signals, and data buffering and transmission. The software of the upper computer is used to perform real?time data processing and tympanogram display. A test in which several adults with normal hearing were tested with the 1000 Hz high frequency probing sounds and 226 Hz low frequency probing sounds was carried out by the system. The testing results are stable and consistent with those of the theoretical analysis, which indicates the correctness and reliability of the designed system.
Keywords: FPGA; multi?frequency probing sound; ear acoustic immittance testing; diagnosis sensitivity; synchronous working; tympanogram
0 引 言
耳聲導(dǎo)抗測(cè)試是在改變外耳道壓力的情況下引起鼓膜連同聽(tīng)骨鏈對(duì)探測(cè)音的順應(yīng)性的改變,測(cè)量耳道內(nèi)的反饋聲壓發(fā)生改變,利用等效容積法,將其與已知容積的標(biāo)準(zhǔn)腔內(nèi)聲壓級(jí)相比,得到聲導(dǎo)抗值,從而畫(huà)出耳道內(nèi)氣壓與聲壓的關(guān)系圖,既鼓室導(dǎo)抗圖[1]。耳聲導(dǎo)抗測(cè)試被廣泛應(yīng)用于中耳功能狀態(tài)檢查。根據(jù)探測(cè)音的頻率不同,可分為低頻耳聲導(dǎo)抗測(cè)試和高頻耳聲導(dǎo)抗測(cè)試。低頻耳聲導(dǎo)抗測(cè)試主要反映中耳的勁度聲納的情況,高頻耳聲導(dǎo)抗測(cè)試主要反映中耳質(zhì)量聲納的情況[2]。測(cè)量時(shí)既要同步采集氣壓和聲壓數(shù)據(jù),又要同步改變耳道內(nèi)壓力。國(guó)內(nèi)關(guān)于耳聲導(dǎo)抗測(cè)試儀器的研發(fā)較少,文獻(xiàn)[1]利用ARM作為主控芯片,硬件結(jié)構(gòu)復(fù)雜,且因ARM只有串行工作模式的限制[3],不能實(shí)現(xiàn)聲壓和氣壓采集并行同步進(jìn)行,數(shù)據(jù)結(jié)果需要校正,較難實(shí)現(xiàn)。本文根據(jù)以上設(shè)計(jì)的不足,結(jié)合當(dāng)前FPGA的發(fā)展及其接口簡(jiǎn)單靈活、數(shù)據(jù)傳輸速率快且資源容量大等特點(diǎn)[4],提出采用FPGA作為主控芯片實(shí)現(xiàn)耳聲導(dǎo)抗測(cè)試儀的設(shè)計(jì)。FPGA芯片既能用作數(shù)字頻率合成器(Direct Digital Synthesizer,DDS)產(chǎn)生多個(gè)頻率探測(cè)音,又能同步控制氣壓聲壓采集,還能同步控制氣壓改變以及數(shù)據(jù)傳輸。
1 系統(tǒng)的總體設(shè)計(jì)
本設(shè)計(jì)主要由電源模塊、FPGA主控模塊、探測(cè)音轉(zhuǎn)換模塊、恒聲壓控制模塊、聲壓及氣壓信號(hào)采集模塊、氣路模塊以及計(jì)算機(jī)幾個(gè)部分組成[5]?;贔PGA多頻耳聲導(dǎo)抗測(cè)試系統(tǒng)的總體設(shè)計(jì)框圖如圖1所示。電源模塊為各個(gè)模塊提供不同的電壓;FPGA主控模塊實(shí)現(xiàn)對(duì)各模塊的并行控制以及實(shí)現(xiàn)DDS生成多個(gè)頻率正弦波信號(hào);探測(cè)音轉(zhuǎn)換模塊將FPGA設(shè)計(jì)的DDS生成的正弦波信號(hào)經(jīng)D/A轉(zhuǎn)換后生成對(duì)應(yīng)頻率的探測(cè)音;聲壓及氣壓信號(hào)采集模塊采集耳道中的聲壓及氣壓信號(hào)經(jīng)A/D轉(zhuǎn)換后送入FPGA處理;氣路模塊改變密閉耳道內(nèi)壓力,由電機(jī)驅(qū)動(dòng)、步進(jìn)電機(jī)、電磁閥驅(qū)動(dòng)、電磁閥、活塞泵、導(dǎo)管及探頭組成;計(jì)算機(jī)用于人機(jī)交互和數(shù)據(jù)處理、顯示、存儲(chǔ)。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 電源模塊
電源模塊電路如圖2所示,220 V交流電壓首先通過(guò)變壓器降壓,經(jīng)整流電橋?qū)⒔涣麟妷恨D(zhuǎn)為直流電壓,再通過(guò)電容濾波,最后經(jīng)過(guò)一系列穩(wěn)壓芯片得到不同的直流電壓。系統(tǒng)分別采用L7805和L7812,L7905和L7912穩(wěn)壓芯片提供穩(wěn)定的5 V,12 V,-5 V,-12 V電源。L78XX正電壓系列與L79XX負(fù)電壓系列三端穩(wěn)壓器具有低噪聲、高功率、所需的外圍元件少、內(nèi)部有過(guò)流過(guò)熱及調(diào)整管的保護(hù)電路等優(yōu)點(diǎn),為系統(tǒng)提供低噪聲,高穩(wěn)定的電壓源。
2.2 探測(cè)音轉(zhuǎn)換模塊
探測(cè)音轉(zhuǎn)換模塊采用一款型號(hào)為DAC0832并行DAC芯片,其具有匹配FPGA并行傳輸結(jié)構(gòu)以及控制簡(jiǎn)單的優(yōu)點(diǎn)。DAC0832內(nèi)部由一個(gè)8位輸入鎖存器、一個(gè)8位DAC寄存器、一個(gè)8位D/A轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成。DAC0832有單緩沖、雙緩沖和直通三種工作方式,本設(shè)計(jì)中采用直通方式。電路如圖3所示,DAC0832通過(guò)[CS,ILE,WR1,WR2,XFER及DI0~DI7]引腳與FPGA相連接。[CS,ILE,WR1,WR2,XFER]是FPGA控制DAC0832的工作模式的接口。[DI0~DI7]用于FPGA與DAC0832并行傳輸數(shù)字信號(hào)探測(cè)音數(shù)據(jù)。DAC0832將數(shù)字信號(hào)探測(cè)音D/A轉(zhuǎn)換為模擬正弦信號(hào)后,以電流形式輸出,再通過(guò)低噪聲放大器NE5532進(jìn)行電流電壓轉(zhuǎn)換,最終輸出模擬探測(cè)音信號(hào)。
2.3 恒聲壓控制模塊
因?yàn)樵跍y(cè)試時(shí),保持入耳的探測(cè)音聲壓級(jí)不變,改變耳道內(nèi)氣壓,又因?yàn)樵谶M(jìn)行耳聲導(dǎo)抗測(cè)試時(shí),耳道不同,頻率變化,這些因素會(huì)導(dǎo)致對(duì)應(yīng)探測(cè)音強(qiáng)度的變化。因此需要系統(tǒng)負(fù)反饋調(diào)節(jié)探測(cè)音輸出強(qiáng)度,調(diào)節(jié)探測(cè)音強(qiáng)度維持在一定的聲壓級(jí)下。恒聲壓控制通過(guò)采集當(dāng)前的聲壓級(jí),與固定的聲壓級(jí)做對(duì)比,反饋調(diào)節(jié)音量控制器的增益,從而使探測(cè)音維持在一定的聲壓級(jí)范圍。
為了滿(mǎn)足上述要求,恒聲壓控制模塊采用高精度電子音量控制器PGA2311[6]對(duì)探測(cè)音強(qiáng)度進(jìn)行精確控制。PGA2311具有調(diào)音實(shí)時(shí)性強(qiáng)、動(dòng)態(tài)范圍寬的優(yōu)點(diǎn)。電路如圖3所示,PGA2311與FPGA之間通過(guò)SPI總線(xiàn)、ZCEN、[MUTE]連接,其中SPI總線(xiàn)負(fù)責(zé)PGA2311與FPGA之間的控制指令傳輸;ZCEN是過(guò)零保護(hù)引腳,高電平有效;[MUTE]是靜音設(shè)置引腳,低電平有效。計(jì)算機(jī)增益強(qiáng)度由串口輸入FPGA中再經(jīng)SPI總線(xiàn)寫(xiě)入PGA2311中,增益調(diào)節(jié)公式為[Gain=31.5-[0.5(255-N)]],其中N為增益調(diào)節(jié)參數(shù)。
2.4 聲壓及氣壓信號(hào)采集模塊
聲壓及氣壓采集電路圖如圖4所示,聲壓及氣壓信號(hào)采集模塊包括聲壓信號(hào)采集電路及氣壓信號(hào)采集電路。其中氣壓采集電路采用高精度型號(hào)為SSCMRRN060MDAA3的壓差式氣壓傳感器,該傳感器既能放大輸出氣壓信號(hào),又能進(jìn)行溫度補(bǔ)償,在全溫度范圍內(nèi)具有優(yōu)異的重復(fù)性和穩(wěn)定性,精度可達(dá)0.05%,輸出的氣壓信號(hào)經(jīng)ADS8860進(jìn)行A/D轉(zhuǎn)換。聲壓采集電路采用型號(hào)為T(mén)M24568000的麥克風(fēng)作為聲壓傳感器,經(jīng)過(guò)放大、濾波、電平抬升預(yù)處理電路后送至ADS8860進(jìn)行A/D轉(zhuǎn)換。ADS8860是一款16位,采樣率可為1 MHz,無(wú)延遲輸入的A/D轉(zhuǎn)換器。ADS8860與FPGA之間采用SPI總線(xiàn)通信。
2.5 氣路模塊
氣路系統(tǒng)由電機(jī)驅(qū)動(dòng)、步進(jìn)電機(jī)、電磁閥驅(qū)動(dòng)、電磁閥、活塞泵、導(dǎo)管以及探頭組成[7]。其中FPGA分別與電機(jī)驅(qū)動(dòng)和電磁閥驅(qū)動(dòng)連接,從而控制氣路系統(tǒng)的工作。步進(jìn)電機(jī)驅(qū)動(dòng)為A4988,該芯片具有較高的步距精度,最小能達(dá)到[116]的步距角。電磁閥驅(qū)動(dòng)是型號(hào)為T(mén)IP142T的達(dá)林頓管,用于驅(qū)動(dòng)電磁閥開(kāi)通或關(guān)斷。FPGA控制A4988的步距模式和方向,從而改變電機(jī)的轉(zhuǎn)動(dòng)速度和轉(zhuǎn)動(dòng)方向,使外耳道內(nèi)的氣壓在[±200] daPa的范圍內(nèi)變化。FPGA通過(guò)輸出高低電平控制電磁閥打開(kāi)或關(guān)斷,從而起到過(guò)壓保護(hù)的作用。
3 系統(tǒng)軟件設(shè)計(jì)
軟件設(shè)計(jì)包括用Verilog VHDL描述語(yǔ)言設(shè)計(jì)的FPGA固件程序和C#語(yǔ)言為主的上位機(jī)程序。其中FPGA固件程序,采用模塊化的設(shè)計(jì)方法,將整個(gè)軟件系統(tǒng)分為若干個(gè)模塊:頂層模塊、控制模塊、DDS模塊、恒聲壓控制模塊、電機(jī)控制模塊、A/D采樣模塊以及串口模塊。其中頂層模塊將各功能模塊進(jìn)行例化;控制模塊控制整個(gè)系統(tǒng)的工作流程;DDS模塊用于生成測(cè)試所需的多個(gè)頻率的正弦波信號(hào);串口模塊用于FPGA與計(jì)算機(jī)之間的通信。各模塊調(diào)試仿真通過(guò)后,在頂層模塊統(tǒng)一下進(jìn)行模塊間的綜合。
3.1 控制模塊程序設(shè)計(jì)
控制模塊負(fù)責(zé)控制和管理各模塊之間的協(xié)調(diào)工作,起到了核心作用。控制模塊采用狀態(tài)機(jī)的方式來(lái)實(shí)現(xiàn),分別以S0,S1,S2,S3,S4五個(gè)狀態(tài)標(biāo)識(shí)控制模塊的5個(gè)狀態(tài)。圖5為控制模塊狀態(tài)轉(zhuǎn)換圖,狀態(tài)S0負(fù)責(zé)判斷計(jì)算機(jī)發(fā)出的指令sys_start是否為0000 0001決定向A/D采樣模塊發(fā)送聲壓數(shù)據(jù)和氣壓數(shù)據(jù)采樣起始命令,同時(shí)向電機(jī)控制模塊發(fā)送電機(jī)使能命令,以及向DDS模塊發(fā)送探測(cè)音信號(hào)生成命令,同時(shí)進(jìn)入S1狀態(tài);狀態(tài)S1負(fù)責(zé)判斷A/D采樣模塊發(fā)出的flag是否為高電平?jīng)Q定向電機(jī)控制模塊發(fā)送電機(jī)反向轉(zhuǎn)動(dòng)命令,并進(jìn)入S2狀態(tài);狀態(tài)S2負(fù)責(zé)判斷A/D采樣模塊發(fā)出的flag是否為低電平?jīng)Q定向電機(jī)控制模塊發(fā)送停止工作命令,并進(jìn)入S3狀態(tài);狀態(tài)S3負(fù)責(zé)判斷計(jì)算機(jī)發(fā)出sys_start的指令是否是0000 0000決定向ADS采樣模塊發(fā)送停止聲壓數(shù)據(jù)和氣壓數(shù)據(jù)采樣命令,同時(shí)向DDS模塊發(fā)送停止探測(cè)音信號(hào)生成命令,并進(jìn)入S4狀態(tài);狀態(tài)S4利用count計(jì)數(shù)延遲1 ms后重置本模塊向各模塊發(fā)送的命令,并進(jìn)入S0狀態(tài)等待下一次計(jì)算機(jī)發(fā)送指令。
3.2 DDS模塊程序設(shè)計(jì)
DDS用于生成不同頻率探測(cè)音信號(hào)。DDS是一種全數(shù)字化的頻率合成器,以數(shù)字取樣技術(shù)為基礎(chǔ),由相位累加器、ROM(Read Only Memory)查找表、D/A轉(zhuǎn)換器和低通濾波器構(gòu)成的頻率合成器[8]。DDS有頻率分辨率高、頻率切換速度快、頻率切換有相位連續(xù)、相位噪聲低等優(yōu)點(diǎn)。用FPGA設(shè)計(jì)DDS電路,簡(jiǎn)單、靈活,而且支持系統(tǒng)現(xiàn)場(chǎng)升級(jí)。DDS的結(jié)構(gòu)框圖及工作原理如圖6所示。
圖6中:K表示頻率控制字;fclk表示時(shí)鐘頻率;f0表示DDS系統(tǒng)的輸出頻率;相位累加器是由N位的全加器和一個(gè)N位的相位寄存器構(gòu)成。相位累加器相當(dāng)于以步長(zhǎng)K做累加運(yùn)算,累加的結(jié)果存儲(chǔ)在相位寄存器中;把相位寄存器中的結(jié)果作為地址碼尋址存儲(chǔ)在ROM的正弦表,每尋址一次,ROM查找表就輸出一個(gè)對(duì)應(yīng)的幅度值。為了節(jié)省ROM的存儲(chǔ)空間,本設(shè)計(jì)中相位累加器只用了高M(jìn)位而不用全部的N位來(lái)尋址。
DDS的輸出頻率為:
3.3 上位機(jī)設(shè)計(jì)
上位機(jī)程序主要負(fù)責(zé)下發(fā)指令控制FPGA各固件模塊工作[9],完成聲導(dǎo)抗測(cè)量并具有數(shù)據(jù)的傳輸、處理、顯示和存儲(chǔ)的功能,采用以C#語(yǔ)言為主的編程語(yǔ)言開(kāi)發(fā)。上位機(jī)程序主要包括人機(jī)交互模塊、數(shù)據(jù)傳輸模塊、數(shù)據(jù)處理模塊、鼓室導(dǎo)抗圖顯示模塊,其采用多線(xiàn)程交互控制技術(shù)實(shí)現(xiàn)數(shù)據(jù)的同步傳輸、處理、顯示、存儲(chǔ)[10]。
4 實(shí) 驗(yàn)
為了測(cè)試本系統(tǒng)工作的有效性與穩(wěn)定性,本文采用226 Hz和1 000 Hz探測(cè)音,分別重復(fù)進(jìn)行4次實(shí)驗(yàn)。將實(shí)驗(yàn)的數(shù)據(jù)導(dǎo)入Matlab處理,畫(huà)出鼓室導(dǎo)抗圖如圖7所示。
從圖7可清晰看出,實(shí)驗(yàn)結(jié)果重復(fù)性強(qiáng),同時(shí)證明,按上述方案設(shè)計(jì)的基于FPGA的多頻聲導(dǎo)抗系統(tǒng)運(yùn)行穩(wěn)定,具有很強(qiáng)的實(shí)用性和可行性。
5 結(jié) 論
本文設(shè)計(jì)了一種基于FPGA的多頻耳聲導(dǎo)抗測(cè)試系統(tǒng)。該系統(tǒng)采用FPGA芯片協(xié)調(diào)多模塊同步工作,實(shí)現(xiàn)了上位機(jī)通信、探測(cè)音產(chǎn)生、氣壓改變、聲壓和氣壓信號(hào)采集、數(shù)據(jù)緩沖和傳輸?shù)群诵墓δ埽缮衔粰C(jī)軟件對(duì)數(shù)據(jù)實(shí)時(shí)處理和鼓室導(dǎo)抗圖顯示。系統(tǒng)對(duì)多名正常聽(tīng)力成年人采用1 000 Hz高頻和226 Hz低頻探測(cè)音進(jìn)行測(cè)試試驗(yàn)。結(jié)果表明,該系統(tǒng)設(shè)計(jì)正確,工作可靠穩(wěn)定并與理論分析一致。
注:本文通訊作者為王濤。
參考文獻(xiàn)
[1] 王立偉,李躍杰.一種基于ARM系統(tǒng)的多頻耳聲導(dǎo)抗測(cè)試系統(tǒng)的研究[J].醫(yī)療衛(wèi)生裝備,2008,29(1):3?5.
WANG Liwei, LI Yuejie. Research on multiple frequency tympanometry on ear system based on ARM [J]. Chinese medical equipment journal, 2008, 29(1): 3?5.
[2] 謝鼎華,伍偉景.基礎(chǔ)與應(yīng)用聽(tīng)力學(xué)概要[M].長(zhǎng)沙:科學(xué)技術(shù)出版社,2016.
XIE Dinghua, WU Weijing, XU Li. Introduction to bases and applications of hearing science [M]. Changsha: Hunan Science & Technology Press, 2016.
[3] 韓彬,于瀟宇,張雷鳴,等.FPGA設(shè)計(jì)技巧與案例開(kāi)發(fā)詳解[M].2版.北京:電子工業(yè)出版社,2016.
HAN Bin, YU Xiaoyu, ZHANG Leiming, et al. Detailed explanation of FPGA design skills and case development [M]. 2nd ed. Beijing: Publishing House of Electronics Industry, 2016.
[4] 樊繼明,陸錦宏.FPGA深度解析[M].北京:北京航空航天大學(xué)出版社,2015.
FAN Jiming, LU Jinhong. Depth analysis of FPGA [M]. Beijing: Beihang University Press, 2015.
[5] MURAKOSHI M, YOSHIDA N, SUGAYA M, et al. Dynamic characteristics of the middle ear in neonates [J]. International journal of pediatric otorhinolaryngology, 2013, 77(4): 504?512.
[6] 徐榮,曾瓊,田湘.音頻控制芯片PGA2311的音頻增益自動(dòng)控制[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2011,11(8):72?73.
XU Rong, ZENG Qiong, TIAN Xiang. Audio gain automatic control of audio control chip PGA2311 [J]. Microcontroller & embedded systems, 2011, 11(8): 72?73.
[7] AITHAL V, KEI J, DRISCOLL C, et al. Sweep frequency impedance measures in Australian aboriginal and Caucasian neonates [J]. International Journal of Pediatric Otorhinolaryngology, 2015, 79(7): 1024?1029.
[8] 章宇杰,支敏.基于FPGA的DDS實(shí)現(xiàn)[J].電子與封裝,2013(10):31?32.
ZHANG Yujie, ZHI Min. DDS implementation based on FPGA [J]. Electronics & packaging, 2013(10): 31?32.
[9] 周陽(yáng),周美嬌,黃波,等.基于C#的串口通信系統(tǒng)的研究與設(shè)計(jì)[J].電子測(cè)量技術(shù),2015(7):135?140.
ZHOU Yang, ZHOU Meijiao, HUANG Bo, et al. The research and design of serial communication system based on C# [J]. Electronic measurement technology, 2015(7): 135?140.
[10] 卜春芬.C#后臺(tái)處理與多線(xiàn)程技術(shù)的應(yīng)用[J].昆明學(xué)院學(xué)報(bào),2010,32(3):82?85.
BU Chunfen. The practical application of C# background processing and multi?threading technology [J]. Journal of Kunming University, 2010, 32(3): 82?85.