段夢(mèng)月,趙宏亮
(遼寧大學(xué)物理學(xué)院,遼寧沈陽(yáng) 110036)
目前圖像采集存儲(chǔ)系統(tǒng)應(yīng)用在各個(gè)領(lǐng)域,但由于實(shí)際情況比較復(fù)雜,大型的圖像采集存儲(chǔ)系統(tǒng)并不能滿(mǎn)足需求,其微型化成為研究的熱點(diǎn)。圖像采集存儲(chǔ)系統(tǒng)中必不可少的是圖像傳感器,當(dāng)前市面上的圖像傳感器主要有2種:CCD(電荷耦合器件)和CMOS(互補(bǔ)金屬氧化物半導(dǎo)體)。CMOS圖像傳感器與CCD相比,其采用了新的生產(chǎn)工藝,在信噪比、集成度、分辨率、體積、質(zhì)量、功耗等方面占據(jù)著很大的優(yōu)勢(shì),所以CMOS圖像傳感器在微型圖像采集存儲(chǔ)系統(tǒng)的發(fā)展方面發(fā)揮著巨大的作用[1]。本文采用GC2053圖像傳感器作為系統(tǒng)的圖像采集器件,設(shè)計(jì)了低功耗的微型圖像采集存儲(chǔ)系統(tǒng)。
圖1是系統(tǒng)的總體框圖,整個(gè)圖像系統(tǒng)主要包括: CMOS圖像傳感器、控制及處理模塊和TF卡,其中控制及處理模塊主要由SOC圖像處理芯片和外接的FLASH組成。圖像傳感器負(fù)責(zé)圖像的采集工作,采集的圖像以Raw Bayer 10 bit的數(shù)據(jù)格式通過(guò)MIPI接口實(shí)時(shí)傳輸?shù)絊OC芯片,經(jīng)過(guò)處理,采集的圖片和視頻分別以JPEG和H.264的格式存儲(chǔ)至TF卡中[2]。
圖1 總體設(shè)計(jì)框圖
系統(tǒng)硬件PCB板一共6層,總厚度為43.7 mil,板子尺寸為2.5 cm×2.5 cm,質(zhì)量為3.8 g(不包含電池)。本設(shè)計(jì)中,單端信號(hào)線(xiàn)和差分信號(hào)線(xiàn)的阻抗匹配設(shè)計(jì)分別為50 Ω和100 Ω。
本設(shè)計(jì)在提高圖像質(zhì)量的同時(shí)為了降低系統(tǒng)的功耗以及要滿(mǎn)足微型系統(tǒng)設(shè)計(jì)的需求,采用了最高像素為200萬(wàn)(1 920×1 080),最高幀頻為30幀/s,功耗為98 mW的GC2053作為系統(tǒng)的圖像傳感器,其內(nèi)部結(jié)構(gòu)見(jiàn)圖2,圖中右側(cè)的信號(hào)是與SOC芯片連接的引腳[3]。SENSOR的時(shí)鐘和復(fù)位信號(hào)由SOC芯片提供進(jìn)行時(shí)序控制,時(shí)鐘的頻率為27 MHz,復(fù)位低電平有效,同時(shí)通過(guò)I2C總線(xiàn)的數(shù)據(jù)線(xiàn)SBDA和時(shí)鐘線(xiàn)SBCL對(duì)SENSOR內(nèi)部寄存器進(jìn)行配置,主要配置的寄存器有圖像大小、起始位置、曝光時(shí)間和增益等。由像素陣列采集的圖像信息首先進(jìn)行模擬信號(hào)的處理,再經(jīng)過(guò)一個(gè) 10 位的A/D轉(zhuǎn)換器將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),然后對(duì)其進(jìn)行簡(jiǎn)單的圖像信號(hào)處理,通過(guò)MIPI接口傳輸?shù)絊OC芯片進(jìn)行進(jìn)一步的處理[4]。MIPI接口是差分串口傳輸,具有傳輸速度快,抗干擾能力強(qiáng)的優(yōu)點(diǎn)。
圖2 圖像傳感器內(nèi)部結(jié)構(gòu)圖
圖3為控制及處理模塊的框圖。為了解決圖像質(zhì)量差的問(wèn)題,本系統(tǒng)選用了HI3516EV200 SOC芯片作為圖像處理的硬件部分,它也是系統(tǒng)的控制部分,其響應(yīng)速度快,工作頻率為900 MHz,內(nèi)置硬件加速模塊(IVE),處理器是ARM系列中主打低功耗的ARM Cortex A7,有效地降低了功耗。SOC芯片內(nèi)部采用AMBA3.0總線(xiàn),集成了圖像信號(hào)處理(ISP)模塊和視頻處理(VPSS)模塊,很好地提高了圖像質(zhì)量,還集成了多協(xié)議編碼器(ENCODER),和512 MB 16 bit的DDR,方便圖像的編碼和緩存。SOC芯片需要與外接器件進(jìn)行交互,所以需要其外設(shè)資源豐富,其具有SPI、I2C、SDIO、ETH和UART等多種接口[5]。同時(shí),此芯片資料齊全,縮短了系統(tǒng)的開(kāi)發(fā)時(shí)間,同時(shí)價(jià)格低,降低了整個(gè)系統(tǒng)的成本。
圖3 控制及處理模塊框圖
外接FLASH通過(guò)SPI接口與SOC芯片進(jìn)行交互,其主要是用來(lái)放置嵌入式環(huán)境的文件系統(tǒng)、內(nèi)核以及u-boot,其容量不需要很大,本設(shè)計(jì)選用型號(hào)為MX25L12835F的SPI NOR FLASH,容量為16 MB,分配給u-boot、內(nèi)核和文件系統(tǒng)的內(nèi)存大小分別為1 MB、4 MB和11 MB。FLASH的時(shí)鐘頻率最高可達(dá)133 MHz,可實(shí)現(xiàn)快速編程,快速擦除,快速讀取[6]。同時(shí),系統(tǒng)通過(guò)串口和網(wǎng)口連接至PC端,可用來(lái)燒錄軟件系統(tǒng)至FALSH以及系統(tǒng)調(diào)試過(guò)程的終端顯示。
本設(shè)計(jì)采用64 GB的TF卡進(jìn)行圖像存儲(chǔ),其與SOC芯片的連接關(guān)系如圖4所示。連接關(guān)系中主要分為數(shù)據(jù)傳輸引腳和配置引腳。SDIO0_CDATA0~SDIO0_CDATA3是一組四線(xiàn)數(shù)據(jù)傳輸引腳,用來(lái)將在SOC芯片中處理、編碼之后的圖像數(shù)據(jù)存入TF卡中。SDIO0_CCMD是SOC對(duì)TF卡發(fā)布命令的引腳,如復(fù)位命令、檢查卡的初始化是否完成以及進(jìn)行讀寫(xiě)操作的命令等。SOC芯片通過(guò)SDIO0_CCLK_OUT引腳為T(mén)F卡提供工作時(shí)鐘。SDIO0_CARD_DETECT為卡檢測(cè)信號(hào),SDIO0_CARD_POWER_EN為電源使能信號(hào),兩信號(hào)均為低電平有效,極性可以配置[7]。
圖4 SOC芯片與TF卡連接關(guān)系圖
2.4.1 時(shí)鐘模塊設(shè)計(jì)
系統(tǒng)擁有2個(gè)晶振,一個(gè)頻率為32.768 kHz,頻率穩(wěn)定度為±20 ppm,其為系統(tǒng)時(shí)鐘振蕩,為了給SOC芯片內(nèi)置的RTC提供時(shí)鐘電路,用于實(shí)現(xiàn)時(shí)間顯示和定時(shí)報(bào)警功能;另一個(gè)頻率為24 MHz,頻率穩(wěn)定度為±30 ppm,用來(lái)提供系統(tǒng)的運(yùn)行時(shí)鐘,其與SOC內(nèi)部連接實(shí)現(xiàn)分頻操作,不同頻率的時(shí)鐘提供給不同的模塊。圖5和圖6分別為兩個(gè)晶振的硬件電路圖電路。RTC_XIN、RTC_XOUT、XIN和XOUT均為SOC芯片的引腳,經(jīng)計(jì)算,C1=C2=27 pF,C3=C4=22 pF,
圖5 晶振1硬件電路圖
圖6 晶振2硬件電路圖
R1=1.5 kΩ。
2.4.2 復(fù)位模塊設(shè)計(jì)
SOC芯片不支持外部復(fù)位,上電后芯片內(nèi)部POR產(chǎn)生1個(gè)低電平脈沖,且低電平維持時(shí)間需大于12個(gè)外部時(shí)鐘周期,以此來(lái)進(jìn)行復(fù)位,本系統(tǒng)的復(fù)位脈沖寬度約為20 ms。主芯片的SYS_RSTN_OUT引腳輸出復(fù)位信號(hào)來(lái)復(fù)位與系統(tǒng)相關(guān)的外設(shè)。
2.4.3 電源模塊設(shè)計(jì)
系統(tǒng)供電網(wǎng)絡(luò)圖如圖7所示,采用外部5 V供電,SOC芯片的I/O電壓需求為3.3 V,F(xiàn)LASH的工作電壓為2.7~3.6 V,TF卡的工作電壓為2.8~5 V,穩(wěn)定區(qū)間在3.0 V左右,同時(shí)SENSOR也需要3.3 V的工作電壓,所以系統(tǒng)選用了型號(hào)為SY8210B1的DC-DC電源芯片將5 V輸入電壓轉(zhuǎn)換成3.3 V。SOC芯片的內(nèi)核電壓為0.9 V,所以系統(tǒng)選用了DC-DC電源芯片進(jìn)行轉(zhuǎn)換,型號(hào)為SY8032。SOC芯片內(nèi)部的SDRAM和SENSOR的接口電壓均為1.8 V,系統(tǒng)選用了型號(hào)為ETA5050的LDO電源芯片進(jìn)行電壓轉(zhuǎn)換[8]。經(jīng)測(cè)試和計(jì)算,SY8210B1、SY8032和ETA5050的效率分別為:91%、88%、90%,效率高,熱耗低,可以滿(mǎn)足本設(shè)計(jì)低功耗的要求。
圖7 供電網(wǎng)絡(luò)圖
3.1.1 軟件開(kāi)發(fā)環(huán)境
嵌入式單板資源是有限的,所以不能直接在單板上運(yùn)行開(kāi)發(fā)和調(diào)試,本系統(tǒng)采用交叉編譯調(diào)試的方式進(jìn)行開(kāi)發(fā)和調(diào)試,調(diào)試過(guò)程中通過(guò)網(wǎng)口和串口與PC端進(jìn)行連接。本設(shè)計(jì)采用的軟件開(kāi)發(fā)環(huán)境為ubuntu的Linux系統(tǒng),程序在此系統(tǒng)中經(jīng)過(guò)“編譯-連接-定位”得到可執(zhí)行文件,將其燒至單板中的FLASH中,并在單板上運(yùn)行。FLASH中u-boot啟動(dòng)后,系統(tǒng)中的操作信息通過(guò)串口在宿主機(jī)的XShell超級(jí)終端顯示,在此軟件的控制臺(tái)上輸入命令,便可以控制系統(tǒng)行為。
3.1.2 軟件系統(tǒng)層次及處理過(guò)程
采集系統(tǒng)軟件部分的系統(tǒng)層次如圖8所示。操作系統(tǒng)層是基于Linux的OS系統(tǒng),操作系統(tǒng)適配層為操作系統(tǒng)提供系統(tǒng)調(diào)用基礎(chǔ)函數(shù),媒體軟件處理平臺(tái)是基于操作系統(tǒng)適配層,用來(lái)控制芯片完成相應(yīng)的媒體處理功能。
圖8 軟件系統(tǒng)層次圖
圖9為媒體軟件處理流程圖。SENSOR捕獲的圖像通過(guò)MIPI 接口被SOC芯片的VI模塊接收,VI模塊包括捕獲子模塊VICAP和處理子模塊VIPROC。VICAP完成單路圖像輸入的數(shù)據(jù)捕獲功能,并且將捕獲到的數(shù)據(jù)傳輸給VIPROC模塊進(jìn)行圖像數(shù)據(jù)處理,其內(nèi)嵌ISP處理模塊,這是數(shù)據(jù)處理過(guò)程中最重要的一部分,處理后的數(shù)據(jù)傳輸至視頻處理模塊VPSS。其中VICAP和VIPROC均支持在線(xiàn)和離線(xiàn)兩種模式,離線(xiàn)模式采用DDR作為數(shù)據(jù)緩沖介質(zhì)。VPSS模塊可對(duì)圖像進(jìn)行圖像增強(qiáng)、銳化等處理,處理后的數(shù)據(jù)經(jīng)過(guò)編碼模塊,按協(xié)議進(jìn)行編碼輸出H.264和JPEG碼流,并存儲(chǔ)在TF卡中。
圖9 媒體軟件處理流程圖
ISP主要通過(guò)一系列數(shù)字圖像處理算法完成對(duì)數(shù)字圖像的效果處理。主要包括3A、去噪、壞點(diǎn)校正、背光補(bǔ)償、強(qiáng)光抑制、鏡頭陰影校正、色彩增強(qiáng)等。ISP模塊由邏輯部分以及運(yùn)行在其上的FIRMWARE(固件)組成。ISP的控制結(jié)構(gòu)如圖10所示。
圖10 ISP的控制結(jié)構(gòu)圖
LENS(鏡頭)首先將光信號(hào)投射到SENSOR的感光區(qū)域,在SENSOR中經(jīng)過(guò)光電轉(zhuǎn)換后,將Bayer格式的原始圖像傳輸給SOC芯片內(nèi)部ISP處理單元,經(jīng)過(guò)算法處理,輸出的是RGB空間域的圖像,傳輸給后端的視頻采集單元(VIU)。在此過(guò)程中,ISP單元通過(guò)FIRMWARE對(duì)LENS,SENSOR和ISP邏輯進(jìn)行控制,完成自動(dòng)光圈、曝光、白平衡等功能。ISP的邏輯單元可以統(tǒng)計(jì)出當(dāng)前圖像的實(shí)時(shí)信息,同時(shí)FIRMWARE可獲取ISP邏輯的統(tǒng)計(jì)出來(lái)的圖像信息,再重新計(jì)算,從而反饋控制LENS、SENSOR和ISP邏輯,實(shí)現(xiàn)自動(dòng)調(diào)節(jié)圖像質(zhì)量的作用。其中,F(xiàn)IRMWARE靠視頻采集單元的中斷驅(qū)動(dòng)來(lái)運(yùn)轉(zhuǎn)。FIRMWARE的流程圖如圖11所示。ISP需要和視頻采集單元協(xié)同工作,它是前端采集的一部分。當(dāng)ISP初始化及基本配置完成后,需要VIU進(jìn)行接口時(shí)序的匹配,一是為了匹配SENSOR的輸入時(shí)序,二是為ISP配置正確的輸入時(shí)序。時(shí)序配置完成后,ISP就可以啟動(dòng)Run來(lái)進(jìn)行動(dòng)態(tài)圖像的質(zhì)量調(diào)節(jié),此時(shí)輸出的圖像被VIU采集,進(jìn)而送去編碼并存儲(chǔ)在TF卡中[8]。
圖11 FIRMWARE流程圖
本系統(tǒng)可實(shí)現(xiàn)上電即錄視頻并且每s抓一張圖的功能,圖12為采集的圖像圖片,可見(jiàn)圖片質(zhì)量良好。圖13為調(diào)試過(guò)程中Xshell終端的打印信息截圖。經(jīng)測(cè)試發(fā)現(xiàn),每張圖片在170 KB左右,系統(tǒng)工作5 s,視頻占725 KB的內(nèi)存,5張圖片占850 KB的內(nèi)存,總計(jì)在2 MB左右,本系統(tǒng)采用的TF卡的大小為64 GB,所以系統(tǒng)可連續(xù)工作35 h(假設(shè)可長(zhǎng)時(shí)間供電)。
圖12 采集到的JPEG圖片
圖13 Xshell終端打印信息截圖
功耗測(cè)試的示波器數(shù)據(jù)圖片如圖14所示,系統(tǒng)工作時(shí)的總功耗為730 mW,驗(yàn)證了系統(tǒng)的低功耗設(shè)計(jì)。
圖14 系統(tǒng)功耗測(cè)試示波器顯示圖片
本文設(shè)計(jì)了一套體積小的圖像采集存儲(chǔ)系統(tǒng)。測(cè)試結(jié)果表明,系統(tǒng)工作的功耗為730 mW,驗(yàn)證了低功耗的設(shè)計(jì)思路。經(jīng)實(shí)驗(yàn)和計(jì)算,在電量充足條件下,系統(tǒng)可實(shí)現(xiàn)35 h持續(xù)采集存儲(chǔ)圖片和視頻。圖像的分辨率為1 920×1 080,且經(jīng)過(guò)了多重處理,清晰流暢,解決了圖像質(zhì)量差的問(wèn)題。