《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 1553B總線(xiàn)網(wǎng)絡(luò)存儲(chǔ)器設(shè)計(jì)方案
1553B總線(xiàn)網(wǎng)絡(luò)存儲(chǔ)器設(shè)計(jì)方案
摘要: 本文設(shè)計(jì)了1553B總線(xiàn)上的網(wǎng)絡(luò)存儲(chǔ)器,。整個(gè)系統(tǒng)基于NIOS II內(nèi)核設(shè)計(jì),,利用SoPC技術(shù)將接口部分的邏輯控制全部集成于FPGA片內(nèi),,系統(tǒng)的存儲(chǔ)量、結(jié)點(diǎn)數(shù)量均可擴(kuò)展,。
Abstract:
Key words :

本文設(shè)計(jì)了1553B總線(xiàn)上的網(wǎng)絡(luò)存儲(chǔ)器。整個(gè)系統(tǒng)基于NIOS II內(nèi)核設(shè)計(jì),,利用SoPC技術(shù)將接口部分的邏輯控制全部集成于FPGA片內(nèi),,系統(tǒng)的存儲(chǔ)量、結(jié)點(diǎn)數(shù)量均可擴(kuò)展,。

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

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

  系統(tǒng)總體方案

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

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

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

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

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

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

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

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

  System_ID:下載時(shí)系統(tǒng)認(rèn)證時(shí)使用。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  irqnumber信號(hào):狀態(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()

  其余定制組件的步驟不再贅述。將組件通過(guò)SoPC定義完成后,,命名為1553B,,添加至NIOS II內(nèi)核中。FPGA內(nèi)部的工作流程如圖3所示,。

 

FPGA內(nèi)部工作流程
圖3 FPGA內(nèi)部工作流程

  系統(tǒng)平時(shí)處于待機(jī)狀態(tài),,當(dāng)命令幀到來(lái)時(shí)會(huì)引起中斷,中斷子程即通過(guò)altera_avalon_1553B_getframe()解讀命令幀的內(nèi)容,,確定是讀取還是寫(xiě)入,,讀取或?qū)懭霐?shù)據(jù)的長(zhǎng)度,數(shù)據(jù)的特征作為下次讀取的標(biāo)志,,確實(shí)無(wú)誤后,,開(kāi)始讀取或?qū)懭搿?/p>

  存儲(chǔ)器的管理與其他應(yīng)用中不同的有兩點(diǎn):在每次寫(xiě)入后,必須將寫(xiě)入的數(shù)據(jù)作一個(gè)標(biāo)志,,以方便以后讀取;另外,,還要計(jì)算剩余存儲(chǔ)的容量,在下一次需要寫(xiě)入數(shù)據(jù)時(shí)判斷是否可以容納下本次存儲(chǔ),。1553B的主結(jié)點(diǎn)在使用完畢數(shù)據(jù)后也需要提供信號(hào)來(lái)清空存儲(chǔ)以釋放資源,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。