基于FPGA的生命探測儀算法研究與系統(tǒng)設(shè)計
3.2 異步FIFO設(shè)計
FIFO是一種先入先出的內(nèi)存數(shù)組,其控制邏輯將執(zhí)行所有必要的讀寫指針管理,并產(chǎn)生狀態(tài)標(biāo)志信號和可選擇的與用戶邏輯電路接口連接的握手信號。由于數(shù)據(jù)采樣數(shù)率遠(yuǎn)遠(yuǎn)小于串口數(shù)據(jù)傳輸速率,濾波器輸出與串行通信接口之間要進行數(shù)據(jù)緩存,這里使用異步FIFO模塊實現(xiàn)不同時鐘模塊間的數(shù)據(jù)傳送。圖5所示是異步FIFO時序仿真波形。本文引用地址:http://2s4d.com/article/190438.htm
。其中m為所用寄存器位數(shù),Baud為波特率,clk為時鐘頻率。系統(tǒng)全局時鐘為40 MHz,傳輸波特率為19.2 Kb/s??捎纱耸剿愠龇诸l因子X=31.5,四舍五入后得X=32,實際產(chǎn)生的波特率為Baudclk=19 193,跟理想的19 200波特率誤差為0.04%。
3.3.2 串口發(fā)送模塊
串口發(fā)送模塊主要實現(xiàn)將FIFO輸出的8位并行數(shù)據(jù)封8進行串行發(fā)送的功能。發(fā)送時對于異步傳輸協(xié)議,不需要同接收端進行時間同步。幀的傳送靠起始位來同步,起始位低電平,用下降沿沿通知對方接收方傳輸?shù)拈_始,緊跟著是8位數(shù)據(jù)位,傳輸時低位元在前,高位在后。數(shù)據(jù)位后面是停止位,高電平有效。串口發(fā)送模塊仿真結(jié)果如圖7所示。
3.3.3 串口接收模塊
串口接收模塊主要實現(xiàn)將上位機發(fā)送的串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù)的功能。接收模塊實際上是發(fā)送模塊的逆過程,當(dāng)檢測到低電平時,表示有資料到來。為了確定新數(shù)據(jù)的到來,即檢測開始位,我們使用8倍于波特率的采樣時鐘對接收到的信號進行采樣,以防止因為毛刺等造成錯誤判斷。當(dāng)8位數(shù)據(jù)接收完成后,ready輸出高電平,數(shù)據(jù)輸出有效。串口接收模塊仿真結(jié)果如圖8所示。
4 結(jié)語
本文從理淪上研究了雷達式生命探測儀的算法,推導(dǎo)出了人體呼吸和運動所產(chǎn)生的多普勒頻移范圍,設(shè)計了生命探測儀信號處理板硬件系統(tǒng),并詳細(xì)介紹了利用FPGA實現(xiàn)濾波、異步存取以及數(shù)據(jù)收發(fā)和控制。利用FPGA與ARM9的結(jié)合,實現(xiàn)了生命探測儀的小型化與便攜化。實驗證明,本項目開發(fā)的生命探測儀達到了隔墻心跳探測大于4 m,人體移動大于10 m,實現(xiàn)了較高的戰(zhàn)術(shù)指標(biāo)。
評論