張禹,錢宏文,王毅
(中國電子科技集團(tuán)公司第五十八研究所,江蘇 無錫 214072)
隨著社會經(jīng)濟(jì)的快速發(fā)展,數(shù)字圖像處理的應(yīng)用愈來愈廣泛,現(xiàn)在在安防監(jiān)控、工業(yè)現(xiàn)場、汽車電子等領(lǐng)域數(shù)字圖像處理的要求進(jìn)一步提升。圖像處理系統(tǒng)一般由視頻采集、視頻處理、視頻傳輸、視頻顯示、視頻記錄五部分組成[1]。目前主流的監(jiān)控相機(jī)接口有SDI[2]、S-Video、MIPI、DVP、網(wǎng)口等,其中MPI 與DVP 不適合長距離傳輸應(yīng)用場景;SDI 是利用同軸電纜來傳輸非壓縮的數(shù)字視頻信號,S-Video 是一種五芯接口,由兩路視亮度信號、兩路視頻色度信號和一路公共屏蔽地線共五條芯線傳輸視頻信號,這兩種制式信號理論上可以長距離傳輸,但是線纜成本及長距離傳輸線纜上的損耗永遠(yuǎn)是個(gè)難以均衡的因素。至此網(wǎng)絡(luò)攝像頭就脫穎而出,可以長距離傳輸有能保障信號質(zhì)量,對高視頻分辨率的要求僅受限于網(wǎng)絡(luò)傳輸帶寬。通過高壓縮率的編碼技術(shù),可以解決實(shí)現(xiàn)高分辨率全景視頻的網(wǎng)絡(luò)傳輸。其次現(xiàn)有的NVR、DVR 設(shè)備或圖像處理系統(tǒng),要么僅在編解碼或處理方向功能出色,要么系統(tǒng)體積龐大、移動不便、安裝困難[3]。
基于以上背景和需求,本文設(shè)計(jì)開發(fā)了一種基于基于海思芯片的網(wǎng)絡(luò)監(jiān)控圖像處理平臺,解決當(dāng)前所面臨的一系列問題,對于推動圖像處理系統(tǒng)的發(fā)展具有重大的意義。
本設(shè)計(jì)中主板電路采用雙CPU 硬件架構(gòu),其中主CPU 選用海思HI3559AV100。HI3559AV100 是專業(yè)的8K Ultra HD Mobile Camera SoC,它提供了8K30/4K120 廣播級圖像質(zhì)量的數(shù)字視頻錄制,支持多路Sensor 輸入,支持H.265 編碼輸出或影視級的RAW 數(shù)據(jù)輸出,并集成高性能ISP 圖像處理功能[4],在圖像處理方面有獨(dú)立的DSP 和GPU,支持OpenGL 和OpenCL,提供了卓越的圖像處理能力,集成了雙核A73 和雙核A53,大小核架構(gòu)和雙操作系統(tǒng),同時(shí)支持DDR4/LPDDR4,且有SATA3.0、USB2.0/3.0、PCIE2.0、RGMII、UART、I2C、SPI 等豐富的外設(shè)接口。
協(xié)處理CPU 選用海思HI3531DV200。海思HI3531-DV200 是針對多路高清/超高清(1080P)DVR 產(chǎn)品應(yīng)用開發(fā)的新一代專業(yè)SoC 芯片。海思HI3531DV200 集成了ARM A53 四核處理器和性能強(qiáng)大的神經(jīng)網(wǎng)絡(luò)推理引擎,支持多種智能算法應(yīng)用[5],同時(shí)支持DDR4/DDR3,且有SATA3.0、USB2.0/3.0、PCIE2.0、RGMII、UART、I2C、SPI等豐富接口。
兩個(gè)CPU 通過PCIE 進(jìn)行級聯(lián),主CPU 可完成目標(biāo)識別、環(huán)視拼接、神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)等圖像處理能力,協(xié)處理CPU 可專注于流媒體存儲/轉(zhuǎn)發(fā)及回放。兩個(gè)CPU 協(xié)同工作,完成視頻信號采集、視頻信號處理、通信、存儲、視頻輸出等功能。
系統(tǒng)主要由信號處理板模塊和網(wǎng)絡(luò)IPC 模塊兩部分組成(如圖1 所示),信號處理模塊主要完成視頻信號采集、視頻信號處理、通信、存儲、視頻輸出功能;IPC 模塊主要完成多路網(wǎng)絡(luò)接口的擴(kuò)展,通過網(wǎng)絡(luò)對視頻進(jìn)行傳輸和顯示[6]。兩個(gè)模塊可獨(dú)立工作,當(dāng)兩個(gè)模塊協(xié)同工作時(shí)可完成最多16 路網(wǎng)絡(luò)視頻的同時(shí)采集。
圖2 是系統(tǒng)框圖,包括HI3559、HI3531 基本系統(tǒng)、網(wǎng)絡(luò)接口、高清輸出接口、音頻codec 接口、串口、SATA 等。
CPU 采用外掛SPI NOR Flash 來實(shí)現(xiàn)BIOS 的引導(dǎo),同時(shí)對外引出串口、網(wǎng)絡(luò)接口、HDMI 顯示接口、SATA存儲接口,CPU 和CPU 之間通過PCIE 總線來進(jìn)行數(shù)據(jù)交互。
HI3559AV100 處理器內(nèi)部集成有DDRC(DDR SDRAM Controller)實(shí)現(xiàn)對動態(tài)存儲器DDR4/LPDDR4 SDRAM 的存取控制。DDRC 支持DDR4/LPDDR4 SDRAM 總線最高工作頻率為1 333 MHz,即數(shù)據(jù)速率為2.666 Gb/s??芍С肿畲蟠鎯臻g為8 GB,支持DDR4/LPDDR4 SDRAM 的Power Down、Self Refresh等低功耗模式。DDR4 SDRAM支持burst8 傳輸模式,LPDDR4 SDRAM 支持burst16 傳輸模式,支持INCR 和WRAP 命令,不支持FIXED。
HI3531DV200 處理器內(nèi)部集成有DDRC(DDR SDRAM Controller)實(shí)現(xiàn)對動態(tài)存儲器DDR3/DDR4 SDRAM 的存取控制。DDRC 的功能特點(diǎn):支持最大存儲空間為8 GB。僅支持小端存儲模式。支持DDR3 SDRAM 接口最高工作頻率為1 066 MHz,即數(shù)據(jù)速率為2.13 Gb/s。支持DDR4 SDRAM 接口最高工作頻率為1 200 MHz,即數(shù)據(jù)速率為2.4 Gb/s。支持DDR3/DDR4 SDRAM 的Power Down 低功耗模式。支持雙通道設(shè)計(jì)選用4 片的MT40A512M16JY實(shí)現(xiàn)總?cè)萘? GB 的內(nèi)存擴(kuò)展。該芯片具有16 根數(shù)據(jù)線和15 根地址線,選用標(biāo)準(zhǔn)DDR4 電源供電和上電時(shí)序要求。
HI3559AV100 及HI3531DV200 均支持2個(gè)GMAC模塊,千兆以太網(wǎng)模塊實(shí)現(xiàn)網(wǎng)絡(luò)接口數(shù)據(jù)的接收和發(fā)送,支持10/100/1000 Mb/s 自適應(yīng)的工作模式,支持全雙工、半雙工的工作模式,可實(shí)現(xiàn)和CPU 端口間的數(shù)據(jù)通信和交互。以太網(wǎng)口設(shè)計(jì)框圖如圖3 所示。
網(wǎng)口設(shè)計(jì)是本設(shè)計(jì)核心接口,其他HI3559AV100 的兩個(gè)MAC,一個(gè)用于TELNET 調(diào)試,一個(gè)接二級交換機(jī)擴(kuò)展,上下行均1 000 Mb/s 帶寬,可實(shí)現(xiàn)多路網(wǎng)絡(luò)攝像頭視頻流采集,在特殊場景下,兩個(gè)MAC 均可進(jìn)行二級交換機(jī)擴(kuò)展,在此需要針對網(wǎng)絡(luò)攝像頭數(shù)據(jù)帶寬具體核算系統(tǒng)采樣帶寬是否滿足要求,本系統(tǒng)網(wǎng)絡(luò)攝像頭帶寬為4 MB/s,前端采用H.265 進(jìn)行壓縮,H.265 編碼在傳輸相同質(zhì)量視頻情況下能夠大約節(jié)省一半帶寬[7]。
HI3531DV200 的兩個(gè)MAC,一個(gè)用于RTSP 流媒體轉(zhuǎn)發(fā)、網(wǎng)絡(luò)視頻的點(diǎn)播、異地讀取等功能,RTSP 是一種網(wǎng)絡(luò)遠(yuǎn)程視頻播放協(xié)議,可以使用戶遠(yuǎn)程觀看并控制網(wǎng)絡(luò)視頻[8]。另一個(gè)網(wǎng)絡(luò)接口作為調(diào)試。
海思HI3559AV100 和HI3531DV200 處理器支持eMMC、UFS、SPI NOR Flash、SPI NAND Flash、NAND、PCIE五種系統(tǒng)啟動輸入方式,本設(shè)計(jì)選用SPI NOR Flash 啟動方式海思處理器集成的SPI 控制器實(shí)現(xiàn)數(shù)據(jù)的串并、并串轉(zhuǎn)換,可以作為Master 與外部設(shè)備進(jìn)行同步串行通信。支持MOTOROLA的SPI、TI串行同步、MicroWire三種外設(shè)接口協(xié)議。SPI 接口設(shè)計(jì)選用MX25U25635F 用于U-Boot存放和系統(tǒng)啟動。系統(tǒng)啟動部分的硬件設(shè)計(jì)框圖如圖4所示。
HI3531DV200 支持4 個(gè)SATA 接口,支持NCQ(Native Command Queuing)、熱拔插、PM(Port Multiplier)、FBS(Frame information structure-Based Switching)、eSATA(externalSATA)、電源管理等特性;支持SATA3.0 和AHCI1.3 協(xié)議,向下兼容SATA2.6 和AHCI1.2 協(xié)議;支持PIO、Legacy DMA、NCQ 操作;支持電源管理特性。支持PM 和FBS 特性。支持4 個(gè)SATA 接口;支 持1.5 Gb/s、3.0 Gb/s 和6.0 Gb/s速率的自動協(xié)商;支持錯(cuò)誤中斷上報(bào)機(jī)制,SATA 協(xié)議采用差分線進(jìn)行信號傳輸,具備更好的抗干擾性能[9]。設(shè)計(jì)選用HT10MCNNNN-1TB 實(shí)現(xiàn)SATA 存儲功能。
HI3559AV100 及HI3531DV200 中PCIExpress 控制器,支持一個(gè)PCIExpress Gen2X2 控制器,支持RC 模式,支持EP 模式,支持DMA 功能,支持INTx 中斷機(jī)制。支持MSI 中斷機(jī)制。其中將HI3559AV100 作為根節(jié)點(diǎn)(RC)設(shè)備,另一塊做端點(diǎn)設(shè)備(EP),RC 設(shè)備作為系統(tǒng)的CPU 通過枚舉過程配置這個(gè)系統(tǒng),包括自身EP 設(shè)備。枚舉結(jié)束之后,通過HI3559AV100 向HI3531DV200 發(fā)送需要存儲的視頻流。
CPU 系統(tǒng)時(shí)鐘通過芯片內(nèi)部的反饋電路與外部的24 MHz晶體振蕩電路一起構(gòu)成系統(tǒng)時(shí)鐘,按照官方推薦選擇選用4 pin 貼片晶振,其中2 個(gè)GND管腳與單板地充分連接,增強(qiáng)系統(tǒng)時(shí)鐘抗干擾能力。其他的走線遠(yuǎn)離晶振區(qū)域,防止對系統(tǒng)造成干擾。
另外,海思內(nèi)置RTC,當(dāng)需要開關(guān)機(jī)實(shí)時(shí)顯示時(shí)間數(shù)據(jù)時(shí),單板需要給RTC 提供時(shí)鐘電路RTC 晶體選型的約束:晶體內(nèi)阻不超過70 kΩ;晶體的最大功耗(DL)為0.5 μW。
EEPROM 是帶電可擦可編程只讀存儲器,是一種掉電后數(shù)據(jù)不丟失的存儲芯片,因此能夠有效地存放一些關(guān)鍵的監(jiān)控信息和系統(tǒng)的溫度數(shù)據(jù)等。EEPROM 設(shè)計(jì)選用AiP25C256,其容量為256 Kb,存儲器的結(jié)構(gòu)為32 768×8 bit,內(nèi)部分為512頁,每頁64 B,采用I2C 接口,廣泛應(yīng)用于低功耗、低電壓系統(tǒng)。
海思HI3559AV100 及HI3531DV200 處理器主SoC 子系統(tǒng)提供5 個(gè)UART 單元,該控制器兼容國際工業(yè)標(biāo)準(zhǔn)半導(dǎo)體設(shè)備16550A,通過APB 總線與總線橋通信。其他UART0 主要用于調(diào)試。
RS422 收發(fā)器芯片使用ADUM2582E,電平轉(zhuǎn)換芯片選用TXS0108EPWR 來實(shí)現(xiàn)3.3 V 對1.8 V 的電平轉(zhuǎn)換。RS422 接口的硬件設(shè)計(jì)框圖如圖7 所示。
該系統(tǒng)的電源包括5 V、3.3 V、2.5 V、1.8 V、1.5 V、1.2 V、1.0 V、0.9 V、0.8V等多路,0.8V、0.9V分別為HI3559AV100、HI3531DV200的核供電,1.2 V 為DDR 控制器和DDR4 供電,1.8 V 為Flash、HI3559AV100 PHY 供電,5V為視頻Buffe及SATA盤供電,3.3V為HI3531-DV200 IO 及外 設(shè)供電,2.5 V 為HI3531DV200 PHY 供電。電源部分有上電順序控制,滿足海思CPU 對各部分上電順序要求。
軟件運(yùn)行于控制板,由系統(tǒng)引導(dǎo)軟件、操作系統(tǒng)軟件和驅(qū)動接口軟件組成,各軟件功能如下。
系統(tǒng)引導(dǎo)軟件是控制板上電后首先加載的一段程序軟件,該軟件負(fù)責(zé)對控制板主處理器,即處理器資源進(jìn)行初始化,包括初始化中斷、內(nèi)存、串口、GPIO、以太網(wǎng)以及啟動TFTP 服務(wù)、調(diào)試等功能。本項(xiàng)目的系統(tǒng)引導(dǎo)軟件選用UBOOT 軟件。UBOOT 是一個(gè)兼有BIOS 和BOOTLOADER 部分功能的軟件代碼,多用于嵌入式系統(tǒng),其支持ubifs、ext2、exte3 和ext4 等文件系統(tǒng),支持網(wǎng)絡(luò)、PCIE、EMMC、Nor/Nand Flash 引導(dǎo)。系統(tǒng)引導(dǎo)軟件主要用于引導(dǎo)以及升級操作系統(tǒng)軟件,并與其他軟件相互獨(dú)立,與用戶上層應(yīng)用不對接,用戶所需功能均在操作系統(tǒng)軟件和驅(qū)動接口軟件代碼中實(shí)現(xiàn)。
操作系統(tǒng)軟件是系統(tǒng)運(yùn)行的基礎(chǔ),該軟件提供應(yīng)用所需的進(jìn)程管理、內(nèi)存管理、文件系統(tǒng)、網(wǎng)絡(luò)通信、安全機(jī)制、驅(qū)動程序等基礎(chǔ)功能,為實(shí)現(xiàn)系統(tǒng)控制、數(shù)據(jù)通信提供可能。
操作系統(tǒng)軟件采用Linux 操作系統(tǒng),Linux 系統(tǒng)由于具有內(nèi)核源碼開放、免費(fèi)使用、可移植性高、跨平臺支持性好、易于裁剪等特點(diǎn),被廣泛應(yīng)用于嵌入式領(lǐng)域。
系統(tǒng)完成引導(dǎo)系統(tǒng)并加載用戶程序后,其軟件總體架構(gòu)如圖9 所示。
利用本次設(shè)計(jì)開發(fā)的平臺進(jìn)行測試和驗(yàn)證、板卡通過對接16 路的網(wǎng)絡(luò)攝像頭,可以完成最多16 路不同1080P 的網(wǎng)絡(luò)攝像頭數(shù)據(jù)的獲取,板卡通過拼接和裁剪處理后,發(fā)送至HDMI 高清視頻輸出接口進(jìn)行顯示。系統(tǒng)設(shè)計(jì)開發(fā)平臺如圖10 所示,視頻處理完成后多路視頻測試顯示圖如圖11 所示,通過測試完成了該平臺的設(shè)計(jì)開發(fā)和驗(yàn)證。
本文設(shè)計(jì)研發(fā)的基于海思芯片的網(wǎng)絡(luò)監(jiān)控圖像處理平臺,通過實(shí)際樣機(jī)驗(yàn)證,可實(shí)現(xiàn)對高清IPC 和DVR 視頻流解碼,視頻流存儲。同時(shí)實(shí)現(xiàn)了圖形裁剪,OpenCL圖層疊加、環(huán)視拼接、流媒體點(diǎn)播等功能,圖像清晰流暢,運(yùn)行穩(wěn)定,成本低廉,達(dá)到預(yù)期設(shè)計(jì)目標(biāo)。系統(tǒng)具有操作簡單方便、成本低、適用性廣的優(yōu)點(diǎn),具有較高的推廣和應(yīng)用價(jià)值。