張忠民,牛功喜
(哈爾濱工程大學(xué)信息與通信工程學(xué)院,黑龍江哈爾濱 150001)
隨著通信與信息技術(shù)的快速發(fā)展和網(wǎng)絡(luò)時代的到來,遠程視頻監(jiān)控技術(shù)逐漸成為多媒體領(lǐng)域研究的焦點。傳統(tǒng)的視覺感知系統(tǒng)存在觀測視角小的局限性,并不能滿足大視場、大視場監(jiān)控的需求。而“全景圖像采集傳輸系統(tǒng)”只用一個攝像機完全可以觀察到視覺系統(tǒng)360°范圍內(nèi)的整個環(huán)境,因此大幅減少了系統(tǒng)設(shè)計難度和復(fù)雜性,并降低系統(tǒng)的成本。網(wǎng)絡(luò)化的遠程接入技術(shù)實現(xiàn)了圖像數(shù)據(jù)的遠程傳輸,監(jiān)控端通過網(wǎng)絡(luò)對服務(wù)器訪問,從而獲得相應(yīng)的全景視頻數(shù)據(jù),最終實現(xiàn)數(shù)據(jù)傳輸與遠程監(jiān)控的目的。
圖像采集的全景平臺由曲面鏡和CCD相機組成。系統(tǒng)的硬件電路由核心板和外設(shè)板構(gòu)成:核心板是由Altera公司Cyclone III系列的FPGA芯片EP3C80F780C6N及外圍電路組成FPGA小系統(tǒng);外設(shè)板由以太網(wǎng)接口電路、電源電路、Camera Link接口電路組成。系統(tǒng)總體框圖如圖1所示。
圖1所示,核心板以FPGA芯片為核心控制器,板上搭載4片SDRAM芯片和一片Altera公司FPGA的專用配置芯片EPCS16。EPCS16用于存儲設(shè)計的配置程序,SDRAM存儲采集到的視頻圖像數(shù)據(jù),在高速采集接口與數(shù)據(jù)存儲的速度匹配上利用片上雙口RAM完成數(shù)據(jù)傳遞。AS、JTAG分別為FPGA芯片的兩種不同配置接口。網(wǎng)絡(luò)傳輸硬件上采用Marvell公司的千兆以太網(wǎng)PHY 88E1111芯片,數(shù)據(jù)傳輸時采用片上FIFO完成數(shù)據(jù)存儲到數(shù)據(jù)封裝與控制單元之間的數(shù)據(jù)傳遞。CCD相機輸出的LVDS信號需要經(jīng)過串并轉(zhuǎn)換,這里采用美國國家半導(dǎo)體公司的DS90CR2881A芯片,轉(zhuǎn)換后的單端TTL信號輸入到FPGA引腳。網(wǎng)絡(luò)芯片控制器、采集與存儲控制模塊用Verilog HDL語言編寫,F(xiàn)lash控制器采用Altera公司提供的IP核。外設(shè)板在FPGA的控制下完成圖像數(shù)據(jù)采集與網(wǎng)絡(luò)傳輸任務(wù)。
圖1 系統(tǒng)總體框圖
Camera Link標(biāo)準(zhǔn)實現(xiàn)工業(yè)相機和圖像采集卡之間的數(shù)據(jù)傳輸,是一種視頻通信應(yīng)用接口,此標(biāo)準(zhǔn)還指定了標(biāo)準(zhǔn)接口器件使信號線標(biāo)準(zhǔn)化。Camera Link技術(shù)的傳輸方案需要較少的傳輸線,5對傳輸線最大可以傳輸28 bit數(shù)據(jù),減小了連接器的尺寸,也使相機的尺寸變得更小。Camera Link由一個收發(fā)器對構(gòu)成,在信號發(fā)送端先對要發(fā)送的28位的數(shù)據(jù)進行并串轉(zhuǎn)換,轉(zhuǎn)化后的數(shù)據(jù)流為4位LVDS信號,另外時鐘信號也同時以LVDS信號傳輸。在接收端通過固定芯片再對這5對LVDS信號數(shù)據(jù)進行解串,轉(zhuǎn)換后的數(shù)據(jù)為一個時鐘信號和28位有效數(shù)據(jù),28位有效數(shù)據(jù)位包括一位保留位、24位數(shù)據(jù)位及幀有效信號和行有效信號各 1 位[1]。
Camera Link一共有8個端口,端口A~H[2]。在初級配置中,A、B和C被分配到一起,連接到同一個驅(qū)動器/接收器對上;在中級配置中,A、B和C分為一組,連接到一個驅(qū)動器/接收器上,D、E和F分配到一組,連接到另一個驅(qū)動器上;在高級配置中A、B、C、D、E、F的分配與初中級配置相同,不同的是G、H被分配到第3個收發(fā)器對上[3]。端口分配如表1所示。
表1 端口分配表
數(shù)據(jù)采集前端為CCD相機,連接器采用Camera Link協(xié)議手冊指定的3 M公司的MDR26。視頻采集與處理硬件設(shè)計的總體框圖如圖2所示。
圖2 視頻采集與處理硬件框圖
CCD相機配置成中級配置方式,所以需要兩個連接器MDR26與兩片DS90CR288A芯片來接收圖像數(shù)據(jù)。圖像數(shù)據(jù)經(jīng)兩片DS90CR288A后轉(zhuǎn)化成32位并行數(shù)據(jù)、行有效信號、幀有效信號、數(shù)據(jù)有效信號、時鐘信號輸入到FPGA。數(shù)據(jù)采集與存儲控制模塊負責(zé)把高速圖像數(shù)據(jù)先緩存到片上RAM中然后再存儲到片外SDRAM中。采集與存儲控制模塊的時鐘由相機輸出的時鐘經(jīng)過DS90CR288轉(zhuǎn)化成的單端時鐘信號提供,由于相機的時鐘與系統(tǒng)時鐘頻率與相位不同,出現(xiàn)一個跨時鐘域的問題,設(shè)計采用 PLL倍頻輸出500 MHz的時鐘對相機時鐘進行采樣,采樣時鐘作為采集存儲控制模塊的時鐘源。
系統(tǒng)的圖像前端采集設(shè)備為CSC12M25BMP19型相機,CSC12M25BMP19有多中工作模式,中等配置模式下輸出有效的125 800 00像素點,幀頻為25 fit·s-1,設(shè)計采用中級配置模式。圖3為相機的行信號輸出時序。
圖3 相機行信號輸出時序圖
在采集與存儲控制模塊中輸入信號Camera_fval、Camera_lval、Camera_dval分別對應(yīng)相機信號 FVAL、LVAL、DVAL,采集控制模塊通過判斷這些信號是否有效來控制數(shù)據(jù)的存儲。當(dāng)Camera_dval有效時WrEN有效同時送出寫地址,數(shù)據(jù)開始寫入過渡存儲器RAM內(nèi),當(dāng)Camera_dval無效時WrEN無效,RAM停止寫數(shù)據(jù)同時讀有效。當(dāng)Camera_lval有效時送出SDRAM的寫地址,一行數(shù)據(jù)輸出結(jié)束后,Camera_lval變?yōu)榈碗娖?,?jīng)過一個時鐘周期后向SDRAM發(fā)出寫指令,將存儲在RAM中的數(shù)據(jù)轉(zhuǎn)存到SDRAM中。Camera_data[0..31]、WrData[0..31]分別為采集和存儲圖像數(shù)據(jù),wr_SAddr[0..23]、WrAddr[0..9]分別為 SDRAM和RAM的地址數(shù)據(jù)。Signal Tap信號分析儀抓取的采集控制模塊的波形如圖4所示。
圖4 采集控制模塊波形圖
圖像數(shù)據(jù)用以太網(wǎng)接口來傳輸,采用Marvell公司的以太網(wǎng)物理層網(wǎng)絡(luò)芯片88E1111。88E1111是千兆網(wǎng)物理層應(yīng)用器件,支持 10BASE-T、100BASE_TX、1000BASE-T應(yīng)用;支持GMII(Gigabit Media Independent Interface)、RGMII(Reduced GMII)、SGMII(Serial Gigabit Media Independent Interface)等多種接口連接方式;自動檢測光纖或銅線模式并支持IEEE 802.3u標(biāo)準(zhǔn)自動協(xié)商模式,能夠?qū)崿F(xiàn)兩個網(wǎng)絡(luò)間通信速度的自動協(xié)商;能夠自動檢測電纜脫落、短路和阻抗不配的情況[4]。FPGA與PHY芯片的連接方式為GMII/MII,采用RJ45實現(xiàn)電纜與PHY芯片的數(shù)據(jù)傳輸,圖像數(shù)據(jù)經(jīng)過88E1111解析后由RJ45接口接入網(wǎng)絡(luò)[5]。網(wǎng)絡(luò)接口硬件電路如圖5所示。
圖5 網(wǎng)絡(luò)接口硬件電路
管腳功能描述如下:GTX_CLK:在GMII模式下由外部提供125 MHz時鐘源,這里由FPGA內(nèi)部PLL提供;TX_EN:傳輸使能信號;TX_ER:傳輸錯誤;TXD[7∶0]:發(fā)送到網(wǎng)絡(luò)接口的數(shù)據(jù);MDC:配置數(shù)據(jù)時鐘;MDIO:配置數(shù)據(jù)接口;RX_ER:接收數(shù)據(jù)出錯;RX_DV:接收數(shù)據(jù)使能;RX_CLK:接收數(shù)據(jù)時鐘;RXD[7∶0]:接收網(wǎng)絡(luò)的數(shù)據(jù)接口;MDI[3∶0]:PHY與RJ45接口。
在數(shù)據(jù)傳輸部分,為了傳輸?shù)膶崟r性與數(shù)據(jù)流的連續(xù)性,先將待發(fā)送的數(shù)據(jù)存儲到FIFO中,封裝控制單元控制從FIFO中讀出數(shù)據(jù),存儲單元是用Quartus的MegaWizard Plug-In生成的2 048字的雙口RAM核和位寬為32位、深度為1 024的FIFO核。當(dāng)進行數(shù)據(jù)傳輸時,控制單元向FIFO發(fā)出讀指令從FIFO讀出數(shù)據(jù)進行校驗和的計算,與此同時向RAM發(fā)出寫指令,把讀出的數(shù)據(jù)依次存儲到RAM指定空間里。當(dāng)讀的數(shù)據(jù)長度與待發(fā)送的數(shù)據(jù)長度相等時FIFO讀指令置為無效,此時校驗和也計算完畢,把計算出的校驗和插入到數(shù)據(jù)包頭的適當(dāng)位置,即RAM的指定地址里,一包數(shù)據(jù)打包完畢,控制單元向RAM發(fā)出寫指令將打包好的數(shù)據(jù)上傳。網(wǎng)絡(luò)芯片控制器程序流程圖如圖6所示。
圖6 網(wǎng)絡(luò)芯片控制器程序流程圖
傳輸?shù)臄?shù)據(jù)需要打包成符合網(wǎng)絡(luò)傳輸協(xié)議標(biāo)準(zhǔn),在包頭處理方面,在生成RAM核時,將包頭文件初始化到RAM中,給校驗和留出16位的空間,計算完畢后再存儲到指定地址中。UDP報封裝過程依次為:偽首部加到UDP報上、校驗和字段填0、所有位劃分為16位字段、所有16位字反碼相加再取反、極端結(jié)果插入到校驗和字段、去偽首部[6]。圖7初始化文件中的前7 Byte為同步碼,第8 Byte為SFD。數(shù)據(jù)封轉(zhuǎn)初始化文件如圖7所示。
圖7 數(shù)據(jù)封裝初始化文件圖
在上位機顯示時,7 Byte的同步碼和1 Byte的SFD不在顯示之列,如圖8所示,數(shù)據(jù)起始位以前為數(shù)據(jù)報頭,數(shù)據(jù)起始位以后為接收到的圖像數(shù)據(jù),報頭依次為:6 Byte的目的地址、6 Byte的源地址、2 Byte的IP報文、4位IP版本號、4位IP頭長度(20 Byte)、1 Byte的DS碼、2 Byte的IP報長、報文標(biāo)識2 Byte、標(biāo)志位3位、分片偏移量13位、生存時間1 Byte、CRC校驗和2 Byte、源IP地址6 Byte、目的 IP地址6 Byte、源端口號2 Byte、目的端口號2 Byte、校驗和2 Byte。發(fā)送的數(shù)據(jù)報為1 282 Byte加UDP報頭8 Byte共1 290 Byte,與UDP報長(05 0a)1 290 Byte相等。UDP報長加上IP頭長度(04)為1 310 Byte,與IP報長(05 1e)相等,證明了發(fā)送數(shù)據(jù)得到了正確的接收,從而證明了底層驅(qū)動程序的正確性。上位機數(shù)據(jù)報接收示意圖如圖8所示。
圖8 上位機數(shù)據(jù)報接收示意圖
系統(tǒng)的工作時鐘為50 MHz,CCD相機在中級配置模式下輸出整個12 580 000有效像素點,幀頻為25 fit·s-1。支持GMII/MII接口方式的網(wǎng)絡(luò)傳輸。上位機接收到的全景圖像如圖9所示。
給出了全景圖像的采集與網(wǎng)絡(luò)傳輸?shù)囊环N設(shè)計和實現(xiàn)方法,只用一臺攝像機即可完成全景圖像的采集。與其它圖像采集接口相比,Camera Link接口具有傳輸速率高、高帶寬、抗干擾、開放性好、不需要復(fù)雜的通信協(xié)議、結(jié)構(gòu)簡單易于實現(xiàn)等諸多優(yōu)點,它可以滿足圖像的實時采集和傳輸要求。同時圖像數(shù)據(jù)可以通過千兆以太網(wǎng)接口遠程傳輸,提高了數(shù)據(jù)的傳輸速率與可靠性。下一步的研究工作是實現(xiàn)系統(tǒng)對網(wǎng)絡(luò)數(shù)據(jù)的接收功能并通過VGA接口顯示。
圖9 上位機接收全景圖像
[1]遲航.基于Camera Link接口的圖像采集系統(tǒng)[J].科技創(chuàng)新導(dǎo)報,2011(3):31.
[2]羅輝舞,洪海麗,基于Camera Link接口的圖像采集控制器的設(shè)計與實現(xiàn)[J].電子測量技術(shù),2010,33(7):23-26.
[3]National Semiconductor.Specifications of the Camera Link Interface Standard for Digital Cameras and Frame Grabbers[M].American:National Semiconductor,2000.
[4]Marvel1.88E1111 data sheet integrated 10/100/1000 ultra gigabit ethernet transceiver[M].American:Marvell,2004.
[5]朱晴,吳寧,顧薛平.基于 FPGA的千兆網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)設(shè)計與實現(xiàn)[J].微型機與應(yīng)用,2011,30(21):53-55.
[6]郭曉宇.基于IEEE802.3標(biāo)準(zhǔn)的以太網(wǎng)數(shù)據(jù)幀格式的封裝實現(xiàn)[D].北京:北京交通大學(xué),2008.