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