女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于PowerPC405EP的網(wǎng)絡(luò)打印機(jī)控制器設(shè)計(jì)

摘  要: 本文介紹了一種新型的32位高性能RISC處理器PowerPC405EP,提出了一種基于PowerPC405EP的網(wǎng)絡(luò)打印機(jī)產(chǎn)品控制器硬件設(shè)計(jì)方案并給出了部分設(shè)計(jì)細(xì)節(jié),然后討論了基于此網(wǎng)絡(luò)打印機(jī)控制器的嵌入式操作系統(tǒng)VxWorks的開發(fā),移植以及BSP引導(dǎo)程序的開發(fā)流程。
關(guān)鍵詞: RISC,PowerPC,網(wǎng)絡(luò)打印機(jī)控制器,VxWorks BSP, bootroom

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

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

圖1 網(wǎng)絡(luò)打印機(jī)控制器系統(tǒng)結(jié)構(gòu)框圖



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

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

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

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

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

圖2  Flash程序存儲(chǔ)電路



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

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

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

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

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

VxWorks BSP 的文件結(jié)構(gòu)與開發(fā)流程
    在VxWorks中,BSP由一組與特定目標(biāo)系統(tǒng)相關(guān)的文件組成。這些文件包括編譯文件makefile、ROM初始化文件romInit.s、系統(tǒng)初始化文件sysAlib.s、配置文件config.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啟動(dòng)流程如圖3所示。

    針對(duì)以上文件結(jié)構(gòu),系統(tǒng)BSP的開發(fā)流程分為3個(gè)步驟。

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



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

修改模板文件
    (1) makefile:該文件通過命令行方式對(duì)創(chuàng)建映像文件進(jìn)行控制,必須定義下列宏:
CPU:PPC405
TOOL:GNU
TGT_DIR:目標(biāo)板目錄的路徑,使用默認(rèn)
TARGET_DIR:BSP目錄名,自定義
VENDOR:目標(biāo)生產(chǎn)商名,IBM
BOARD:目標(biāo)板名,自定義
ROM_TEXT_ADRS:?jiǎn)?dòng)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

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

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

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

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

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

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

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

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

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉