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

發(fā)布時(shí)間:2010-11-16 16:02    發(fā)布者:eetech
關(guān)鍵詞: internet , NIOS , 嵌入式 , 軟核
介紹如何在Altera開(kāi)發(fā)平臺上,使用Nios軟核CPU來(lái)構建嵌入式Internet系統;并結合以太網(wǎng)遠程數據采集系統的實(shí)例,介紹此類(lèi)系統硬件,軟件的設計方法。

自上個(gè)世紀末開(kāi)始的網(wǎng)絡(luò )化浪潮,在很多領(lǐng)域都引發(fā)了技術(shù)進(jìn)步和革新,嵌入式Internet便是嵌入式技術(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公司的Nios軟核嵌入式處理器是一種可特許的通用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,包括Nios軟核CPU、操作系統使用的定時(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í)可行的。
本文地址:http://selenalain.com/thread-39812-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页