<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è) > 嵌入式系統 > 設計應用 > 基于Nios軟核的嵌入式Internet系統設計

基于Nios軟核的嵌入式Internet系統設計

作者: 時(shí)間:2004-12-11 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要:介紹如何在A(yíng)ltera開(kāi)發(fā)平臺上,使用CPU來(lái)構建;并結合以太網(wǎng)遠程數據采集的實(shí)例,介紹此類(lèi)硬件,軟件的方法。

關(guān)鍵詞: μCOS

引言

自上個(gè)世紀末開(kāi)始的網(wǎng)絡(luò )化浪潮,在很多領(lǐng)域都引發(fā)了技術(shù)進(jìn)步和革新,便是嵌入式技術(shù)與網(wǎng)絡(luò )技術(shù)結合的產(chǎn)物。簡(jiǎn)單來(lái)說(shuō),嵌入式Internet是指在一個(gè)嵌入式設備上配備網(wǎng)絡(luò )接口,通過(guò)網(wǎng)絡(luò )可以與遠程設備進(jìn)行信息的交互。從管理的角度上來(lái)講,嵌入式Internet經(jīng)歷了三個(gè)發(fā)展階段:集中管理階段、分散管理階段、智能管理階段。前兩個(gè)階段主要是致力于解決如何把一個(gè)具體的設備真實(shí)地嵌入到Internet中,第三階段人們考慮更多的是如何利用現有的技術(shù)來(lái)更好地進(jìn)行遠程控制,更加豐富控制功能。

Altera公司的嵌入式處理器是一種可特許的通用RISC CPU,也就是說(shuō),Altera公司以IP核的方式將它提供給者。它可以與各種各樣的外設、定制指令和硬件加速單元相結合,構成一個(gè)定制的SOPC。該處理順具有可由用戶(hù)配置的L1(第一層)指令與數據超高速緩存。Nios處理器還具有一種JTAG的OCI(片上儀器)芯核,使軟件開(kāi)發(fā)人員在實(shí)時(shí)調試方面具有更明顯的優(yōu)勢。該處理器的軟件支持可擴展到對APR、IP、ICMP、TCP、UDP和以太網(wǎng)的網(wǎng)絡(luò )協(xié)議支持。

本文介紹的以太網(wǎng)遠程數據采集模塊的,充分利用了前述兩種技術(shù)。主要功能是進(jìn)行數據采集、數據遠程傳輸以及可接受遠程控制。該模塊具有成本低廉、結構簡(jiǎn)單、可靠性高、可擴展性強等特點(diǎn)。

1 設計實(shí)例分析

通過(guò)對以太網(wǎng)遠程數據采集模塊設計實(shí)例,介紹如何利用前面提到的技術(shù)來(lái)實(shí)現一個(gè)嵌入式Internet系統。

1.1 硬件設計

(1)系統整體結構

根據以太網(wǎng)遠程數據采集模塊的功能要求,考慮到系統的穩定性和可擴展性,本系統主要包括以下部分:

*Cyclone FPGA,包括NiosCPU、操作系統使用的定時(shí)器、網(wǎng)絡(luò )協(xié)議棧使用的定時(shí)器、CPU同外圍設備的接口;

*EPCS4,用來(lái)在上電時(shí)對FPGA進(jìn)行配置;

*Flash,主要用來(lái)存放軟件代碼以及一些需要保存的參數;

*SRAM,用來(lái)在系統運行時(shí)的代碼和數據存儲;

*8位A/D,用來(lái)采集輸入信號;

*網(wǎng)絡(luò )接口芯片;

*LED(3個(gè)),用來(lái)指示系統運行狀態(tài)。

整個(gè)系統的結構如圖1所示。

對于一個(gè)嵌入式Internet系統來(lái)說(shuō),網(wǎng)絡(luò )接口是硬件設計的關(guān)鍵,本系統中采用Smsc公司的LAN91C111芯片作為網(wǎng)絡(luò )接口。該器件是一個(gè)以太網(wǎng)控制器,實(shí)現了網(wǎng)絡(luò )七層協(xié)議棧中的傳輸層和MAC層的功能。另外,它具有10/100M自適應、雙工/半工自適應等功能,有很好的網(wǎng)絡(luò )兼容性。

(2)CPU同A/D接口的設計

CPU同A/D接口設計使用的是QuartusII軟件。它是Altera公司的第4代可編程邏輯器件集成開(kāi)發(fā)環(huán)境,提供從設計輸入到器件編程的全部功能。

需要指出的是,從開(kāi)發(fā)的周期和系統的穩定性考慮,在本設計中除了A/D之外的其余器件均采用Altera公司推薦使用的器件。在SOPC Builder中包含了這些器件間Nios CPU的接口,所以只需要對CPU同A/D的接口進(jìn)行設計。

為了實(shí)現數據采集頻率的動(dòng)態(tài)控制,以及使網(wǎng)絡(luò )部分有更多的CPU使用時(shí)間,在CPU同A/D的接口部分,除了必要的與CPU進(jìn)行交互的部分外,還包括用可控制計數器實(shí)現的整數倍分頻電路兩個(gè)輪換使用的數據緩存RAM。

該部分的結構如圖2所示,分頻電路的輸出時(shí)鐘信號頻率范圍是1MHz~1Hz。雙RAM緩沖有兩個(gè)輸入時(shí)鐘:讀時(shí)鐘和寫(xiě)時(shí)鐘。讀時(shí)鐘信號為50MHz,遠高于寫(xiě)時(shí)鐘信號。這種緩存RAM讀寫(xiě)頻率不同的設計,可以顯著(zhù)減小低速外圍設備對CPU的占用時(shí)間。CPU通過(guò)對狀態(tài)和控制寄存器的讀寫(xiě),實(shí)現對本部分的控制??紤]到系統的可擴展性,同A/D相連的數據線(xiàn)寬度為32位,方便今后擴展,最多可以4個(gè)8位A/D并行工作。另外,本部分在單個(gè)RAM緩存存滿(mǎn)時(shí),是以中斷的方式通知CPU。

(3)定制CPU和接口

這部分設計使用到的開(kāi)發(fā)工具是Altera公司的SOPC Builder,該工具會(huì )自動(dòng)進(jìn)行系統定義,完成SOPC開(kāi)發(fā)的集成過(guò)程。設計者采用SOPC Builder能夠在圖形化界面內定餐一個(gè)從硬件到軟件的完整系統。

首先,根據設計需要使用SOPC Builder來(lái)對Nios CPU進(jìn)行定制,包括CPU是不吸數據和代碼緩沖、CPU寄存器數量(Nios CPU最多可以有512個(gè)寄存器)等。本設計中的Nios CPU有256個(gè)寄存器,未使用數據和代碼緩沖。除了Nios CPU之外,還需要用SOPC Builder將CPU同外圍設備的接口添加進(jìn)來(lái)。對于本設計來(lái)說(shuō),就是將在前面提到的A/D接口以用戶(hù)自定義接口的方式添加進(jìn)來(lái),其余器件同CPU的接口只需在SOPC Builder中將對應的接口模塊添加進(jìn)來(lái)即可。

然后,用SOPC Builder將定制轉換為VHDL等具體的設計文件。除此之外,SOPC Builder還根據定制的結果,自動(dòng)的生成針對特定硬件環(huán)境的C語(yǔ)言和匯編語(yǔ)言的頭文件以及函數庫,這在軟件設計中會(huì )極大的減少軟件開(kāi)發(fā)人員的工作量。

1.2 軟件設計

軟件設計包括嵌入式操作系統的移植、網(wǎng)絡(luò )協(xié)議棧設計、應用級代碼編寫(xiě)等部分,其中操作系統的移植、網(wǎng)絡(luò )協(xié)議棧設計的關(guān)鍵是軟件設計。下面就對這兩部分作簡(jiǎn)單介紹。

(1)μC/OS操作系統移植

μC/OS操作系統是美國人Jean Labrosse于1992年開(kāi)始編寫(xiě)的,它是一種適合于小型、微控制器的可剝奪實(shí)時(shí)操作系統。ΜC/OS的內核除了沒(méi)有網(wǎng)絡(luò )協(xié)議棧之外,也沒(méi)有文件系統,但是本設計中的設備本身并不需要對采集數據按文件方式保存,因而使用μC/OS可以滿(mǎn)足需要。

ΜC/OS設計時(shí)就充分考慮到在不同平臺上移值的需求,將同平臺相關(guān)的部分局限在一個(gè)很小范圍內,對于不同的平臺只需對下面一些函數和宏進(jìn)行重寫(xiě)。

*OS_ENTER_CRITICAL和OS_ENTER_CRITICAL:這是兩個(gè)宏,用來(lái)進(jìn)行臨界段保護。在本設計中使用匯編代碼關(guān)中斷來(lái)實(shí)現。

*OS_TASK_SW:這是一個(gè)用于進(jìn)行任務(wù)切換的宏。本設計中利用CPU的軟件中斷方式實(shí)現。也就是說(shuō)調用此宏產(chǎn)生軟件中斷,然后由相應的中斷處理程序來(lái)具體實(shí)現任務(wù)上下文保護和任務(wù)切換。

*OSIntCtxSw:實(shí)現中斷級任務(wù)切換,用純匯編實(shí)現。

*OSCtxSw:實(shí)現用戶(hù)級上下文切換,用純匯編實(shí)現。

*OSTickISR:為系統定時(shí)器中斷的處理函數,用純匯編實(shí)現。

*OSTaskStkInit:用來(lái)創(chuàng )建任務(wù)時(shí),對任務(wù)堆棧進(jìn)行初始化。

(2)網(wǎng)絡(luò )協(xié)議棧

本系統采用的是SOPC Builder中包含針對Nios的網(wǎng)絡(luò )協(xié)議棧,該棧以名為Plugs的函數庫的形式提供給設計者,該庫向軟件編寫(xiě)都隱藏了低層硬件細節,以類(lèi)似于unix套接字的方式實(shí)現了一個(gè)精簡(jiǎn)的網(wǎng)絡(luò )協(xié)議棧。它支持以下一些網(wǎng)絡(luò )協(xié)議:IP、ARP、ICMP、UDP、TCP。

使用該庫在硬件上有四個(gè)要求:必須使用Nios CPU,需要20KB的代碼存儲空間,需要4KB的數據存儲空間,系統中需要有一個(gè)專(zhuān)供其使用的定時(shí)器。

2 結論

可以看出,采用Nios軟核CPU進(jìn)行嵌入式Intenet系統硬件設計相當快速。由于SOPC Builder開(kāi)發(fā)環(huán)境的完備功能,可以把注意力集中在系統整體構架和功能上來(lái),而無(wú)需過(guò)多的考慮細節性的電路設計,同時(shí)還可以得到比較好的系統穩定性和可靠性。

Nios進(jìn)行嵌入式Internet系統設計者兩個(gè)突出優(yōu)點(diǎn)。首先,硬件設計的難度,縮短了硬件開(kāi)發(fā)周期,提出了設計的可靠性。CPU本身是以軟核的方式實(shí)現,其功能可根據需要進(jìn)行定制。其次,軟件開(kāi)發(fā)容易。SOPC Builder不但在硬件設計上提供了支持,在軟件上也為設計者提供了較好的支持,提供了現成的網(wǎng)絡(luò )協(xié)議棧。

本文中的以太網(wǎng)遠程數據采集系統已經(jīng)進(jìn)行了初步的仿真試驗,能夠達到預期的效果,被證實(shí)是切實(shí)可行的。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(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>