国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA+DSP架構(gòu)的RapidIO總線的實(shí)現(xiàn)

2017-09-30 05:59范海峰葉兆陽(yáng)
船電技術(shù) 2017年9期
關(guān)鍵詞:門鈴寄存器嵌入式

范海峰,葉兆陽(yáng)

?

基于FPGA+DSP架構(gòu)的RapidIO總線的實(shí)現(xiàn)

范海峰,葉兆陽(yáng)

(南海艦隊(duì)自動(dòng)化站,廣東湛江 524002)

RapidIO傳輸效率高、系統(tǒng)成本低、系統(tǒng)穩(wěn)定性好,在高性能嵌入式系統(tǒng)中得到了廣泛的應(yīng)用。通過(guò)對(duì)RapidIO總線及其交換技術(shù)的深入研究,設(shè)計(jì)并實(shí)現(xiàn)了基于FPGA+DSP架構(gòu)的RapidIO總線協(xié)議,為不同應(yīng)用系統(tǒng)提供一個(gè)模塊化的功能單元,解決了大部分熟悉Avalon接口而不熟悉RapidIO接口的FPGA用戶的需求。在基于該架構(gòu)的設(shè)計(jì)中,F(xiàn)PGA的功能主要是通過(guò)SOPC系統(tǒng)實(shí)現(xiàn)RapidIO協(xié)議處理,以及提供必須的硬件接口;DSP主要實(shí)現(xiàn)RapidIO協(xié)議的控制,以及提供對(duì)用戶的邏輯接口。文章主要從軟件方面對(duì)RapidIO接口實(shí)現(xiàn)方案進(jìn)行了詳盡的闡述。最后搭建實(shí)驗(yàn)平臺(tái)對(duì)所實(shí)現(xiàn)的RapidIO總線進(jìn)行了連通性測(cè)試,證明了此種方案的可行性。

RapidIO 嵌入式互連 FPGA DSP

0 引言

目前嵌入式總線的總體發(fā)展趨勢(shì)是:串行接口取代并行接口,差分傳輸取代單端傳輸,點(diǎn)對(duì)點(diǎn)方式取代管道方式,交換結(jié)構(gòu)取代共享總線結(jié)構(gòu)[1]。在這種趨勢(shì)下,新的總線不斷推出,其中具有代表性的總線有:Hyper Transport[2]、PCI Express、InfiniBand、RapidIO等。各總線均有其優(yōu)點(diǎn)和不足,應(yīng)用在不同的實(shí)際應(yīng)用中。其中RapidIO總線的設(shè)計(jì)目標(biāo)是應(yīng)用于系統(tǒng)內(nèi)部互連[3]。RapidIO技術(shù)最初是由Motorola和Mereury Computer公司在90年代為適應(yīng)高速發(fā)展的嵌入式系統(tǒng)而共同研發(fā)的一項(xiàng)互連技術(shù)。經(jīng)過(guò)不斷地發(fā)展,RapidIO成為嵌入式互連技術(shù)方面唯一一個(gè)得到授權(quán)的標(biāo)準(zhǔn)。到目前為止,RapidIO己經(jīng)成為電信、通信行業(yè)以及高性能嵌入式系統(tǒng)中的芯片與芯片之間,板間、背板間互連技術(shù)的主要手段,幾乎所有的嵌入式系統(tǒng)芯片設(shè)備供應(yīng)商都加入了RapidIO行業(yè)協(xié)會(huì)[4]。針對(duì)機(jī)箱內(nèi)的內(nèi)部系統(tǒng)互連,RapidIO總線具有最優(yōu)的總線結(jié)構(gòu)。

1 RapidIO總線協(xié)議簡(jiǎn)介

RapidIO總線是一種新型嵌入式總線,具有傳輸效率高、系統(tǒng)成本低、系統(tǒng)穩(wěn)定性好等優(yōu)點(diǎn)。該總線采用交換結(jié)構(gòu),支持點(diǎn)到點(diǎn)或點(diǎn)到多點(diǎn)的串行傳輸,運(yùn)用8B/10B編碼將時(shí)鐘嵌入數(shù)據(jù)中,物理上采用LVDS信號(hào)[5]。這些特點(diǎn)為RapidIO總線的數(shù)據(jù)傳輸速率的提升提供了可靠保障。

RapidIO協(xié)議分為邏輯層、傳輸層、物理層,體系結(jié)構(gòu)[6]如圖1所示:

這種分層體系結(jié)構(gòu)使得系統(tǒng)具有良好的靈活性、擴(kuò)展性和模塊化能力。

邏輯層位于協(xié)議的最高層,提供用戶接口的相關(guān)規(guī)范。主要由五大規(guī)范組成,包括I/O邏輯操作協(xié)議、消息傳遞協(xié)議、全局共享存儲(chǔ)協(xié)議、流量控制協(xié)議以及數(shù)據(jù)流協(xié)議。

傳輸層位于協(xié)議的中間層,兼容不同的邏輯層和物理層應(yīng)用,為不同的系統(tǒng)提供相同的或可共存的包格式來(lái)傳輸數(shù)據(jù)。

物理層位于協(xié)議的最底層,定義了兩種物理層器件級(jí)接口標(biāo)準(zhǔn):8/16并行LVDS協(xié)議和1x/4x串行協(xié)議。兩種協(xié)議具有相同的編程模型、事務(wù)處理和尋址機(jī)制。8/16并行LVDS協(xié)議主要用于緊耦合系統(tǒng)內(nèi)部互聯(lián),支持的工作頻率為250MHz、500MHz、750MHz及1GHz,傳輸性能可從1Gbps到 64Gbps。1x/4x串行接口則適合于長(zhǎng)距離傳輸、引腳數(shù)目有限且對(duì)延遲要求不高的應(yīng)用,支持1.25G、2.5G、3.125G、5G、6.25G等5種波特率,傳輸性能可從1Gbps到20Gbps[7]。

2 RapidIO接口模塊設(shè)計(jì)

RapidIO接口模塊實(shí)現(xiàn)對(duì)用戶數(shù)據(jù)的透明傳輸。針對(duì)基于FPGA+DSP結(jié)構(gòu)的系統(tǒng),用戶數(shù)據(jù)、命令通過(guò)RapidIO接口模塊,由Avalon總線標(biāo)準(zhǔn)轉(zhuǎn)換為RapidIO總線標(biāo)準(zhǔn)發(fā)送出去;同時(shí)接收其他處理單元的數(shù)據(jù)、命令,并通過(guò)RapidIO接口模塊將其轉(zhuǎn)化為Avalon總線標(biāo)準(zhǔn),然后送給用戶邏輯進(jìn)行處理。對(duì)用戶而言,無(wú)需了解RapidIO交互細(xì)節(jié),可基于Avalon總線甚至自定義新的協(xié)議來(lái)實(shí)現(xiàn)使用RapidIO接口的系統(tǒng),大大提高了靈活性,也可減少開發(fā)者重復(fù)開發(fā)。

RapidIO接口模塊實(shí)現(xiàn)方案如圖2所示。

用戶邏輯不直接與RapidIO總線進(jìn)行數(shù)據(jù)的交互,而是增加兩套相互獨(dú)立的數(shù)據(jù)緩存空間,對(duì)需要發(fā)送和接收的數(shù)據(jù)先解耦,然后發(fā)送出去或者返回給用戶,這樣便滿足同時(shí)進(jìn)行數(shù)據(jù)接收和發(fā)送的要求。

在發(fā)送數(shù)據(jù)時(shí),RapidIO接口模塊將接收到的一組數(shù)據(jù)數(shù)據(jù)寫入緩存,然后發(fā)起一次直接存儲(chǔ)器訪問(DMA),查詢DMA狀態(tài),完成后發(fā)送一個(gè)門鈴中斷給目標(biāo)RapidIO接口模塊,提示其取數(shù)據(jù)。相反,在接收數(shù)據(jù)時(shí),RapidIO接口模塊接收到門鈴中斷后,讀命令空間和數(shù)據(jù)緩存空間,得到需要處理的命令信息、狀態(tài)信息和數(shù)據(jù)。

這樣相對(duì)用戶來(lái)說(shuō),可以直接使用DSP來(lái)進(jìn)行用戶數(shù)據(jù)傳輸邏輯的靈活定義,而不必關(guān)心RapidIO底層的實(shí)現(xiàn)。且對(duì)大多數(shù)的嵌入式系統(tǒng)來(lái)說(shuō),特別是數(shù)字信號(hào)處理系統(tǒng),使用DSP+FPGA的硬件結(jié)構(gòu)是非常流行的。

3 RapidIO接口模塊的實(shí)現(xiàn)

處理單元采用DSP+FPGA架構(gòu),DSP芯片選用TI公司的TMS320C6000系列芯片。FPGA選用Altera公司的StratixⅡ GX系列芯片。FPGA實(shí)現(xiàn)RapidIO總線協(xié)議,DSP提供用戶邏輯接口,并實(shí)現(xiàn)對(duì)RapidIO總線中各寄存器的管理。

軟件主要采用VHDL語(yǔ)言和C++語(yǔ)言進(jìn)行編程實(shí)現(xiàn)。在軟件設(shè)計(jì)中,采用面向過(guò)程的、自頂向下分解和構(gòu)成層次;以功能實(shí)現(xiàn)為單元,由底向上構(gòu)造和組合模塊,以實(shí)現(xiàn)層次化和模塊化的結(jié)構(gòu)設(shè)計(jì)。

RapidIO接口模塊中FPGA軟件設(shè)計(jì)核心是利用Quartus已有的IP核實(shí)現(xiàn)RapidIO協(xié)議[8],利用SOPC(可編程片上系統(tǒng))編程將DMA和RAM等資源有機(jī)地結(jié)合在一起,實(shí)現(xiàn)RapidIO接口,此外還提供接口轉(zhuǎn)換時(shí)序邏輯為DSP管理RapidIO軟件核提供通路。

SOPC系統(tǒng)的搭建主要就是在SOPC Builder中添加相關(guān)組件并按照一定的邏輯關(guān)系將各組件連接好,形成一個(gè)有獨(dú)立功能的系統(tǒng)。在SOPC編輯界面中,加入RapidIO組件,DMA組件、片內(nèi)存儲(chǔ)器、DSP_IO模塊。各個(gè)SOPC中提供的組件,均提供Avalon-MM總線的標(biāo)準(zhǔn)接口。按照邏輯關(guān)系將各組件連接起來(lái)如圖3所示。

圖3 SOPC編程結(jié)構(gòu)

RapidIO核[9]參數(shù)配置界面如圖4所示,按向?qū)瓿蓞f(xié)議各個(gè)層次的參數(shù)配置。

設(shè)置DMA參數(shù)最大突發(fā)傳輸大小為128個(gè)單元,對(duì)發(fā)送的數(shù)據(jù)和命令分別用不同的存儲(chǔ)器和DMA,這樣區(qū)分?jǐn)?shù)據(jù)的類別,便于管理。對(duì)接收存儲(chǔ)器不使用DMA,因?yàn)榭梢酝ㄟ^(guò)門鈴標(biāo)志判斷數(shù)據(jù)的傳送狀態(tài),實(shí)時(shí)接收數(shù)據(jù)。

加入片內(nèi)存儲(chǔ)器,設(shè)置存儲(chǔ)深度設(shè)為128字節(jié)。存儲(chǔ)器將命令和數(shù)據(jù)分開,發(fā)送和接收分開,形成四個(gè)獨(dú)立的存儲(chǔ)器,這樣更便于管理和提高效率。

圖4 RapidIO的IP核參數(shù)設(shè)置

DSP_IO模塊是一個(gè)自定義模塊。DSP與FPGA通信使用EMIF接口,而SOPC組件并不提供對(duì)系統(tǒng)外部的Avalon-MM接口,因此需要建立一個(gè)內(nèi)部Avalon-MM接口到外部EMIF接口的轉(zhuǎn)換器,實(shí)現(xiàn)DSP與SOPC內(nèi)部組件的通信。在SOPC編程界面中,可以自定義DSP_IO模塊,根據(jù)Avalon-MM接口時(shí)序和EMIF接口時(shí)序,可以方便地設(shè)計(jì)出DSP_IO模塊的信號(hào)時(shí)序。根據(jù)時(shí)序配置相應(yīng)參數(shù)即可。

DSP主要完成控制功能,包括初始化、復(fù)位、數(shù)據(jù)的發(fā)送接收等。

RapidIO初始化軟件流程如圖5所示。

1)主機(jī)開機(jī)或者接收到初始化命令,開始初始化。

2)系統(tǒng)首先對(duì)GXB powerdown產(chǎn)生一個(gè)下降沿信號(hào),再對(duì)SOPC reset產(chǎn)生一個(gè)上升沿信號(hào)。

3)判斷讀RapidIO核的端口0的錯(cuò)誤狀態(tài)寄存器和命令狀態(tài)寄存器(CSR),開始端口初始化。若正常則進(jìn)行寄存器配置,若錯(cuò)誤跳轉(zhuǎn)到(1)。

4)設(shè)置器件ID寄存器,設(shè)置Base Device ID寄存器。將Port General Control CSR 寄存器中的ENA區(qū)域置1。設(shè)置發(fā)出維護(hù)請(qǐng)求包的目的地址,置Tx Maintenance Window 0 Control 寄存器的目的ID區(qū)域。設(shè)置全局地址適配窗口,將Tx Maintenance Window 0 Mask寄存器的第二位WEN區(qū)域?qū)?。

5)初始化完成。

RapidIO接口數(shù)據(jù)和命令發(fā)送軟件流程如圖6所示。

1)用戶有命令或數(shù)據(jù)發(fā)送時(shí),先將命令或數(shù)據(jù)寫入指定的存儲(chǔ)器。實(shí)現(xiàn)用戶與RapidIO之間數(shù)據(jù)的解耦。

2)讀DMA控制寄存器,判斷上次DMA傳輸是否完成,若未完成,則返回發(fā)送失敗。DMA未完成不能進(jìn)行新的數(shù)據(jù)的寫入,會(huì)導(dǎo)致兩次數(shù)據(jù)的沖突。若完成,則啟動(dòng)DMA寄存器配置。

3)配置DMA寄存器,包括讀地址、寫地址和長(zhǎng)度。

4)啟動(dòng)DMA。

5)讀門鈴發(fā)送寄存器狀態(tài),如果發(fā)寄存器滿,則返回發(fā)送失敗。不能寫入門鈴,將無(wú)法通知目標(biāo)接口進(jìn)行數(shù)據(jù)的接收。如果發(fā)寄存器未滿,則發(fā)送門鈴。

6)寫門鈴控制寄存器。門鈴中包含信息類型、信息長(zhǎng)度以及信息發(fā)送方ID等信息。門鈴是接收方接收數(shù)據(jù)的唯一標(biāo)志。發(fā)送完成后等到下一次數(shù)據(jù)的發(fā)送。

DSP接收數(shù)據(jù)或者命令過(guò)程很簡(jiǎn)單,在收到門鈴中斷后,讀取接收存儲(chǔ)器中的數(shù)據(jù)或命令即可,不再贅述。

DSP需要完成普通數(shù)據(jù)、命令數(shù)據(jù)的發(fā)送和接收,DMA的控制,門鈴的發(fā)送和解析等功能。在DSP中,可以使用不同的地址空間來(lái)區(qū)分這些功能[10]。此外,根據(jù)功能的不同,將地址空間分為若干塊,不同的功能使用不同的地址空間可以使得程序結(jié)構(gòu)清晰,邏輯簡(jiǎn)單,運(yùn)行效率高。根據(jù)實(shí)際的需要,可將地址空間分為SOPC 組件,門鈴事物,本地維護(hù)等四大塊地址空間。而SOPC組件地址空間還可進(jìn)一步細(xì)分。需要注意的是,地址空間的分配需要有預(yù)留,方便以后功能的擴(kuò)展。

4 RapidIO接口模塊的互聯(lián)實(shí)驗(yàn)

本實(shí)驗(yàn)平臺(tái)由2個(gè)處理單元構(gòu)成。DSP仿真器使用Wintech TDS560USB PLUS,F(xiàn)PGA仿真器使用Altera V10.0。

手動(dòng)門鈴?fù)窚y(cè)試。這樣一方面測(cè)試了RapidIO通路的連通性,也測(cè)試了DSP與FPGA之間的交互性。門鈴信息由到達(dá)RapidIO接收單元后,接收單元的DSP會(huì)將其讀出并存于特定存儲(chǔ)單元,通過(guò)CCS軟件,可在PC上顯示。門鈴發(fā)送和接收顯示的地址為0x80020100和0x80020104兩個(gè)地址單元。處理單元的ID分別設(shè)為1和2。門鈴信息空間高16位為ID信息,低16位為門鈴內(nèi)容信息。

1號(hào)單元向2號(hào)單元發(fā)送門鈴信息為a,結(jié)果如圖7所示。

兩個(gè)單元之間門鈴信息發(fā)送和接收的ID信息指示及門鈴內(nèi)容均正常,交互正常。系統(tǒng)門鈴?fù)氛!R沧C明RapidIO連通性正常。

5 結(jié)束語(yǔ)

RapidIO總線技術(shù)是一種較為成熟的下一代嵌入式總線技術(shù),具有諸多優(yōu)點(diǎn)。本文首先對(duì)RapidIO總線協(xié)議進(jìn)行了闡述,重點(diǎn)說(shuō)明了RapidIO總線的特點(diǎn)。針對(duì)熟悉Avalon總線,而對(duì)RapidIO總線較為陌生的用戶,對(duì)FPGA+DSP這類典型嵌入式應(yīng)用系統(tǒng)中RapidIO接口的設(shè)計(jì)作了詳盡的闡述,并給出相應(yīng)的FPGA和DSP軟件的設(shè)計(jì)和實(shí)現(xiàn),為該類用戶提供了一種簡(jiǎn)單可行的解決方案。最后對(duì)實(shí)現(xiàn)的RapidIO接口進(jìn)行了連通性測(cè)試。

[1] 李少龍,高俊,婁景藝.基于SRIO總線的數(shù)字信號(hào)處理系統(tǒng)的實(shí)現(xiàn) [J].通信技術(shù),2012,(5):101-103.

[2] 裘嶸,郭御風(fēng),江亂,等. 新型高性能互連技術(shù)HyperTransport研究[J]. 計(jì)算機(jī)應(yīng)用研究,2004,(5):258-259.

[3] 李瓊,郭御風(fēng).I/O互聯(lián)技術(shù)及體系結(jié)構(gòu)的研究與發(fā)展[J] .計(jì)算機(jī)工程, 2006,32(12):93-95.

[4] Wu Changrui, Cen Fan, CaiHuizhi.A High-performance heterogeneous embedded Signal processing system based on serial rapidIOinterconnecTIon [J].InsTItute of AcousTIcs, Chinese Academy of Sciences, Beijing,2010,28(1):611-612.

[5] Altera CorporaTIon.LVDS SERDES Transmitter / Receiver (ALTLVDS_TX andALTLVDS_RX) MegafuncTIon [EB/OL].101 InnovaTIonDriveSan Jose, CA 95134,2012.

[6] Fuller S.RapidIO the embedded system interconnect[M].NewYork:John Wiley & Sons,Inc,2005.

[7] 王運(yùn)盛,王堅(jiān),周紅.基于RapidIO的TIPC通信軟件設(shè)計(jì)[J] .電訊技術(shù),2012,(12):1980.

[8] 吳海燕.基于RapidIO總線的信號(hào)處理平臺(tái)設(shè)計(jì)[D].成都:電子科技大學(xué), 2006.

[9] Altera CorporaTIon.? RapidIOmegacore function user guide [EB/OL].101 InnovaTIonDriveSan Jose, CA 95134, 2009.

[10] 廖娜.DSP應(yīng)用技術(shù)綜述[J].IT技術(shù)論壇,2008, (32):78.

Implement of RapidIO Protocol Based on FPGA+DSP

Fan Haifeng,Ye Zhaoyang

(PLA South China Sea Fleet, Zhanjiang 524002, Guangdong, China)

TP393

A

1003-4862(2017)09-0051-05

2017-06-15

范海峰(1977-),男,高級(jí)工程師。研究方向:計(jì)算機(jī)嵌入式系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)。

猜你喜歡
門鈴寄存器嵌入式
STM32和51單片機(jī)寄存器映射原理異同分析
Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
錘子門鈴
搭建基于Qt的嵌入式開發(fā)平臺(tái)
門鈴前的守候
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
倍福 CX8091嵌入式控制器
高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
一種可重構(gòu)線性反饋移位寄存器設(shè)計(jì)
四子王旗| 陵水| 内江市| 独山县| 韶山市| 阜城县| 开江县| 万荣县| 仁怀市| 阿拉尔市| 金湖县| 孝昌县| 蒲江县| 子长县| 隆德县| 永顺县| 九寨沟县| 斗六市| 彝良县| 仪陇县| 辰溪县| 阜南县| 元氏县| 乡城县| 淮安市| 陇南市| 大余县| 澄江县| 永兴县| 满城县| 涪陵区| 宝清县| 柯坪县| 永泰县| 蒙山县| 雷山县| 武乡县| 泰宁县| 集贤县| 松阳县| 苏尼特左旗|