摘要:介紹如何在Altera開發平臺上,使用Nios軟核CPU來構建嵌入式Internet系統;并結合以太網遠程數據采集系統的實例,介紹此類系統硬件,軟件的設計方法。 關鍵詞:嵌入式Internet Nios μCOS 引言 自上個世紀末開始的網絡化浪潮,在很多領域都引發了技術進步和革新,嵌入式Internet便是嵌入式技術與網絡技術結合的產物。簡單來說,嵌入式Internet是指在一個嵌入式設備上配備網絡接口,通過網絡可以與遠程設備進行信息的交互。從管理的角度上來講,嵌入式Internet經歷了三個發展階段:集中管理階段、分散管理階段、智能管理階段。前兩個階段主要是致力于解決如何把一個具體的設備真實地嵌入到Internet中,第三階段人們考慮更多的是如何利用現有的技術來更好地進行遠程控制,更加豐富控制功能。 Altera公司的Nios軟核嵌入式處理器是一種可特許的通用RISC CPU,也就是說,Altera公司以IP核的方式將它提供給設計者。它可以與各種各樣的外設、定制指令和硬件加速單元相結合,構成一個定制的SOPC。該處理順具有可由用戶配置的L1(第一層)指令與數據超高速緩存。Nios處理器還具有一種基于JTAG的OCI(片上儀器)芯核,使軟件開發人員在實時調試方面具有更明顯的優勢。該處理器的軟件支持可擴展到對APR、IP、ICMP、TCP、UDP和以太網的網絡協議支持。 本文介紹的以太網遠程數據采集模塊的設計,充分利用了前述兩種技術。主要功能是進行數據采集、數據遠程傳輸以及可接受遠程控制。該模塊具有成本低廉、結構簡單、可靠性高、可擴展性強等特點。 通過對以太網遠程數據采集模塊設計實例,介紹如何利用前面提到的技術來實現一個嵌入式Internet系統。 1.1 硬件設計 (1)系統整體結構 根據以太網遠程數據采集模塊的功能要求,考慮到系統的穩定性和可擴展性,本系統主要包括以下部分: *Cyclone FPGA,包括Nios軟核CPU、操作系統使用的定時器、網絡協議棧使用的定時器、CPU同外圍設備的接口; *EPCS4,用來在上電時對FPGA進行配置; *Flash,主要用來存放軟件代碼以及一些需要保存的參數; *SRAM,用來在系統運行時的代碼和數據存儲; *8位A/D,用來采集輸入信號; *網絡接口芯片; *LED(3個),用來指示系統運行狀態。 整個系統的結構如圖1所示。 對于一個嵌入式Internet系統來說,網絡接口是硬件設計的關鍵,本系統中采用Smsc公司的LAN91C111芯片作為網絡接口。該器件是一個以太網控制器,實現了網絡七層協議棧中的傳輸層和MAC層的功能。另外,它具有10/100M自適應、雙工/半工自適應等功能,有很好的網絡兼容性。 (2)CPU同A/D接口的設計 CPU同A/D接口設計使用的是QuartusII軟件。它是Altera公司的第4代可編程邏輯器件集成開發環境,提供從設計輸入到器件編程的全部功能。 需要指出的是,從開發的周期和系統的穩定性考慮,在本設計中除了A/D之外的其余器件均采用Altera公司推薦使用的器件。在SOPC Builder中包含了這些器件間Nios CPU的接口,所以只需要對CPU同A/D的接口進行設計。 為了實現數據采集頻率的動態控制,以及使網絡部分有更多的CPU使用時間,在CPU同A/D的接口部分,除了必要的與CPU進行交互的部分外,還包括用可控制計數器實現的整數倍分頻電路兩個輪換使用的數據緩存RAM。 該部分的結構如圖2所示,分頻電路的輸出時鐘信號頻率范圍是1MHz~1Hz。雙RAM緩沖有兩個輸入時鐘:讀時鐘和寫時鐘。讀時鐘信號為50MHz,遠高于寫時鐘信號。這種緩存RAM讀寫頻率不同的設計,可以顯著減小低速外圍設備對CPU的占用時間。CPU通過對狀態和控制寄存器的讀寫,實現對本部分的控制。考慮到系統的可擴展性,同A/D相連的數據線寬度為32位,方便今后擴展,最多可以4個8位A/D并行工作。另外,本部分在單個RAM緩存存滿時,是以中斷的方式通知CPU。 這部分設計使用到的開發工具是Altera公司的SOPC Builder,該工具會自動進行系統定義,完成SOPC開發的集成過程。設計者采用SOPC Builder能夠在圖形化界面內定餐一個從硬件到軟件的完整系統。 首先,根據設計需要使用SOPC Builder來對Nios CPU進行定制,包括CPU是不吸數據和代碼緩沖、CPU寄存器數量(Nios CPU最多可以有512個寄存器)等。本設計中的Nios CPU有256個寄存器,未使用數據和代碼緩沖。除了Nios CPU之外,還需要用SOPC Builder將CPU同外圍設備的接口添加進來。對于本設計來說,就是將在前面提到的A/D接口以用戶自定義接口的方式添加進來,其余器件同CPU的接口只需在SOPC Builder中將對應的接口模塊添加進來即可。 然后,用SOPC Builder將定制轉換為VHDL等具體的設計文件。除此之外,SOPC Builder還根據定制的結果,自動的生成針對特定硬件環境的C語言和匯編語言的頭文件以及函數庫,這在軟件設計中會極大的減少軟件開發人員的工作量。 1.2 軟件設計 軟件設計包括嵌入式操作系統的移植、網絡協議棧設計、應用級代碼編寫等部分,其中操作系統的移植、網絡協議棧設計的關鍵是軟件設計。下面就對這兩部分作簡單介紹。 (1)μC/OS操作系統移植 μC/OS操作系統是美國人Jean Labrosse于1992年開始編寫的,它是一種適合于小型、微控制器的可剝奪實時操作系統。ΜC/OS的內核除了沒有網絡協議棧之外,也沒有文件系統,但是本設計中的設備本身并不需要對采集數據按文件方式保存,因而使用μC/OS可以滿足需要。 ΜC/OS設計時就充分考慮到在不同平臺上移值的需求,將同平臺相關的部分局限在一個很小范圍內,對于不同的平臺只需對下面一些函數和宏進行重寫。 *OS_ENTER_CRITICAL和OS_ENTER_CRITICAL:這是兩個宏,用來進行臨界段保護。在本設計中使用匯編代碼關中斷來實現。 *OS_TASK_SW:這是一個用于進行任務切換的宏。本設計中利用CPU的軟件中斷方式實現。也就是說調用此宏產生軟件中斷,然后由相應的中斷處理程序來具體實現任務上下文保護和任務切換。 *OSIntCtxSw:實現中斷級任務切換,用純匯編實現。 *OSCtxSw:實現用戶級上下文切換,用純匯編實現。 *OSTickISR:為系統定時器中斷的處理函數,用純匯編實現。 *OSTaskStkInit:用來創建任務時,對任務堆棧進行初始化。 (2)網絡協議棧 本系統采用的是SOPC Builder中包含針對Nios的網絡協議棧,該棧以名為Plugs的函數庫的形式提供給設計者,該庫向軟件編寫都隱藏了低層硬件細節,以類似于unix套接字的方式實現了一個精簡的網絡協議棧。它支持以下一些網絡協議:IP、ARP、ICMP、UDP、TCP。 使用該庫在硬件上有四個要求:必須使用Nios CPU,需要20KB的代碼存儲空間,需要4KB的數據存儲空間,系統中需要有一個專供其使用的定時器。 2 結論 可以看出,采用Nios軟核CPU進行嵌入式Intenet系統硬件設計相當快速。由于SOPC Builder開發環境的完備功能,可以把注意力集中在系統整體構架和功能上來,而無需過多的考慮細節性的電路設計,同時還可以得到比較好的系統穩定性和可靠性。 基于Nios進行嵌入式Internet系統設計者兩個突出優點。首先,硬件設計的難度,縮短了硬件開發周期,提出了設計的可靠性。CPU本身是以軟核的方式實現,其功能可根據需要進行定制。其次,軟件開發容易。SOPC Builder不但在硬件設計上提供了支持,在軟件上也為設計者提供了較好的支持,提供了現成的網絡協議棧。 本文中的以太網遠程數據采集系統已經進行了初步的仿真試驗,能夠達到預期的效果,被證實是切實可行的。 | |
- 系統設計(21466)
相關推薦
基于Nios軟核的嵌入式Internet系統設計
![](https://skin.elecfans.com/images/2021-soft/eye.png)
2019備考[嵌入式系統設計師]之基礎知識 精選資料推薦
20個Nios Ⅱ的經典設計,提供軟硬件架構、流程、算法
Internet時代新的嵌入式操作系統
NIOS II 軟核性能標準
嵌入式Internet的接入方式比較
嵌入式Internet通信的安全怎么保障?
嵌入式系統中的軟外設是什么?
嵌入式系統原理與應用的相關資料分享
嵌入式系統和嵌入式電腦有什么區別?
嵌入式系統概述
嵌入式系統的發展歷史
嵌入式系統的定義
嵌入式系統的定義和組成是什么
嵌入式系統設計具有什么特點
嵌入式軟核Nios Ⅱ串口直接讀寫寄存器有哪些編程方法?
嵌入式軟核NiosⅡ中串口模塊怎么編程?
嵌入式操作系統怎么選擇?
嵌入式網絡接入怎么實現?
嵌入式語音信號錄取系統工作原理是什么?
嵌入式語音信號錄取系統有哪些技術指標?
ARM嵌入式系統的基本結構
Altera SOPC嵌入式系統設計教程
Cyclone II FPGA和Nios II嵌入式處理器的優勢
FPGA和Nios_軟核的語音識別系統的研究
Linux作為嵌入式操作系統的優勢是什么?如何建立嵌入式Linux?
NiosII系統SOPC解決方案有什么功能?
QuartusⅡ10.1中NIOS2軟核的構建方法
【下載】《FPGA上的嵌入式系統設計實例(附光盤XILINX大學合作計劃指定教材)》
什么是嵌入式系統?
什么是嵌入式系統?
關于嵌入式系統的基礎知識都總結在這里了
利用NIOS II系統點亮LCD1602屏及5.7寸LCD
單片機嵌入式Internet技術的Web應用實現
基于NIOS II 軟核處理器的SOPC 技術
基于Nios軟核的嵌入式Internet系統該怎么設計?
基于嵌入式系統硬件平臺的軟件PLC實現設計
基于ARM9的嵌入式Linux代碼該怎么移植?
基于DSP+ARM的雙核嵌入式系統通信接口設計
如何系統的學習嵌入式?
如何利用單片機嵌入式Internet技術實現Web應用?
如何學嵌入式ARM?重點核心學習點
怎么利用單片機接入Internet網絡?
怎么實現基于Nios軟核的嵌入式Internet系統設計?
怎么設計集軟核處理器的嵌入式設計平臺?
怎樣去設計一種基于AVR單片機多任務嵌入式Internet系統
新人求助,軟考的嵌入式系統設計師這個證怎么樣
有關嵌入式系統的基礎知識
求一種基于嵌入式系統和Internet的FPGA動態配置方案
用GPRS modem實現嵌入式Internet接入系統
請問一下遠程測控中嵌入式Web服務器的FPGA的實現方法
請問如何實現片上嵌入式Nios Ⅱ軟核六處理器系統的設計?
采用nios和μClinux實現嵌入式系統設計
基于Nios 軟核的嵌入式Internet系統設計
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于Nios 軟核的嵌入式Internet系統設計
![](https://skin.elecfans.com/images/2021-soft/load.png)
用GPRSmodem 實現嵌入式Internet 接入系統
![](https://skin.elecfans.com/images/2021-soft/load.png)
嵌入式Internet的實現技術與安全問題分析
![](https://skin.elecfans.com/images/2021-soft/load.png)
Nios II嵌入式設計包詳解
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A6/56/wKgZomUMPPmAelOaAAAO6GvZZK0815.jpg)
嵌入式Internet設計
![](https://skin.elecfans.com/images/2021-soft/load.png)
在Nios II平臺下搭建RTEMS嵌入式開發簡析
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A7/35/wKgZomUMQwOANiAQAAAOJ-MfTfk825.jpg)
評論