1 系統組成與工作原理
網絡視頻服務器系統的組成框圖如圖1所示。網絡傳輸模塊以MPC860T嵌入式處理器為核心處理器,完成網絡傳輸和視頻信號的實時控制功能,并采用嵌入式操作系統VxWorks作為系統的軟件平臺。視頻編碼模塊主要由視頻采集芯片和視頻壓縮芯片構成,完成信號的采集、A/D變換及壓縮。CODEC選用韓國Pentamicro公司的專用音視頻壓縮芯片AT2042。TI公司的視頻解碼器TVP5150為視頻采集芯片。系統初始化之后,PAL格式的模擬視頻信號由TVP5150轉換為ITU-R 656標準的數字視頻信號,再通過數據總線進入AT2042。AT2042對數字圖像信號以MPEG-4標準進行壓縮編碼,MPC860T將壓縮編碼后的數據流封裝成IP包,通過10/100Mbps以太網接口送入Internet。

圖1 系統框圖 圖2 AT2042與CPU的通信機制
2 視頻編碼模塊
視頻編碼模塊的核心是Pentamicro公司生產的AT2042,它是一個內置微控制器ARM946E的雙通道音視頻編解碼芯片,可支持MPEG-4/2/1和JPEG標準的視頻壓縮編碼,具有畫面縮放、顏色數據格式變換、噪聲抑制濾波等功能。AT2042能直接與IBM、Motorola、ARM、Xscale和Axis等多種CPU接口,無需其它附加電路。MPC860T對AT2042的控制和訪問可通過AT2042的狀態寄存器和命令寄存器以及四個輸入輸出隊列:發送/接收隊列,復用/解復用隊列。AT2042與CPU的通信機制如圖2所示
AT2042與CPU的通信實現情況如下:CPU通過命令寄存器來控制內置微控制器ARM946E的操作狀態;通過狀態寄存器來檢查AT2042內部各個FIFO的操作狀態;通過接收隊列給AT2042發送各種配置參數,以及所有內置微控制器ARM946E所需要的相關參數;通過復用隊列將壓縮編碼后的比特流讀出;通過解復用隊列將需解碼的比特流寫入AT2042;AT2042通過發送隊列向CPU發送自己的各種內部狀態信息及數據[1]。
3網絡傳輸模塊
3.1 MPC860T小系統設計
MPC860T是Motorola公司的高性能的32位PowerPC嵌入式處理器,有三個主要的功能模塊:嵌入式的PowerPC內核、RISC通信處理模塊(CPM)和系統接口單元(SIU)。MPC860有兩個CPU:PowerPC和32位RISC。PowerPC執行高層代碼,RISC處理實際通信的低層功能,2個處理機互相配合工作。這種雙處理器構架,分擔了主CPU的工作量,提高了處理效率,同時降低了芯片功耗,特別適合于各種通信及控制領域的嵌入式應用。MPC860T小系統如圖3所示,包括MPC860T、時鐘電路、復位電路、SDRAM、FLASH、RS232口和BDM口等部分。
3.1.1 電源
電源作為一個系統的能量提供者,在整個系統設計中成為必不可少且至關重要的一個環節。MPC860T的工作電壓為3.3V,需提供一個3.3V/1A的直流穩壓電源給CPU及外圍電路。采用外接電源適配器完成AC 220V到DC 5V的轉換,DC 5V到 DC 3.3V的轉換由高度集成的TI電源模塊TPS75233來完成。
3.1.2 時鐘電路
MPC860時鐘系統為所有片上或片外設備提供不同的時鐘。MPC86OT一共有兩個參考時鐘源,一個是其工作頻率的晶振,連接EXTCLK腳,一個是32KHz的晶體,連接EXTAL和XTAL腳。設計中,兩個外部時鐘源都用到了。EXTCLK外接一個5MHz的晶體振蕩器作為SPLL的參考時鐘源,在EXTAL和XTAL之間接一個32.768KHz的晶體作為實時時鐘的參考時鐘源。系統啟動初始化完成進入穩定的工作狀態時,通過配置PLPRCR使得倍頻因子MF=10,即MPC860T的正常工作頻率是50MHz。
3.1.3 復位模塊
MPC860T包括上電復位、外部硬復位、內部硬復位、JTAG 復位、外部軟復位和內部軟復位。復位電路采用MAX811T來實現。上電和人工按鍵均可產生復位信號,其中/RESET端口接MPC860T的/PORESET,由/RESET產生復位信號復位處理器。由SN74LVTH125芯片組成的電路提供/HRESET和/SRESET復位功能。手動按下按鍵連接芯片/OE控制三態門的輸出使能時,低電平輸出到/HRESET或/SRESET,MPC860T響應復位動作。正常狀態下,輸出呈現高阻狀態。硬件復位字電路使用一片SN74LVC16244A來實現。
3.1.4 存儲系統設計
MPC860T的存儲控制器多可以控制8個存儲體或外圍設備,支持GPCM (general purpose chip select machine)和UPM(User programmable machines)兩種方式,可提供與SRAM,EPROM,FLASH,DRAM,SDRAM等設備的無縫連接。GPCM提供與EPROM,SRAM,FLASH以及其他的外設的無縫連接,UPM則常常用于SDRAM以及猝發式SRAM的控制與連接。Flash存儲器是一種電可擦除、可重寫的存儲設備。Bootrom Flash采用512Kbyte的SST39VF040。Bootrom主要作用是引導及初始化CPU,以及引導單板程序。BSP(Board Support Package)就是燒寫在Bootrom里的。MPC860T復位之后自動使/CS0有效,故Bootrom的片選信號為/CS0。程序Flash主要是存放網絡協議、應用程序、配置監控程序。采用4Mbyte的程序Flash,片選信號為/CS1。
考慮存儲容量、功耗等因素,數據存儲器多選高速動態隨機存儲器SDRAM。Micron公司生產的MT48LC4M16A2作為SDRAM芯片,組織形式為1M X 4 bank X 16位,總容量為64Mbit,采用3.3V供電,支持的頻率為133MHz。由于其數據總線為16位,因此系統選用兩片并聯構成32位。SDRAM與MPC860T的連接框圖如圖4所示。
圖4 SDRAM與MPC860T的連接框圖
SDRAM的CLK信號由MPC860T的輸出時鐘CLKOUT驅動,/WE、/RAS和/CAS信號分別由UPMA的GPLA1~GPLA3產生。SDRAM的A10引腳要復用于SDRAM的刷新控制,因而必須與GPLAO相連(由于不方便連線圖中未畫出),因為MPC860T的GPLAO可以通過編程實現控制信號與地址信號的復用。MT48LC4M16A2內部有12條行地址和8條列地址,行地址為高位地址,列地址為低位地址,而外部僅有12條地址信號A0~A11。這就需要對UPM對地址進行復用。MPC860T支持內部地址復用,可以通過UPM的RAM字中的AMX位進行配置,同時將OR寄存器中的SAM位同時進行配置。相關寄存器配置為:BR2=Ox0000081,說明:32位寬,無奇偶校驗,無寫保護,選擇UPMA,基地址00000000;OR2=OxFF000A00,說明:16Mbyte容量,地址復用。
3.2 網絡接口
經壓縮的視頻流由MPC860T封裝成IP包后,通過網絡接口送入Internet。采用MPC860T的FEC(Fast Ethernet Controller)加上物理層芯片以及脈沖變壓器構造一個10/100M以太網接口,由此實現上述功能。FEC提供一個標準的MII接口,MPC860T主要完成MII接口層以上的功能,而MII以下的物理層主要通過專用的物理層芯片實現[2][6]。
4 系統的軟件設計
軟件設計包括:VxWorks操作系統的內核生成和VxWorks下驅動程序與應用程序的開發。VxWorks是美國Wind River System公司推出的嵌入式實時開發環境,它是專門為嵌入式系統設計開發的可裁減、高性能的操作系統。為了發揮VxWorks的功能并設計出可靠、高效的嵌入式系統,還用到Tornado集成開發環境。TornadoII就是Wind River公司推出的為了開發VxWorks應用系統提供的集成開發環境,提供一種有效的方式開發嵌入式實時應用程序,同時對目標機系統的影響做到小[5]。
圖5 軟件結構框圖
本系統中軟件的架構如圖5所示,主要包括:1)硬件底層驅動程序,包括BSP的開發、操作系統的裁剪和移植、文件系統的開發和應用等。設備驅動程序是直接控制設備操作的程序,也是設備上層的一個軟件接口,功能是對I/O進行操作。只要系統訪問設備就會調用驅動,從這一點可以看出,驅動程序不能自動執行,只能被系統或應用程序調用。設備驅動程序通常包含六個主要功能:對設備進行初始化、打開設備操作、關閉設備操作、從設備上接收數據并提交給系統、把數據從主機上發送給設備和對設備進行控制操作。2)應用程序的設計,它包括以下三個模塊:TVP5150的數據采集、視頻編碼、數據的網絡功能。其中TVP5150的數據采集模塊包括對TVP5150初始化,工作參數和反饋狀態信息的設置等。視頻解碼模塊除了完成對AT2042的驅動,還為上層應用提供配置管理接口。網絡功能模塊包括音視頻編碼數據的網絡傳輸和網絡服務功能等子模塊[5]。
結束語
本文作者創新點是采用MCU+CODEC的硬件結構,較其他的采用DSP單芯片的系統,具有系統集成度高,體積小、功耗低、性能穩定等優點。并且,作為MCU的MPC860T內部集成有FEC,使硬件設計更簡單。同時, VxWorks嵌入式操作系統的采用使系統具有很好的實時性。相信網絡視頻服務器在當今網絡時代將有廣闊的應用前景。