<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 1553B總線網(wǎng)絡(luò)存儲器設(shè)計方案

          1553B總線網(wǎng)絡(luò)存儲器設(shè)計方案

          作者: 時間:2011-08-22 來源:網(wǎng)絡(luò) 收藏

          本文上的。整個系統(tǒng)基于NIOS II內(nèi)核,利用SoPC技術(shù)將接口部分的邏輯控制全部集成于FPGA片內(nèi),系統(tǒng)的存儲量、結(jié)點數(shù)量均可擴展。

          本文引用地址:http://www.ex-cimer.com/article/155874.htm

            20世紀(jì)70年代誕生的,是一種主從式多余度,對總線硬件有嚴(yán)格的規(guī)定,可靠性和實時性好,已經(jīng)成為當(dāng)今軍用電子總線的首選。類似于以太網(wǎng),組網(wǎng)中也有“硬盤”這樣的存儲需求,來減輕本地的存儲壓力,并可作為數(shù)據(jù)中繼供其他部分甚至其他組網(wǎng)使用。

            Nios II嵌入式處理器是Altera公司于2004年6月推出的第二代用于可編程邏輯器件的可配置的軟核處理器,性能超過200 DMIPS。Nios II是基于哈佛結(jié)構(gòu)的RISC通用嵌入式處理器軟核,能與用戶邏輯相結(jié)合,編程至Altera的FPGA中。處理器具有32位指令集,32位數(shù)據(jù)通道和可配置的指令以及數(shù)據(jù)緩沖。它特別為可編程邏輯進行了優(yōu)化,也為可編程單芯片系統(tǒng)(SoPC)設(shè)計了一套綜合解決。

            系統(tǒng)總體

            本系統(tǒng)的主要功能為接收1553B發(fā)來的命令、數(shù)據(jù),管理后級,提供一個訪問的網(wǎng)絡(luò)接口。系統(tǒng)的存儲器接口作為1553B總線中的從結(jié)點,平時處于待機狀態(tài),當(dāng)總線上有讀寫命令發(fā)來時,總線轉(zhuǎn)換接口根據(jù)命令從后級存儲器讀取數(shù)據(jù)或向其寫入數(shù)據(jù)。對于總線協(xié)議,最方便的是使用現(xiàn)成的協(xié)議芯片,但這樣做的成本非常高,1553B協(xié)議芯片的單片價格在6000元以上,這對于普通應(yīng)用來說是一個不小的負擔(dān),如果能使用FPGA進行協(xié)議管理,將使成本大大降低,另外,Quartus內(nèi)包含有很多存儲器管理的IP核可供使用,對于1553B的協(xié)議則需要自行定制組件。

            系統(tǒng)程序為兩部分,一部分為接受網(wǎng)絡(luò)命令及數(shù)據(jù),另一部分為存儲器的讀寫。在NIOS IDE環(huán)境中,使用C語言作為編程語言。

            系統(tǒng)硬件設(shè)計

            系統(tǒng)的硬件模塊框圖見圖1所示。

          1553B總線網(wǎng)絡(luò)存儲器系統(tǒng)硬件框圖
          圖1 系統(tǒng)硬件結(jié)構(gòu)框圖

            系統(tǒng)的核心芯片采用Altera公司的CYCLONE III系列FPGA EP3C25F324。它采用了65nm低功耗工藝技術(shù)進行生產(chǎn),其集成度及性能有了明顯地提高,但功耗卻非常低,加上CYCLONE系列一直定位于低成本器件,芯片整體的性價比很高。

            通過Quartus II 7.2集成的SOPC軟件向FPGA內(nèi)部移植Nios II內(nèi)核,所需組件如下。

            CPU:選用標(biāo)準(zhǔn)型CPU核,Debugger為Level 1,在滿足需求的情況下盡量節(jié)約片內(nèi)資源的使用。

            System_ID:下載時系統(tǒng)認證時使用。

            Jtag_uart:FPGA與PC的通信接口,NIOS IDE軟件中使用會很方便。

            onchip_memory:片內(nèi)存儲器,中轉(zhuǎn)數(shù)據(jù)時使用。

            FLASH:Quartus軟件內(nèi)部集成有Intel公司生產(chǎn)的128P308的控制組件,便于開發(fā),若需要更大量的存儲,加大FLASH容量即可,如果有需要,可多掛幾片。

            FLASH_Bus:FLASH的數(shù)據(jù)是三態(tài)的,需要在CPU和FLASH之間加入Avalon三態(tài)總線橋。

            1553B接口組件:與外部1553B總線通信的接口,Quartus軟件內(nèi)部未集成有該組件,需要自行開發(fā)。

            在1553B的網(wǎng)絡(luò)上,本系統(tǒng)是作為從結(jié)點設(shè)計的。在系統(tǒng)內(nèi)部,1553B的接口組件需要作為Alavon總線上的主端口,其余存儲器控制模塊作為從端口。由于其余的端口在Quartus軟件內(nèi)部均有集成,所以,系統(tǒng)軟件設(shè)計的主要工作量就是1553B接口的組件開發(fā)。

            存儲芯片采用Intel公司生產(chǎn)的128P308的FLASH芯片,符合通用接口標(biāo)準(zhǔn),便于后續(xù)功能容量的更新升級。

            系統(tǒng)軟件設(shè)計

            定制1553B組件的核心任務(wù)就是將1553B的總線信號轉(zhuǎn)換到NIOS II內(nèi)部的Avalon總線上。

            1553B組件作為Avalon總線上的主端口,選用的信號有clk、address、read、write、data、irq、reset、irqnumber等。傳輸方式為基本的主端口讀傳輸和寫傳輸。產(chǎn)生這些信號就需要從1553B總線上讀取的幀信號來實現(xiàn)。1553B總線上共有三種幀,命令幀、狀態(tài)幀和數(shù)據(jù)幀。這三種幀的結(jié)構(gòu)如圖2所示。

          1553B總線的三種幀結(jié)構(gòu)
          圖2 1553B總線的三種幀結(jié)構(gòu)

            對于這三種幀,命令幀、數(shù)據(jù)幀和狀態(tài)幀可以使用同一個緩存,因為作為存儲的從結(jié)點不會主動向主結(jié)點發(fā)送數(shù)據(jù),整個工作都是被動接收主結(jié)點的命令,等待主結(jié)點讀取或?qū)懭霐?shù)據(jù),系統(tǒng)只有單一的狀態(tài),不會出現(xiàn)沖突。

          對于Avalon總線中的信號,對應(yīng)于幀內(nèi)信號關(guān)系如下。

            read/write信號:命令幀內(nèi)的發(fā)送/接收位。

            address信號:命令幀內(nèi)的子地址以及數(shù)據(jù)長度位。

            data信號:數(shù)據(jù)幀內(nèi)的數(shù)據(jù)位。

            irq信號:狀態(tài)幀內(nèi)的標(biāo)志位引起。

            irqnumber信號:狀態(tài)幀內(nèi)的具體位置。

            1553B組件的API函數(shù)包括有:

            altera_avalon_1553B_init()

            altera_avalon_1553B_enable()

            altera_avalon_1553B_disable()

            altera_avalon_1553B_getframe()

            altera_avalon_1553B_sendframe()

            其余定制組件的步驟不再贅述。將組件通過SoPC定義完成后,命名為1553B,添加至NIOS II內(nèi)核中。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();