超聲波流量計多普勒原理的探討 五十四
本設計中就采用C語言和匯編語言混合編程,軟件系統中主程序采用C語言編寫,而FIR濾波子程序、數據相關處理子程序采用匯編語言編寫,這樣就既考慮到程序的清晰明了,又兼顧了復雜算法的高效率執行。
4.1.3 DSP程序流程
DSP軟件設計的目的就是為了計算出流速,這其中包括從FIFO讀取數據,數字濾波,快速傅立葉變換(FFT)。
軟件設計主要分成三個部分:
(1)主程序,程序流程圖4.2中的(a)圖;
(2)DSP中斷程序,FIFO寫完后產生中斷以通知DSP讀取數據,DSP中
斷程序的流程圖如圖4.2中的(c)圖;
(3)數據處理子程序,對采樣數據進行、濾波、FFT,其程序流程圖見圖
4.2中的(b)圖。
這三部分的程序的運行關系如下:
主程序和中斷程序是通過一個時間標志FIFO FLAG來通信,系統上電,主程序就循環檢測FIFO FLAG這個標志位,當系統的一個周期的FIFO寫完后,外部產生一個DSP的中斷信號,DSP則執行中斷程序,在中斷程序中只負責從FIFO中讀取數據,而后設置FIFO FLAG=l,表明數據已經接收并放入緩沖區中。中斷程序執行完則回到主程序,主程序循環檢測FIFO FLAG這個標志位,當檢測到FIFQFLAG=1時則調用的數據處理函數是Sig__proO進行數據的處理,在數據處理函數Sig_pr00q,,進行相應的數據處理,之后設置rIro_rLAG=0,再返回主程序。
超聲波流量計