Hello! 大家好,本次項(xiàng)目主題是“基于FPGA的ECG信號采集與處理系統(tǒng)設(shè)計(jì)”,與眾多STM32或Arduino等單片機(jī)直接利用軟件編程調(diào)用庫函數(shù)不同,本項(xiàng)目以底層邏輯為切入點(diǎn)進(jìn)行數(shù)字電路設(shè)計(jì),更加關(guān)注電路底層的細(xì)節(jié),包括基礎(chǔ)模塊的劃分、接口信號的定義、verilog代碼設(shè)計(jì)、仿真驗(yàn)證以及板級調(diào)試,在滿足性能要求下,同時(shí)會評估資源消耗問題,希望大家能和我一起一步一步的完成此次工程項(xiàng)目,而不是簡單的copy。其中難免有錯誤,希望各位指正。
引言: FPGA開發(fā)和數(shù)字IC設(shè)計(jì)十分相似,而兩者最基礎(chǔ)是verilog代碼設(shè)計(jì),verilog是硬件描述語言,實(shí)現(xiàn)的數(shù)字電路具備硬件并行處理的優(yōu)點(diǎn),所以verilog設(shè)計(jì)思想與基于軟件的編程語言是有很大不同的,復(fù)雜的verilog代碼設(shè)計(jì)不是隨隨便便直接在板子上調(diào)試成功的。 本項(xiàng)目側(cè)重對設(shè)計(jì)代碼的仿真驗(yàn)證,而不是簡簡單單對代碼 “搬運(yùn)工”,達(dá)到所謂“快速”入門的假現(xiàn)象。在FPGA開發(fā)中,每一行verilog代碼已經(jīng)決定了電路的性能和功能,仿真是對verilog代碼設(shè)計(jì)的有效驗(yàn)證方法,因?yàn)榇a存在的bug在仿真中會一一被定位出來,“速成”FPGA開發(fā)都是假的,不能一行一行代碼看懂和敲出來,verilog學(xué)習(xí)的時(shí)長都是無用功,正確設(shè)計(jì)方法+動手練習(xí)是FPGA開發(fā)/數(shù)字電路設(shè)計(jì)的正確打開方法。
以下是我個人設(shè)計(jì)的方法: 首先根據(jù)你的硬件條件包括FPGA板型和其他硬件(AD、VGA、LCD、舵機(jī)、攝像頭等等),確定一個硬件的詳細(xì)設(shè)計(jì)方案; 接著根據(jù)需求和參考資料將整體劃分到各個小模塊,并確定各個模塊接口之間的數(shù)據(jù)信號和控制信號;畫時(shí)序圖主要是根據(jù)數(shù)據(jù)信號走向需要哪些控制信號,而控制信號主要實(shí)現(xiàn)方式就是cnt、enable、flag等等。
其次按照圖紙就可以敲代碼了,而verilog代碼語法不是很難,主要是算術(shù)運(yùn)算符、賦值運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、條件運(yùn)算符、位運(yùn)算符以及移位拼接等,一般設(shè)計(jì)會這些足夠了,而往往多數(shù)初學(xué)者覺FPGA設(shè)計(jì)很簡單啊,大概指的這部分語法簡單,但是在敲代碼過程中還要考慮到組合邏輯以及時(shí)序邏輯中常用的模塊,{組合邏輯主要包括常用邏輯門(與門、或門、非門、異或等)、比較器、半加器、全加器、乘法器、數(shù)據(jù)選擇器、三態(tài)門,時(shí)序邏輯主要包括D觸發(fā)器、兩級D觸發(fā)器、帶異步復(fù)位的D觸發(fā)器、帶異步復(fù)位同步清零的D觸發(fā)器、移位寄存器、單口RAM、偽雙口RAM、真雙口RAM、單口ROM、有限狀態(tài)機(jī)等}。而這些基本單元在寫代碼過程做到心中有數(shù),因?yàn)檫@些決定了設(shè)計(jì)的PPA(Performance,Power,Area); 最后再通過仿真工具對設(shè)計(jì)的代碼進(jìn)行驗(yàn)證,首先是功能仿真也就是RTL行為級仿真,主要是檢查代碼中的語法錯誤以及代碼行為的正確性,但是不包括延時(shí)信息,驗(yàn)證之前“模塊劃分與接口定義”階段。其次是后仿真也就是時(shí)序仿真,在設(shè)計(jì)布局布線后提供一個時(shí)序仿真模型,驗(yàn)證之前“畫接口信號時(shí)序”階段。
步驟一:項(xiàng)目框架
目的意義 在我國,隨著生活節(jié)奏加快,心血管疾病的發(fā)病率有逐年遞增的趨勢;同時(shí)由于人們生活水平和健康意識的不斷提高,對心臟類疾病進(jìn)行實(shí)時(shí)監(jiān)護(hù)的需求也不斷增加。但是,心血管疾病本身具有無癥狀性(病人在發(fā)生心肌缺血時(shí)并沒有胸痛、心絞痛等常見癥狀)和間歇性。 選擇這個主題主要原因之一是開發(fā)一種可以幫主人們?nèi)粘I畹姆乔秩胄栽O(shè)備—基于FPGA的ECG信號采集與處理。市場上有許多ECG信號檢測產(chǎn)品可以提高效率(尺寸較小,將數(shù)據(jù)保存在云中等等),但是其中任何一件產(chǎn)品都很少涉及到復(fù)雜信號處理,并沒有與數(shù)據(jù)庫進(jìn)行比對。
內(nèi)容及結(jié)構(gòu)安排:
本文基于Xilinx公司的Artix-7系列芯片xc7a35tcpg236-1和AD83232采集板搭建一套硬件平臺用以異常ECG信號檢測系統(tǒng)。使用Vivado和ModelSim設(shè)計(jì)和仿真各個系統(tǒng)模塊的功能,本系統(tǒng)主要有AD8232信號采集,F(xiàn)PGA存儲和處理,C#GUI顯示及matlab處理。其中FPGA處理是核心部分,由以下模塊構(gòu)成:AD模塊、RAM模塊、UART模塊及濾波模塊。本文采用Verilog HDL硬件描述語言進(jìn)行編程,XADC具有兩個專用的差分輸入引腳Vp和Vn,可用于采樣模擬信號,通過ADC模塊完成100 MHz到360 Hz的數(shù)據(jù)采樣,同時(shí)采用低通濾波器消除共模噪聲;在所有存儲單元中存滿ECG的樣本數(shù)據(jù)后,將生成一個脈沖以觸發(fā)向PC的傳輸。UART模塊將接收一個信號,該信號使用TX模塊進(jìn)行發(fā)送,當(dāng)接收UART檢測到起始位時(shí),它將開始以稱為波特率的特定頻率讀取輸入位。
本項(xiàng)目主要有以下方面:
1.FPGA學(xué)習(xí)流程。編寫項(xiàng)目詳細(xì)設(shè)計(jì)方案,主要包括數(shù)據(jù)通路和控制通路的設(shè)計(jì),模塊劃分與接口信號的定義,數(shù)據(jù)通路原理圖以及控制通路時(shí)序圖,verilog代碼的具體設(shè)計(jì),以及仿真驗(yàn)證,下載到FPGA開發(fā)板調(diào)試。在verilog代碼設(shè)計(jì)過程會描述時(shí)序圖,用到IP核,數(shù)據(jù)通路的寄存器消耗資源進(jìn)行評估。
2.用到的濾波處理。在信號處理中,數(shù)字濾波器是一種對采樣的離散時(shí)間信號執(zhí)行數(shù)學(xué)運(yùn)算以減少或增強(qiáng)該信號某些方面的系統(tǒng)。數(shù)字濾波器系統(tǒng)通常由一個模數(shù)轉(zhuǎn)換器對輸入信號進(jìn)行采樣,使用FPGA或ASIC代替通用微處理器或具有特定并行架構(gòu)的專用DSP,以加快諸如過濾之類的操作。
項(xiàng)目簡介: 包含四大部分:AD采集模塊、RAM存儲模塊、濾波處理模塊、UART模塊。 首先,AD8232放大器輸出是一個介于0至3.3V之間的模擬值,ADC模塊的輸入應(yīng)為1V,因此需要進(jìn)行分壓。放置在放大器的輸出和FPGA板的輸入(Vp引腳)之間,AD模塊包括PLL和XADC 完成100 MHz到360 Hz的數(shù)據(jù)采樣。 其次,我們利用RAM模塊存儲通過ADC采集的樣本。模塊具有2個命令模式:讀取和寫入。這兩種狀態(tài)由啟用寫模式時(shí)為高電平和禁用寫模式時(shí)為低電平的信號控制。
Step1:確定整個設(shè)計(jì)思路,ECG信號檢測的總體框圖,確定程序流程框圖 Step2: AD模塊、包括XADC和分頻時(shí)鐘接口定義,進(jìn)行具體verilog代碼設(shè)計(jì)和仿真驗(yàn)證 Step3:RAM讀寫模塊、根據(jù)狀態(tài)機(jī)進(jìn)行接口定義,進(jìn)行具體verilog代碼設(shè)計(jì)和仿真驗(yàn)證 Step4:Digital filter模塊、UART模塊接口定義,進(jìn)行具體verilog代碼設(shè)計(jì)和仿真驗(yàn)證 Step5:進(jìn)行功能擴(kuò)展,并將以上所有模塊集成在一起,并且做整個仿真驗(yàn)證以及板級調(diào)試,通過在C#GUI中顯示及保存為.csv文件,利用MATLAB進(jìn)行相關(guān)算法處理,整理打包完整的開源方案所有資料。
編輯:jq
-
FPGA
+關(guān)注
關(guān)注
1630文章
21802瀏覽量
606412 -
ECG
+關(guān)注
關(guān)注
4文章
126瀏覽量
52333
原文標(biāo)題:《來實(shí)戰(zhàn)》第6期:基于FPGA的ECG信號采集與處理系統(tǒng)設(shè)計(jì)
文章出處:【微信號:cirmall,微信公眾號:電路設(shè)計(jì)技能】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論