HPI接口在腦電數(shù)據(jù)采集系統(tǒng)中的實現(xiàn)
1 引 言
TMS320VC5402是TI公司的一種16位數(shù)字信號處理器,以其獨有的低功耗和高性價比,受到用戶的歡迎。C54x操作靈活及運行速度高;使用改進的哈佛結(jié)構(gòu),具有專用硬件邏輯的CPU、片內(nèi)存儲器和外設(shè)接口,以及高度專業(yè)化的指令集。而且, C54系列DSP與主機連接通過HPI(Host Port Interface)接口,以邏輯電路設(shè)計簡單、不需要額外的存儲器和程序更新方便優(yōu)點,可以應(yīng)用靈活多樣的引導加載模式以實現(xiàn)接口和處理功能開發(fā)。
HPI口是C54x DSP系列芯片內(nèi)部的并行接口部件,用于與其他總線或CPU主機之間進行連接通信,主機是HPI口的主控者,通過專用地址和數(shù)據(jù)寄存器、HPI控制寄存器以及外部數(shù)據(jù)和接口控制信號與HPI口通信。
本文基于對一個腦電信號采集系統(tǒng)中數(shù)字處理電路部分的研究,設(shè)計并實現(xiàn)了TMS320VC5402應(yīng)用程序的HPI自舉加載,HPI方式通信,詳細介紹了調(diào)試方法與過程,對開發(fā)
基于DSP處理芯片的腦電信號采集系統(tǒng)有很大的參考價值。
2 系統(tǒng)介紹
腦電信號(EEG)是一種比較特殊的微弱信號。它是由腦神經(jīng)活動產(chǎn)生并且始終存在于中樞神經(jīng)系統(tǒng)的自發(fā)性電位活動,含有豐富的大腦活動信息。腦電信號的采集處理對于生物醫(yī)學工程學研究具有重要意義,可以為臨床手術(shù)中的麻醉鎮(zhèn)靜監(jiān)護分析提供必要的數(shù)據(jù)。腦電信號數(shù)據(jù)采集系統(tǒng)主要功能是將人腦部的生物電信號通過腦電極提取出來,經(jīng)過放大處理,傳輸至上位機顯示并存儲。本文所研究的數(shù)字腦電采集系統(tǒng)就是基于DSP 芯片VC5402 處理能力強、實時性高等優(yōu)點的應(yīng)用。由系統(tǒng)模擬部分對腦電信號進行放大和預處理,經(jīng)過A/D 變換后送往數(shù)字處理部分。數(shù)字處理部分由DSP 芯片和USB 等芯片構(gòu)成,由DSP 控制實現(xiàn)對腦電數(shù)字信號的采集與處理,并完成DSP 與USB 芯片的通信,最后通過USB總線將數(shù)據(jù)送往上位機實時顯示與儲存。
系統(tǒng)的核心為TMS320VC5402,有三個功能:首先,控制整個系統(tǒng)模數(shù)轉(zhuǎn)換并設(shè)置各種模擬部分的參數(shù);其次,對A/D變換后的數(shù)據(jù)進行各種算法處理,包括信號濾波與分析等,也是高性能腦電數(shù)字信號采集器的重點;最后完成數(shù)據(jù)接口功能,把數(shù)據(jù)按一定的格式打包,通過高速的HPI總線把數(shù)據(jù)交給USB接口芯片并送往PC機。圖(1)為整個方案的原理圖,其中虛線部分為調(diào)試過程示意圖。調(diào)試過程中,通過集成開發(fā)環(huán)境KEIL C51和CCS 5000系統(tǒng),可視化的調(diào)試過程有利于整個方案的后期調(diào)試。
圖 1 系統(tǒng)方框圖
3 透明式USB通信設(shè)計
VC5402 自身提供了標準的串行口, 時分復用(TDM) 串行口和自動緩沖串行口BSP(Auto-Buffered Serial Port),這些接口必須通過PC 機的串口與PC 機進行通信,而PC 機的串口無法滿足高速數(shù)據(jù)采集對速度的要求。本文采用CY7C68013A 芯片通過HPI(HostPort Interface)接口和DSP 芯片TMS320VC5402 相連,再由CY7C68013A 通過USB2.0 將數(shù)據(jù)傳送到PC 機上,方便滿足系統(tǒng)對傳輸速度的要求。
3.1 硬件
CY7C68013A芯片有56腳SSOP,56腳QFN,100腳TQFP以及128腳TQFP四種封裝形式。引腳少的芯片占用PCB面積小,價格低,功能基本滿足需要。但在開發(fā)階段,選取100腳TQFP封裝形式以支持在線調(diào)試,可以節(jié)省開發(fā)時間。實際生產(chǎn)階段,可以采用56腳封裝芯片來做實際電路應(yīng)用。
3.2 開發(fā)工具
本文選用Keil uVision3作為USB接口芯片固件程序的開發(fā)工具能提高開發(fā)效果。KeiluVision3是一個集成開發(fā)環(huán)境,擁有C51編譯器、A51匯編器以及BL連接定位器等工具和模擬仿真與調(diào)試器。它能夠支持C程序和匯編程序混合的編程工作,對軟件的開發(fā)便利。
3.3 固件開發(fā)與調(diào)試過程
在編寫固件程序時需要用到大量的函數(shù),可以應(yīng)用CY7C68013A芯片的開發(fā)工具包。該開發(fā)包提供了開發(fā)所需的固件框架程序以及一些例程,以簡化其固件開發(fā)過程。在Cypress C51固件框架程序下的主要工作有:
1、修改設(shè)備描述符表: USB 設(shè)備與主機建立通信前須先向主機提供具體配置,包括設(shè)備的廠商、產(chǎn)品識別號(VID,PID),設(shè)備的供電方式以及能量消耗等系列信息。而有關(guān)設(shè)備的信息是通過設(shè)備描述符表提供給主機的,從而決定主機使用哪一個USB 設(shè)備驅(qū)動和采用哪種方式建立與設(shè)備之間的連接。
2、CY7C68013A有可編程接口GPIF??删幊探涌贕PIF是主機方式,可以由軟件編寫讀寫控制時序,幾乎可以和所有8/16 bit接口的控制器、存儲器和總線進行無縫連接。在調(diào)試過程中,把CY7C68013A芯片的串口接到PC機的串口上,無需仿真器就能完成在線仿真工作。利用CYPRESS提供開發(fā)工具包的Monitor程序,能對應(yīng)用程序?qū)嵤﹩尾竭\行、斷點設(shè)置和變量查看等調(diào)試工作,既降低了固件程序的開發(fā)難度,又加速了USB系統(tǒng)開發(fā)的過程。
4 DSP部分設(shè)計
4.1 HPI方式自舉加載
VC5402片內(nèi)ROM 固化有TI公司的自舉引導程序Bootloader,在上電復位時把用戶代碼從外部存儲器引導到片內(nèi)RAM 并運行。VC5402支持多種引導方式,如HPI引導、并行EPROM引導、并行I/O引導、串行口引導等。DSP采用哪種引導模式取決于硬件設(shè)計。VC5402上電復位后,先檢測MP/MC引腳,如果MP/MC=“0”,表示使用片內(nèi)ROM引導。此時,DSP從0xFF80處開始執(zhí)行TI的片內(nèi)引導程序。進入引導程序后,首先HINT引腳變?yōu)榈碗娖剑缓箝_始檢測INT2是否為低電平(有效)。若INT2為低電平,則進入HPI引導方式;否則,檢測其它引導方式是否有效。在硬件連接上,為了使VC5402復位后進入HPI啟動方式,直接使INT2接到HINT引腳上,使HPIENA引腳接高電平。對HPI接口的操作主要通過以下三個寄存器來完成:HPI地址寄存器(HPIA)、數(shù)據(jù)鎖存器(HPID)和控制寄存器(HPIC)。如當前進行的是讀操作,則HPID中存放的是要從HPI存儲器中讀出的數(shù)據(jù);如果當前進行的是寫操作,則HPID存放的是要寫到HPI存儲器的數(shù)據(jù)。
4.2 軟件部分設(shè)計
CCS(Code Composer Studio)是TI開發(fā)的一個DSP集成開發(fā)環(huán)境。其集成了常規(guī)的開發(fā)工具,如源程序編輯器、代碼生成工具(編譯器,連接器)以及調(diào)試環(huán)境等。CCS的編譯器和鏈接器生成COFF格式文件,用HEX轉(zhuǎn)化程序hex500.exe將COFF格式代碼轉(zhuǎn)換為標準的ASCII十六進制格式TI Tagged,支持16位地址。轉(zhuǎn)換而成的Hex文件為ASCII碼形式的,不能用于HPI自舉,需將其轉(zhuǎn)換為二進制(Bin)格式。
4.3 用戶代碼下載(HPI)
由于Intel的HEX代碼格式是分段的,本文編寫的代碼段,是將一個Intel 的HEX代碼段通過HPI接口寫入DSP RAM中。下面代碼段為HPI加載子程序,count為要寫入代碼的長度,addrESS為起始地址,EP2FIFOBUF是指向HEX代碼段的指針,HPI_WriteA子程序功能是寫HPI地址寄存器,HPI_WriteD2完成部分程序的寫入。代碼如下:
4.4 寫入DSP入口地址并運行
在TMS320VC5402進入HPI啟動模式后,它將一直檢查0X007F這個地址是否為0,如不為0,則跳轉(zhuǎn)到0X007F指向的地址處執(zhí)行代碼。在將DSP的代碼寫入之后,只需將程序的入口地址寫入0X007F這個地址,DSP將自動跳轉(zhuǎn)到入口執(zhí)行程序。程序的入口地址可以在CCS生成的.map文件中看到,其格式如:ENTRY POINT SYMBOL: "_c_int00" address: 000020be。
由于調(diào)用的是HPI_WriteD2()函數(shù)寫數(shù)據(jù),而HPI_WriteD2()在寫數(shù)據(jù)之前,會自動將地址+1,所以在調(diào)用之前寫入地址時,調(diào)用的是HPI_WriteA(0x007E),這樣,最后調(diào)用HPI_WriteD2(m_dat)時,地址會自動指向0X007F。
4.5 觀察寫入代碼
TMS320VC5402 在仿真時候其HPI接口也是正常工作的,這就方便了對HPI啟動方式的調(diào)試。首先把5402連接到仿真器上,然后打開CCS5000集成環(huán)境。此時可以利用CCS5000的MemoryView來觀察5402的內(nèi)部RAM數(shù)據(jù)。調(diào)試中,先通過HPI接口把DSP的代碼下載進去,再通過CCS5000集成環(huán)境觀察,同時用UltraEdit十六進制編輯器打開由HEX500.EXE生成的.HEX文件。由于兩者都是以ASCII碼形式顯示,可以直觀地比較各個地址空間中的代碼是否完全相同以及下載的代碼是否完全正確。
4.6 整體方案測試效果
上述的各個模塊調(diào)試通過后,又編寫了上位機應(yīng)用程序。上位機應(yīng)用程序功能包括:建立USB 通信、加載DSP 代碼、讀取DSP 代碼、寫入口地址、數(shù)據(jù)采集與保存等功能。在把各個??爝B接之后,用控制臺通過HPI 接口加載DSP 代碼5402 Code.i00,并寫入程序入口地址0x20BE,啟動下位機進入采集過程。圖2 為上位機控制臺應(yīng)用程序截圖。
圖2 應(yīng)用程序截圖
5 結(jié) 論
利用 C54x 的HPI 接口在腦電數(shù)據(jù)采集系統(tǒng)中的設(shè)計與實現(xiàn),可用于自發(fā)腦電信號實時準確的高速采集。如從DSP 的實際應(yīng)用環(huán)境出發(fā),利用DSP 的HPI 加載方式和JTAG 調(diào)試相結(jié)合的開發(fā)模式,可以在線調(diào)試該電路板的制作,自行編制相應(yīng)的主機軟件,設(shè)計DSP KERNEI和HPI 接口邏輯,還可以實現(xiàn)開發(fā)基于HPI 自舉和通信的DSP 應(yīng)用設(shè)計方案。這樣做可以縮短開發(fā)周期,且硬件資源透明。該透明化開發(fā)過程更利于學習者理解和掌握DSP 的軟硬件原理。該方案還可以從腦電采集系統(tǒng)設(shè)計推廣到其它領(lǐng)域。
本文作者創(chuàng)新點:在于將USB接口芯片CY7C68013A(100引腳)的在線仿真和DSP芯片TMS320VC5402的JTAG仿真結(jié)合起來,設(shè)計VC5402基于USB2.0和HPI自舉加載的腦電采集系統(tǒng)。通過CCS5000集成環(huán)境,能即刻查看DSP內(nèi)部HPI加載代碼,使該方案設(shè)計的采集系統(tǒng)直觀地調(diào)試并縮短開發(fā)時間。該方案還可以從腦電采集系統(tǒng)設(shè)計方面推廣到其它領(lǐng)域。
評論