張?chǎng)┌?,柴曉冬,葉 斌1,彭樂樂
(1.上海鐵大電信科技股份有限公司 研究與發(fā)展中心,上海 200070;2.上海工程技術(shù)大學(xué) 城市軌道交通學(xué)院,上海 201620)
安全是中國(guó)鐵路高速發(fā)展的基礎(chǔ),軌道線路是否處于穩(wěn)定的狀態(tài)是列車平穩(wěn)運(yùn)行的關(guān)鍵,因此精準(zhǔn)高效的軌道檢測(cè)技術(shù)是保障線路安全的重要技術(shù)手段。普遍應(yīng)用的軌道狀態(tài)人工檢測(cè)方式效率低、工作量大,若將圖像檢測(cè)技術(shù)引入到軌道檢測(cè)中,由MCU處理采集到的圖像,識(shí)別出軌道各功能部件的工作狀態(tài),將具有一定的意義,本文從處理器與傳感器選擇、電路與系統(tǒng)設(shè)計(jì)、信號(hào)采集與傳輸?shù)确矫嬷盅芯?,設(shè)計(jì)并搭建一套適用在軌道線路上推行的軌道檢測(cè)小車圖像采集與處理系統(tǒng)。目前的圖像采集方式可以分為兩類:采用通用計(jì)算機(jī)的圖像采集和采用嵌入式設(shè)備的采集。隨著視覺信號(hào)的研究與應(yīng)用,一般在PC上的圖像信息處理與計(jì)算不能滿足一些需要微型圖像處理設(shè)備的領(lǐng)域。嵌入式硬件的迅速發(fā)展為圖像采集微型化提供了條件,嵌入式的各種特點(diǎn)在結(jié)合圖像采集技術(shù)之后,能在各個(gè)領(lǐng)域?qū)崿F(xiàn)非常大的突破。嵌入式Linux系統(tǒng)發(fā)展迅速,圖像設(shè)備驅(qū)動(dòng)逐步完善,開發(fā)環(huán)境友好,源代碼公開,受到眾多開發(fā)者喜愛,基于嵌入式的圖像采集處理方案在各個(gè)鄰域廣泛應(yīng)用[1-2]。
搭建嵌入式平臺(tái),最重要的是處理器選擇,處理器直接決定設(shè)備性能,以及是否能夠支持當(dāng)前應(yīng)用,其次才是配置大小合適的存儲(chǔ)空間,以發(fā)揮處理器的最大性能[3-6]。當(dāng)前市場(chǎng)處理器有以下選擇。
ARM(Advanced RISC Machines)處理器已經(jīng)成為當(dāng)今嵌入式應(yīng)用的主要處理器。ARM系列處理器是一種有著非常高性能、適用于電池或其他電源供電的的微處理器,現(xiàn)在已有32位和64位系列。ARM系列CPU穩(wěn)定性好、性能高、價(jià)格低廉,支持16位和32位指令集,指令運(yùn)行周期短,效率高,在各個(gè)領(lǐng)域受到青睞。
MIPS是美國(guó)芯片設(shè)計(jì)公司,其設(shè)計(jì)的芯片采用精簡(jiǎn)指令系統(tǒng),它在處理器市場(chǎng)僅次于ARM公司。它是設(shè)計(jì)高端的32位和64位嵌入式芯片廠家。MIPS處理器的內(nèi)部結(jié)構(gòu)都經(jīng)過精心改進(jìn),指令執(zhí)行速度快。其指令系統(tǒng)非常完善,支持MIPS16、MIPS32及MIPS64。
PowerPC處理器不多見,其結(jié)構(gòu)設(shè)計(jì)由八十年代多家科技企業(yè)聯(lián)合設(shè)計(jì),并最早生產(chǎn)了基于PowerPC處理器的通用計(jì)算機(jī),至今,PowerPC在市場(chǎng)上的比例比較小。
X86平臺(tái)的處理器是大家最早接觸的處理器,通用計(jì)算機(jī)基本采用X86平臺(tái)處理器,主流生產(chǎn)廠家是Intel和AMD,X86因其功耗過高,無(wú)法支撐電池供電,發(fā)熱嚴(yán)重,因此應(yīng)用受限。
DSP有著與ARM處理器不分上下的優(yōu)勢(shì),甚至很多ARM處理器內(nèi)置DSP協(xié)處理器,DSP處理速度遠(yuǎn)遠(yuǎn)勝過一般結(jié)構(gòu)的處理器,計(jì)算性能極佳。DSP采用流水線指令系統(tǒng),可以讓指令并行運(yùn)行。
在本文嵌入式圖像采集系統(tǒng)需要性價(jià)比高,代碼執(zhí)行效率高,方便安裝且能夠長(zhǎng)期穩(wěn)定工作的嵌入式芯片。綜上論述,嵌入式ARM處理器最適合本課題設(shè)計(jì)要求。
系統(tǒng)的硬件結(jié)構(gòu)如圖1所示,主要由測(cè)量傳感部分、采集部分和上位機(jī)處理部分構(gòu)成的。采集系統(tǒng)對(duì)攝像機(jī)采集到的圖像直接傳送至嵌入式操作平臺(tái),其他測(cè)量單元的信號(hào)在進(jìn)行獲取和預(yù)處理之后,通過TCP/IP總線發(fā)送給嵌入式處理平臺(tái)。其中,測(cè)量單元主要包括攝像機(jī)、光電編碼器、陀螺儀、傾角儀、加速度計(jì)和2D激光傳感器,在同步觸發(fā)電路的控制下,實(shí)現(xiàn)對(duì)軌道狀態(tài)參數(shù)的等距同步測(cè)量[7-10]。因采集對(duì)象包含數(shù)字和模擬信號(hào),為了減小信號(hào)間的相互干擾,采集系統(tǒng)采用基于M3內(nèi)核的兩片ARM處理器協(xié)同工作來(lái)實(shí)現(xiàn)對(duì)測(cè)量單元的同步控制。
圖1 嵌入式軌檢小車系統(tǒng)采集結(jié)構(gòu)圖
2.1.1 S3C2240電路
S3C2440的突出性能是其內(nèi)核CPU設(shè)計(jì),是一個(gè)精心設(shè)計(jì)的16/32位ARM920T的RISC處理器。ARM920T實(shí)現(xiàn)了MMU、AMBA、BUS和Harvard高速緩沖體系結(jié)構(gòu)。這一結(jié)構(gòu)具有獨(dú)立的Cache和16 KB數(shù)據(jù)Cache。每個(gè)都是由8字長(zhǎng)的行組成。S3C2440配備ARM920t核心,工作主頻高達(dá)400 MHz[4]。工作功耗極低,長(zhǎng)時(shí)間運(yùn)行穩(wěn)定。采用了新的總線架構(gòu)Advanced Micro controller Bus Architecture (AMBA)。
2.1.2 SDRAM
S3C2440內(nèi)置4 KB的SRAM,對(duì)于運(yùn)行操作系統(tǒng)的程序來(lái)說(shuō)是遠(yuǎn)遠(yuǎn)不夠的,但S3C2240支持SDRAM接口,并且會(huì)自動(dòng)刷新,采用外部SDRAM來(lái)擴(kuò)展程序運(yùn)行內(nèi)存對(duì)于本文設(shè)計(jì)非常適合。本系統(tǒng)采用兩片K4S561632N,32MB的SDRAM,總共64 MB運(yùn)行空間,對(duì)于攝像頭采集程序足夠使用。
2.1.3 NAND Flash存儲(chǔ)器
NAND Flash存儲(chǔ)芯片,掉電數(shù)據(jù)不丟失,可以存儲(chǔ)操作系統(tǒng)軟件或者應(yīng)用數(shù)據(jù)。該類型存儲(chǔ)芯片采用并行通訊。讀取和擦除速度有限,并且單片機(jī)上電后需要初始化讀取接口才能使用。NOR Flash和NAND Flash都為并行通訊接口。NOR Flash為分離的地址線和數(shù)據(jù)線,而NAND Flash為復(fù)用的。查看Samsung的K9F1208芯片后,本系統(tǒng)采用這款NAND芯片。
圖2 NAND閃存電路
K9F1208是Samsung公司生產(chǎn)的512 Mb(64 M×8位)NAND Flash存儲(chǔ)器。存儲(chǔ)器采用8位地址總線也是數(shù)據(jù)總線,先給地址總線發(fā)送地址,然后從地址總線讀或?qū)憯?shù)據(jù),有所降低速度,但節(jié)省硬件接口資源。這款芯片讀寫時(shí)序如下。對(duì)該芯片的操作分為寫命令、寫地址、讀寫數(shù)據(jù)。首先執(zhí)行寫入命令,然后寫入4字節(jié)要操作的地址,最后讀寫數(shù)據(jù)。
圖3 NAND讀寫時(shí)序
2.1.4 串口通信電路
串行接口是最簡(jiǎn)單可靠的芯片之間通訊方式,TTL電平全雙工通訊,但是通訊距離短。采用PL2303串口轉(zhuǎn)USB芯片。PL2303是一款高效的USB轉(zhuǎn)TTL串口的通信芯片,該芯片價(jià)格便宜,性能優(yōu)異,支持各種操作系統(tǒng)驅(qū)動(dòng)。外圍電路簡(jiǎn)單,接上幾個(gè)電容和晶振就能穩(wěn)定工作。內(nèi)部將TTL收到的數(shù)據(jù)發(fā)送給USB,同時(shí)將USB數(shù)據(jù)發(fā)回TTL串口,實(shí)現(xiàn)全雙工通訊,工作全部由器件自動(dòng)完成,適合在本系統(tǒng)中使用。
按照里程位置觸發(fā)攝像機(jī)采集軌道圖像是系統(tǒng)設(shè)計(jì)要考慮的一個(gè)重要問題,因此需要設(shè)計(jì)相應(yīng)的同步觸發(fā)與采集電路板系統(tǒng),保證光電編碼器輸出脈沖按照設(shè)置的周期轉(zhuǎn)為觸發(fā)信號(hào)供CCD拍照采集。觸發(fā)采集電路需要對(duì)采集到的光電編碼脈沖計(jì)算,除對(duì)相機(jī)觸發(fā)外,還需對(duì)陀螺儀、傾角儀和加速度計(jì)慣導(dǎo)系統(tǒng)觸發(fā)采集,保證軌道圖像與空間線形位置對(duì)應(yīng),是多傳感融合計(jì)算的前提??紤]到觸發(fā)信號(hào)計(jì)算量少,反饋采集的信息包只需要簡(jiǎn)單的轉(zhuǎn)發(fā),因此選擇MCU作為采集板的主控芯片,最后確定使用STM32系列芯片。實(shí)現(xiàn)脈沖采集需要設(shè)計(jì)光電編碼器對(duì)應(yīng)的正交編碼電路;根據(jù)陀螺儀是422通信輸出接口、傾角儀和加速度計(jì)是模擬電壓輸出接口,需要設(shè)計(jì)對(duì)應(yīng)的422接口電路、橋式整流變壓采集電路。
正交編碼電路主要用到高速光耦光電轉(zhuǎn)換電路。將編碼器的三路脈沖先通過NPN二極管提升電平后,再輸入到光耦隔離芯片,實(shí)現(xiàn)光電轉(zhuǎn)化,當(dāng)輸入端高電平時(shí),光耦芯片內(nèi)部二極管發(fā)光,輸出端輸出高電平;當(dāng)輸入端低電平時(shí),二極管不發(fā)光,輸出端輸出低電平,因此通過該電路可以把信號(hào)較弱的輸入脈沖變?yōu)榉€(wěn)定的高脈沖信號(hào)。
422通信電路使用ADM2582EBRWZ 芯片數(shù)據(jù)手冊(cè)提供的外部電路設(shè)計(jì),整流電路使用MB4S-E3/80芯片作為整流橋電路,外部匹配相應(yīng)的電阻,濾波電容裝化電壓到ADC的采集范圍內(nèi)。芯片的供電方案采用多級(jí)降壓,由鋰電池DC-DC降壓到12 V,12 V再降壓到5 V,5 V再降壓到3.3 V,供板上各部分使用,使用Cadence軟件繪制PCB電路板,實(shí)現(xiàn)上述功能。
滿足小車運(yùn)動(dòng)過程中精確取像,分辨率1 624×1 234,200萬(wàn)像素,采樣幀率可調(diào)最高至30 fps,ROI調(diào)小獲得高幀率,全分辨率取像時(shí)最大幀率14 fps,光電隔離的輸出接口,有內(nèi)部同步觸發(fā)和外部采集兩種觸發(fā)方式,外部采集處理包括高低電平和上下邊沿跳變,以及延時(shí)觸發(fā)等,本系統(tǒng)使用外部邊沿跳變的同步觸發(fā)方式,共同觸發(fā)相機(jī)和其他采樣設(shè)備,F(xiàn)IFO空間為在攝像頭選型上,選擇MantaG-201C型PoE工業(yè)數(shù)字相機(jī),采用Sony ICX274線性CCD逐行掃描成像,32 M,滿足設(shè)備高速采集中轉(zhuǎn)圖像需求。
相機(jī)的同步觸發(fā)電路采用圖5所示電路結(jié)構(gòu),輸入信號(hào)
圖4 串口通信電路
圖5 Manta G-201C外觸發(fā)電路
為處理器經(jīng)過光電編碼器編碼后的等距離觸發(fā)信號(hào)P_BT,經(jīng)過TLP250功率放大之后,將信號(hào)轉(zhuǎn)換為12V觸發(fā)信號(hào)P_BT_G,觸發(fā)相機(jī)采集。
S3C2440配備LCD控制器模塊,該模塊可以獨(dú)立完成LCD通訊協(xié)議,初始化代碼中,根據(jù)采用的4.3寸屏幕數(shù)據(jù)手冊(cè)中要求,配置LCD控制模塊的通訊時(shí)序參數(shù)。LCD模塊才能正確和LCD通訊。內(nèi)存中設(shè)定一塊顯存區(qū)域,LCD控制模塊將自動(dòng)把顯存中數(shù)據(jù)刷新至屏幕,LCD原理是控制液晶光線透過率來(lái)實(shí)現(xiàn)彩色調(diào)節(jié),呈現(xiàn)出各種色彩。這樣就要求屏幕必須有背部的光源。目前采用的都是LED燈光,安裝在屏幕側(cè)邊,照亮整個(gè)屏幕,在屏幕中的LED有采用串聯(lián)和并聯(lián)兩種方式。并聯(lián)不需要升壓驅(qū)動(dòng),但是驅(qū)動(dòng)電流大,串聯(lián)需要驅(qū)動(dòng)電壓高。本系統(tǒng)采用串聯(lián)LED背光的屏幕,需要升壓驅(qū)動(dòng)背光。本系統(tǒng)采用MP1518升壓器件來(lái)驅(qū)動(dòng)LED背光,驅(qū)動(dòng)電流在10 mA到20 mA的負(fù)載。由S3C2440芯片輸出PWM給MP1518的EN引腳,根據(jù)占空比,調(diào)節(jié)背光LED。
圖6 液晶屏接口電路和屏幕
采用模塊化編程思想,即每個(gè)功能由相應(yīng)的子模塊獨(dú)立完成,攝像機(jī)傳感器采集圖像的過程,使用GetFrame方法獲取圖像信息,本系統(tǒng)將攝像機(jī)采圖模塊常用函數(shù)封裝到Cameras類中,通過下圖實(shí)現(xiàn)對(duì)攝像機(jī)采集功能的控制[11-12]。
圖7 嵌入式采集處理流程
相機(jī)初始化流程:首先創(chuàng)建對(duì)象,獲取相機(jī)數(shù)目和序列號(hào),根據(jù)序列號(hào)讀取對(duì)應(yīng)配置文件,設(shè)置相機(jī)格式、傳輸速度、數(shù)據(jù)包大小以及時(shí)間基,再設(shè)置觸發(fā)方式,開辟內(nèi)存空間讀取圖像,啟動(dòng)相機(jī)開始捕獲。
軟件處理流程如下,調(diào)用Video4Linux(V4L)接收采集到的圖像,之后傳送至FrameBuffer幀緩沖空間,應(yīng)用程序從緩沖區(qū)域讀取圖片進(jìn)行處理,處理過程中調(diào)用OpenCV庫(kù)函數(shù)與QT庫(kù),定位分割之后的軌道圖像調(diào)用VBF圖像顯示程序,將圖像顯示在屏幕上。
圖8 嵌入式平臺(tái)圖像采集處理流程
Video4Linux(V4L)是嵌入式Linux系統(tǒng)中外部圖像采集設(shè)備的驅(qū)動(dòng),能夠?yàn)橥獠坎杉O(shè)備提供所有最基本的程序功能,加載V4L程序可對(duì)外部設(shè)備的功能進(jìn)行實(shí)現(xiàn),在此基礎(chǔ)上通過其他接口可以收集采集到的圖像數(shù)據(jù)。
FrameBuffer是幀緩沖,縮寫為VFB。FrameBuffer是標(biāo)準(zhǔn)的字符設(shè)備,是一種圖形設(shè)備驅(qū)動(dòng)接口,原理是把其內(nèi)部的顯存抽象成字符設(shè)備,同時(shí)準(zhǔn)許上層的應(yīng)用程序獲取存儲(chǔ)的數(shù)據(jù)進(jìn)行讀寫。作為顯示緩沖區(qū),當(dāng)在FrameBuffer里寫入一定格式的數(shù)據(jù)時(shí),采集到的圖像就再次進(jìn)行輸出顯示,此外,F(xiàn)rameBuffer與屏幕中的點(diǎn)之間有映射,每點(diǎn)都有與之一一對(duì)應(yīng)的地址。同Video4Linux一樣,在Linux操作系統(tǒng)內(nèi)核中存在著FrameBuffer的驅(qū)動(dòng)程序,所以進(jìn)行圖像顯示程序開發(fā)時(shí)也只需加載相應(yīng)的驅(qū)動(dòng)程序,當(dāng)有新數(shù)據(jù)寫入時(shí),屏幕圖片便會(huì)自動(dòng)進(jìn)行更新,系統(tǒng)再另外從FrameBuffer中讀取數(shù)據(jù)并將其進(jìn)行存儲(chǔ)即可。
選取三組不同類型扣件的線路進(jìn)行采集試驗(yàn),扣件中心對(duì)稱、遠(yuǎn)近距離不同的兩組,扣件水平對(duì)稱線路一組,針對(duì)不同線路的扣件檢測(cè)實(shí)驗(yàn)結(jié)果如下。
圖9 不同線路狀態(tài)下扣件的軟件處理結(jié)果
通過多次現(xiàn)場(chǎng)實(shí)地線路試驗(yàn),設(shè)計(jì)的采集系統(tǒng)能夠穩(wěn)定的同步采集現(xiàn)場(chǎng)的軌道圖像,變換設(shè)置相機(jī)的高度與采集角度,小車能夠經(jīng)過OpenCV處理函數(shù)快速的定位出扣件特征區(qū)域。
本文描述了搭建與設(shè)計(jì)嵌入式圖像采集處理軌檢小車的過程,主要包括整體系統(tǒng)結(jié)構(gòu)設(shè)計(jì)、硬件選型與電路設(shè)計(jì)、軟件運(yùn)行結(jié)果測(cè)試等,設(shè)計(jì)了嵌入式的圖像采集處理軌檢小車,解決了硬件電路的選型與設(shè)計(jì)問題,測(cè)試了算法運(yùn)行與嵌入式平臺(tái)的穩(wěn)定性。硬件設(shè)計(jì)上分為嵌入式主控板電路設(shè)計(jì)與同步采集觸發(fā)控制板電路設(shè)計(jì)兩大部分,嵌入式主控板電路設(shè)計(jì)為集成的Linux平臺(tái),采集觸發(fā)控制板是使用Cadence軟件自主設(shè)計(jì)的嵌入式STM32單片機(jī)電路,著重分析了主控板上的關(guān)鍵電路,概述采集觸發(fā)控制板電路。軟件部分主要分析了主板運(yùn)行程序流程與同步觸發(fā)板的μC/OS-II系統(tǒng)控制過程。最后測(cè)試了基于OpenCV函數(shù)庫(kù)與QT平臺(tái)編寫的軌道圖像分割軟件,得到軌道圖像的分割效果,測(cè)試嵌入式平臺(tái)的工作穩(wěn)定性與驗(yàn)證算法的實(shí)用性。