《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于ARM和FPGA的智能小車監(jiān)控系統(tǒng)
基于ARM和FPGA的智能小車監(jiān)控系統(tǒng)
現(xiàn)代電子技術(shù)
陳素華 方 旭 司宏昌
摘要: 基于ARM和FPGA的智能小車監(jiān)控系統(tǒng),為了解決PC監(jiān)控系統(tǒng)中監(jiān)控范圍有限、不可移動的弊端,,提出一種基于ARM和FPGA的智能小車監(jiān)控系統(tǒng),。該系統(tǒng)利用ARM芯片S3C2440A控制圖像采集、網(wǎng)絡(luò)傳輸,、速度采集干擾小的模塊,利用FPGA芯片控制電機驅(qū)動、舵機控制,、電量采集干擾大的模塊。測試結(jié)果表明,,該系統(tǒng)實現(xiàn)了本地圖像采集并通過網(wǎng)絡(luò)傳輸?shù)竭h程監(jiān)控端,,遠程監(jiān)控端根據(jù)傳輸?shù)膱D像來控制智能小車的運動。該系統(tǒng)功能擴展容易,,設(shè)計成本低,,上市時間快,功耗低,。
Abstract:
Key words :

0 引言
    智能小車是機器人研究領(lǐng)域的一項重要內(nèi)容,。它集機械,、電子、檢測技術(shù)與智能控制于一體,。在各種移動機構(gòu)中,,智能小車的輪式移動機構(gòu)最為常見。輪式移動機構(gòu)之所以得到廣泛的應(yīng)用,,主要是因為容易控制其移動速度和移動方向,。智能小車可以適應(yīng)不同環(huán)境,不受溫度,、濕度等條件的影響,,完成危險地段、人類無法介入等特殊情況下的任務(wù),。一般的智能小車操作控制復(fù)雜,、功能單一、不能遠程重構(gòu),。
    本文介紹的智能小車可移動視頻監(jiān)控系統(tǒng),,以“飛思卡爾杯”智能小車競賽提供的車模裝置為基礎(chǔ),利用ARM芯片S3C2440A控制圖像采集,、網(wǎng)絡(luò)傳輸,、速度采集干擾小的模塊,利用FPGA芯片控制電機驅(qū)動,、舵機控制,、電量采集干擾大的模塊,當上位機通過Internet訪問智能小車服務(wù)器時,,在監(jiān)控界面上點擊按鈕來控制小車的運行,、圖像拍攝、速度采集,。

1 系統(tǒng)總體設(shè)計
   
該系統(tǒng)采用三星公司的ARM芯片S3C2440A作為主控制芯片及Altera公司的FPGA芯片EP2C5T144C8作為輔助控制芯片,,ARM上裝有Windows CE5.0操作系統(tǒng)。S3C2440A內(nèi)置豐富的外設(shè)資源包括中斷控制器,、GPIO,、I2C、相機接口等接口電路,,其內(nèi)核為16/32位的ARM920T處理器,,它集MMU,AMBA BUS和Harvard高速緩沖體系結(jié)構(gòu)與一體,,主頻可達400 MHz,。
    利用ARM9控制圖像采集、速度采集、網(wǎng)絡(luò)傳輸?shù)裙男?、干擾弱的模塊,;利用FPGA單獨控制功耗大、干擾強的直流電機,、舵機,、固態(tài)繼電器以提高系統(tǒng)的抗干擾能力。ARM9和FPGA以并行總線的方式進行數(shù)據(jù)和控制信號的傳輸,,需要注意的是ARM的I/O口需要設(shè)置為禁止上拉,,否則無法和FPGA進行通信。該系統(tǒng)具體組成如圖1所示,。



2 系統(tǒng)硬件電路設(shè)計
2.1 圖像采集電路設(shè)計

    圖像采集模塊選用OmniVision公司的CMOS圖像傳感器OV9650,,可達130萬像素,具有標準SCCB(setial camera control bus)接口,,通過該接口可以方便地設(shè)置圖像像素大小,、輸出YCbCr順序、白平衡,、色飽和等重要參數(shù),。
    S3C2440A可以直接和CMOS圖像傳感器OV9650連接,如圖2所示,。OV9650的PWDN引腳與S3C2440A的GPG12引腳相連,,這樣可以控制OV9650的工作狀態(tài)。當無須采集圖像時,,將GPG12輸出高電平,,OV9650芯片處于掉電模式,節(jié)省電能消耗,。OV9650可輸出YCbCr,RGB兩種格式的數(shù)據(jù),,當輸出YCbCr格式時,,要用到數(shù)據(jù)線的D2~D9;當輸出RGB格式時,,則需要用數(shù)據(jù)線D0~D9,。本文采用YCbCr格式,數(shù)據(jù)線D2~D9與S3C2440A的CAMDATA0~CAMDATA7相連,。


    S3C2440A芯片具有相機接口CAMIF,,其內(nèi)部單元如圖3所示,CAMIF支持ITU-R BT.601/656YCbCr 8 b標準的圖像數(shù)據(jù)輸入,,最大可采樣4 096×4 096像素的圖像,。該接口可以使用兩種通道將圖像數(shù)據(jù)存儲在SDRAM中:一種是預(yù)覽通道模式,將從相機接口采集到的圖像數(shù)據(jù)轉(zhuǎn)為RGB數(shù)據(jù),,并在DMA控制下傳輸?shù)絊DRAM,,這種模式通常用來提供圖像預(yù)覽功能,;另一種是編碼通道模式,將圖像數(shù)據(jù)按照YCbCr 4:2:0或者YCbCr 4:2:2的格式傳輸?shù)絊DRAM,,這種模式主要為JPEC,,MPEG-4,H.263等編碼器提供圖像數(shù)據(jù)的輸入,。


2.2 網(wǎng)絡(luò)傳輸模塊電路設(shè)計
   
網(wǎng)絡(luò)傳輸模塊選用DAVICOM公司推出的一款高速以太網(wǎng)接口芯片DM9000A,,內(nèi)部集成10/100M物理層接口,16 KB SRAM用作接收發(fā)送的F-IFO緩存,,支持8/16 b內(nèi)存數(shù)據(jù)存取接口,。
    S3C2440A內(nèi)部沒有專用以太網(wǎng)控制器,需要外部總線外掛一個以太網(wǎng)控制器,,才能實現(xiàn)S3C2440A連接以太網(wǎng)的需要,,該系統(tǒng)選用DM9000A作為以太網(wǎng)的物理層接口。DM9000A與S3C2440A的連接比較簡單,,如圖4所示,。S3C2440A數(shù)據(jù)總線DATA0~DATA15與芯片的SD0~SD15連接;地址線ADDR2與芯片的CMD連接,;片選線nGCS3與芯片nCS的相連,;9號外中斷與芯片的INT相連。DM9000A以太網(wǎng)控制器的工作基址為0x300,,而S3C2440A的地址線ADDR2與芯片的命令/數(shù)據(jù)使能端CMD相連,,所以對其進行操作時的地址是0x300(地址端口)或0x304(數(shù)據(jù)端口)。
2.3 運動控制電路設(shè)計
   
速度采集模塊由紅外傳感器和脈沖整形電路組成,,經(jīng)整形后的脈沖送往ARM中斷進行脈沖捕獲,。運動控制模塊選用型號為RS-380SH的直流電機控制車模的前進或后退,選用型號為FUTABA-S3010的舵機控制車模的轉(zhuǎn)向,,電機驅(qū)動芯片選用L298N實現(xiàn)對電機調(diào)速,、正反轉(zhuǎn)的控制。


    該系統(tǒng)運動控制包括電機控制和舵機控制兩部分,。電機控制如圖5所示,,PWM1,PWM2用于控制電機的轉(zhuǎn)速,,IN11,,IN12,IN21,,IN22用于控制電機正反轉(zhuǎn),。舵機控制電路簡單,外接有3根線,紅色為電源線,,黑色為地線,,另外一個為PWM信號輸入線。兩者的主要控制信號是PWM信號,,S3C2440A發(fā)送命令控制FPGA輸出占空比可調(diào)的PWM信號,。舵機PWM信號的周期固定為20 ms,脈寬分布在1~2 ms之間,,因此選定PWM信號頻率為50 Hz,,占空比固定在5%~10%之間。直流電機PWM信號頻率選定10 kHz,,占空比可在0%~100%波動,,當IN11=1,IN12=0,,電機正轉(zhuǎn)且轉(zhuǎn)速隨PWM1信號的占空比不同而變化,,當IN11=0,IN12=1,,電機反轉(zhuǎn)且轉(zhuǎn)速也隨著PWM1信號占空比變化,。

3 系統(tǒng)軟件設(shè)計
3.1 圖像采集驅(qū)動開發(fā)

    該系統(tǒng)圖像采集模塊硬件電路由CMOS圖像傳感器芯片和S3C2440A的CAMIF單元組成。為此在編寫圖像采集驅(qū)動程序時,,就需要對圖像傳感器芯片的寄存器和S3C2440A的CAMIF單元的寄存器同時配置,,否則就得不到正常圖像。S3C2440A以I2C總線的方式對CMOS圖像傳感器芯片的寄存器進行配置,。
    在WinCE下,,圖像采集驅(qū)動是基于流接口設(shè)計的。首先在CIS_Init函數(shù)下對相機接口的寄存器進行配置,,主要配置功能包括:設(shè)置相機接口輸出時鐘,;設(shè)置圖像輸入輸出格式;設(shè)置裁剪圖像偏移量,;設(shè)置幀緩沖區(qū)中圖像像素大?。辉O(shè)置編碼通道和預(yù)覽通道幀緩沖區(qū)起始地址,。然后S3C2440A以I2C總線方式對OV9650的寄存器進行配置,,需要注意的是相機接口的配置功能要和OV9650的配置功能完全一致,,否則采集不到圖像,,兩者之間通信協(xié)議如圖6所示。最后利用API函數(shù)CreateThread()創(chuàng)建中斷服務(wù)線程,。


    中斷服務(wù)線程函數(shù)負責(zé)具體的中斷操作,,在該線程函數(shù)內(nèi)利用CreateEent()函數(shù)創(chuàng)建CAMIF單元的中斷事件。然后調(diào)用InterruptInitia-lize()函數(shù)將該中斷事件與CAMIF單元的邏輯中斷相關(guān)聯(lián)。最后調(diào)用Wait For SingleObject()等待中斷事件的到來,,當中斷到來時,,將讀取事件置位,在應(yīng)用程序中即可利用ReadFile()函數(shù)讀取YCbCr數(shù)據(jù),,為圖像壓縮提供數(shù)據(jù)源,。
3.2 速度采集程序設(shè)計
   
速度傳感器由紅外反射式傳感器和施密特觸發(fā)器組成,經(jīng)過施密特觸發(fā)器整形后信號的頻率與速度相關(guān),,通過測量該信號頻率計算車模行駛速度,。在Windows CE中,API函數(shù)SetTimer()可以設(shè)置定時器編號和定時時間,,當定時時間到達時,,執(zhí)行消息響應(yīng)函數(shù)OnTimer。速度采集流程如圖7所示,。調(diào)用SetTimer函數(shù)設(shè)置定時器初值,,當外部中斷EINT_19產(chǎn)生時,即一個脈沖信號到來,,計數(shù)變量CNT加1,,當SetTimer()函數(shù)設(shè)置的時間到來時,執(zhí)行OnTimer()函數(shù),,該函數(shù)負責(zé)計算車模速度并將計數(shù)變量CNT清0,。


    計數(shù)變量CNT雖然與速度成正比關(guān)系,但它并不是真正的行駛速度,,需要經(jīng)過一定的數(shù)學(xué)轉(zhuǎn)換,,才能傳送到遠程監(jiān)控端并顯示。假設(shè)車模后輪直徑為D,,光柵編碼盤黑白相間的個數(shù)為M,,在定時時間T秒內(nèi)記得脈沖個數(shù)為N,則車模行駛速度:
   
3.3 網(wǎng)絡(luò)傳輸程序設(shè)計
   
該系統(tǒng)網(wǎng)絡(luò)傳輸程序是基于TCP協(xié)議來實現(xiàn)的,。S3C2440A組成的嵌入式設(shè)備作為服務(wù)器負責(zé)圖像采集,、速度采集、車??刂?。服務(wù)器調(diào)用accept()函數(shù)等待客戶端的連接請求,服務(wù)器端接收該連接請求后,,雙方就此建立了連接,。客戶端通過send()發(fā)送請求命令,,服務(wù)器調(diào)用recv()函數(shù)接收該請求命令,,通過命令解析來執(zhí)行具體的操作,,若收到圖像采集命令,服務(wù)器端打開攝像頭驅(qū)動,,設(shè)置圖像像素大小后,,將采集到Y(jié)CbCr數(shù)據(jù)進行JPEG的壓縮并保存為.jpg格式的圖片。然后將該圖片發(fā)送到客戶端,,客戶端將該圖片在圖像顯示區(qū)域顯示,;若收到速度采集命令,服務(wù)器端打開定時器,,打開外部中斷EINT19,,用于計數(shù),當定時時間到后,,將計數(shù)脈沖轉(zhuǎn)換為以cm/s為單位的速度發(fā)送到客戶端,,客戶端將采集到速度在速度顯示區(qū)顯示;若收到控制車模運行狀態(tài),,如前進,、后退、左轉(zhuǎn),、右轉(zhuǎn),,服務(wù)器端打開GPIO驅(qū)動,通過GPIO端口輸出控制信號,,控制FPGA輸出占空比可調(diào)的PWM信號,,即可控制車模的運行狀態(tài)。
    客戶端負責(zé)發(fā)送控制車模,、圖像采集,、速度采集的命令,然后將服務(wù)器端發(fā)送過來的圖像,、速度信息進行顯示,。客戶端的監(jiān)控界面如圖8所示,。


    遠程地址欄輸入服務(wù)端IP地址,,點擊“創(chuàng)建連接”按鈕即可和服務(wù)器端進行連接,連接成功后,,就可以進行一系列的命令發(fā)送,。

4 結(jié)語
   
該設(shè)計在自制電路板板上進行了軟、硬件的系統(tǒng)集成及測試,。測試結(jié)果為:圖像采集時鐘24 MHz,;圖像采集速度為30 f/s;行同步頻率為14.5 kHz,,圖像采集像素為640×480,;JPEG壓縮比達到10:1;運動控制命令響應(yīng)時間為5μs,,網(wǎng)絡(luò)傳輸速率達10 Mb/s,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。