1 引言
隨著科學(xué)技術(shù)的發(fā)展,嵌入式處理器在通信設(shè)備、消費(fèi)電子、軍用電子等領(lǐng)域有了廣泛的應(yīng)用,而且對(duì)處理器的處理速度、功耗及工作溫度都有了更加嚴(yán)格的要求,尤其在汽車電子、軍用電子等方面的應(yīng)用。
PowerPC 體系結(jié)構(gòu)是一種精簡(jiǎn)指令集計(jì)算機(jī)(Reduced Instruction Set Computer,RISC)體系結(jié)構(gòu),具有高性能和低功耗的特點(diǎn),主要應(yīng)用在嵌入式系統(tǒng)中,可以作為單板計(jì)算機(jī),進(jìn)行高性能計(jì)算和圖像處理。
在PowerPC 家族中,現(xiàn)在應(yīng)用最為廣泛的是G4 系列, G4 對(duì)G3 的重大改進(jìn)有兩個(gè),第一是支持對(duì)稱多處理器(SMP)結(jié)構(gòu),第二是G4 引入了一流的AltiVec 技術(shù)來處理矢量運(yùn)算。
AltiVec 技術(shù)是一個(gè)128 位的SIMD 矢量處理引擎,據(jù)Motorala *估可以使性能提升到原來的4.3 倍。
本文以PowerPC G4 主機(jī)處理器為例,介紹標(biāo)準(zhǔn)6U 高度CompactPCI 單板計(jì)算機(jī)的硬件設(shè)計(jì)以及實(shí)時(shí)操作系統(tǒng)VxWorks 的BSP 開發(fā)過程。
2 單板計(jì)算機(jī)硬件開發(fā)
單板計(jì)算機(jī)的整體框圖如圖1 所示。
整個(gè)單板的設(shè)計(jì)分為三個(gè)部分:電源模塊,PowerPC 部分和通信接口部分。其中PowerPC 部分和外圍接口以PCI 總線為分界線,PowerPC 部分包括PowerPC、host bridge、SDRAM 和FLASH。
外圍接口包括網(wǎng)口、串口、通過PCI 總線擴(kuò)展的接口和擴(kuò)展的二級(jí)PCI 總線。網(wǎng)口和串口在開發(fā)階段用于單板和開發(fā)主機(jī)通信,并能在單板嵌入操作系統(tǒng)后作為多個(gè)單板之間的通信接口??驁D中PowerPC 沒有指定具體的型號(hào),可以選擇IBM 的如PPC750, 也可以選擇Freescale的如PowerPC G4 系列的MPC74XX,host bridge 可以選擇MARVELL 公司的MV64360 或MV*60。用戶可以根據(jù)的不同需要選擇相應(yīng)的組合。
2.1 電源模塊的設(shè)計(jì)
電源是任何一個(gè)電路系統(tǒng)至關(guān)重要的部分,所有的信號(hào)傳輸都是基于準(zhǔn)確而穩(wěn)定的電源基礎(chǔ)上的。CPCI 連接器提供的電源有5V、3.3V、12V 和-12V,整個(gè)單板上需要的電源有多種:主電源5V、PowerPC 的內(nèi)核電源、host bridge 內(nèi)核電源、DDR SDRAM 電源和其余I/O總線電源3.3V。對(duì)電流需求大,電源穩(wěn)定性要求高的,應(yīng)采用可編程的DC/DC 控制芯片完成電源的轉(zhuǎn)換。
電源模塊的PCB 布板也要進(jìn)行小心處理, 主要有以下幾個(gè)方面需要注意。
a) 放置去藕電容:隨著一定數(shù)量的去藕電容被放置在板上,電路板本身特有的諧振可以被抑制掉,從而減少噪聲的產(chǎn)生,還可以降低電路板邊緣輻射以緩解電磁兼容問題。為了提高電源供電系統(tǒng)的可靠性和降低系統(tǒng)的制造成本,應(yīng)考慮如何經(jīng)濟(jì)有效地選擇去藕電容的系統(tǒng)布局。
b) 降低電源供電系統(tǒng)的阻抗:一個(gè)低阻的電源供電系統(tǒng)(從直流到交流)是獲得低電壓波動(dòng)的關(guān)鍵:減少電感作用,增加電容作用,消除或降低那些諧振峰是設(shè)計(jì)目標(biāo)。為達(dá)到此目標(biāo)應(yīng)降低電源和地板層之間的間距; 增大平板的尺寸;提高填充介質(zhì)的介電常數(shù);采用多對(duì)電源和地板層。
2.2 PowerPC 部分
PowerPC 部分包含PowerPC1&2,host bridge,DDR SDRAM,SRAM 和Flash。此部分是整個(gè)單板計(jì)算機(jī)的核心,電路設(shè)計(jì)調(diào)試難度也最大PowerPC1&2 和DDR SDRAM 部分速度較快,電路設(shè)計(jì)要注意PCB 布線選擇合適的拓?fù)浣Y(jié)構(gòu)和布線策略, 以保證信號(hào)完整性。
a) 拓?fù)浣Y(jié)構(gòu)的靈活應(yīng)用
在 PCB 設(shè)計(jì)中常用的拓?fù)浣Y(jié)構(gòu)有菊花鏈拓?fù)浜托切瓮負(fù)?。要根?jù)不同的情況采用不同的拓?fù)浣Y(jié)構(gòu)。
一般而言,對(duì)于多負(fù)載的總線系統(tǒng)常采用菊花鏈拓?fù)洌⒃谧钸h(yuǎn)端的負(fù)載處進(jìn)行適當(dāng)?shù)慕K結(jié)。菊花鏈拓?fù)涞膬?yōu)勢(shì)在于易于進(jìn)行阻抗控制,端接簡(jiǎn)單,網(wǎng)絡(luò)的布線長(zhǎng)度短,布線較為方便,只要各個(gè)接收器在接收信號(hào)時(shí)間上的差別在允許的范圍內(nèi)就可以采用菊花鏈拓?fù)溥M(jìn)行布線(這也說明菊花鏈拓?fù)洳贿m用于高速系統(tǒng)),注意要讓菊花鏈的分支線盡量短。Local bus 上的外設(shè)我們是用的此種拓?fù)浣Y(jié)構(gòu),local bus 上有Flash、DDR SRAM、SRAM 等外設(shè)。
星形拓?fù)湟话阍跁r(shí)鐘網(wǎng)絡(luò)或?qū)π盘?hào)同步要求高的網(wǎng)絡(luò)中應(yīng)用,其共同點(diǎn)就是要求各接收器在同一時(shí)刻收到驅(qū)動(dòng)端發(fā)來的信號(hào),星形拓?fù)涞牟季€難度比菊花鏈拓?fù)涞囊螅加每臻g也大。實(shí)際的星形拓?fù)鋾?huì)存在端接傳輸線分支,驅(qū)動(dòng)器與公共節(jié)點(diǎn)間存在傳輸線分支,這些都會(huì)劣化信號(hào),所以在設(shè)計(jì)星形拓?fù)湟话阈枰抡?,以保證信號(hào)的完整性。
PowerPC1&2(U1、U2)和host bridge(U3)采用星形拓?fù)浣Y(jié)構(gòu),其后仿真圖形如圖2 所示,基本滿足信號(hào)完整性。時(shí)鐘電路采用星形拓?fù)浣Y(jié)構(gòu),一個(gè)晶振作為host bridge的輸入基準(zhǔn)時(shí)鐘,其余時(shí)鐘都由host bridge 來提供。另外 PLL 要選擇合適的參數(shù)配置,使得芯片和電路穩(wěn)定運(yùn)行。
b) 嚴(yán)格的等長(zhǎng)布線要求
在SDRAM 設(shè)計(jì)時(shí),要注意調(diào)整管腳SDRAM_SYNC_OUT 和SDRAM_SYNC_IN 之間的布線長(zhǎng)度,使得SDRAM 數(shù)據(jù)相對(duì)時(shí)鐘的建立時(shí)間和保持時(shí)間得到很好的滿足。PCI 部分的時(shí)鐘要注意管腳PCI_SYNC_OUT 和PCI_SYNC_IN 之間的布線長(zhǎng)度和PCI_CLK 相同。
2.3 通信接口部分:
通信接口實(shí)現(xiàn)人-機(jī)、機(jī)-機(jī)之間的信息交互和數(shù)據(jù)的傳輸,無論是在系統(tǒng)調(diào)試,還是在系統(tǒng)應(yīng)用中都非常重要。如圖1 所示,host bridge 集成了兩個(gè)串口和3 個(gè)千兆網(wǎng)控制器,通過外接串口和網(wǎng)口的收發(fā)器設(shè)計(jì)用戶所需的通訊接口。
串口和網(wǎng)口在開發(fā)過程中起著重要的作用。利用串口,通過超級(jí)終端或其它終端軟件,可以看到調(diào)試過程中的打印的信息,以幫助調(diào)試;利用網(wǎng)口,可以通過網(wǎng)絡(luò)下載文件或者掛載文件系統(tǒng)。
此外,host bridge 提供兩組PCI 總線,可以通過PCI 擴(kuò)展一些外設(shè)接口如IDE、USB、網(wǎng)絡(luò)等,可以根據(jù)需要進(jìn)行相應(yīng)的擴(kuò)展。同時(shí)可以擴(kuò)展出PMC 接口,連接標(biāo)準(zhǔn)的PMC 設(shè)備。另外,選擇一組PCI 總線,通過PCI to PCI bridge 將其引到J1 和J2,可以與外設(shè)板相連,便于系統(tǒng)的擴(kuò)展,或者在對(duì)系統(tǒng)運(yùn)算處理能力要求較高而希望功耗在比較理想范圍內(nèi)的高端應(yīng)用場(chǎng)合,可以讓兩個(gè)或者兩個(gè)以上的處理器以多處理器的方式協(xié)同工作,組成不同的多機(jī)系統(tǒng)。
3 VxWorks BSP 開發(fā)
嵌入式系統(tǒng)的開發(fā),需要在硬件設(shè)計(jì)完成后嵌入操作系統(tǒng)才能進(jìn)行上層程序的開發(fā)。VxWorks 是美國(guó)風(fēng)河公司推出的一個(gè)實(shí)時(shí)操作系統(tǒng),它是專門為實(shí)時(shí)嵌入式系統(tǒng)設(shè)計(jì)開發(fā)的操作系統(tǒng)內(nèi)核,它強(qiáng)大而且比較復(fù)雜的操作系統(tǒng),包括了進(jìn)程管理,存儲(chǔ)管理,設(shè)備管理,文件系統(tǒng)管理,網(wǎng)絡(luò)協(xié)議及系統(tǒng)應(yīng)用等幾個(gè)部分,但只占用了很小的存儲(chǔ)空間,并可高度裁減,保證了系統(tǒng)能以較高的效率運(yùn)行。在系統(tǒng)開發(fā)過程中一項(xiàng)重要的工作內(nèi)容是開發(fā)板級(jí)支持包BSP(Board Support Package)。
3.1 BSP 的概述
BSP 由頭文件、源文件、makefile 文件和派生文件組成。它集成了與硬件相關(guān)的軟件和部分硬件無關(guān)的軟件,提供VxWorks 訪問硬件的驅(qū)動(dòng)程序和相關(guān)設(shè)備的初始化操作,能對(duì)CPU、目標(biāo)機(jī)和系統(tǒng)資源等進(jìn)行初始化。在初始化過程中,不但對(duì)CPU 內(nèi)部狀態(tài)寄存器、控制寄存器、高速緩存進(jìn)行設(shè)置,為上層軟件系統(tǒng)提供硬件環(huán)境的支持,而且為操作系統(tǒng)正常運(yùn)行進(jìn)行資源初始化。
3.2 調(diào)試過程
系統(tǒng)設(shè)計(jì)時(shí)采用Bootrom 加VxWorks 的方式,這種啟動(dòng)形式有其獨(dú)特優(yōu)點(diǎn),如適應(yīng)硬件、方便現(xiàn)場(chǎng)調(diào)試等。系統(tǒng)采用的調(diào)試工具是Wind River 公司的調(diào)試軟件visionCLICK 及仿真器Wind River ICE。具體步驟如下圖 所示:
(1) 系統(tǒng)連接
連接好仿真器和目標(biāo)板。主要是電源、串口、JTAG 口。
(2)打開超級(jí)終端
上電后,用仿真器的串口連接電腦的RS 232 串口,打開超級(jí)終端,按下仿真器的復(fù)位鍵,在超級(jí)終端可看到仿真器的相關(guān)信息。主要看IP Address,主機(jī)(host)的IP 的地址要和仿真器的IP 地址在同一IP 段,在超級(jí)終端可運(yùn)行help 命令,可看到各種命令,均可運(yùn)行。運(yùn)行"eth-setup"命令可更改仿真器的IP 地址。
(3) 新建工程
打開 visionCLICK,新建工程,按照提示設(shè)置,主要有:configuration file,symbolfile,download file 和sourcepath,其他的選項(xiàng)默認(rèn),生成bootrom uncmp.a(chǎn)b
(4)程序下載、調(diào)試和修改
連接仿真器,下載,運(yùn)行。提示無誤后,可觀察各窗口的寄存器,內(nèi)存等單元的值,進(jìn)試,如有錯(cuò)誤,修改源代碼,重新開始編譯、下載,直到完全正確為止。
(5)網(wǎng)絡(luò)調(diào)試
BootROM 調(diào)試完后,把目標(biāo)板的以太網(wǎng)口和主機(jī)的網(wǎng)口相連,VxWorks 會(huì)自動(dòng)從網(wǎng)口引導(dǎo),把編譯好的VxWorks 加載到目標(biāo)板,進(jìn)行調(diào)試。
(6)程序固化和脫機(jī)運(yùn)行
最后全部完成后,把BootROM 和VxWorks 都固化到目標(biāo)板上,以便脫機(jī)運(yùn)行。
4 結(jié)束語(yǔ)
本文作者創(chuàng)新點(diǎn):選擇PowerPC G4 系列開發(fā)單板機(jī),易于控制整板的低功耗,實(shí)現(xiàn)多數(shù)據(jù)流并行處理;同時(shí)系統(tǒng)豐富的接口設(shè)計(jì)和標(biāo)準(zhǔn)的CPCI 結(jié)構(gòu),便于系統(tǒng)的擴(kuò)展和組建多機(jī)系統(tǒng)。隨著科技的發(fā)展,該種計(jì)算機(jī)在消費(fèi)電子、通信設(shè)備、工業(yè)控制和軍用電子等領(lǐng)域均有良好的應(yīng)用前景。