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