解立強(qiáng), 蓋 林
(1.中鐵電氣化局集團(tuán)有限公司電氣化公司,北京 100036;2.河北省南皮縣供電有限公司,河北 滄州 061500)
接觸網(wǎng)是電力機(jī)車(chē)獲得電能的通道,它是整個(gè)電氣化鐵道供電系統(tǒng)的動(dòng)脈,所以,有效的接觸網(wǎng)檢測(cè)系統(tǒng)在保證鐵路安全運(yùn)行方面顯得尤為重要。與傳統(tǒng)的接觸式接觸網(wǎng)檢測(cè)技術(shù)相比,非接觸式檢測(cè)可以在不影響受電弓與接觸線之間受流特性的基礎(chǔ)上,有效提高檢測(cè)數(shù)據(jù)的實(shí)時(shí)性和精確性,乃至整個(gè)系統(tǒng)的安全性。將線陣列CCD技術(shù)應(yīng)用于接觸網(wǎng)檢測(cè)系統(tǒng)在很大程度上解決了獲取動(dòng)態(tài)圖像的問(wèn)題[1-2],而如何很好的采集態(tài)圖像就變得至關(guān)重要。
以ARM最小系統(tǒng)板為開(kāi)發(fā)平臺(tái),再移植嵌入式Linux操作系統(tǒng)在很大程度上可以解決動(dòng)態(tài)數(shù)據(jù)采集的實(shí)時(shí)性問(wèn)題。從硬件和軟件兩個(gè)方面,討論了將嵌入式ARM+Linux技術(shù)應(yīng)用于線陣列CCD接觸網(wǎng)檢測(cè)系統(tǒng)中采集動(dòng)態(tài)圖像的問(wèn)題。
ARM處理器以其先進(jìn)的體系結(jié)構(gòu)和對(duì)操作系統(tǒng)的支持等優(yōu)點(diǎn)在嵌入式技術(shù)中得到了很多應(yīng)用,本文所討論的嵌入式系統(tǒng)也是迎合了其體積小、能耗低、實(shí)時(shí)性好等特點(diǎn)而設(shè)計(jì)完成的。整個(gè)檢測(cè)系統(tǒng)硬件主要有三個(gè)功能模塊組成:高速CCD實(shí)現(xiàn)動(dòng)態(tài)圖像數(shù)字化[3-4];嵌入式ARM處理器實(shí)現(xiàn)圖像數(shù)據(jù)的采集;串口實(shí)現(xiàn)系統(tǒng)測(cè)試和數(shù)據(jù)傳輸。系統(tǒng)硬件布局框圖如圖1所示。
嵌入式處理器是嵌入式系統(tǒng)的核心,是控制、輔助系統(tǒng)運(yùn)行的硬件單元。設(shè)計(jì)選用Samsung S3C2440核心板,因?yàn)橐\(yùn)行嵌入式操作系統(tǒng),所以該板選用了大容量的FLASH和SDRAM作為數(shù)據(jù)采集系統(tǒng)的存儲(chǔ)系統(tǒng)。CPLD芯片主要用做FLASH和SRAM的邏輯控制。
S3C2440采用外部存儲(chǔ)器和I/O統(tǒng)一編址的方式[5],將1 G byte的地址空間分為8個(gè)大小為128 MB的BANK。采集系統(tǒng)存儲(chǔ)器空間分配如表1所示。
圖1 系統(tǒng)硬件布局
采用TOSHIBA的TCDl209芯片,其驅(qū)動(dòng)頻率最高可達(dá)20 MHZ。ARM微處理器和CCD攝像機(jī)接口電路的設(shè)計(jì)必須要保證芯片之間在數(shù)據(jù)采集過(guò)程中速度匹配,系統(tǒng)采用S3C2440的外部DMA方式對(duì)相機(jī)輸出數(shù)據(jù)進(jìn)行采集,同時(shí)采用異步FIFO為核心的邏輯電路模塊解決CCD攝相機(jī)輸出和采集速度不匹配的問(wèn)題。相機(jī)的輸出信號(hào)經(jīng)模數(shù)轉(zhuǎn)換后輸入到FPGA中,圖像數(shù)據(jù)在幀同步、行同步和像元時(shí)鐘的控制下有序的輸入到FPGA內(nèi)部的異步模塊中,S3C2440通過(guò)DMA通道將圖像從FPGA中采出。接口原理圖如圖2所示。
表1 存儲(chǔ)器空間分配
嵌入式Linux系統(tǒng)由于源代碼開(kāi)放,使得各地的軟件愛(ài)好者為其提供了豐富的實(shí)用軟件支持,用Linux開(kāi)發(fā)產(chǎn)品,會(huì)使產(chǎn)品成本大大下降。嵌入式Linux系統(tǒng)需要3個(gè)基本元素構(gòu)成最小系統(tǒng):系統(tǒng)引導(dǎo)程序,用于完成機(jī)器加電后的系統(tǒng)定位引導(dǎo);Linux系統(tǒng)內(nèi)核,為嵌入式系統(tǒng)
提供一個(gè)軟件環(huán)境,為應(yīng)用程序完成基本的底層的資源管理工作;初始化程序,完成基本的初始化。為使這個(gè)最小嵌入式系統(tǒng)具有一定的實(shí)用性,還需加上硬件的驅(qū)動(dòng)程序以及一個(gè)或幾個(gè)應(yīng)用進(jìn)程以提供必要的應(yīng)用功能支持。
采用運(yùn)行Redhat Linux9.0的PC機(jī),并通過(guò)串口與采集系統(tǒng)相連,開(kāi)發(fā)工具鏈為GNU的跨平臺(tái)開(kāi)發(fā)工具鏈,交叉編譯器是arm-linux-gcc-3.4.1。正如PC機(jī)上的硬盤(pán)分區(qū)一樣,要使嵌入式Linux正常啟動(dòng)和運(yùn)行,必須對(duì)flash空間進(jìn)行細(xì)致的規(guī)劃,并且必須具備三部分:Bootloader、kernel和文件系統(tǒng)。Flash具體空間分配如表2所示。
圖2 CCD攝像機(jī)接口原理
設(shè)計(jì)選用的系統(tǒng)引導(dǎo)程序是韓國(guó)mizi公司開(kāi)發(fā)的Bootloader(vivi),它適合于ARM9處理器。通過(guò)這段程序,可以初始化硬件設(shè)備、建立系統(tǒng)的內(nèi)存空間映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。系統(tǒng)選用的內(nèi)核版本為 linux -2.6.14.1,拷貝至目錄 home/arm/dev_home/kernel,解壓內(nèi)核并進(jìn)入內(nèi)核目錄,修改內(nèi)核目錄樹(shù)根下的的Makefile,并用“make menuconfig”命令對(duì)系統(tǒng)內(nèi)核進(jìn)行配置。系統(tǒng)采用Cramfs文件系統(tǒng)和Yaffs文件系統(tǒng)相結(jié)合的方法構(gòu)建一個(gè)穩(wěn)定、可靠、可讀寫(xiě)的文件系統(tǒng)。Yaffs文件系統(tǒng)本身性能優(yōu)越且易于移植,已經(jīng)成功應(yīng)用于多種操作系統(tǒng)中,并且還是一個(gè)開(kāi)放源碼項(xiàng)目,采用該文件系統(tǒng)作為用戶數(shù)據(jù)區(qū),用于存儲(chǔ)采集到的圖像。
Linux通過(guò)設(shè)備驅(qū)動(dòng)程序?yàn)閼?yīng)用程序提供了統(tǒng)一抽象的接口,從而隱藏了大量不同設(shè)備之間的區(qū)別和細(xì)節(jié)[6]。在Linux中所有對(duì)硬件設(shè)備的操作和通常的文件一樣,利用標(biāo)準(zhǔn)的系統(tǒng)調(diào)用可在設(shè)備上進(jìn)行打開(kāi)、關(guān)閉、讀取或?qū)懭氩僮?。系統(tǒng)中的每個(gè)設(shè)備由“設(shè)備特殊文件”來(lái)代表。在設(shè)計(jì)中,驅(qū)動(dòng)程序初始化顯得尤為關(guān)鍵,在本系統(tǒng)中按照以下步驟進(jìn)行:①設(shè)置s3c2440輸入輸出口的工作方式。②設(shè)置CCD攝像機(jī)接口所映射的BANK4的數(shù)據(jù)寬度為8位。③注冊(cè)驅(qū)動(dòng)程序。
在Linux下可通過(guò)調(diào)用read函數(shù)實(shí)現(xiàn)數(shù)據(jù)的采集,其程序流程圖如圖3所示。
表2 Flash空間分配表
嵌入式系統(tǒng)的設(shè)計(jì)必須對(duì)其關(guān)鍵部分和系統(tǒng)整體進(jìn)行測(cè)試,才能確定系統(tǒng)性能,進(jìn)而確定系統(tǒng)設(shè)計(jì)是否達(dá)到預(yù)期要求[7]。在系統(tǒng)設(shè)計(jì)過(guò)程中和完成后進(jìn)行了硬件和軟件的測(cè)試,其中關(guān)鍵的相機(jī)接口功能測(cè)試如下。
(1)相機(jī)接口測(cè)試。系統(tǒng)測(cè)試軟件主要是FPGA的開(kāi)發(fā)環(huán)境QuatrusII和ARM的集成開(kāi)發(fā)環(huán)境ADS1.2。相機(jī)接口的測(cè)試程序設(shè)計(jì)由FPGA和ARM程序配合完成。FPGA內(nèi)部通過(guò)分頻器和計(jì)數(shù)器模塊模擬一個(gè)的256×256的CCD相機(jī)的輸出信號(hào),然后將模擬的數(shù)字圖像信號(hào)和同步信號(hào)、像元時(shí)鐘送到相機(jī)接口的FPGA部分進(jìn)行采集。
(2)測(cè)試結(jié)果。通過(guò)上述測(cè)試方法對(duì)相機(jī)接口性能進(jìn)行了測(cè)試,通過(guò)邏輯分析儀采集了接口工作時(shí)序,如圖4所示。測(cè)試結(jié)果表明相機(jī)接口符合設(shè)計(jì)要求,可以實(shí)現(xiàn)對(duì)CCD相機(jī)的數(shù)據(jù)采集。同時(shí)經(jīng)過(guò)測(cè)量,采集一次數(shù)據(jù)的時(shí)間約為220 ns。
由于采用嵌入式ARM+Linux技術(shù),對(duì)CCD相機(jī)圖像可以進(jìn)行實(shí)時(shí)采集,不僅為下一步的圖像信號(hào)處理奠定了很好的基礎(chǔ),而且提高了系統(tǒng)的測(cè)量速度和精度。將該嵌入式系統(tǒng)應(yīng)用到接觸網(wǎng)檢測(cè)系統(tǒng)中,由于采集的圖像實(shí)時(shí)性好,使得檢測(cè)系統(tǒng)能夠快速的檢測(cè)出接觸網(wǎng)的瞬時(shí)拉出值,使得非接觸式高速檢測(cè)檢測(cè)接觸網(wǎng)成為可能。在試驗(yàn)室條件下,如果不考慮光線干擾和接觸網(wǎng)振動(dòng)等因素,測(cè)量分辨率可達(dá)0.2 mm。
圖3 圖像采集程序流程
圖4 相機(jī)接口測(cè)試結(jié)果
本嵌入式系統(tǒng)具有良好的移植性,且造價(jià)低、使用簡(jiǎn)單,所以在功能上可以做進(jìn)一步的擴(kuò)展。例如應(yīng)用在本文所討論的線陣列CCD非接觸式接觸網(wǎng)檢測(cè)系統(tǒng)中,在嵌入式系統(tǒng)中加上GPRS模塊,可以實(shí)現(xiàn)數(shù)據(jù)無(wú)線傳輸;也可以配合DSP芯片,在嵌入式系統(tǒng)內(nèi)實(shí)現(xiàn)圖像識(shí)別和處理,檢測(cè)出接觸線高度以及瞬間動(dòng)態(tài)拉出值等參數(shù),使得產(chǎn)品性能大大加強(qiáng)。
[1]蔡學(xué)敬.基于Onuris線陣列CCD攝像技術(shù)的高速電氣化鐵路接觸網(wǎng)動(dòng)態(tài)檢測(cè)系統(tǒng)[J].軌道交通 ,2007(5):54-55.
[2]董建軍,莫易敏.基于DSP和線陣CCD的接觸網(wǎng)檢測(cè)系統(tǒng)[J].機(jī)車(chē)電傳動(dòng),2006(3):62-63.
[3]鄂永.基于圖像處理的鐵路接觸網(wǎng)檢測(cè)系統(tǒng)的研究[D].大連:大連理工大學(xué)電子與信息工程學(xué)院,2009.
[4]張韜.基于圖像處理的接觸網(wǎng)檢測(cè)系統(tǒng)研究與改進(jìn)[J].鐵道機(jī)車(chē)車(chē)輛,2009,29(1):68-71.
[5]廖日坤.ARM嵌入式應(yīng)用技術(shù)開(kāi)發(fā)手冊(cè)[M].北京:中國(guó)電力出版社,2006.
[6]馬忠梅,李善平.ARM &Linux嵌入式系統(tǒng)教程[M].北京:北京航空航天大學(xué)出版社,2005.
[7]徐海東,陳唐龍,隆超.客運(yùn)專(zhuān)線接觸網(wǎng)檢測(cè)項(xiàng)目及技術(shù)標(biāo)準(zhǔn)研究[J].電氣技術(shù),2009(1):38-40.