基于SoPC的自感知運(yùn)動(dòng)圖像采集系統(tǒng)設(shè)計(jì)
(1)接口電路模塊。在各種存儲(chǔ)設(shè)備中,SD卡不僅小巧,而且功耗很低,另外市面上常見SD卡的容量可達(dá)到2 GB以上,因此非常適合用于對(duì)體積和功耗要求嚴(yán)格的嵌入式圖像存儲(chǔ)。該設(shè)計(jì)選用APACER公司的一款高速SD卡(傳輸速率為150X,容量4 GB)。為了增強(qiáng)系統(tǒng)的可擴(kuò)展性,該設(shè)計(jì)在FPGA芯片中嵌入Altera公司新近推出的第二代高性能NiosⅡ軟核處理器,其處理能力超過200 MIPS,并在NiosⅡ中完成SD卡驅(qū)動(dòng)程序設(shè)計(jì)。前端的采集緩存電路與NiosⅡ系統(tǒng)之間的數(shù)據(jù)和控制信號(hào)由定制的接口模塊完成。
定制IP核DATAIN_FIFO是在SoPC Builder環(huán)境下完成(如圖7所示),DATAIN_FIFO寫端口的時(shí)鐘信號(hào)、寫請(qǐng)求信號(hào)同步于SDRAM控制模塊的ReadFIFO1,而DATAIN_FIFO的讀端口的時(shí)鐘、讀請(qǐng)求信號(hào)則由CPU控制。以上信號(hào)除了waitrequest之外,都由Avalon交換結(jié)構(gòu)自動(dòng)產(chǎn)生和控制。waitrequest信號(hào)可以直接連接到異步FIFO的rdempty輸出,當(dāng)FIFO讀空之后,waitrequest有效,插入等待周期,一直到從端口的數(shù)據(jù)準(zhǔn)備好才輸出readdata。開始和結(jié)束采集控制信號(hào)由DETEcT信號(hào)和DMA中斷信號(hào)決定,確保采集到的數(shù)據(jù)剛好為一幀320×240圖像。
由于NiosⅡ系統(tǒng)提供了成熟的SPI接口,所以設(shè)計(jì)中采用SPI總線協(xié)議模式來讀寫SD卡。因?yàn)镸MC卡在復(fù)位階段要求SPI的時(shí)鐘頻率要小于等于400 kHz,為了提高讀寫速度,本設(shè)計(jì)設(shè)計(jì)的接口不再兼容MMC卡,其設(shè)置SPI的SCK引腳的輸出頻率在數(shù)據(jù)傳輸時(shí)設(shè)為25 MHz。本文引用地址:http://butianyuan.cn/article/152285.htm
(2)BMP圖像文件創(chuàng)建程序。為提高程序運(yùn)行速度。并考慮到該系統(tǒng)的實(shí)際需要,程序只實(shí)現(xiàn)了寫B(tài)MP圖像文件功能。程序主要由SD卡操作驅(qū)動(dòng)接口函數(shù)和文件系統(tǒng)層組成。
驅(qū)動(dòng)函數(shù)目的是為文件系統(tǒng)層提供所需的SD卡初始化函數(shù)和SD卡寫多塊數(shù)據(jù)函數(shù)。圖8是SD卡寫函數(shù)流程圖示意圖。當(dāng)寫函數(shù)接收到主程序的寫文件指令后,就向SD卡發(fā)送多塊寫命令,卡將發(fā)送給主機(jī)一個(gè)應(yīng)答令牌,并且等待主機(jī)發(fā)送一個(gè)發(fā)送數(shù)據(jù)塊來,當(dāng)應(yīng)答R1為0時(shí),說明可以發(fā)送數(shù)據(jù),塊大小設(shè)置為512 B。數(shù)據(jù)塊之后附有16位的CRC校驗(yàn),因?yàn)镃RC校驗(yàn)計(jì)算占用了很大部分發(fā)送的時(shí)間,該系統(tǒng)采用自定義用戶指令對(duì)這部分進(jìn)行了加速處理。
要使寫入SD卡的數(shù)據(jù)在裝有Windows或Linux操作系統(tǒng)的上位機(jī)中得到正確訪問,需要在SD卡上創(chuàng)建它們支持的文件系統(tǒng)。考慮到FAT12目前已經(jīng)很少使用,在此設(shè)計(jì)的文件系統(tǒng)只支持FAT16和FAT32。并且將整個(gè)卡作為一個(gè)分區(qū)處理。
圖9是系統(tǒng)的軟件工作主要流程圖。在主程序中,系統(tǒng)啟動(dòng)后,先進(jìn)行初始化操作,包括中斷初始化、文件系統(tǒng)初始化和SD卡底層驅(qū)動(dòng)的初始化。隨后系統(tǒng)進(jìn)入主循環(huán)等待狀態(tài),一旦檢測(cè)到DETECT_PIO電平的變化就暫停SDRAM數(shù)據(jù)寫入,以防SDRAM緩存的圖像數(shù)據(jù)被覆蓋,同時(shí)根據(jù)當(dāng)前的時(shí)間創(chuàng)建一個(gè)BMP格式的文件,然后往里填寫文件頭和文件信息頭,隨后連續(xù)寫一幀RGB數(shù)據(jù)。文件創(chuàng)建完畢后系統(tǒng)繼續(xù)處于檢測(cè)等待狀態(tài),并恢復(fù)SDRAM數(shù)據(jù)寫入。
5 系統(tǒng)評(píng)價(jià)
該設(shè)計(jì)在自制核心實(shí)驗(yàn)板上(見圖10)進(jìn)行了軟、硬件仿真和調(diào)試,調(diào)試環(huán)境參數(shù)設(shè)定如下:采集時(shí)鐘頻率為25 MHz,NiosⅡ時(shí)鐘頻率為100 MHz、每幀圖像大小為320×240像素。調(diào)試結(jié)果如下:系統(tǒng)采集速度在60幀/s左右。對(duì)五米之內(nèi)場(chǎng)景動(dòng)態(tài)變化的響應(yīng)時(shí)間在5 ms左右,SD卡保存單幀圖像時(shí)間約為9 s(每幀圖像數(shù)據(jù)量是153 600 B),連續(xù)工作一個(gè)星期無任何故障發(fā)生。結(jié)果表明該系統(tǒng)圖像采集和處理速度超過一般的以軟件實(shí)現(xiàn)為主的嵌入式圖像采集方案(如ARM處理器系統(tǒng))。由于核心處理器采用單芯片方案,采集系統(tǒng)比較穩(wěn)定,同時(shí)其功耗大大低于多芯片方案。
6 結(jié) 語
在此提出一種基于SoPC技術(shù)的圖像檢測(cè)、采集和儲(chǔ)存的一體化單芯片控制新型系統(tǒng)集成方案,并實(shí)現(xiàn)了原型系統(tǒng),該系統(tǒng)的主要特點(diǎn)是處理速度快、功耗低、穩(wěn)定可靠。
該設(shè)計(jì)可以在進(jìn)一步工作中移植嵌入式操作系統(tǒng)μCLinux,以實(shí)現(xiàn)復(fù)雜的多任務(wù)操作。因此該設(shè)計(jì)既可作為獨(dú)立的解決方案應(yīng)用于便攜式原位觀測(cè)系統(tǒng)中,同時(shí)以其良好的擴(kuò)展性,也可作為一個(gè)子系統(tǒng)應(yīng)用于大型圖像處理系統(tǒng)的前端部分。
評(píng)論