基于ARM和FPGA的智能小車監(jiān)控系統(tǒng)
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%波動,當(dāng)IN11=1,IN12=0,電機正轉(zhuǎn)且轉(zhuǎn)速隨PWM1信號的占空比不同而變化,當(dāng)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ū)中圖像像素大??;設(shè)置編碼通道和預(yù)覽通道幀緩沖區(qū)起始地址。然后S3C2440A以I2C總線方式對OV9650的寄存器進行配置,需要注意的是相機接口的配置功能要和OV9650的配置功能完全一致,否則采集不到圖像,兩者之間通信協(xié)議如圖6所示。最后利用API函數(shù)CreateThread()創(chuàng)建中斷服務(wù)線程。
中斷服務(wù)線程函數(shù)負(fù)責(zé)具體的中斷操作,在該線程函數(shù)內(nèi)利用CreateEent()函數(shù)創(chuàng)建CAMIF單元的中斷事件。然后調(diào)用InterruptInitia-lize()函數(shù)將該中斷事件與CAMIF單元的邏輯中斷相關(guān)聯(lián)。最后調(diào)用Wait For SingleObject()等待中斷事件的到來,當(dāng)中斷到來時,將讀取事件置位,在應(yīng)用程序中即可利用ReadFile()函數(shù)讀取YCbCr數(shù)據(jù),為圖像壓縮提供數(shù)據(jù)源。
評論