摘 要: 在介紹通用工業(yè)內(nèi)窺鏡" title="內(nèi)窺鏡">內(nèi)窺鏡的結(jié)構(gòu)及原理的基礎(chǔ)上,推出了一種基于ARM9" title="ARM9">ARM9的便攜式" title="便攜式">便攜式內(nèi)窺鏡裝置。該裝置由照明系統(tǒng)、CMOS 攝像頭、嵌入式系統(tǒng)" title="嵌入式系統(tǒng)">嵌入式系統(tǒng)三部分組成。相對于普通內(nèi)窺鏡而言,具有體積小、重量輕、結(jié)構(gòu)簡單、攜帶方便、成本低等優(yōu)點。
關(guān)鍵詞: 工業(yè)內(nèi)窺鏡;ARM9;便攜式;嵌入式系統(tǒng)
1921年,以色列人George S.Crampton在美國加利福尼亞研制出世界上第一臺工業(yè)內(nèi)窺鏡,用來檢測蒸汽渦輪轉(zhuǎn)子的內(nèi)部裂縫。從此,內(nèi)窺技術(shù)逐漸被工業(yè)界所重視,并得到不斷發(fā)展。1990年以來,工業(yè)內(nèi)窺鏡經(jīng)歷了第一代硬桿式、第二代軟管式和第三代電子鏡式的逐步發(fā)展過程,內(nèi)窺技術(shù)也逐步發(fā)展成為一門嶄新的科學(xué)技術(shù),成為遠(yuǎn)距離可視監(jiān)測RVI(Remote Visual Inspection)技術(shù)的重要分支。
目前,工業(yè)內(nèi)窺鏡廣泛應(yīng)用于工業(yè)制造和維修領(lǐng)域。它延長了人眼的距離,拓寬了人類觀察的視野,可以在不拆除或不破壞機(jī)器設(shè)備的前提下清晰準(zhǔn)確地觀察內(nèi)部人眼無法到達(dá)的位置,實現(xiàn)機(jī)器設(shè)備或零件內(nèi)部的無損檢測,盡可能節(jié)省維修時間,這在武器裝備外場檢修應(yīng)用中相當(dāng)重要。為了實現(xiàn)內(nèi)窺鏡系統(tǒng)的小型化和便攜性,本文設(shè)計實現(xiàn)了一種基于ARM9的便攜式內(nèi)窺鏡系統(tǒng)。
1 ARM嵌入式系統(tǒng)及其攝像頭接口
嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機(jī)技術(shù)為基礎(chǔ),且軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計算機(jī)系統(tǒng)。通常由嵌入式CPU、外圍硬件設(shè)備、嵌入式操作系統(tǒng)及應(yīng)用程序四部分組成,用于實現(xiàn)對其他設(shè)備的控制、監(jiān)視或管理等功能。該系統(tǒng)是將先進(jìn)的計算機(jī)技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)結(jié)合后應(yīng)用到各個具體行業(yè)的產(chǎn)物。IP 級、芯片級和模塊級是嵌入式系統(tǒng)的三種主要的體系結(jié)構(gòu)形式。其中,模塊級的形式就是把已成熟的X86處理器構(gòu)成的計算機(jī)系統(tǒng)模塊嵌入到應(yīng)用系統(tǒng)中, 充分利用目前常用的PC架構(gòu)的通用性和便利性。
SAMSUNG S3C2440嵌入式微處理器的內(nèi)核采用ARM公司的ARM920T處理器核。它是目前世界上主頻最快的嵌入式移動CPU之一,內(nèi)核電壓為1.3V,采用16/32位ARM920T RISC核心,提供的接口支持?jǐn)?shù)碼攝像頭、TFT/STN液晶屏、USB、HOST/DEVICE、SD/MMC/SDIO存儲卡以及觸摸屏等。
S3C2440嵌入式微處理器的攝像頭接口(CAMIF)支持ITU-RBT.601/656 YCbCr8比特標(biāo)準(zhǔn)的圖像數(shù)據(jù)輸入,最大可采樣4 096×4 096像素的圖像。攝像頭接口可以有兩種模式與DMA控制器進(jìn)行數(shù)據(jù)傳輸:一種是P端口模式,把從攝像頭接口采樣到的圖像數(shù)據(jù)轉(zhuǎn)為RGB數(shù)據(jù),并在DMA控制下傳輸?shù)絊DRAM(一般這種模式用來提供圖像預(yù)覽功能);另一種是C端口模式,把圖像數(shù)據(jù)按照YCbCr4:2:0或4:2:2的格式傳輸?shù)絊DRAM(這種模式主要為MPEG4、H.263等編碼器提供圖像數(shù)據(jù)的輸入)。上述兩種工作模式都允許設(shè)置一個剪輯窗口,只有進(jìn)入這個窗口的圖像數(shù)據(jù)才能夠傳輸?shù)絊DRAM。攝像頭工作模塊如圖1所示。
2 基于ARM9的便攜式內(nèi)窺鏡系統(tǒng)設(shè)計
2.1 總體框架設(shè)計
工業(yè)內(nèi)窺鏡系統(tǒng)主要包括CMOS(CCD)傳感器、傳導(dǎo)纖維、導(dǎo)光束、光源、電源和監(jiān)視器等,結(jié)構(gòu)如圖2所示。由于監(jiān)視器和冷光源體積及其對電源的要求導(dǎo)致了整個系統(tǒng)體積大、不便攜帶,且不能將圖像按要求保存,不便于后期缺陷信號處理?;贏RM9的便攜式內(nèi)窺鏡系統(tǒng)在工業(yè)內(nèi)窺鏡檢測系統(tǒng)的基礎(chǔ)上,引入嵌入式系統(tǒng),充分發(fā)揮嵌入式系統(tǒng)體積小、輸入電壓低、觸摸屏顯示、利用編程可以實現(xiàn)圖像處理和存儲的優(yōu)點,很好地滿足了檢測系統(tǒng)對微型化、易攜帶的要求。其結(jié)構(gòu)如圖3所示。
2.2 便攜式內(nèi)窺鏡系統(tǒng)組成
該系統(tǒng)裝置分為照明系統(tǒng)、CMOS 攝像頭、嵌入式系統(tǒng)三部分。所設(shè)計的傳感器探頭結(jié)構(gòu)如圖4所示。
2.2.1 照明系統(tǒng)
一般內(nèi)窺鏡均采用獨立冷光源,并由光纖把光線傳至檢查位置上。為達(dá)到較好的照明效果,對光源和光纖的要求都很高。由于基于ARM9嵌入式系統(tǒng)及對體積的要求,不能再按照以前采用獨立冷光源。在便攜式內(nèi)窺鏡系統(tǒng)設(shè)計過程中,巧妙應(yīng)用一種功率較低的高亮度發(fā)光二極管(LED)進(jìn)行照明,以解決光源問題。該高亮度發(fā)光二極管工作電壓3.3V,光色白色,亮度很強(qiáng),與電位器相連,實現(xiàn)亮度可調(diào),端部上下各固定一只,保證視場內(nèi)光照均勻。試驗證明完全可行。
2.2.2 CMOS攝像頭
便攜式內(nèi)窺鏡系統(tǒng)所采用的攝像頭為OmniVision公司生產(chǎn)的OV7660。該類型CMOS sensor目前廣泛應(yīng)用于便攜式手持設(shè)備。其特點是:靈敏度高,低電壓工作,標(biāo)準(zhǔn)串行攝像頭控制總線(SCCB)控制,可輸出窗口尺寸可調(diào)的UXGA/SVGA/VGA/QVGA等不同像素的圖像、且圖像格式可以是原始RGB/RGB(4:2:2)/YUV(4:2:2)/YCbCr(4:2:2),圖像處理可編程等。
嵌入式開發(fā)沒有通用的驅(qū)動程序。具體針對OV7660,需要進(jìn)行相應(yīng)驅(qū)動設(shè)計。對攝像頭進(jìn)行驅(qū)動程序設(shè)計,除了實現(xiàn)設(shè)備的注冊注銷外, 按照功能還應(yīng)分為實現(xiàn)攝像頭打開模塊、攝像頭控制模塊(初始化在該模塊中實現(xiàn))和攝像頭關(guān)閉模塊。在WinCE系統(tǒng)啟動的過程中即調(diào)用攝像頭驅(qū)動程序,實現(xiàn)攝像頭與2440攝像頭接口參數(shù)設(shè)置及一系列初始化。下面就驅(qū)動的各個模塊做具體介紹。
(1)攝像頭打開模塊
在應(yīng)用程序中,通過調(diào)用CreateFile()打開CIS1口。
hCam=CreateFile(TEXT(“CIS1:”),GENERIC_WRITE |
GENERIC_READ,0,NULL,OPEN_EXISTING,0,NULL);
if(hCam==INVALID_HANDLE_VALUE)
{
AfxMessageBox(L”無法打開!”);
}
else
{
AfxMessageBox(L”攝像頭已打開!”);
}
(2)攝像頭控制模塊
調(diào)用Cam_Init()實現(xiàn)攝像頭接口以及攝像頭模塊的初始化,為本驅(qū)動程序的主要部分。在正確執(zhí)行這個函數(shù)后,攝像頭就可以正常工作,開始采集數(shù)據(jù)。
攝像頭接口的初始化包括五個方面:①設(shè)置寄存器CIGCTRL軟件重啟;②設(shè)置寄存器CISRCFMT確定輸入源格式;③設(shè)置寄存器CIWDOFST溢出標(biāo)識位復(fù)位并使能窗口偏移;④設(shè)置寄存器CIGCTRL,反轉(zhuǎn)CAMVSYNC極性與攝像頭保持一致;⑤設(shè)置YCBCR開始地址寄存器。
Cam_Init()函數(shù)如下:
BOOL Cam_Init()
{
CamGpioInit();//camera IO初始化
CAM_IF_Reset();//camera接口初始化
CamClockOn(TRUE);//設(shè)置camera時鐘
Camera_Module_Reset();//camera模塊重啟
Camera_Initialize();//通過I2C總線設(shè)置
//camera模塊的寄存器
s2440IOP->rGPGCON &=~(0x3<<24);
s2440IOP->rGPGCON |=(0x1<<24);
if(image_size==1)
{
CamInit(QCIF_XSIZE,QCIF_YSIZE,QCIF_XSIZE,
QCIF_YSIZE,0,0,COPIFRAMEBUFFER_B,
COPIFRAMEBUFFER_A);
//設(shè)置輸出圖像格式、起始位置
}
else
{
CamInit(CIF_XSIZE,CIF_YSIZE,QCIF_XSIZE,
QCIF_YSIZE,0,0,COPIFRAMEBUFFER_B,
COPIFRAMEBUFFER_A);
}
RETAILMSG(1,(_T(“CamInit().. donern”)));
return TRUE;
}
在攝像頭驅(qū)動設(shè)計中,對OV7660寄存器組的設(shè)置至關(guān)重要。通過函數(shù)void Wr_CamIIC(U32 slvAddr,U32 addr,U8 data)對OV7660寄存器組進(jìn)行寫操作,其中slvAddr為OV公司的SCCB總線寫地址(默認(rèn)值為0x42),addr為寄存器偏移地址,data為設(shè)置值。具體參數(shù)設(shè)置請參考OmniVision公司提供的OV7660 Setting文獻(xiàn)。
2.2.3 嵌入式系統(tǒng)模塊
嵌入式系統(tǒng)模塊預(yù)裝系統(tǒng)為Windows CE.net 4.2,驅(qū)動程序形式為流接口驅(qū)動,基本框架是dll動態(tài)鏈接庫,使用Embedded Visual C++ 4.0或者Platform Builder 4.2編譯。推薦使用EVC(Embedded Visual C++),因為EVC速度比較快。在便攜式內(nèi)窺鏡系統(tǒng)中該模塊主要功能為接收camera圖像信號,并通過觸摸屏同步顯示圖像。為實現(xiàn)該功能,要利用EVC編程,通過USB同步下載至嵌入式系統(tǒng),實現(xiàn)對視頻圖像信號的處理,主要包括圖像處理去噪、特征提取、缺陷尺寸估計、腐蝕缺陷成像等。其結(jié)構(gòu)示意圖如圖5。
3 試驗驗證
用本系統(tǒng)裝置檢測零件內(nèi)部孔徑為φ5.2mm的孔,在孔的邊緣有一微小裂紋。圖6為圖像信號在采集到嵌入式系統(tǒng)后未經(jīng)過圖像處理的視頻截圖,圖7為采集到嵌入式系統(tǒng)后經(jīng)過圖像處理的視頻截圖。
由圖7可見,處理后的圖像清晰,裂紋明顯,較好地實現(xiàn)了原定目標(biāo)。試驗證明該系統(tǒng)完全可以用于儀器裝備內(nèi)表面微小缺陷的檢測判定。
本文主要針對目前通用工業(yè)內(nèi)窺鏡存在的體積大、重量重、不便于外場檢測的缺點,在基于ARM9嵌入式系統(tǒng)的基礎(chǔ)上,設(shè)計實現(xiàn)了便攜式內(nèi)窺鏡系統(tǒng)。系統(tǒng)在檢測零件上做了試驗,結(jié)果表明該裝置系統(tǒng)在徹底解決通用工業(yè)內(nèi)窺鏡缺點的基礎(chǔ)上,還具有高清晰、高保真的特點,完全可以用于儀器裝備內(nèi)表面微小缺陷的檢測判定。
參考文獻(xiàn)
[1] 賈遂民,劉濤.多媒體CAI課件制作存在的問題與分析[J].中州大學(xué)學(xué)報,2004(2):111-112.
[2] 汪兵,李存斌,陳鵬,等.EVC高級編程及其應(yīng)用開發(fā)[M].北京:中國水利水電出版社,2005.
[3] 杜春雷.ARM體系結(jié)構(gòu)與編程[M].北京:清華大學(xué)出版社,2003.
[4] 崔福綿,付肅真.某型發(fā)動機(jī)九級篦齒盤均壓孔裂紋及斷裂分析[C].全國第五屆航空航天裝備失效分析會議論
文集(2006),2006:156-160.