<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于PowerPC440GP型微控制器的嵌入式系統(tǒng)設(shè)計與研究

          基于PowerPC440GP型微控制器的嵌入式系統(tǒng)設(shè)計與研究

          ——
          作者:楊 凡 時間:2007-01-26 來源:《國外電子元器件》 收藏


          1 引言

          powerpc440gp是ibm公司推出的高性能32位risc嵌入式處理器,片上集成了powerpc440內(nèi)核及各種豐富的外圍設(shè)備接口資源、最高速度可達(dá)500mhz,適合應(yīng)用在嵌入式產(chǎn)品諸如交換機(jī)、路由器、網(wǎng)絡(luò)服務(wù)器等臺式設(shè)備中。本文針對該處理器的特點(diǎn)提出一種針對網(wǎng)絡(luò)服務(wù)器的較為通用的應(yīng)用系統(tǒng)設(shè)計方案,并對此方案的關(guān)鍵軟硬件技術(shù)進(jìn)行討論。

          2 powerpc440gp的特點(diǎn)和性能

          128位處理器局部總線(plb)可提供峰值為4.2gb/s的讀寫能力,用來訪問pci,ddr sdram等高性能設(shè)備,采用36位地址路徑,能提供64gb內(nèi)存尋址能力。

          32位片上外圍設(shè)備總線(opb)連接串口、以太網(wǎng)口、外部總線控制器、i2c口等低性能設(shè)備,以提高plb總線利用率。

          10位尋址的dcr總線訪問plb總線上各種主從設(shè)備的狀態(tài)與控制寄存器。

          擁有64位片上雙倍速率ddr sdram控制器,最多可提供4個設(shè)備片選信號。

          本文引用地址:http://www.ex-cimer.com/article/21306.htm

          擁有最高頻率133mhz的64位pci接口。

          可支持8個外設(shè)的32位外部總線控制器。

          2個10mb/s/100 mb/s片上以太網(wǎng)控制器。

          2個串口和2個i2c口。

          32個通用輸入輸出口gpio。

          13個外部中斷和45個內(nèi)部中斷資源。

          cpu工作頻率可在400mhz、466mhz、500mhz頻率下通過初始化配置選擇,一般功耗小于4w。

          電源:邏輯電壓為1.8v、ddr sdram接口電壓為2.5v、i/0口電壓為3.3v。

          3 應(yīng)用系統(tǒng)設(shè)計方案

          該網(wǎng)絡(luò)服務(wù)器平臺以powerpc440gp為核心,進(jìn)行了必要的擴(kuò)展,系統(tǒng)結(jié)構(gòu)框圖如圖1所示。

          系統(tǒng)包含powerpc440gp處理器及其上電復(fù)位電路、電源電路、系統(tǒng)時鐘電路、ddr內(nèi)存及擴(kuò)展電路、程序存儲及啟動調(diào)試flash電路,1個連接在i2c總線上提供啟動配置的eeprom,用于ice調(diào)試的jtag口,以及以太網(wǎng)口、串口等通信接口。

          3.1 電源電路設(shè)計

          本系統(tǒng)共需1.8v和2.5v、3.3v 3種電源,其中由開關(guān)電源為系統(tǒng)提供統(tǒng)一的3.3v電源和地平面,選用lp3963es-2.5型ldo提供2.5v電壓,該電路的最大負(fù)載電流可達(dá)3a,能滿足系統(tǒng)需要。以2.5v為輸入,選用的tps77518型dc/dc轉(zhuǎn)換器提供1.8v電壓,可有效減少二次電源的功率損耗。

          3.2 cpu時鐘電路設(shè)計

          本系統(tǒng)采用一個33.33mhz的外部晶體振蕩器連接到cpu的sysclk引腳作為外部輸入的低頻時鐘源,然后通過初始化配置片內(nèi)鎖相環(huán)(pll)將外部輸入的低頻時鐘源倍頻,為系統(tǒng)提供高頻系統(tǒng)時鐘。

          3.3 ddr sdram電路設(shè)計

          由于powerpc440gp的ddr sdram接口具有最高64位數(shù)據(jù)總線和8位ecc糾錯位,所以選用5個hy5du281622etp-m作為板上內(nèi)存模塊,該電路結(jié)構(gòu)為8m×16bits,5個內(nèi)存電路共用1個bankse10片選空間,其中4個內(nèi)存電路構(gòu)成數(shù)據(jù)總線為64位的數(shù)據(jù)存儲區(qū),內(nèi)存容量為64m字節(jié),另外1個內(nèi)存電路的低8位用作ecc。還可擴(kuò)展1個184針idmm(必須采用72位的ecc內(nèi)存條)。內(nèi)存模塊各電路及dimm的時鐘由powerpc440gp的memclkout0引腳提供(其頻率等于plb總線時鐘,一般為100mhz或133mhz)。為了保證各器件時鐘同步,引入cy2309時鐘匹配器件,該器件擁有內(nèi)部時鐘鎖相環(huán),可以講引腳輸出的時鐘信號分成9條相位頻率完全相同的時鐘信號(5條供給芯片,4條供給dimm),并且可以避免任一時鐘信號反射對其他時鐘造成的影響。ddr sdram模塊采用sstl-2信號標(biāo)準(zhǔn),工作電壓為2.5v。進(jìn)行布板設(shè)計時要重點(diǎn)考慮data/dm/dqs等信號線的走線及長度、信號線的端接方法及符合sstl-2信號要求的端接電壓vtt和輸入?yún)⒖茧妷盒盘杤ref的電路設(shè)計。data/dm/dqs等信號線應(yīng)盡量采用相同的走線結(jié)構(gòu)并嚴(yán)格保持等長。信號線末端的端接推薦使用串并聯(lián)方式,如圖2所示。這里串聯(lián)端接電阻器的阻值一般為22ω,并聯(lián)端接電阻阻值一般為25ω,位置應(yīng)盡量靠近信號接收端引腳,可有效減少信號反射和電磁干擾,適應(yīng)更高的時鐘率。對于端接電壓vtt和參考電壓vref,采用內(nèi)存廠商推薦的ml6554來提供。另外,由于ddrsdram電路時序操作的復(fù)雜性,結(jié)合控制器內(nèi)部時序寄存器的配置對這部分電路進(jìn)行板極仿真是非常重要的。

          3.4 程序存儲電路設(shè)計

          由于powerpc440gp的ebc總線具有32位數(shù)據(jù)線,選擇2個mx29lv160btc型flash器件用以存放bsp、實(shí)時操作系統(tǒng)、vxworks和用戶應(yīng)用程序。將flash的byte引腳設(shè)置為高電平,使flash工作于×16模式。這樣2個flash共用1個cs0片選空間,構(gòu)成ebc數(shù)據(jù)總線同步訪問的高16位和低16位,容量為4m字節(jié)。由于powerpc440gp采用powerpc內(nèi)核,即440gp的a31是lsb,a0是msb,數(shù)據(jù)總線亦然,而flash的a0和d0皆是lsb,連線時要注意引腳次序。另外,由于flash是4字節(jié)同步讀取操作,連線時應(yīng)將cpu的地址線左移2位,即最低位a0和a1不用。

          為了便于系統(tǒng)調(diào)試,可增加1個512kb的sst39sf040用于bootrom啟動,通過跳線與2個flash互選cs0片選,這樣系統(tǒng)啟動時會自動從cs0的設(shè)備上讀取啟動代碼。程序存儲模塊如圖3所示。

          3.5 以太網(wǎng)接口電路設(shè)計

          用rtl8201bl型網(wǎng)口電路實(shí)現(xiàn)powerpc440gp與100mhz以太網(wǎng)的接口,使用外部25mhz晶體振蕩器,通過16pt8515型網(wǎng)絡(luò)濾波器連接以太網(wǎng),如圖4所示。由于powerpc440gp帶有100mhz以太網(wǎng)mac,所以能夠?qū)崿F(xiàn)和rtl8201bl的無縫連接。rtl8201bl有2種接口:sni和mii,本系統(tǒng)采用mii。接口的選擇可以通過設(shè)置mii/snib引腳為高電平、正確設(shè)置ane、speed和duplex引腳來實(shí)現(xiàn)。mii能夠運(yùn)行在25mhz和2.5mhz頻率,分別為100mhz以太網(wǎng)和10mhz以太網(wǎng)支持。數(shù)據(jù)傳輸時,mac首先判定then信號并將8位數(shù)據(jù)改為4位數(shù)據(jù),再通過txd(0:3)傳導(dǎo)物理層上,在txen信號有效期間,phy通過傳輸時鐘信號txclk對txd(0:3)上的數(shù)據(jù)進(jìn)行同步采樣;接收數(shù)據(jù)時,phy判定接收使能信號來接收rxd(0:3)上的數(shù)據(jù)。

          3.6 系統(tǒng)啟動配置

          powerpc440gp有1個i2c總線啟動配置控制器。當(dāng)引腳uart0-dcd#被置為高電平時使能該控制器。選用1個保存有啟動配置信息的at24c32連接到i2c0接口作為從設(shè)備。當(dāng)系統(tǒng)上電或者復(fù)位時,該控制器能夠從位于i2c0接口的從設(shè)備中連續(xù)讀取16個字節(jié)。這16個字節(jié)數(shù)據(jù)被保存在4個上電配置寄存器cpc0-strp0:3中,用來初始化pll設(shè)置、片內(nèi)各總線時鐘率、啟動位置、啟動寬度及一些用戶定義的配置等。如果讀取數(shù)據(jù)失敗或者引腳uart0-dcd#被置于低電平,則這些配置將全部使用默認(rèn)值。另一配置引腳uart0-dsr#置高電平或低電平?jīng)Q定了i2c總線從設(shè)備7位地址是0xa0還是0xa8。

          4 vxworks的開發(fā)與移植

          本系統(tǒng)選用windriver公司推出的嵌入式實(shí)時操作系統(tǒng)vxworks及其集成開發(fā)工具tornado。系統(tǒng)開發(fā)調(diào)試工具采用windriver公司生產(chǎn)的visionice仿真器。仿真器一端連接pc網(wǎng)口,另一端連接powerpc440gp的jtag接口。開發(fā)時首先調(diào)試powerpc內(nèi)核和外部ddr sdram,一旦工作正常,就可以通過仿真器下載rtos到內(nèi)存來輔助硬件調(diào)試。然后調(diào)試網(wǎng)口,如果網(wǎng)口工作正常,就可以脫離仿真器,例如tornado提供的工具軟件(例如wdb),通過網(wǎng)口線建立電路板與pc的通信機(jī)制,調(diào)試其他模塊和開發(fā)應(yīng)用程序。開發(fā)程序完成后,將正確的啟動代碼燒制到bootrom中,由bootrom引導(dǎo)程序通過ftp將vxworks內(nèi)核與應(yīng)用程序下載燒制到flash中。

          vxworks廣泛流行的重要原因是它的可移植性,通過板級支持包bsp,vxworks操作系統(tǒng)的應(yīng)用代碼可獨(dú)立于硬件。系統(tǒng)移植時只需根據(jù)硬件平臺修改bsp,不需要改變操作系統(tǒng)和應(yīng)用程序。

          5 vxworks bsp文件結(jié)構(gòu)與開發(fā)流程

          在vxworks中,bsp由一組與特定目標(biāo)系統(tǒng)相關(guān)的文件組成。這些文件包括編譯文件makefile、rom初始化文件rominit.s、系統(tǒng)初始化文件sysalib.s、配置文件comfig.h、目標(biāo)板定義文件bspname.h、網(wǎng)絡(luò)配置文件confignet.h、系統(tǒng)庫文件syslib.c、用戶配置文件usrconfig.c、引導(dǎo)配置文件bootconfig.c、引導(dǎo)初始化文件bootinit.c、串口文件sysserial.c、以太網(wǎng)接口文件ibmemacend.c等,bsp啟動流程如圖5所示。

          5.1 建立開發(fā)環(huán)境

          主要以開發(fā)板cpu的bsp文件為模板,在tornadotargetconfig目錄下創(chuàng)建用戶的bsp目錄bspname,把tornadotargetconfigall下的文件和bsp模板文件拷貝到該目錄下。

          5.2 修改模板文件

          5.2.1 makefile

          該文件通過命令行方式對創(chuàng)建映像文件進(jìn)行控制,必須定義下列宏:

          cpu:powerpc440gp;

          tool:gnu;

          tgt_dir:目標(biāo)板目錄的路徑,使用默認(rèn);

          target_dir:bsp目錄名,自定義;

          vendor:目標(biāo)生產(chǎn)商名,ibm;

          board:目標(biāo)板名,自定義;

          rom_text_adrs:啟動rom的入口地址,本系統(tǒng)設(shè)為0xfff80100;

          rom_size:rom大小,本系統(tǒng)為512kb;

          ram_low_adrs:加載vxworks的目標(biāo)地址,本系統(tǒng)設(shè)為0x00010000;

          ram_high_adrs:將引導(dǎo)rom映象復(fù)制到ram中的目標(biāo)地址,本系統(tǒng)設(shè)為0x00c00000。

          5.2.2 bspname.h

          該文件根據(jù)powerpc440gp設(shè)置串行接口、時鐘及i/0設(shè)備等,必須包含以下內(nèi)容:

          中斷向量/優(yōu)先級別;

          i/o設(shè)備地址;

          設(shè)備寄存器各位的含義;

          系統(tǒng)和附加時鐘參數(shù)(最大和最小速率)。

          5.2.3 comfig.h

          該文件包含所有與powerpc440gp目標(biāo)板相關(guān)的組件。

          設(shè)置缺省啟動行:使用網(wǎng)絡(luò)啟動;

          ram地址和大?。旱刂窂?開始,64mb大小

          設(shè)置ecc:使能;

          設(shè)置是否支持mmu和cache:支持cache;

          定時器是否使用外部時鐘:否;

          串口時鐘定義:使用外部時鐘;

          串口默認(rèn)通道:使用通道1;

          包含網(wǎng)口:支持以太網(wǎng)接口;

          wdb默認(rèn)通信方式:網(wǎng)口。

          另外,注意rom_text_adrs,rom_size,ram_low_adrs,ram_high_adrs必須與makefile中的定義保持一致。

          5.2.4 romlnit.s

          該文件是一端匯編語言的初始化代碼,其中的rominit()函數(shù)是bootrom和基于rom的vxworks映象的入口。需要做的工作有:

          將相關(guān)寄存器清零和置位;

          屏蔽中斷:通過設(shè)置msr寄存器中的ce位與ee位;

          關(guān)閉數(shù)據(jù)、指令cache;

          初始化ebc總線寄存器:通過對bank寄存器的設(shè)置為ebc總線上的各種設(shè)備分配片選信號與地址空間;

          初始化內(nèi)存:對ddr sdram接口各寄存器進(jìn)行配置,為板載內(nèi)存與dimm分配片選信號與地址空間。注意時序寄存器sdram0_tr1,sdram0_wrdtr等的配置應(yīng)與內(nèi)存模塊的布線仿真結(jié)合起來;

          初始化堆棧指針;

          計算romstart()函數(shù)地址,然后跳轉(zhuǎn)到該函數(shù)執(zhí)行c語言代碼,并不再返回。

          5.2.5 用戶配置文件usrconfig.c

          其中的代碼是vxworks映象的主要初始化代碼,而引導(dǎo)配置文件bootconfig.c中的代碼是bootrom映象的主要初始化代碼。bootinit.c是rom初始化的第2階段,rominit()完成后跳轉(zhuǎn)到此文件中的romstart(),該函數(shù)完成rom映象所需要的解壓縮和重定位工作。以上3個文件一般無須用戶直接修改。

          5.2.6 系統(tǒng)庫文件syslib.c

          該文件包含與特定目標(biāo)系統(tǒng)相關(guān)的庫函數(shù),這些函數(shù)為操作系統(tǒng)和應(yīng)用程序提供板級接口,使這些程序與硬件系統(tǒng)無關(guān)。該文件至少包含下列函數(shù):sysmodel,sysbsprev,syshwinit,syshwinit2和sys memtop等,其中syshwinit是本文件的核心,大部分硬件初始化工作都在這部分完成,本系統(tǒng)也可選擇將包括串口,網(wǎng)口等硬件設(shè)備的初始化入口程序添加到該函數(shù)中,相關(guān)設(shè)備的驅(qū)動程序可作為子文件引入syslib.c。

          5.3 創(chuàng)建vxworks映象

          根據(jù)具體需要在命令行環(huán)境下利用makefile創(chuàng)建各種鏡像,也可以在tornado集成環(huán)境下在build菜單里選擇build boot rom來創(chuàng)建各種類型的bootrom。

          6 結(jié)束語

          介紹了一種新型高性能嵌入式處理器,并對以這種處理器為核心構(gòu)建的網(wǎng)絡(luò)服務(wù)器的硬件設(shè)計和軟件開發(fā)流程做了詳細(xì)說明。鑒于不同處理器的嵌入式系統(tǒng)設(shè)計具有一定的共性,本文可為其他類型的嵌入式系統(tǒng)開發(fā)提供一定的參考。



          關(guān)鍵詞:

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();