基于SOPC的腦電信號實(shí)時(shí)處理
3 軟件設計
本系統的軟件設計包括兩個(gè)部分,一部分是基于Verilog的用戶(hù)自定義外設組件,另一部分是基于NiosⅡIDE開(kāi)發(fā)環(huán)境的各外設組件的驅動(dòng)和配置程序,以及處理腦電信號的FFT算法程序。
用戶(hù)自定義外設組件包括AD轉換和DA轉換模塊,用Verilog語(yǔ)言編寫(xiě)AD和DA的控制模塊,編譯、綜合后實(shí)現其功能并留下與Avalon interface的寄存器接口。
軟件開(kāi)發(fā)使用NiosⅡIDE,它是一個(gè)基于Eclipse IDE構架的集成開(kāi)發(fā)環(huán)境,包括:
1)GNU開(kāi)發(fā)工具(標準GCC編譯器、連接器、匯編器和makefile工具等);
2)基于GDB的調試器,包括軟件仿真和硬件調試;
3)提供用戶(hù)一個(gè)硬件抽象層HAI。(Hardware Abstraction.Iayer);
4)提供嵌入式操作系統MicroC/OS一Ⅱ和LwlCP/IP協(xié)議棧的支持:
5)提供幫助用戶(hù)快速入門(mén)的軟件模板;
6)提供Flash下載支持(Flash。Programmer和QuartusⅡProgrammer)。
NiosⅡIDE可以完成NiosⅡ處理器系統的所有軟件開(kāi)發(fā)任務(wù)。SOPC Builder生成系統后,可以直接使用NiosⅡIDE開(kāi)始設計C應用程序代碼。Altera提供外設驅動(dòng)程序和硬件抽象層(HAL),使用戶(hù)能夠快速編寫(xiě)與低級硬件細節無(wú)關(guān)的NiosⅡ程序。除了應用代碼,用戶(hù)還可以在NiosⅡIDE工程中設計和重新使用定制庫。
基于C編寫(xiě)的算法程序是腦電信號數字處理的核心程序。該程序包括6個(gè)相關(guān)文件,分別是math.h,register.h,LF2407.CMD.RIS2X X.UB,process.c和evectors.a(chǎn)sm。其中需要用到的數學(xué)公式庫文件是math.h,CPI_I內部的寄存器及其相關(guān)定義文件是re面ster.h,連接命令文件是I~2407.CMD,指示編譯器如何進(jìn)行程序空間和數據空間的分配,系統提供RTS2XX.UB庫文件,向量表文件cvectors.a(chǎn)sm定義所需的復位和中斷向量,process.c主要是完成用戶(hù)期望的功能,是整個(gè)程序的核心部分。
FFT部分算法如下:

相關(guān)算法的說(shuō)明:
1)采樣頻率Fs根據實(shí)際情況調整,仿真時(shí)為1 000 Hz;
2)快速傅里葉變換的計算公式為:

評論