<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于PowerPC405EP的網(wǎng)絡(luò )打印機控制器設計

基于PowerPC405EP的網(wǎng)絡(luò )打印機控制器設計

作者: 時(shí)間:2006-09-14 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要: 本文介紹了一種新型的32位高性能RISC處理器,提出了一種產(chǎn)品硬件方案并給出了部分細節,然后討論了的嵌入式操作系統VxWorks的開(kāi)發(fā),移植以及BSP引導程序的開(kāi)發(fā)流程。
關(guān)鍵詞: RISC,PowerPC,,VxWorks BSP, bootroom

引言
網(wǎng)絡(luò )打印機是一種將網(wǎng)絡(luò )服務(wù)器功能與打印功能合二為一的新型網(wǎng)絡(luò )設備,其控制器要求處理器速度快,功能強大,能夠滿(mǎn)足網(wǎng)絡(luò )處理、打印數據交換以及嵌入式操作系統開(kāi)發(fā)等對硬件的各種資源要求。是IBM公司推出的一種高性能的32位RISC嵌入式處理器,片上集成了PowerPC405內核以及各種豐富的外圍設備接口資源,最高速度可達333MHz。本文針對該處理器的特點(diǎn),提出了一種網(wǎng)絡(luò )打印機控制器的系統設計方案,并對此方案中較為關(guān)鍵的軟硬件技術(shù)進(jìn)行了討論。

系統設計方案
該網(wǎng)絡(luò )打印機控制器以PowerPC405EP為核心,系統結構框圖如圖1所示。
該系統包含PowerPC405EP處理器芯片及其上電復位電路、電源電路、系統時(shí)鐘電路、SDRAM內存及擴展電路、程序存儲及啟動(dòng)調試Flash電路、1片連接在IIC總線(xiàn)上提供啟動(dòng)配置選擇的EEPROM、用于ICE調試的JTAG口以及以太網(wǎng)口、串口等通信接口,與打印機引擎的數據通信協(xié)議由1塊FPGA實(shí)現。當系統工作時(shí),控制器從以太網(wǎng)口接收打印數據,經(jīng)過(guò)運算處理后,通過(guò)外部設備總線(xiàn)控制器訪(fǎng)問(wèn)FPGA,把打印控制信號和數據輸出給引擎,實(shí)現網(wǎng)絡(luò )打印功能。

圖1 網(wǎng)絡(luò )打印機控制器系統結構框圖



CPU時(shí)鐘電路
用一33.33MHz的外部晶振連接到CPU的Sysclk管腳作為外部輸入的低頻時(shí)鐘源, 然后通過(guò)初始化配置片內PLL將外部輸入的低頻時(shí)鐘源倍頻,為系統產(chǎn)生一個(gè)高頻系統時(shí)鐘。

SDRAM內存電路
由于405EP的SDRAM接口是32位數據總線(xiàn),因此選用2片HY57V281620HCT芯片作為板上內存模塊。該芯片片內結構組織模式為8M16位,這2塊內存芯片共用一個(gè)bankSel0片選空間,構成數據總線(xiàn)寬為32位的數據存儲區,內存容量32MB。另外可增加一條168針的DIMM擴展槽,使內存空間擴大到512MB。

內存模塊各芯片以及DIMM的時(shí)鐘由405EP的Memclkout0引腳提供(頻率等于PLB總線(xiàn)時(shí)鐘,一般為100MHz或133MHz)。為了保證各芯片時(shí)鐘同步,引入CY2309時(shí)鐘匹配芯片,該芯片擁有內部時(shí)鐘鎖相環(huán),可以將CPU輸出的時(shí)鐘信號匹配成若干條相位頻率完全相同的時(shí)鐘信號,并且可以避免任一時(shí)鐘信號反射對其他時(shí)鐘造成的影響。由于內存模塊工作頻率較高,布板時(shí)應注意各芯片時(shí)鐘走線(xiàn)嚴格要求等長(cháng),相同性質(zhì)的信號線(xiàn)應盡量使用相同的拓撲結構,另外需結合控制器內部時(shí)序寄存器的配置來(lái)對這部分電路進(jìn)行板級仿真。

程序存儲電路
由于405EP的EBC總線(xiàn)具有16位數據線(xiàn)和29位地址線(xiàn),選擇2片MX29LV160BTC的Flash芯片用以存放BSP、實(shí)時(shí)操作系統VxWorks和用戶(hù)應用程序。將Flash的BYTE#管腳設置為低電平,使Flash工作于x8模式。這樣2片Flash共用一個(gè)CS0片選空間,構成EBC數據總線(xiàn)同步訪(fǎng)問(wèn)的高8位和低8位,容量為4MB。由于405EP采用PowerPc內核,即405EP的A31是LSB,A3是MSB,數據總線(xiàn)亦然,而Flash芯片的A0和D0皆是LSB,連線(xiàn)時(shí)要注意管腳次序。另外,由于Flash是2字節同步讀取操作,連線(xiàn)時(shí)應將CPU的地址線(xiàn)左移1位,即不使用最低位A0。

為了便于系統調試,可增加一片512KB的SST39SF040用于bootrom啟動(dòng),通過(guò)跳線(xiàn)與2片Flash互選CS0片選,這樣系統啟動(dòng)時(shí)會(huì )自動(dòng)從CS0的設備上讀取啟動(dòng)代碼。程序存儲模塊如圖2所示:

圖2 Flash程序存儲電路



以太網(wǎng)接口電路
RTL8201BL網(wǎng)口芯片用來(lái)實(shí)現PowerPC405EP與100M以太網(wǎng)的接口,使用外部25MHz晶振,通過(guò)16PT8515網(wǎng)絡(luò )濾波器連接到以太網(wǎng)上。由于PowerPC405EP帶有100M以太網(wǎng)MAC,所以能夠實(shí)現和RTL8201BL的無(wú)縫連接。RTL8201BL有兩種接口:SNI和MII。本系統采用MII。接口的選擇可以通過(guò)設置MII/SNIB引腳為高電平和正確地設置ANE、SPEED和DUPLEX引腳來(lái)實(shí)現。MII能夠運行在兩個(gè)頻率上,即25MHz和2.5MHz,分別支持100M以太網(wǎng)和10M以太網(wǎng)。當數據傳輸時(shí),MAC將首先判定TXEN信號并改變8位數據為4位數據,再通過(guò)TXD[0:3]傳到物理層上,在TXEN信號有效期間,PHY將通過(guò)傳輸時(shí)鐘信號TXCLK對TXD[0:3]上的數據進(jìn)行同步采樣;當接收數據時(shí),PHY將判定接收使能信號,來(lái)接收RXD[0:3]上的數據。

打印機引擎控制
作為網(wǎng)絡(luò )打印機控制器的數據輸出端,在一塊FPGA中由硬件邏輯來(lái)實(shí)現處理器通過(guò)EBC總線(xiàn)對引擎的控制如圖1所示。此FPGA占用一個(gè)EBC總線(xiàn)的片選空間CS3并享有外部中斷。在打印時(shí),FPGA中的邏輯FIFO數據不滿(mǎn)時(shí)將觸發(fā)外部中斷,處理器調用相應的中斷服務(wù)程序繼續向引擎發(fā)送打印數據。

系統啟動(dòng)配置
PowerPC405EP提供了一個(gè)IIC串行EEPROM控制器用以實(shí)現啟動(dòng)配置。當配置引腳UART0-Tx被置于高電平時(shí)則使能該控制器。選用一片按照固定字節格式保存有啟動(dòng)配置信息的AT24C32連接到該控制器作為從設備。當系統上電或者復位時(shí),該控制器能夠從AT24C32中連續讀取32個(gè)字節,用以實(shí)現PLL、各總線(xiàn)時(shí)鐘頻率、PCI總線(xiàn)配置、引導信息等相關(guān)寄存器的初始化配置。如果引腳UART0-Tx被置于低電平,則該控制器失效,這些寄存器初始化配置將使用默認值,其中PLL被旁路且被復位,必須在復位后用軟件來(lái)初始化相關(guān)PLL寄存器。

嵌入式操作系統VxWorks的開(kāi)發(fā)與移植
本文選用WindRiver公司推出的嵌入式實(shí)時(shí)操作系統VxWorks及其集成開(kāi)發(fā)工具Tornado來(lái)開(kāi)發(fā)該控制器。系統開(kāi)發(fā)調試工具采用WindRiver公司生產(chǎn)的VisionIce仿真器。仿真器一端連接PC機網(wǎng)口,另一端連接PowerPC405EP的JTAG接口。開(kāi)發(fā)時(shí)首先調試PowerPC內核和SDRAM內存,一旦它們工作正常,就可以通過(guò)仿真器下載RTOS到內存來(lái)輔助硬件調試。然后調試網(wǎng)口,如果網(wǎng)口工作正常,就可以脫離仿真器,利用Tornado提供的工具軟件,如WDB,通過(guò)網(wǎng)口線(xiàn)建立電路板與PC的通信機制,來(lái)調試其他模塊和開(kāi)發(fā)應用程序。開(kāi)發(fā)完畢后,將正確的啟動(dòng)代碼燒制到bootrom中,由bootrom引導程序通過(guò)ftp將VxWorks內核與應用程序下載燒寫(xiě)到Flash中。

VxWorks得以廣泛流行的一個(gè)重要原因在于它的可移植性,通過(guò)板級支持包BSP, VxWorks操作系統的應用代碼可獨立于硬件。在系統移植時(shí),只需根據硬件平臺修改BSP,而不需要改變操作系統和應用程序。

VxWorks BSP 的文件結構與開(kāi)發(fā)流程
在VxWorks中,BSP由一組與特定目標系統相關(guān)的文件組成。這些文件包括編譯文件makefile、ROM初始化文件romInit.s、系統初始化文件sysAlib.s、配置文件config.h、目標板定義文件bspname.h、網(wǎng)絡(luò )配置文件configNet.h、系統庫文件syslib.c、用戶(hù)配置文件usrConfig.c、引導配置文件bootConfig.c、引導初始化文件bootInit.c、串口文件sysSerial.c、以太網(wǎng)接口文件ibmEmacEnd.c等。BSP啟動(dòng)流程如圖3所示。

針對以上文件結構,系統BSP的開(kāi)發(fā)流程分為3個(gè)步驟。

圖3 VxWorks BSP啟動(dòng)流程



建立開(kāi)發(fā)環(huán)境
主要是以開(kāi)發(fā)板CPU的BSP文件為模板,在 ornado argetconfig目錄下創(chuàng )建用戶(hù)的BSP目錄bspname,把 ornado arget configall下的文件和BSP模板文件拷貝到該目錄下。

修改模板文件
(1) makefile:該文件通過(guò)命令行方式對創(chuàng )建映像文件進(jìn)行控制,必須定義下列宏:
CPU:PPC405
TOOL:GNU
TGT_DIR:目標板目錄的路徑,使用默認
TARGET_DIR:BSP目錄名,自定義
VENDOR:目標生產(chǎn)商名,IBM
BOARD:目標板名,自定義
ROM_TEXT_ADRS:?jiǎn)?dòng)ROM的入口地址,本系統設為0xfff80100
ROM_SIZE:ROM大小,本系統為512KB
RAM_LOW_ADRS:加載VxWorks的目標地址,本系統設為0x00010000
RAM_HIGH_ADRS:將引導ROM映像復制到RAM中的目標地址,本系統設為0x00c00000

(2) bspname.h:該文件根據405EP設置串行接口,時(shí)鐘及I/O設備等,必須包含以下內容: 中斷向量/優(yōu)先級別、I/O設備地址、設備寄存器各位的含義、系統和附加時(shí)鐘參數(最大最小速率)。

(3) config.h:該文件包含定義所有與405EP目標板相關(guān)的組件。
設置缺省啟動(dòng)行:用網(wǎng)絡(luò )啟動(dòng)
RAM地址和大?。旱刂窂?開(kāi)始,大小為32MB
設置ECC:失效
設置是否支持MMU和Cache:支持Cache
定時(shí)器是否使用外部時(shí)鐘:否
串口時(shí)鐘定義:使用外部時(shí)鐘
串口默認通道:使用通道1
包含網(wǎng)口:支持以太網(wǎng)接口
WDB默認通信方式:網(wǎng)口

另外注意ROM_TEXT_ADRS、ROM_SIZE、RAM_LOW_ADRS、RAM_HIGH_ADRS必須與makefile中的定義保持一致。

(4) romInit.s:該文件是一段匯編語(yǔ)言的初始化代碼,其中的romInit( )函數是bootrom和ROM的VxWorks映像的入口。需要做的工作有:

將相關(guān)寄存器清零和置位;
屏蔽中斷:通過(guò)設置MSR寄存器中的CE位與EE位;
關(guān)閉數據、指令Cache;
初始化EBC總線(xiàn)寄存器:通過(guò)對bank寄存器的設置為EBC總線(xiàn)上的各種設備分配片選信號與地址空間;
初始化內存:對SDRAM接口各寄存器進(jìn)行配置,為板載內存與DIMM分配片選信號與地址空間;
初始化堆棧指針;
計算romStart( )函數地址,然后跳轉到該函數執行C語(yǔ)言代碼,并不再返回。

(5) 用戶(hù)配置文件usrConfig.c中的代碼是VxWorks映像的主要初始化代碼,而引導配置文件bootConfig.c中的代碼是bootrom映像的主要初始化代碼。bootInit.c是ROM初始化的第2階段,RomInit( )完成后跳轉到此文件中的romStart( ),該函數完成ROM映像所需要的解壓縮和重定位工作。以上3個(gè)文件一般無(wú)須用戶(hù)直接修改。

(6) 系統庫文件syslib.c:該文件包含了與特定目標系統相關(guān)的庫函數,這些函數為操作系統和應用程序提供板級接口,使得這些程序與硬件系統無(wú)關(guān)。該文件至少包含下列函數:sysModel、sysBspRev、sysHwInit、sysHwInit2和sysMemTop等。其中sysHwInit是本文件的核心,大部分硬件初始化工作都在這部分完成。本系統也可選擇將包括串口、網(wǎng)口等硬件設備的初始化入口程序添加到該函數中,相關(guān)設備的驅動(dòng)程序可作為子文件引入syslib.c。

創(chuàng )建VxWorks鏡像
根據具體需要在命令行環(huán)境下利用makefile創(chuàng )建各種鏡像,也可以在Tornado集成環(huán)境下在Build菜單里選擇Build Boot Rom來(lái)創(chuàng )建各種類(lèi)型的bootrom。

結語(yǔ)
本文向讀者推出了一種新型的高性能RISC處理器,并對以這種處理器為核心構建的網(wǎng)絡(luò )打印機控制器的硬件設計方案和軟件開(kāi)發(fā)流程做了詳細的介紹。鑒于不同類(lèi)型的網(wǎng)絡(luò )產(chǎn)品設計具有一定的共性,希望本文能對其他基于RISC處理器的嵌入式網(wǎng)絡(luò )產(chǎn)品開(kāi)發(fā)提供一定的參考價(jià)值。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>