FPGA在數(shù)字式心率計中的電路組成及工作原理
2.1 波形變換電路
由比較器獲得的方波心率脈沖還不能直接用于心率測量,因為脈沖寬度太大。要進行正確的心率測量,必須對這個方波脈沖進行微分,將其寬度調(diào)整為一個時鐘周期寬。微分電路如圖3所示。用VHDL語言編程時,可用一個時鐘進程實現(xiàn)這個微分電路。圖3中各點波形如圖4所示。
2.2 心率計算電路
根據(jù)瞬時心率計算公式及圖1,瞬時心率的計算應(yīng)以1kHz的時鐘頻率作為時間基準(zhǔn),測量相鄰兩次心跳之間的時間,然后做除法運算。因此,瞬時心率計算電路應(yīng)包括一個12位的二進制計數(shù)器和一個16位的二進制除法電路。平均心率的計算應(yīng)根據(jù)測量結(jié)束前最后測得的16次心率值求平均,因此心率計算電路還應(yīng)包括一個能完成12位二時制數(shù)加法的電路和一個能完成12位二進制數(shù)除法的電路,這個除法運算可通過移位寄存器右移四次來實現(xiàn)。計數(shù)器、加法器和移位寄存器在FPGA中用VHDL語言實現(xiàn)都很容易。下面主要討論測量的實現(xiàn)方法。
瞬時心率計算公式是一個拋物線函數(shù),分母中計數(shù)值N是一個變量,這個除法運算不能通過簡單的移位寄存器來實現(xiàn);而設(shè)計16位二進制除法運算電路,無論采用組合電路還是采用時序電路,都將耗費很多的芯片資源。另一方面,人的正常心率為60~120跳/分鐘,即使心率出現(xiàn)異常,也不會超過20~200跳/分鐘,因此所測量的心率值只有有限個數(shù)據(jù)。這樣,可根據(jù)每一個可能出現(xiàn)的心率值,預(yù)先求出N的變化范圍,制作一張表,存入ROM中。實際測量時,再根據(jù)測到的N值,選擇相應(yīng)的心率數(shù)據(jù)。假設(shè)心率的變化范圍為20~200,則N的變化范圍為3077~300。瞬時心率值IHR與計數(shù)值N的關(guān)系如表1所示。
計算電路除了完成上述功能外,還要將瞬時心率值和平均心率值轉(zhuǎn)換為七段顯示代碼,再送入LED顯示器進行數(shù)字顯示。
DIY機械鍵盤相關(guān)社區(qū):機械鍵盤DIY
評論