DSP和USB總線的高頻超聲數(shù)據(jù)采集系統(tǒng)
引言
超聲醫(yī)學(xué)即利用超聲波的物理特性進(jìn)行診斷和治療的一門影像學(xué)科,其臨床應(yīng)用范圍廣泛,目前已成為現(xiàn)代臨床醫(yī)學(xué)中不可缺少的診斷方法。
本系統(tǒng)是一個便攜式軟組織超聲診斷儀的一部分,主要功能是高頻超聲信號采集。其工作機(jī)制,是在前端低頻脈沖(20Hz~10KHz)的觸發(fā)下,對由超聲換能器產(chǎn)生的高頻超聲信號(1MHz~20MHz)進(jìn)行采集,預(yù)處理,然后通過USB總線傳輸給PC機(jī),由軟件進(jìn)行分析、處理。
在本設(shè)計方案中,高速CPLD芯片作為數(shù)據(jù)采集系統(tǒng)的核心部分,相比傳統(tǒng)的MCU+ADC方法,CPLD是用硬件信號而不是軟件編程來控制ADC,從而在速度上有很大的優(yōu)勢。而目前強(qiáng)大的VHDL編程語言也使得CPLD能很容易地實(shí)現(xiàn)預(yù)想的功能邏輯。數(shù)據(jù)處理部分,選用數(shù)據(jù)處理功能強(qiáng)大、處理速度高的DSP芯片作為CPU。而在與上位機(jī)通信方面,采用支持即插即用且成本也相對較低的USB接口。整體系統(tǒng)方面,各個子系統(tǒng)之間的數(shù)據(jù)傳輸和同步問題是技術(shù)難點(diǎn)。在經(jīng)過反復(fù)比較和測試之后,采取高速存儲器作為數(shù)據(jù)緩沖區(qū)的方案。
系統(tǒng)各組成模塊
系統(tǒng)組成框圖如圖1,包括三個子系統(tǒng):CPLD子系統(tǒng),DSP子系統(tǒng)和USB子系統(tǒng)。其中,CPLD+ADC實(shí)現(xiàn)數(shù)據(jù)采集,DSP則負(fù)責(zé)數(shù)據(jù)處理,兩者之間通過一片高速RAM來交換數(shù)據(jù);USB芯片(AN2131Q)負(fù)責(zé)把數(shù)據(jù)通過USB線上傳給主機(jī),它和DSP之間通過一片鎖存器進(jìn)行通信。
數(shù)據(jù)采集子系統(tǒng)(CPLD子系統(tǒng))
該子系統(tǒng)主要由一片Altera公司的CPLD和一片高速ADC所組成。
由于要采集的超聲信號最高頻率為20M,根據(jù)Nyquist定律,采樣頻率應(yīng)該在40MHz以上,為了提高精度,系統(tǒng)采用了ADI公司的AD9283芯片。該芯片最高工作頻率為100MHz,經(jīng)過測試,可很好地滿足系統(tǒng)帶寬要求。
以往的便攜式數(shù)據(jù)采集系統(tǒng)中,下位機(jī)部分ADC-RAM模塊往往采用MCU作為CPU來控制,因此,采集頻率直接受到MCU速度的制約,而且和RAM存儲器的同步也成為問題。經(jīng)過比較,本系統(tǒng)采用Altera公司的CPLD芯片來控制ADC和RAM,從而很好地解決了時序精度和同步的問題。
CPLD作為控制芯片,實(shí)現(xiàn)的功能邏輯為:
● 接到DSP觸發(fā)信號(START)之后,實(shí)現(xiàn)對ADC的控制,發(fā)出一個Start信號,ADC開始采樣工作;
● 與ADC控制信號同步提供RAM地址計數(shù)器(A0~A16)和寫信號(/WE),使得每次ADC的結(jié)果直接存入RAM并且自動增加地址;
● 當(dāng)?shù)刂酚嫈?shù)器達(dá)到最大的時候,發(fā)出中斷信號(RAM_FULL),提示DSP系統(tǒng)RAM已滿;
CPLD的功能邏輯用VHDL語言實(shí)現(xiàn),其編譯、仿真和綜合采用Altera官方主頁提供的MAXPLUXII Student10.1版,下載電纜自制。
數(shù)據(jù)處理子系統(tǒng)(DSP子系統(tǒng))
由于系統(tǒng)在后期升級中,要求對下位機(jī)部分的數(shù)據(jù)進(jìn)行較為復(fù)雜的預(yù)處理,同時系統(tǒng)在實(shí)時性方面要求較高。因此選用TI公司的TMS320C5409作為數(shù)據(jù)處理子系統(tǒng)的CPU。
DSP子系統(tǒng)的主要工作流程為:
1)接到Trigger(由前端換能模塊發(fā)出)中斷(INT0)觸發(fā)后,拉高START信號通知信號采集模塊開始工作,然后進(jìn)入等待;
2)接到RAM_FULL中斷(INT1)之后,知道RAM已經(jīng)寫滿,首先將START信號拉低停止CPLD和ADC。然后開始逐個讀RAM中的數(shù)據(jù),根據(jù)系統(tǒng)要求做相應(yīng)處理,之后借助鎖存器發(fā)給AN2131Q;
3)在本系統(tǒng)中,DSP軟件部分的幾個函數(shù)體包括:主循環(huán);int0中斷(前端觸發(fā));int1中斷(RAM已滿)。
通信接口子系統(tǒng)(USB子系統(tǒng))
該子系統(tǒng)完成的功能,就是通過鎖存器接收DSP發(fā)過來的數(shù)據(jù),然后通過自身的USB控制器發(fā)往HOST。
采用Cypress公司的AN2131Q作為USB通信芯片。該芯片的主要特性為:
● 改進(jìn)的8051內(nèi)核。性能可達(dá)到標(biāo)準(zhǔn)8051的5~10倍,與標(biāo)準(zhǔn)8051的指令完全兼容;
● 高度集成。傳統(tǒng)USB外設(shè)的硬件設(shè)計通常包括非易失性存儲器(如EPROM、EEPROM、FLASH 、ROM)、微處理器、RAM、SIE(串行接口引擎)和DMA等。EZ-USB將上述多個模塊集成在一個芯片中,從而減少了各芯片接口部分時序配合時的麻煩;
● USB內(nèi)核。AN2131Q可以代替USB外設(shè)開發(fā)者完成USB協(xié)議中規(guī)定的80%~90%的通信工作,使得開發(fā)者不需要深入了解USB的低級協(xié)議即可順利地開發(fā)出所需要的USB外設(shè);
● Cypress公司的EZ-USB系列芯片接收全部USB 的吞吐量。這種設(shè)計不受端點(diǎn)數(shù)目、緩沖區(qū)大小及傳輸速度的限制;
● 軟配置。外設(shè)未通過USB接口連接到PC機(jī)之前,外設(shè)上的固件存儲在PC上;一旦外設(shè)接到PC機(jī)上,PC讀取設(shè)備描述符,然后將該外設(shè)的固件下載到EZ-USB的RAM中并執(zhí)行,這個過程叫做再枚舉。這種基于RAM的軟配置方法,可以允許無限的配置和升級。
● 易用的軟件開發(fā)工具。固件可獨(dú)立于驅(qū)動程序被測試。驅(qū)動程序和固件的開發(fā)與調(diào)試相互獨(dú)立,可加快開發(fā)的速度。
AN2131Q屬于Cypress公司EZ-USB系列,其驅(qū)動在Cypress公司提供的例程中略加改動即可使用,簡單可靠,編輯、編譯工具為Microsoft的VC++6.0和98DDK,調(diào)試工具采用SOFTICE。驅(qū)動程序?yàn)樯蠈討?yīng)用程序提供了很多API接口。
數(shù)據(jù)采集子系統(tǒng)與處理子系統(tǒng)的通信與同步
本系統(tǒng)有采樣速率快,數(shù)據(jù)量大的特點(diǎn)。本系統(tǒng)中,8位ADC的采樣頻率為100MHz,采樣寬度為每次20ms,那么每次采樣得到數(shù)據(jù)為100MHz*20ms=2KB;Trigger信號脈沖寬度采用50ms,由此可計算出每幀數(shù)據(jù)量為2KB * 50ms * 10KHz = 1M。數(shù)據(jù)處理采用的DSP芯片滿足這個速率要求,但是還要通過USB把數(shù)據(jù)傳向主機(jī),而系統(tǒng)采用的AN2131Q為USB1.1協(xié)議芯片,經(jīng)過測算其達(dá)不到理論的1Mb/s,因此,兩個子系統(tǒng)之間必須通過緩沖器進(jìn)行通信。目前常用的多處理器間通信方法有三種:雙口RAM;高速FIFO;總線開關(guān)加存儲器。
其中前兩者相對簡單,容易控制,但是由于目前雙口RAM和FIFO的速率和容量都達(dá)不到本系統(tǒng)的要求,因此最終選用最后一種方法,即高速RAM加總線開關(guān)的方法,由CPLD系統(tǒng)和DSP分時訪問RAM。CPLD在START電平變低之后,地址線輸出高阻,此時ADC的數(shù)據(jù)輸出也是高阻,此時DSP才開始從RAM讀數(shù)據(jù),這一邏輯保證了不會發(fā)生總線沖突。
高速DSP系統(tǒng)與AN2131Q的通信控制
通過一片數(shù)據(jù)鎖存器作為緩沖器,利用TMS320C5409的XF和BIO引腳和AN2131Q的兩個IO口作為握手引腳;同時,DSP利用中斷來管理數(shù)據(jù)傳輸;AN2131Q則通過輪循來管理數(shù)據(jù)傳輸。
系統(tǒng)整體調(diào)試
由于要采集的信號頻率較高,因此,電路板的抗高頻干擾問題是一個很重要的問題,經(jīng)過測試,高頻信號在系統(tǒng)中沒有產(chǎn)生影響系統(tǒng)整體性能的干擾。用HP信號發(fā)生器分別產(chǎn)生500KHz、5MHz、10MHz、20MHz的信號進(jìn)行測試,DSP子系統(tǒng)暫時沒有對信號進(jìn)行預(yù)處理而是原樣不動的發(fā)給USB通信芯片(信號處理函數(shù)暫時設(shè)為空參數(shù))。在應(yīng)用程序中,上層軟件利用多線程處理技術(shù),把采集到的信號同時進(jìn)行分析、顯示、存儲等,系統(tǒng)達(dá)到了令人滿意的實(shí)時性。
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。