摘 要: 研究了一種基于DSP和ARM的嵌入式車牌識別系統(tǒng),通過DSP實現(xiàn)視頻圖像數(shù)據(jù)采集、車牌識別算法處理、網(wǎng)絡傳輸?shù)热蝿?;ARM處理器使用Linux系統(tǒng)調(diào)度和管理視頻接收、視頻顯示、識別結果顯示等控制任務。整個系統(tǒng)通過網(wǎng)絡實現(xiàn)通信與同步。
關鍵詞: 車牌識別;嵌入式系統(tǒng);DSP;ARM
車牌識別系統(tǒng)采用數(shù)字圖像處理技術,通過車牌圖像采集、圖像預處理、車牌定位、字符分割和字符識別5個模塊來實現(xiàn)車牌自動識別。傳統(tǒng)的車牌識別系統(tǒng)主要由攝像頭、視頻采集卡、PC機等主要模塊組建而成,其特點是系統(tǒng)容易實現(xiàn),但是成本較高、實時性較差、體積龐大、安裝和維護不方便。本文討論了一種基于DSP和ARM的嵌入式車牌識別系統(tǒng)的硬件平臺設計及其典型模塊的驅動程序設計。與傳統(tǒng)的車牌識別系統(tǒng)不同,該系統(tǒng)無需計算機即可實現(xiàn)車牌圖像的采集、處理和識別、結果輸出,具有識別率高、實時性好、環(huán)境適應性強、安裝維護簡單、成本低等特點。
1 系統(tǒng)硬件平臺設計
硬件平臺包括DSP和ARM兩個獨立的硬件平臺, 利用DSP強大的信號處理能力完成車牌識別算法運算,使用ARM處理器實現(xiàn)人機交互控制功能。由于車牌識別系統(tǒng)需要很高的識別率和識別速度,且車牌識別算法的運算量又比較大,為了滿足系統(tǒng)的實時性和精度要求,DSP平臺采用TI公司C6000系列的TMS320DM642作為核心控制模塊,利用其豐富的片上資源以及快速的圖像處理能力來實現(xiàn)車牌圖像采集和算法處理。ARM平臺運行于Linux系統(tǒng)上,選用三星公司的ARM9處理器S3C2410 作為控制中心,由于其功耗低并具有豐富的片內(nèi)資源,能夠滿足本系統(tǒng)的設計要求。系統(tǒng)硬件平臺將電源管理、圖像采集、SDRAM、Flash、網(wǎng)絡通信、觸摸屏顯示控制等功能模塊集于一體,如圖1所示。
本系統(tǒng)的結構設計可實現(xiàn)多種用途,具有很好的靈活性和擴展性。其中,可以根據(jù)需要選擇DSP平臺來實現(xiàn)車牌識別算法處理,并通過網(wǎng)絡將識別處理結果發(fā)送到上位機,組成一個分布式的車牌識別局域網(wǎng),從而實現(xiàn)分布式智能交通管理。也可以選擇DSP和ARM平臺共同實現(xiàn)便攜手持式車牌識別系統(tǒng),并通過在ARM平臺上開發(fā)人機交互界面,為用戶提供相應的交互控制功能,以完成系統(tǒng)的控制和設置。
其中,觸摸屏顯示模塊采用2.4寸TFT彩色觸摸屏,其分辨率為320×240,可在Linux環(huán)境中開發(fā)GUI接口實現(xiàn)系統(tǒng)的人機交互功能,包括接收DSP網(wǎng)絡接口傳輸來的視頻信號,并在顯示屏上實時顯示,同時用戶可通過觸摸屏控制車牌圖像的抓圖等操作。本文將重點討論車牌圖像采集和網(wǎng)絡通信模塊的設計。
1.1 車牌圖像采集
車牌識別系統(tǒng)所采集到的車牌圖像質(zhì)量對整個系統(tǒng)的識別效果起著關鍵作用。系統(tǒng)中DM642的3個視頻接口支持視頻捕獲模式和視頻顯示模式,可以與視頻解碼芯片直接連接,系統(tǒng)采用TI公司的TVP5150高性能視頻解碼芯片,其可以將 PAL、NTSC 信號轉換成 BT.656-YUV4:2:2信號。通過DSP的I2C總線可以實現(xiàn)對 TVP5150工作模式的配置,電路連接情況如圖2所示。
DM642的視頻模塊支持多種視頻捕獲模式,本系統(tǒng)采用10 bit BT.656模式,利用DSP的VP0通道對視頻解碼芯片輸出的BT.656信號進行采集。DSP 視頻采集模塊利用BT.656數(shù)據(jù)流中嵌入的行、場同步信號,以及視頻解碼芯片TVP5150提供的GPCL使能信號完成對車牌圖像的采集。
1.2 網(wǎng)絡通信模塊設計
網(wǎng)絡通信模塊包括DSP和ARM兩個網(wǎng)絡模塊。其中,DSP網(wǎng)絡模塊主要功能是把采集到的車牌圖像的處理結果發(fā)送到ARM模塊,并接收來自ARM模塊的控制信號;ARM網(wǎng)絡模塊主要功能是接收DSP網(wǎng)絡模塊發(fā)送來的數(shù)據(jù)以及向DSP網(wǎng)絡模塊發(fā)送控制信號。
1.2.1 DSP網(wǎng)絡模塊
利用Intel公司的以太網(wǎng)控制器LXT971將DSP傳輸來的數(shù)據(jù)轉換為以太網(wǎng)物理層接收到數(shù)據(jù),并通過雙絞線連接到隔離變壓器PE65745和RJ45接口然后再連接到網(wǎng)絡,如圖3所示。使用隔離變壓器的原因是增強信號耦合,使信號的傳輸距離更遠;同時起到隔離保護作用,防止外界對芯片的干擾。
其中,DSP網(wǎng)絡通信的驅動基于DSP/BIOS和網(wǎng)絡開發(fā)包DNK等資源開發(fā)。硬件驅動程序庫的函數(shù)以及數(shù)據(jù)結構都符合DNK的標準應用程序編程接口,由DNK進行提前控制。底層硬件驅動與TCP/IP協(xié)議棧的接口包含TCP/IP協(xié)議棧與硬件驅動層之間的應用程序編程接口和驅動環(huán)境與TCP/IP協(xié)議棧直接傳遞狀態(tài)監(jiān)測信息接口。
1.2.2 ARM網(wǎng)絡模塊
由于S3C2410沒有集成網(wǎng)絡接口,需要用外擴CS8900A以太網(wǎng)芯片來實現(xiàn)網(wǎng)絡底層的數(shù)據(jù)傳輸,并通過隔離變壓器PE65745將數(shù)據(jù)傳輸?shù)絉J45接口,電路連接如圖4所示。
圖4中門電路主要實現(xiàn)以下邏輯關系式功能:
IOW=ADDR24+new
IOR=ADDR24+nOE
MEMR=ADDR24+nOE
MEMW=ADDR24+new
在CS8900A中IOW、IOR、MEMW、MEMR 4個信號都是低電平有效。CS8900A片選信號AEN連接到nGCS3,I/O模式下的nOE和nWE通過門電路連接到A24,中斷信號INTRQ0連接到EINT9。CS8900A的基地址為x19000000。在I/O模式下,CS8900A的內(nèi)部寄存器默認地址為0x300h,在S3C2410的地址空間中的地址為0x19000300。通過CS8900內(nèi)部寄存器的設置,實現(xiàn)網(wǎng)絡底層數(shù)據(jù)的接收和發(fā)送,實現(xiàn)通信。
2 系統(tǒng)軟件設計
系統(tǒng)軟件設計包括DSP系統(tǒng)底層程序、ARM系統(tǒng)底層程序和系統(tǒng)應用程序開發(fā)。DSP系統(tǒng)程序的開發(fā)是在TI公司的CCS集成開發(fā)環(huán)境中進行的,利用CCS提供的圖像顯示、MEMORY窗口、寄存器查看、斷點設置、DSP/BIOS分析等工具實現(xiàn)程序的開發(fā)。DSP系統(tǒng)程序流程圖如圖5所示。
系統(tǒng)上電后首先對DSP資源進行初始化,包括資源配置、EMIF口配置、中斷設置、CACHE使能、I2C 配置視頻解碼芯片、DSP 視頻采集口初始化等。然后DSP通過視頻采集口VP0采集車牌視頻圖像信號,當每完成一行數(shù)據(jù)采集時,DSP 就會觸發(fā)一次 EDMA,同時通過 EDMA 把相應的行視頻數(shù)據(jù)從片內(nèi)搬移到片外 YUV_SDRAM 存儲空間中。完成一幀車牌視頻圖像采集后,系統(tǒng)調(diào)用YUV轉RGB子程序,把YUV原始圖像轉換成RGB圖像,然后調(diào)用圖像處理算法,包括圖像預處理和車牌字符分割、識別等算法,最后系統(tǒng)把車牌識別結果通過網(wǎng)絡發(fā)送到ARM系統(tǒng)中,若此時系統(tǒng)接收到來自ARM系統(tǒng)的車牌圖像采集控制信號,系統(tǒng)就進入到下一次圖像采集和處理過程。
Linux內(nèi)核是開源的實時操作系統(tǒng),具有很好的任務調(diào)度及管理功能,可以通過內(nèi)核配置對內(nèi)核進行裁剪。ARM系統(tǒng)程序都是運行在Linux操作系統(tǒng)中,需要在ARM平臺上搭建Linux系統(tǒng)環(huán)境,包括交叉編譯器、Uboot移植、Linux內(nèi)核移植和文件系統(tǒng)開發(fā)。程序設計的重點是各功能模塊的驅動程序設計,包括觸摸屏驅動、網(wǎng)絡驅動等。
應用程序是整個系統(tǒng)最上層的程序,為用戶提供良好的人機界面,實現(xiàn)系統(tǒng)交互功能,通過在ARM上移植Linux系統(tǒng),并在此基礎上設計GUI交互界面。應用程序主要由Socket網(wǎng)絡通信和觸摸屏控制程序兩部分組成。網(wǎng)絡通信主要完成接收DSP系統(tǒng)發(fā)送過來的實時視頻圖像以及牌照識別結果,同時也實現(xiàn)給DSP系統(tǒng)發(fā)送車牌圖像采集觸發(fā)信號。觸摸屏控制程序主要完成采集觸摸點的坐標,當用戶點擊GUI界面上的控制按鈕時,觸摸屏控制程序會相應地給DSP發(fā)送圖像采集觸發(fā)信號。
本嵌入式車牌識別系統(tǒng)充分利用了DSP強大的數(shù)據(jù)運算處理能力和ARM的控制處理能力,采用DSP+ARM的體系架構,將車牌圖像采集、圖像處理算法、網(wǎng)絡傳輸、實時顯示、觸摸控制等功能模塊集成為一體,提高了系統(tǒng)的穩(wěn)定性、可靠性和靈活性。系統(tǒng)具有良好的人機交互功能,并實現(xiàn)了系統(tǒng)的觸摸控制功能,人機交互界面可以實時顯示系統(tǒng)所采集到的車牌圖像信息,并可以實現(xiàn)對系統(tǒng)的控制和設置。在系統(tǒng)的網(wǎng)絡傳輸過程中,若增加視頻圖像壓縮和解碼功能模塊,還可提高圖像傳輸?shù)乃俣龋纳葡到y(tǒng)的實時性。
參考文獻
[1] 李亞峰.ARM嵌入式Linux設備驅動實例開發(fā)[M].北京:中國電力出版社,2008.
[2] Texas Instruments.TMS320DM642 video/imaging fixed-point digital signal processor[S].2004.
[3] 張龍,李霽野.基于DM642的視頻采集與傳輸系統(tǒng)設計[J].微計算機信息,2011,27(06):61-62.
[4] 陳振學,汪國有,劉成云.一種新的車牌圖像字符分割與識別算法[J].微電子學與計算機,2007,24(2):42-44.
[5] 劉忠杰,宋小波.基于MATLAB的車牌識別系統(tǒng)設計與實現(xiàn)[J].微型機與應用,2011,30(14):37-40.
[6] 何汶靜,黃子強.嵌入式系統(tǒng)的顯卡方案設計[J].電子技術應用,2010,36(02):36-39.