基于Nios II軟核處理器的多生理參數(shù)測(cè)量系統(tǒng)的總體設(shè)計(jì)
本文主要搭建一個(gè)多生理參數(shù)測(cè)量系統(tǒng)的數(shù)據(jù)處理平臺(tái),在FPGA中嵌入一個(gè)32位Nios II軟核處理器,用于控制數(shù)據(jù)的傳輸、存儲(chǔ)及顯示。主要完成了此數(shù)據(jù)處理平臺(tái)硬件系統(tǒng)的定制及編寫相應(yīng)程序,以控制數(shù)據(jù)的采集、存儲(chǔ)及顯示。
采用Nios II處理器為核心進(jìn)行設(shè)計(jì),可以將全部的接口電路集成在同一片F(xiàn)PGA上,結(jié)構(gòu)簡單。同時(shí),利用Nios II軟核可在線配置的優(yōu)點(diǎn),通過軟件編程改變FPGA的內(nèi)部結(jié)構(gòu)即可迅速、方便地實(shí)現(xiàn)系統(tǒng)性能的擴(kuò)展、升級(jí),大大縮短了系統(tǒng)的開發(fā)周期,提高了性價(jià)比。
多生理參數(shù)測(cè)量系統(tǒng)的總體設(shè)計(jì)
一個(gè)完整的生理參數(shù)檢測(cè)系統(tǒng)結(jié)構(gòu)可分為三部分:前端檢測(cè)電路、接口部分、數(shù)據(jù)處理平臺(tái),分別完成生理信號(hào)的采集、傳輸和信號(hào)的處理功能,系統(tǒng)層次結(jié)構(gòu)如圖1所示。
前端檢測(cè)電路主要完成信號(hào)的采集和量化。通過連接不同的傳感器,可以對(duì)不同的生理信號(hào)進(jìn)行采集,包括心電信號(hào)、脈搏信號(hào)、體溫等常見生理信號(hào)。采集到的生理信號(hào)經(jīng)過一些放大、濾波、模數(shù)轉(zhuǎn)換處理后,通過串口發(fā)送至數(shù)據(jù)處理模塊進(jìn)行處理,得到所需要的各種生理參數(shù),最后進(jìn)行顯示或者無線傳輸。本文主要完成基于FPGA技術(shù)的數(shù)據(jù)處理平臺(tái)的搭建。
基于FPGA技術(shù)的數(shù)據(jù)處理平臺(tái)的設(shè)計(jì)
本設(shè)計(jì)搭建的是一個(gè)以Nios II軟核處理器為核心的數(shù)據(jù)處理平臺(tái),首先控制串口接收數(shù)據(jù),并存儲(chǔ)在相應(yīng)的存儲(chǔ)空間,經(jīng)過相關(guān)的數(shù)據(jù)處理,通過控制顯示外設(shè)顯示相應(yīng)的波形和參數(shù)。NiosⅡ是基于哈佛結(jié)構(gòu)的RISC通用嵌入式處理器軟核,能與用戶邏輯相結(jié)合,編程至Altera的FPGA中。處理器具有32位指令集、32位數(shù)據(jù)通道和可配置的指令以及數(shù)據(jù)緩沖[2-3]。
硬件平臺(tái)的構(gòu)建
在本設(shè)計(jì)中,NiosⅡ軟核處理器作為控制核心,通過連接串口、存儲(chǔ)器件、顯示外設(shè)構(gòu)成基本的數(shù)據(jù)處理平臺(tái)。因此搭建了如圖2所示的硬件平臺(tái)。
硬件平臺(tái)主要在Terasic公司的Altera DE2開發(fā)板上實(shí)現(xiàn),系統(tǒng)的主要組件有NiosⅡ的內(nèi)核、片內(nèi)存儲(chǔ)器、定時(shí)器、VGA控制器、LCD控制器等,都集成在一塊Altera的Cyclone II FPGA芯片上,使用SoPC Builder來配置生成片上系統(tǒng)。SoPC Builder自動(dòng)產(chǎn)生每個(gè)模塊的HDL文件,同時(shí)自動(dòng)產(chǎn)生一些必要的仲裁邏輯來協(xié)調(diào)系統(tǒng)中各部件的工作[4]。
NiosⅡ軟核系統(tǒng)的定制
根據(jù)圖2所構(gòu)建的硬件平臺(tái),利用SoPC Builder定制32位NiosⅡ CPU以及參數(shù)化的Avalon接口總線,然后再通過適當(dāng)增添平臺(tái)中所需的元件核,以適應(yīng)NiosⅡ系統(tǒng)功能的需求,生成如圖3所示的基本定制。
軟件設(shè)計(jì)
軟件部分主要是控制數(shù)據(jù)的接收、存儲(chǔ)以及顯示。在自定義IP核模塊中可以設(shè)計(jì)一些數(shù)據(jù)處理的算法,如數(shù)字濾波算法、某些生理參數(shù)值的計(jì)算,包括血壓值、心率等。
數(shù)據(jù)接收模塊的設(shè)計(jì)
本設(shè)計(jì)使用串口接收數(shù)據(jù),Nios II開發(fā)中使用的UART串口模塊是一個(gè)SoPC Builder組件,它包含在Nios II開發(fā)包中。在開發(fā)包中還預(yù)定義了一些關(guān)于UART的數(shù)據(jù)結(jié)構(gòu)和常用的UART函數(shù),這樣可以方便地對(duì)UART進(jìn)行編程。
首先,要在SoPC Builder中對(duì)UART的參數(shù)進(jìn)行設(shè)置,包括波特率、傳輸?shù)臄?shù)據(jù)幀格式等。當(dāng)在SOPC Builder下完成系統(tǒng)的硬件設(shè)計(jì)時(shí),會(huì)自動(dòng)生成一個(gè)硬件抽象層(HAL)文件,作為軟件和硬件的接口,同時(shí)會(huì)在excalibur.h頭文件中聲明UART模塊的相關(guān)數(shù)據(jù)結(jié)構(gòu)。軟件通過外設(shè)的抽象地址映射接口接入硬件。本設(shè)計(jì)使用串口中斷的方式接收數(shù)據(jù),其流程如圖4所示。
數(shù)據(jù)顯示模塊的設(shè)計(jì)
在Nios II系統(tǒng)中,VGA是一個(gè)外設(shè)IP核。設(shè)計(jì)中最重要的部分是VGA時(shí)序的產(chǎn)生,它是正常輸出顯示的關(guān)鍵,包含在VGA控制器中。VGA控制器是用SoPC Builder中的interface to user logic生成的,首先用硬件描述語言定義一個(gè)時(shí)序輸出和RGB信號(hào)輸出模塊,點(diǎn)時(shí)鐘25.175MHz由開發(fā)板提供的時(shí)鐘經(jīng)鎖相環(huán)分頻產(chǎn)生。鎖相環(huán)是通過MegWizard工具加入系統(tǒng)的。該模塊實(shí)現(xiàn)了VGA輸出所需的點(diǎn)時(shí)鐘、復(fù)合同步控制信號(hào)、復(fù)合消隱控制信號(hào)、行同步和場(chǎng)同步信號(hào);同時(shí)也完成了從寄存器內(nèi)讀取輸出顯示命令及顏色值。其中點(diǎn)時(shí)鐘、復(fù)合同步控制信號(hào)、復(fù)合消隱控制信號(hào)和RGB數(shù)字信號(hào)輸入給ADV7123,行同步、場(chǎng)同步和由ADV7123轉(zhuǎn)換輸出的RGB模擬信號(hào)輸入給VGA顯示器。另外,還要用硬件描述語言實(shí)現(xiàn)對(duì)寄存器的讀寫,以使VGA控制器端口符合Avalon接口規(guī)范。
用HDL語言編寫了VGA模塊的時(shí)序控制及RGB信號(hào)的輸出程序,其時(shí)序仿真結(jié)果如圖5所示。
數(shù)據(jù)存儲(chǔ)模塊的設(shè)計(jì)
本設(shè)計(jì)所用的開發(fā)板上提供了豐富的存儲(chǔ)資源,包括8MB的SDRAM、512KB的SRAM、4MB的Flash,另外還有SD卡接口,通用的GPIO接口也可以方便地連接片外擴(kuò)展的存儲(chǔ)芯片。
本文主要設(shè)計(jì)了以Nios II軟核處理器為核心的數(shù)據(jù)處理平臺(tái)。在以后的設(shè)計(jì)中,可以進(jìn)一步研究數(shù)據(jù)處理的算法,包括信號(hào)的數(shù)字濾波、參數(shù)的數(shù)值計(jì)算等。
基于極其靈活的Nios II處理器的數(shù)據(jù)處理平臺(tái)可以根據(jù)不同醫(yī)院、社區(qū)和家庭的需要,通過選擇不同的前端數(shù)據(jù)采集模塊和相應(yīng)的數(shù)據(jù)處理算法進(jìn)行快速的配置和升級(jí)。同時(shí)可以通過網(wǎng)絡(luò)連接,實(shí)現(xiàn)遠(yuǎn)程醫(yī)療和信息共享。在現(xiàn)代醫(yī)療儀器的設(shè)計(jì)中采用現(xiàn)場(chǎng)可編程門陣列實(shí)現(xiàn),將顯著縮短開發(fā)周期,減少設(shè)計(jì)風(fēng)險(xiǎn),降低成本,提高產(chǎn)品的可靠性、靈活性,并實(shí)現(xiàn)模塊化、微型化。