基于ARM和FPGA的智能小車監控系統
3.2 速度采集程序設計
速度傳感器由紅外反射式傳感器和施密特觸發器組成,經過施密特觸發器整形后信號的頻率與速度相關,通過測量該信號頻率計算車模行駛速度。在Windows CE中,API函數SetTimer()可以設置定時器編號和定時時間,當定時時間到達時,執行消息響應函數OnTimer。速度采集流程如圖7所示。調用SetTimer函數設置定時器初值,當外部中斷EINT_19產生時,即一個脈沖信號到來,計數變量CNT加1,當SetTimer()函數設置的時間到來時,執行OnTimer()函數,該函數負責計算車模速度并將計數變量CNT清0。本文引用地址:http://www.104case.com/article/151426.htm
計數變量CNT雖然與速度成正比關系,但它并不是真正的行駛速度,需要經過一定的數學轉換,才能傳送到遠程監控端并顯示。假設車模后輪直徑為D,光柵編碼盤黑白相間的個數為M,在定時時間T秒內記得脈沖個數為N,則車模行駛速度:
3.3 網絡傳輸程序設計
該系統網絡傳輸程序是基于TCP協議來實現的。S3C2440A組成的嵌入式設備作為服務器負責圖像采集、速度采集、車模控制。服務器調用accept()函數等待客戶端的連接請求,服務器端接收該連接請求后,雙方就此建立了連接。客戶端通過send()發送請求命令,服務器調用recv()函數接收該請求命令,通過命令解析來執行具體的操作,若收到圖像采集命令,服務器端打開攝像頭驅動,設置圖像像素大小后,將采集到YCbCr數據進行JPEG的壓縮并保存為.jpg格式的圖片。然后將該圖片發送到客戶端,客戶端將該圖片在圖像顯示區域顯示;若收到速度采集命令,服務器端打開定時器,打開外部中斷EINT19,用于計數,當定時時間到后,將計數脈沖轉換為以cm/s為單位的速度發送到客戶端,客戶端將采集到速度在速度顯示區顯示;若收到控制車模運行狀態,如前進、后退、左轉、右轉,服務器端打開GPIO驅動,通過GPIO端口輸出控制信號,控制FPGA輸出占空比可調的PWM信號,即可控制車模的運行狀態。
客戶端負責發送控制車模、圖像采集、速度采集的命令,然后將服務器端發送過來的圖像、速度信息進行顯示。客戶端的監控界面如圖8所示。
遠程地址欄輸入服務端IP地址,點擊“創建連接”按鈕即可和服務器端進行連接,連接成功后,就可以進行一系列的命令發送。
4 結語
該設計在自制電路板板上進行了軟、硬件的系統集成及測試。測試結果為:圖像采集時鐘24 MHz;圖像采集速度為30 f/s;行同步頻率為14.5 kHz,圖像采集像素為640×480;JPEG壓縮比達到10:1;運動控制命令響應時間為5μs,網絡傳輸速率達10 Mb/s。
評論