近年來,隨著數(shù)字多媒體業(yè)務(wù)和Internet網(wǎng)絡(luò)的迅速發(fā)展,新型數(shù)字機頂盒可以有效利用我國巨大的有線電視網(wǎng)絡(luò)資源,完成視頻點播、數(shù)字電視的接收及接入Internet等綜合業(yè)務(wù)功能。
1 數(shù)字機頂盒總體設(shè)計方案
數(shù)字機頂盒分為兩個通道,下行通道接收來自電纜或光纖的有線電視信號,上行通道傳輸從客戶端到服務(wù)器端的指令。
下行通道方案如圖1所示,調(diào)諧器接收來自有線網(wǎng)的高頻信號,通過QAM解調(diào)器完成信道解碼,從載波中分離出包含音、視頻和其他數(shù)據(jù)信息的傳送流(TS)。傳送流中一般包含多個音、視頻流及一些數(shù)據(jù)信息。解復(fù)用器則用來區(qū)分不同的節(jié)目,提取相應(yīng)的音、視頻流和數(shù)據(jù)流,送入MPEG一2解碼器和相應(yīng)的解析軟件,完成數(shù)字信息的還原。對于付費電視,條件接收模塊對音、視頻流實施解擾,并采用含有識別用戶和進行記賬功能的智能卡,保證合法用戶正常收看。MPEG一2解碼器完成音、視頻信號的解壓縮,經(jīng)視頻編碼器和音頻D/A變換,還原出模擬音、視頻信號,在常規(guī)彩色電視機上顯示高質(zhì)量圖像,并提供多聲道立體聲節(jié)目。
上行通道方案如圖2所示,用戶發(fā)送指令,然后經(jīng)過編碼符合網(wǎng)絡(luò)通信協(xié)議,從以太網(wǎng)接口傳輸?shù)秸{(diào)制器,再經(jīng)物理信道傳給終端服務(wù)器。
2 LEON2處理器
嵌入式CPU是數(shù)字電視機頂盒的心臟,當(dāng)數(shù)據(jù)完成信道解碼以后,首先要解復(fù)用,把傳輸流分成視頻、音頻,使視頻、音頻和數(shù)據(jù)分離開。CPU是嵌入式操作系統(tǒng)的運行平臺,它要與操作系統(tǒng)一起完成網(wǎng)絡(luò)管理,顯示管理、有條件接收管理、圖文電視解碼、數(shù)據(jù)解碼、視頻信號的上下變換等功能。
LEON系列32位RISC處理器核的第一個版本是LEONl,它是由歐洲航天局主持設(shè)計開發(fā)的。LEONl的設(shè)計初衷是為了使歐洲能夠擺脫在航空航天高性能嵌入式處理器上對美國的嚴(yán)重依賴。以Jiri Caisler為首的設(shè)計團隊在完成LEONl后從歐洲航天局獨立出來,成立了Gaisler Research公司,后來就推出了LE—ON2處理器。LEON2是一個可配置的微處理器核,使用SPARC V8指令集,它的源代碼由可綜合的VHDL代碼構(gòu)成。LEON2內(nèi)部結(jié)構(gòu)如圖3所示。
LEON2的整數(shù)處理單元是5級流水線設(shè)計,采用SPARC V8(IEEE一1754)指令和體系結(jié)構(gòu),具有分離的數(shù)據(jù)Cache和指令Cache。LEON2的整數(shù)單元包括一個可選的16×16的MAC單元,能夠完成基本的DSP運算,同時還提供了浮點運算單元(FPU)的接口和協(xié)處理器(CP)的接口,可以擴展浮點運算和DSP處理。LEON2選用了ARM公司的AMBA 2.0片上總線標(biāo)準(zhǔn),用于連接內(nèi)存控制器、定時器、中斷控制器、UART接口、PCI接口、10/100 Mb/s以太網(wǎng)接口等模塊。LEON2同時還提供1個調(diào)試支持單元和1個調(diào)試串口,用于支持片內(nèi)調(diào)試。LEON2的一個非常重要的特點就是具有很好的可配置性。使用者根據(jù)自己的需要,通過一個用tcl/tk腳本編寫的圖形化界面,對LEON2內(nèi)核的絕大多數(shù)模塊進行配置,比如可以配置Cache的大小和訪問方式,是否支持硬件乘/除法,是否需要內(nèi)存。
Gaisler Research公司還提供了比較完善的基于LEON2的GNU軟件開發(fā)環(huán)境。使用者可以使用TSIM或GRMON進行LEON內(nèi)核的調(diào)試仿真。 LECCS是專門針對LEON的交叉編譯系統(tǒng),可以進行C/C++的編譯和調(diào)試。SnapGear Linux是基于LClinux的實時Linux內(nèi)核,它的LEON版提供了對LEON處理器的全面支持,可以支持MMU和NOM—MU等不同配置方案。
由以上描述可以看出,LEON2具有強大的硬件配置和完備的軟件開發(fā)環(huán)境支持,可以承擔(dān)數(shù)字機頂盒CPU要求的各種信號處理任務(wù)。
[!--empirenews.page--]3 在FPGA開發(fā)板上建立LEON2的SoC平臺
3.1 硬件平臺的建立
圖4就是基于LEON2的平臺的模塊框圖。LE—ON2處理器作為核心部分,片內(nèi)ROM存放Monitor負責(zé)系統(tǒng)初始化和將程序拷貝到片外SRAM內(nèi)的任務(wù),片外RAM是FPGA開發(fā)板上Memory,用來存放程序和數(shù)據(jù)。設(shè)計的IP核通過AHB總線和LEON2相互交互。
FPGA開發(fā)板主要有以下資源:50 MHz有源時鐘;1塊Altera公司的核心FPGA芯片EP2C20F484一C8,邏輯單元18 752個;2片512 KB的IS61LV25616一AL SRAM芯片組成32 b寬共1 MB容量,其中每片設(shè)計為可兼容1 MB,總共最大可擴充到2 MB;JTAG接口(通過JTAG接口可以從PC機上對EP2C20F484C8進行編程);串口與計算機COMl相連,可以用于程序下載。
將配置好的LEON2的VHDL代碼,加入設(shè)計的HDL代碼,一起使用Synplify綜合工具生成FPGA的網(wǎng)表文件;然后使用Quartus進行布局布線,將LEON2核同片內(nèi)ROM和片外SRAM連接,布局布線完成后生成相應(yīng)的SOF文件;通過JTAG端口將SOF文件下載到片子上去,對FPGA硬件進行配置,最后占用FPGA資源是5 800個邏輯單元,可以達到的時鐘頻率最大為46 MHz。
3.2 軟件設(shè)計
由于Quartus軟件可以預(yù)先配置EP2C20F484C8片上ROM,所以可以在LEON2的片上ROM預(yù)先配置好的1 KB大小的Monitor軟件。Monitor的主要作用是在LEON2系統(tǒng)reset初始化時首先對處理器初始化,對LEON2的存儲配置寄存器進行配置;然后向UART口發(fā)送啟動信息;等待UART信息。當(dāng)軟件部分使用交叉編譯器LECCS在PC上編譯完畢后,PC機通過UART口和FPGA開發(fā)板相互通信,就可以將編譯好的srec文件下載到:FPGA開發(fā)板上,放置在片內(nèi)ROM里面的Monitor程序就讀入程序的內(nèi)容以及程序的起始地址。開始Monitor將srec程序拷貝到SRAM程序區(qū),等全部程序下載好以后,Monitor最后1條程序就會自動跳轉(zhuǎn)到程序的起始位置,執(zhí)行SRAM里的程序。這樣就可以反復(fù)修改程序,反復(fù)下載程序,便于軟件的開發(fā)和調(diào)試。
4 結(jié)語
通過將片上系統(tǒng)映射到FPGA,這樣可以在接近運行速度的前提下,驗證硬件和軟件。這樣不僅為軟件部分能盡早地進行開發(fā)與調(diào)試工作提供了原型,同時也可以在實際運行中發(fā)現(xiàn)一些在系統(tǒng)設(shè)計中沒有注意的地方。最終可以縮短設(shè)計周期,同時為ASIC設(shè)計一次成功提供了更大的把握。
在FPGA開發(fā)板上建立基于LEON2處理器的SoC平臺后,使用這個原型系統(tǒng),就可以很容易驗證系統(tǒng)的性能,并且加速軟件開發(fā)調(diào)試流程。