摘要:介紹如何在Altera開發(fā)平臺上,使用Nios軟核CPU來構(gòu)建嵌入式Internet系統(tǒng);并結(jié)合以太網(wǎng)遠程數(shù)據(jù)采集系統(tǒng)的實例,介紹此類系統(tǒng)硬件,軟件的設(shè)計方法。 關(guān)鍵詞:嵌入式Internet Nios μCOS 引言 自上個世紀(jì)末開始的網(wǎng)絡(luò)化浪潮,在很多領(lǐng)域都引發(fā)了技術(shù)進步和革新,嵌入式Internet便是嵌入式技術(shù)與網(wǎng)絡(luò)技術(shù)結(jié)合的產(chǎn)物。簡單來說,嵌入式Internet是指在一個嵌入式設(shè)備上配備網(wǎng)絡(luò)接口,通過網(wǎng)絡(luò)可以與遠程設(shè)備進行信息的交互。從管理的角度上來講,嵌入式Internet經(jīng)歷了三個發(fā)展階段:集中管理階段、分散管理階段、智能管理階段。前兩個階段主要是致力于解決如何把一個具體的設(shè)備真實地嵌入到Internet中,第三階段人們考慮更多的是如何利用現(xiàn)有的技術(shù)來更好地進行遠程控制,更加豐富控制功能。 Altera公司的Nios軟核嵌入式處理器是一種可特許的通用RISC CPU,也就是說,Altera公司以IP核的方式將它提供給設(shè)計者。它可以與各種各樣的外設(shè)、定制指令和硬件加速單元相結(jié)合,構(gòu)成一個定制的SOPC。該處理順具有可由用戶配置的L1(第一層)指令與數(shù)據(jù)超高速緩存。Nios處理器還具有一種基于JTAG的OCI(片上儀器)芯核,使軟件開發(fā)人員在實時調(diào)試方面具有更明顯的優(yōu)勢。該處理器的軟件支持可擴展到對APR、IP、ICMP、TCP、UDP和以太網(wǎng)的網(wǎng)絡(luò)協(xié)議支持。 本文介紹的以太網(wǎng)遠程數(shù)據(jù)采集模塊的設(shè)計,充分利用了前述兩種技術(shù)。主要功能是進行數(shù)據(jù)采集、數(shù)據(jù)遠程傳輸以及可接受遠程控制。該模塊具有成本低廉、結(jié)構(gòu)簡單、可靠性高、可擴展性強等特點。 通過對以太網(wǎng)遠程數(shù)據(jù)采集模塊設(shè)計實例,介紹如何利用前面提到的技術(shù)來實現(xiàn)一個嵌入式Internet系統(tǒng)。 1.1 硬件設(shè)計 (1)系統(tǒng)整體結(jié)構(gòu) 根據(jù)以太網(wǎng)遠程數(shù)據(jù)采集模塊的功能要求,考慮到系統(tǒng)的穩(wěn)定性和可擴展性,本系統(tǒng)主要包括以下部分: *Cyclone FPGA,包括Nios軟核CPU、操作系統(tǒng)使用的定時器、網(wǎng)絡(luò)協(xié)議棧使用的定時器、CPU同外圍設(shè)備的接口; *EPCS4,用來在上電時對FPGA進行配置; *Flash,主要用來存放軟件代碼以及一些需要保存的參數(shù); *SRAM,用來在系統(tǒng)運行時的代碼和數(shù)據(jù)存儲; *8位A/D,用來采集輸入信號; *網(wǎng)絡(luò)接口芯片; *LED(3個),用來指示系統(tǒng)運行狀態(tài)。 整個系統(tǒng)的結(jié)構(gòu)如圖1所示。 對于一個嵌入式Internet系統(tǒng)來說,網(wǎng)絡(luò)接口是硬件設(shè)計的關(guān)鍵,本系統(tǒng)中采用Smsc公司的LAN91C111芯片作為網(wǎng)絡(luò)接口。該器件是一個以太網(wǎng)控制器,實現(xiàn)了網(wǎng)絡(luò)七層協(xié)議棧中的傳輸層和MAC層的功能。另外,它具有10/100M自適應(yīng)、雙工/半工自適應(yīng)等功能,有很好的網(wǎng)絡(luò)兼容性。 (2)CPU同A/D接口的設(shè)計 CPU同A/D接口設(shè)計使用的是QuartusII軟件。它是Altera公司的第4代可編程邏輯器件集成開發(fā)環(huán)境,提供從設(shè)計輸入到器件編程的全部功能。 需要指出的是,從開發(fā)的周期和系統(tǒng)的穩(wěn)定性考慮,在本設(shè)計中除了A/D之外的其余器件均采用Altera公司推薦使用的器件。在SOPC Builder中包含了這些器件間Nios CPU的接口,所以只需要對CPU同A/D的接口進行設(shè)計。 為了實現(xiàn)數(shù)據(jù)采集頻率的動態(tài)控制,以及使網(wǎng)絡(luò)部分有更多的CPU使用時間,在CPU同A/D的接口部分,除了必要的與CPU進行交互的部分外,還包括用可控制計數(shù)器實現(xiàn)的整數(shù)倍分頻電路兩個輪換使用的數(shù)據(jù)緩存RAM。 該部分的結(jié)構(gòu)如圖2所示,分頻電路的輸出時鐘信號頻率范圍是1MHz~1Hz。雙RAM緩沖有兩個輸入時鐘:讀時鐘和寫時鐘。讀時鐘信號為50MHz,遠高于寫時鐘信號。這種緩存RAM讀寫頻率不同的設(shè)計,可以顯著減小低速外圍設(shè)備對CPU的占用時間。CPU通過對狀態(tài)和控制寄存器的讀寫,實現(xiàn)對本部分的控制??紤]到系統(tǒng)的可擴展性,同A/D相連的數(shù)據(jù)線寬度為32位,方便今后擴展,最多可以4個8位A/D并行工作。另外,本部分在單個RAM緩存存滿時,是以中斷的方式通知CPU。 這部分設(shè)計使用到的開發(fā)工具是Altera公司的SOPC Builder,該工具會自動進行系統(tǒng)定義,完成SOPC開發(fā)的集成過程。設(shè)計者采用SOPC Builder能夠在圖形化界面內(nèi)定餐一個從硬件到軟件的完整系統(tǒng)。 首先,根據(jù)設(shè)計需要使用SOPC Builder來對Nios CPU進行定制,包括CPU是不吸數(shù)據(jù)和代碼緩沖、CPU寄存器數(shù)量(Nios CPU最多可以有512個寄存器)等。本設(shè)計中的Nios CPU有256個寄存器,未使用數(shù)據(jù)和代碼緩沖。除了Nios CPU之外,還需要用SOPC Builder將CPU同外圍設(shè)備的接口添加進來。對于本設(shè)計來說,就是將在前面提到的A/D接口以用戶自定義接口的方式添加進來,其余器件同CPU的接口只需在SOPC Builder中將對應(yīng)的接口模塊添加進來即可。 然后,用SOPC Builder將定制轉(zhuǎn)換為VHDL等具體的設(shè)計文件。除此之外,SOPC Builder還根據(jù)定制的結(jié)果,自動的生成針對特定硬件環(huán)境的C語言和匯編語言的頭文件以及函數(shù)庫,這在軟件設(shè)計中會極大的減少軟件開發(fā)人員的工作量。 1.2 軟件設(shè)計 軟件設(shè)計包括嵌入式操作系統(tǒng)的移植、網(wǎng)絡(luò)協(xié)議棧設(shè)計、應(yīng)用級代碼編寫等部分,其中操作系統(tǒng)的移植、網(wǎng)絡(luò)協(xié)議棧設(shè)計的關(guān)鍵是軟件設(shè)計。下面就對這兩部分作簡單介紹。 (1)μC/OS操作系統(tǒng)移植 μC/OS操作系統(tǒng)是美國人Jean Labrosse于1992年開始編寫的,它是一種適合于小型、微控制器的可剝奪實時操作系統(tǒng)。ΜC/OS的內(nèi)核除了沒有網(wǎng)絡(luò)協(xié)議棧之外,也沒有文件系統(tǒng),但是本設(shè)計中的設(shè)備本身并不需要對采集數(shù)據(jù)按文件方式保存,因而使用μC/OS可以滿足需要。 ΜC/OS設(shè)計時就充分考慮到在不同平臺上移值的需求,將同平臺相關(guān)的部分局限在一個很小范圍內(nèi),對于不同的平臺只需對下面一些函數(shù)和宏進行重寫。 *OS_ENTER_CRITICAL和OS_ENTER_CRITICAL:這是兩個宏,用來進行臨界段保護。在本設(shè)計中使用匯編代碼關(guān)中斷來實現(xiàn)。 *OS_TASK_SW:這是一個用于進行任務(wù)切換的宏。本設(shè)計中利用CPU的軟件中斷方式實現(xiàn)。也就是說調(diào)用此宏產(chǎn)生軟件中斷,然后由相應(yīng)的中斷處理程序來具體實現(xiàn)任務(wù)上下文保護和任務(wù)切換。 *OSIntCtxSw:實現(xiàn)中斷級任務(wù)切換,用純匯編實現(xiàn)。 *OSCtxSw:實現(xiàn)用戶級上下文切換,用純匯編實現(xiàn)。 *OSTickISR:為系統(tǒng)定時器中斷的處理函數(shù),用純匯編實現(xiàn)。 *OSTaskStkInit:用來創(chuàng)建任務(wù)時,對任務(wù)堆棧進行初始化。 (2)網(wǎng)絡(luò)協(xié)議棧 本系統(tǒng)采用的是SOPC Builder中包含針對Nios的網(wǎng)絡(luò)協(xié)議棧,該棧以名為Plugs的函數(shù)庫的形式提供給設(shè)計者,該庫向軟件編寫都隱藏了低層硬件細節(jié),以類似于unix套接字的方式實現(xiàn)了一個精簡的網(wǎng)絡(luò)協(xié)議棧。它支持以下一些網(wǎng)絡(luò)協(xié)議:IP、ARP、ICMP、UDP、TCP。 使用該庫在硬件上有四個要求:必須使用Nios CPU,需要20KB的代碼存儲空間,需要4KB的數(shù)據(jù)存儲空間,系統(tǒng)中需要有一個專供其使用的定時器。 2 結(jié)論 可以看出,采用Nios軟核CPU進行嵌入式Intenet系統(tǒng)硬件設(shè)計相當(dāng)快速。由于SOPC Builder開發(fā)環(huán)境的完備功能,可以把注意力集中在系統(tǒng)整體構(gòu)架和功能上來,而無需過多的考慮細節(jié)性的電路設(shè)計,同時還可以得到比較好的系統(tǒng)穩(wěn)定性和可靠性。 基于Nios進行嵌入式Internet系統(tǒng)設(shè)計者兩個突出優(yōu)點。首先,硬件設(shè)計的難度,縮短了硬件開發(fā)周期,提出了設(shè)計的可靠性。CPU本身是以軟核的方式實現(xiàn),其功能可根據(jù)需要進行定制。其次,軟件開發(fā)容易。SOPC Builder不但在硬件設(shè)計上提供了支持,在軟件上也為設(shè)計者提供了較好的支持,提供了現(xiàn)成的網(wǎng)絡(luò)協(xié)議棧。 本文中的以太網(wǎng)遠程數(shù)據(jù)采集系統(tǒng)已經(jīng)進行了初步的仿真試驗,能夠達到預(yù)期的效果,被證實是切實可行的。 | |
- 系統(tǒng)設(shè)計(21466)
相關(guān)推薦
基于Nios軟核的嵌入式Internet系統(tǒng)設(shè)計

2019備考[嵌入式系統(tǒng)設(shè)計師]之基礎(chǔ)知識 精選資料推薦
20個Nios Ⅱ的經(jīng)典設(shè)計,提供軟硬件架構(gòu)、流程、算法
Internet時代新的嵌入式操作系統(tǒng)
NIOS II 軟核性能標(biāo)準(zhǔn)
嵌入式Internet的接入方式比較
嵌入式Internet通信的安全怎么保障?
嵌入式系統(tǒng)
嵌入式系統(tǒng)中的軟外設(shè)是什么?
嵌入式系統(tǒng)原理與應(yīng)用的相關(guān)資料分享
嵌入式系統(tǒng)和嵌入式電腦有什么區(qū)別?
嵌入式系統(tǒng)是什么?嵌入式計算機系統(tǒng)有哪些特點?
嵌入式系統(tǒng)是由哪些部分組成的?實時嵌入式系統(tǒng)特征有哪些
嵌入式系統(tǒng)概述
嵌入式系統(tǒng)的發(fā)展歷史
嵌入式系統(tǒng)的定義
嵌入式系統(tǒng)的定義和組成是什么
嵌入式系統(tǒng)的知識體系
嵌入式系統(tǒng)組件的設(shè)計原則是什么
嵌入式系統(tǒng)設(shè)計具有什么特點
嵌入式軟核Nios Ⅱ串口直接讀寫寄存器有哪些編程方法?
嵌入式軟核NiosⅡ中串口模塊怎么編程?
嵌入式處理器原理及應(yīng)用 Nios系統(tǒng)設(shè)計和C語言編程 294頁 17.9M
嵌入式處理器原理及應(yīng)用 Nios系統(tǒng)設(shè)計和C語言編程 294頁 17.9M
嵌入式操作系統(tǒng)怎么選擇?
嵌入式網(wǎng)絡(luò)接入怎么實現(xiàn)?
嵌入式語音信號錄取系統(tǒng)工作原理是什么?
嵌入式語音信號錄取系統(tǒng)有哪些技術(shù)指標(biāo)?
ARM嵌入式系統(tǒng)的基本結(jié)構(gòu)
Altera SOPC嵌入式系統(tǒng)設(shè)計教程
Cyclone II FPGA和Nios II嵌入式處理器的優(yōu)勢
FPGA和Nios_軟核的語音識別系統(tǒng)的研究
Linux作為嵌入式操作系統(tǒng)的優(yōu)勢是什么?如何建立嵌入式Linux?
NiosII系統(tǒng)SOPC解決方案有什么功能?
QuartusⅡ10.1中NIOS2軟核的構(gòu)建方法
【下載】《FPGA上的嵌入式系統(tǒng)設(shè)計實例(附光盤XILINX大學(xué)合作計劃指定教材)》
什么是嵌入式系統(tǒng)?
什么是嵌入式系統(tǒng)?
什么是嵌入式操作系統(tǒng)?嵌入式操作系統(tǒng)有何功能
關(guān)于嵌入式系統(tǒng)的基礎(chǔ)知識都總結(jié)在這里了
利用NIOS II系統(tǒng)點亮LCD1602屏及5.7寸LCD
單片機嵌入式Internet技術(shù)的Web應(yīng)用實現(xiàn)
基于NIOS II 軟核處理器的SOPC 技術(shù)
基于Nios軟核的嵌入式Internet系統(tǒng)該怎么設(shè)計?
基于嵌入式系統(tǒng)硬件平臺的軟件PLC實現(xiàn)設(shè)計
基于ARM9的嵌入式Linux代碼該怎么移植?
基于DSP+ARM的雙核嵌入式系統(tǒng)通信接口設(shè)計
如何系統(tǒng)的學(xué)習(xí)嵌入式?
如何利用單片機嵌入式Internet技術(shù)實現(xiàn)Web應(yīng)用?
如何去設(shè)計并實現(xiàn)嵌入式軟PLC系統(tǒng)?
如何學(xué)嵌入式ARM?重點核心學(xué)習(xí)點
怎么利用單片機接入Internet網(wǎng)絡(luò)?
怎么實現(xiàn)基于Nios軟核的嵌入式Internet系統(tǒng)設(shè)計?
怎么設(shè)計集軟核處理器的嵌入式設(shè)計平臺?
怎樣去設(shè)計嵌入式演示系統(tǒng)?
怎樣去設(shè)計一種基于AVR單片機多任務(wù)嵌入式Internet系統(tǒng)
新人求助,軟考的嵌入式系統(tǒng)設(shè)計師這個證怎么樣
有關(guān)嵌入式系統(tǒng)的基礎(chǔ)知識
求一種基于嵌入式系統(tǒng)和Internet的FPGA動態(tài)配置方案
用GPRS modem實現(xiàn)嵌入式Internet接入系統(tǒng)
請問一下遠程測控中嵌入式Web服務(wù)器的FPGA的實現(xiàn)方法
請問如何使用UML來設(shè)計嵌入式系統(tǒng)?
請問如何實現(xiàn)片上嵌入式Nios Ⅱ軟核六處理器系統(tǒng)的設(shè)計?
采用nios和μClinux實現(xiàn)嵌入式系統(tǒng)設(shè)計
基于Nios 軟核的嵌入式Internet系統(tǒng)設(shè)計

基于Nios 軟核的嵌入式Internet系統(tǒng)設(shè)計

用GPRSmodem 實現(xiàn)嵌入式Internet 接入系統(tǒng)

嵌入式Internet的實現(xiàn)技術(shù)與安全問題分析

Nios II嵌入式設(shè)計包詳解


嵌入式Internet設(shè)計

在Nios II平臺下搭建RTEMS嵌入式開發(fā)簡析


Internet網(wǎng)的嵌入式系統(tǒng)設(shè)計

評論