張 偉,王郅佶
(1.大連理工大學(xué) 機(jī)械工程學(xué)院,遼寧 大連 116024;2.大連第八中學(xué),遼寧 大連 116021)
液位檢測(cè)是指用一定的方法對(duì)液體的高度進(jìn)行測(cè)量,被廣泛應(yīng)用于日常生產(chǎn)生活的諸多方面[1-2]?,F(xiàn)有的液位檢測(cè)手段按其檢測(cè)方式大致可以分為接觸式和非接觸式兩種。非接觸式液位計(jì)主要通過(guò)超聲波、雷達(dá)技術(shù)、紅外線、激光等測(cè)量手段來(lái)進(jìn)行測(cè)量,優(yōu)點(diǎn)在于測(cè)量精度高,尤其適用于易燃易爆及腐蝕性液體的液位測(cè)量,但其對(duì)檢測(cè)環(huán)境的要求較高,且成本高、通用性低、維護(hù)麻煩,并未廣泛應(yīng)用在實(shí)際測(cè)量中?;趫D像處理技術(shù)的液位檢測(cè)系統(tǒng)具有非接觸性、測(cè)量精度高、抗干擾性強(qiáng)、成本低、操作方便等優(yōu)點(diǎn)。論文設(shè)計(jì)了采用S3C2440處理器和CMOS圖像傳感器的液位測(cè)量系統(tǒng)硬件部分,采用ARM9處理器S3C2440搭建嵌入式系統(tǒng)平臺(tái),研究了OV9650驅(qū)動(dòng)的實(shí)現(xiàn)過(guò)程和開發(fā)方法,并利用平臺(tái)驅(qū)動(dòng)CMOS圖像傳感器OV9650達(dá)到獲取圖像信息的目的。
S3C2440芯片具有MMU虛擬內(nèi)存管理,獨(dú)立的16 K指令緩存和16 K數(shù)據(jù)緩存,支持DSP指令集,支持?jǐn)?shù)據(jù)Cache和質(zhì)量Cache,LCD控制器,NAND控制器,3通道UART,4通道DMA,4路帶脈寬調(diào)制的定時(shí)器,I/O端口,具有日歷功能的RTC,8路10位ADC和觸摸屏接口,IIC總線接口,IIS總線接口,USB主機(jī),USB從機(jī),SD卡座和多媒體卡接口,2路SPI和同步時(shí)鐘發(fā)生器。
系統(tǒng)的存儲(chǔ)空間按其作用可分為程序運(yùn)行空間與程序存儲(chǔ)空間。為保障程序代碼存儲(chǔ)器數(shù)據(jù)在電源正常關(guān)閉或意外瞬間斷電等系統(tǒng)掉電情況下不丟失,該系統(tǒng)采用了Flash芯片作為程序存儲(chǔ)器??紤]到程序運(yùn)行的效率和速度,選用程序運(yùn)行空間的運(yùn)行速度快的SDRAM芯片作為程序運(yùn)行存儲(chǔ)空間。
論文采用的是Omnivision公司的OV9650圖像傳感器。該傳感器具有130萬(wàn)像素,包含一個(gè)1 300×1 028大小的圖像處理陣列一個(gè)模擬處理器和8位A/D轉(zhuǎn)換器。每個(gè)有源像素傳感單元都可被單獨(dú)選址和讀出,并且都具有自己的緩沖放大器。傳感器信號(hào)要經(jīng)過(guò)放大器放大后才能達(dá)到A/D轉(zhuǎn)換器所需的電壓值,經(jīng)過(guò)轉(zhuǎn)換后的模擬電壓以數(shù)字量的形式輸出。
S3C2440支持從Nand fl ash啟動(dòng)和從Nor fl ash啟動(dòng)兩種模式,其中Nandflash啟動(dòng)模式下各片選的存儲(chǔ)空間分配是不同的。
S3C2440的時(shí)鐘控制邏輯可以產(chǎn)生FCLK,HCLK和PCLK 3種時(shí)鐘信號(hào)分別用作CPU時(shí)鐘、系統(tǒng)總線時(shí)鐘和外圍總線時(shí)鐘。如圖1所示,S3C2440的中斷源是由外設(shè)的內(nèi)部單元產(chǎn)生,如5個(gè)定時(shí)器、9個(gè)UARTs、2個(gè)ADC等共60個(gè)中斷源,可發(fā)送中斷請(qǐng)求供中斷控制器接收。S3C2440存在源等待寄存器(SRCPND)與中斷等待寄存器(INTPND)兩個(gè)中斷等待寄存器,當(dāng)中斷控制器接收到中斷請(qǐng)求時(shí),源等待寄存器和中斷等待寄存器的中斷源對(duì)應(yīng)位將會(huì)被置1。
如圖2所示,S3C2440的CAMIF單元由7部分組成:圖形多路選擇器、捕獲單元、預(yù)覽縮放器、編碼縮放器、預(yù)覽DMA、編碼DMA、特殊功能寄存器(Special Function Register,SFR)。CAMIF單元的最大輸入尺寸為4 096×4 096像素,視頻格式是ITU-RBT.601/656 YCbCr 8位標(biāo)準(zhǔn)格式。
CAMIF單元存在兩個(gè)縮放器用于接收經(jīng)圖像傳感器采集及捕獲單元處理后的數(shù)據(jù),即預(yù)覽縮放器和編碼縮放器,前者生成比RGB格式的圖像,這種圖像比直接獲取的圖像更小,此縮放器連接一路DMA通道為預(yù)覽通道;后者可以產(chǎn)生編碼的圖像,如YcbCr4∶2∶0等,編碼縮放器連接的DMA通道是編碼通道。預(yù)覽通道與編碼通道均連接在AHB總線上。捕獲圖像、設(shè)置圖像格式等功能的實(shí)現(xiàn)需要對(duì)特殊功能寄存器進(jìn)行設(shè)置,具體設(shè)置方式如下。
圖1 中斷處理框
圖2 CAMIF系統(tǒng)框
2.1.1 設(shè)置時(shí)鐘頻率
CAMIF的輸出時(shí)鐘頻率由時(shí)鐘分割寄存器中的CAMCLK_SEL和CAMDIVN決定。當(dāng)CAMCLK_SEL為1時(shí),輸出頻率與UPLL的關(guān)系由如下等式?jīng)Q定:
CAMCLKOUT=UPLL/[(CAMCLK_DIV)*2]
OV9650傳感器的輸入時(shí)鐘為24 MHz,UPLL為48 MHz。所以需將CAMCLK_DIV置0。代入公式可得CAMCLKOUT=24 MHz。
2.1.2 捕獲圖像
圖像捕獲命令是由圖像捕獲使能寄存器CIIMGCPT產(chǎn)生,需在其他寄存器設(shè)置好之后再定義此寄存器的設(shè)置。若需要同時(shí)捕獲編碼通道和預(yù)覽通道的數(shù)據(jù),可將全局捕獲使能控制位,即CIIMGCPT中的ImgCptEn位設(shè)置為1;若需要單獨(dú)捕獲編碼通道或預(yù)覽通道的一個(gè)數(shù)據(jù),則可以通過(guò)設(shè)置ImgCptEn_CoSc和ImgCptEn_PrSc來(lái)實(shí)現(xiàn)。
在CAMIF開始捕獲圖像后,IRQ中斷請(qǐng)求由進(jìn)行圖像捕獲的DMA通道在每一個(gè)幀同步信號(hào)CAMVSYNC的下降沿發(fā)出,在處理器中進(jìn)行中斷處理??梢酝ㄟ^(guò)向編碼或預(yù)覽DMA通道控制寄存器的相應(yīng)位寫1來(lái)結(jié)束圖像捕獲。
2.1.3 圖像格式的設(shè)定
為了提高接收到的圖像數(shù)據(jù)的準(zhǔn)確率,傳感器接收?qǐng)D像格式要與輸入圖像格式保證相互匹配,所以CAMIF單元必須設(shè)定接收?qǐng)D像格式。源幀寄存器CISRCFMT是用來(lái)確定源垂直/水平像素?cái)?shù)及接收?qǐng)D像的模式分辨率等信息的。通過(guò)設(shè)置窗口選擇寄存器CIWSOFST,可以把采集到的原始圖像的中間部分保留成更低分辨率的圖像。首先打開窗口偏移功能,將CIWSOFST[32]的WinOfsEn置1。圖像兩側(cè)對(duì)中心的偏移量是通過(guò)CIWSOFST[26∶16]來(lái)設(shè)置;圖像上下對(duì)中心的偏移量通過(guò)CIWSOFST[10∶0]來(lái)確定。經(jīng)過(guò)裁剪的圖像的像素大小為:剪裁后垂直像素值=接收?qǐng)D像的垂直像素值-2×WinVorOfst;剪裁后水平像素值=接收?qǐng)D像的水平像素值-2×WinHorOfst。
S3C2440 RISC微處理器可以支持一個(gè)多主控IIC總線串行接口。IIC總線的總線主控和外設(shè)之間的信息傳輸由一條雙向的專用串行數(shù)據(jù)線(Serial Data Line,SDA)和一條雙向的專用串行時(shí)鐘線( Safety Check List,SCL)傳遞連接。在多主控IIC總線模式中,串行數(shù)據(jù)可在多個(gè)S3C2440 RISC微處理器與設(shè)備之間雙向傳輸。主機(jī)S3C2440啟動(dòng)和結(jié)束數(shù)據(jù)傳輸?shù)墓δ芸赏ㄟ^(guò)使用標(biāo)準(zhǔn)總線仲裁步驟的IIC總線來(lái)實(shí)現(xiàn)。
S3C2440具有130個(gè)管腳,可以分為8類多功能輸入/輸出端口(GPA~GPJ)。為滿足不同的系統(tǒng)配置和性能設(shè)計(jì)需求,每個(gè)端口都可以簡(jiǎn)單地由軟件配置。需要注意的是,在主程序未開設(shè)時(shí)定義完所需的每個(gè)引腳的功能,若引腳的復(fù)用功能未使用可將此引腳配置為I/O口。
系統(tǒng)的電源部分主要分為兩塊:從外部引入的5V直流電源為整個(gè)系統(tǒng)電路提供的電源是系統(tǒng)總電源;主要為處理器、存儲(chǔ)器、周邊設(shè)備等提供所需的工作電壓是各模塊供電源。
總電源可以直接對(duì)連接在LCD和USHosts等接口上的設(shè)備供電,也可以通過(guò)低壓差線性穩(wěn)壓器(Low Dropout Regulator,LDO)芯片將其轉(zhuǎn)成較低的電壓對(duì)其他模塊供電。選用National公司生產(chǎn)的LM1117芯片作為系統(tǒng)的低壓差線性穩(wěn)壓器。
不同的模塊如處理器和存儲(chǔ)器,周邊設(shè)備、圖像傳感器等所需的工作電壓大小和數(shù)量不同,需要各模塊供電電源提供。為保證處理器和存儲(chǔ)器運(yùn)行的穩(wěn)定性,供電方式其采取單獨(dú)供電。SDRAM,JTAG,UART,F(xiàn)lash存儲(chǔ)器和復(fù)位電路等周邊設(shè)備的工作電壓為3.3 V;對(duì)于處理器S3C2440需要3.3 V和1.3 V兩組不同的工作電壓。而圖像傳感器OV9650需要1.8 V,2.8 V,3.3 V 3組不同的工作電壓。
根據(jù)性能需求該系統(tǒng)采用Nandflash和SDRAM作為系統(tǒng)存儲(chǔ)器。Nandflash選用64 MB的KgF1208芯片。SDRAM存儲(chǔ)器系統(tǒng),由兩片16位的K4S561632N并聯(lián)構(gòu)建成32位,兩片K4S561632N分別連接32位CPU數(shù)據(jù)總線的高16位DATA[31∶16]與低16位DATA[15∶0][3]。K4S561632H的地址總線A[12∶0]與CPU的地址總線ADDR[14∶2]相連;CPU的ADDR24,ADDR25與Bank選擇地址BA0相連,CPU的ADDR25,ADDR26與BA1相連;CPU的SCLK0,SCLK1時(shí)鐘線與系統(tǒng)時(shí)鐘SCLK相連;數(shù)據(jù)輸入/輸出掩碼信號(hào)LDQM/UDQM分別與CPU寫使能nWBE[3∶0] 相連;nRAS行地址選通信號(hào)、nCAS列地址選通信號(hào)nWE允許寫入信號(hào)分別連接至CPU對(duì)應(yīng)管腳。具體連接如圖3所示。
圖3 SDRAM電路原理
為了方便更換和調(diào)試圖像傳感器周圍電路和軟件驅(qū)動(dòng)及應(yīng)用電路,靈活更換不同型號(hào)的圖像傳感器擴(kuò)展板的需求,圖像傳感器硬件電路可設(shè)計(jì)成擴(kuò)展板方式。通過(guò)20針Camera接口,擴(kuò)展板中的OV9650管腳與主控制板中CAMIF的各個(gè)接口相連。電路原理如圖4所示。
文章給出圖像采集系統(tǒng)所采用的主要硬件的特點(diǎn)以及性能,對(duì)比了CCD和CMOS圖像傳感器的特點(diǎn),并對(duì)CMOS圖像傳感器OV9650的成像原理進(jìn)行了剖析。分析了S3C2440處理器各個(gè)模塊的工作原理以及控制方式,對(duì)整個(gè)圖像采集系統(tǒng)的電路原理以及具體的電路設(shè)計(jì)進(jìn)行了詳細(xì)的說(shuō)明。
圖4 攝像頭接口電路
[參考文獻(xiàn)]
[1]趙剛,唐得剛.幾種常用的液位在線檢測(cè)方法的比較[J].中國(guó)儀器儀表,2005(5):35-38.
[2]任開春,涂亞慶.20余種液位測(cè)量方法分析[J].工業(yè)儀表與自動(dòng)化裝置,2003(5):12-16.
[3]飛凌嵌入式.飛凌開發(fā)板配套教程[M].保定:保定飛凌嵌入式技術(shù)有限公司,2008.