?

基于TMS320C6678的SRIO接口設計

2017-05-18 08:51刁丹丹王曉東
電子科技 2017年5期
關鍵詞:寄存器信號處理數據包

刁丹丹,王曉東

(1.中國電子科技集團公司第27研究所 測控雷達部,河南 鄭州 450047;2.中國人民解放軍防空兵學院 導彈系,河南 鄭州 450052)

基于TMS320C6678的SRIO接口設計

刁丹丹1,王曉東2

(1.中國電子科技集團公司第27研究所 測控雷達部,河南 鄭州 450047;2.中國人民解放軍防空兵學院 導彈系,河南 鄭州 450052)

針對如何在DSP+FPGA架構的信號處理平臺實現片間大量數據實時、高速傳輸的問題,文中提出了基于TMC320C6678的SRIO(Serial Rapid IO)接口設計。通過在DSP上配置豐富的SRIO參數接口,在無需停止SRIO的情況下,實現DSP與FPGA間任意長度、大小的數據傳輸。通過實際工程驗證,該設計有效實現了DSP與FPGA片間大量數據實時、高效、靈活的傳輸。

TMS320C6678;SRIO;FPGA

如何在目前通用的DSP+FPGA架構的信號處理平臺上,實現板間及芯片間海量數據的實時性高速傳輸,成為目前研究方向。

TMS320C6678是TI公司推出的一款單片多核芯片,在具有高速運算能力的同時集成了多種對外數據交換接口,其中高速串行接口SRIO(Serial Rapid I/O)傳輸速率可達3.125 GHz,遠高于普通數據總線的傳輸速度,如果采用SRIO作為DSP與FPGA之間的數據傳輸接口可大幅提高兩者之間的數據吞吐量,提高設備的運算效率和實時性,一定程度上滿足DSP與FPGA間的海量數據實時傳輸需求。本文基于某DSP+FPGA雷達信號處理平臺,研究了DSP與FPGA間的SRIO通信設計[1-4],實現了大量數據實時、高效、靈活地傳輸,并成功應用于某型研制雷達項目中。

1 SRIO

Rapid I/O協議采取物理層、傳輸層和邏輯層3層分級的體系結構[5]。邏輯層位于3層協議的最高層,定義了所有協議和包格式,其主要功能是對協議進行處理以及將事務進行匹配;傳輸層協議定義了包交換的路由及其尋址機制;物理層描述了設備之間的物理接口協議,例如包緩沖機制、隊列管理、鏈路錯誤檢測及錯誤管理等。

圖1 RapidIO規范層次結構

SRIO是Serial Rapid I/O的縮寫,是在Rapid I/O物理層采用串行結構。SRIO是基于請求和響應事務進行數據交換的,同時也是基于包交換的傳輸模式。

一次完整的數據傳輸過程首先由發起器件(Intiator)產生一個請求事務,然后將事務發送至目標器件(Target),最后目標器件產生一個響應事務并回傳給發起器件,從而完成一個完整的傳輸過程,其流程如圖2所示。

圖2 SRIO傳輸流程圖

包(Packet)是SRIO的基本通信單元,協議中定義了兩種類型的包,分別是數據包和控制符號。數據包格式分別由代表3層協議規范結構的多個字段構成,所有包均以物理層字段開始,緊接著是傳輸層和邏輯層。其中包括了3層協議中的所有頭部信息、有效數據以及CRC校驗位等,一般包頭的長度可以是十幾到二十幾Byte。每包的負載數據長度不超過256 Byte[5]。圖3顯示了典型的請求和響應包格式。

圖3 SRIO數據包字段組成

2 C6678端的SRIO設計

C6678的SRIO操作支持多種模式,包括Direct I/O、Message、Maintenance和Doorbell[5],在本文的設計中采用Direct I/O和 Doorbell兩種模式。在Direct I/O模式下,C6678作為發起器件將發起器件ID、目標器件ID、發送的目的地址和源地址等信息插入數據包的頭文件中,目標器件解析包頭得到的相應地址空間,通過DMA將數據寫入相應的地址空間。Doorbell模式主要用于傳輸完成后的通知以及傳輸的同步。

C6678提供了8組LSU( Load/Store Unit)用于SRIO數據事務的處理,同時,DSP提供了8組(LSU0-7)寄存器用于配置SRIO數據的發送和接收。每組LSUx寄存器由7個32 bit寄存器組成,通過配置這7個寄存器,C6678可以設定發送的目的地址、源地址以及發起器件ID和目標器件ID等。寄存器0~5包含用戶配置的信息,即控制信息,寄存器6包含一些狀態信息,反映了LSU寄存器的工作狀態,LSU寄存器的說明如圖4所示。

圖4 Rapid IO LSU寄存器配置說明

C6678同時還提供了MAU(Memory Access Unit)控制單元,在Direct I/O模式下SRIO的傳輸中主要用于識別相應的device ID,只有ID配對成功,數據才可以按照要求傳遞到指定地址。

SRIO傳輸模式的多樣性在數據傳輸靈活性設計中也起到關鍵作用。C6678集成的標準1X/4X Rapid I/O接口,最多可支持4個端口,16根差分線同時工作。根據設計需要通過PLM Port(n) Path Control Register (PLM_SP(n)_PATH_CTL)配置成相應的模式。

對圖4中的寄存器0~5進行配置,配置后的值自動加入到包中,實現SRIO對數據包的讀寫操作和門鈴操作。首先SRIO進行初始化,包括使能端口,配置端口工作模式,配置和使能PLL模塊、配置和使能LSU控制單元和MAU控制單元、傳輸通道參數(包括:設備ID、數據包長度(length)、大小(size)及傳輸速率)、配置和使能中斷。查詢鏈路是否連接成功,若未連接成功,則重新初始化SRIO端口,直至鏈路連接成功,成功連接后,則可進行讀操作和門鈴操作。

通過寫操作FPGA一次向DSP的共享存儲區內寫入長度為2×length個包,每個數據包發送完成后,FPGA同時會向DSP發送一個Doorbell包, DSP觸發DOOEBELL[0]_ICSR中的第1位產生一個中斷請求。當FPGA寫完length個包時,DSP根據doorbell info計數,通過讀操作開始讀取數據,同時,SRIO繼續寫下一個length的數據,如此便配置成乒乓機制,保證DSP在處理數據時SRIO仍可繼續工作,傳輸數據和處理數據的最大效率。同時,DSP每次會在第length-1個包時對數據參數進行修改,FPGA則在第length個包根據參數修改下次發送的數據長度和大小并執行,實現DSP與FPGA間海量數據靈活傳輸。

3 FPAG端的SRIO設計

RapidIO的三層協議通過Xilinx公司提供的RapidIO IP核來實現,RapidIO IP核為用戶生成了SRIO的時鐘管理、復位控制以及封裝好的邏輯層用戶接口,用戶只需根據設計要求選擇適合的接口類型?;贗P核設計的用戶接口邏輯的主要功能是將FPGA內部數據流按照SRIO IP核的接口時序要求形成發送數據,并通過兩級寫FIFO組成數據包[6]。

FPGA通過SRIO傳輸數據時,首先使能鏈路初始化信號,將FIFO阻塞信號拉低,在SRIO的ireq接口時序srio_ireq中的數據有效標志位txIniDv和數據長度有效信號txLenEn使能后,用戶接口user_interface開始緩存待發送數據。同時,IP核接口在等待ireq_tvalid信號的使能后,開始發送IP核接口數據。

4 測試結果

基于某雷達信號處理平臺, C6678配置SRIO端口工作模式為1×4x,單個數據包大小為64×400 bit,一次發送數據為20個數據包。通過Chipscope工具觀測到SRIO傳輸狀態如圖5所示。

圖5 Chipscope觀測SRIO傳輸狀態

在CCS5.2 Memory Rendering Brower觀測C6678通過SRIO讀取的數據,用Graph繪制成圖,如圖 6所示。

圖6 CCS觀測讀取的數據

5 結束語

本文設計的基于TMS320C6678的SRIO接口設計,高效實現了DSP與FPGA間實時大數據傳輸;配置了豐富的參數接口,可依據設計需要,在不停止SRIO接口的情況下,在任意時刻配置傳輸數據的長度及大小,大幅提高了基于DSP+FPGA架構的雷達信息處理平臺數據傳輸的靈活性,簡單易操作。該設計成功應用于某雷達項目,獲得了用戶的認可。

[1] 李國平.基于多核DSP的雷達信號處理板研制[D].南京:南京航空航天大學,2012.

[2] 俞健,周維超,劉坤.DSP與FPGA的SRIO互連設計 [J].光電技術應用,2012,33(6):902-905.

[3] 姜宏旭,劉亭杉,李輝勇,等.FPGA+DSP異構視頻處理系統中基于SRIO的數據高效傳輸方法[J].計算機學報,2015,38(6):1119-1130.

[4] 李波. TMS320C6455高速串行接口SRIO的設計與實現[D].成都:電子科技大學,2014.

[5] SPRUGW.KeyStone architecture serial rapid IO user guide[M].USA:Texas Instruments,2011.

[6] 張強.串行RapidIO互連系統的設計與實現[D].南京:南京理工大學,2013.

Design of SRIO Interface Based on TMC320C6678

DIAO Dandan1,WANG Xiaodong2

(1. Department of Measurement and Control Radar, 27th Research Institute of CETC, Zhengzhou 450047, China;2. Department of Missile, Air Defense Forces College of China PLA, Zhengzhou 450052, China)

An SRIO interface design based on the TMC320C6678 is proposed for real-time high speed transmission of large number of data between chips. The design of data transmission with arbitrary length is implemented by configuring rich interfaces on DSP without stopping running SRIO. Practical engineering verifies that real-time, efficient, and flexible transmission is implemented between the DSP and FPGA.

TMS320C6678; SRIO; FPGA

2016- 06- 13

刁丹丹(1984-),女,碩士,工程師。研究方向:雷達信號處理及數據處理。

10.16180/j.cnki.issn1007-7820.2017.05.030

TN911

A

1007-7820(2017)05-110-03

猜你喜歡
寄存器信號處理數據包
二維隱蔽時間信道構建的研究*
STM32和51單片機寄存器映射原理異同分析
民用飛機飛行模擬機數據包試飛任務優化結合方法研究
Lite寄存器模型的設計與實現
SmartSniff
《信號處理》征稿簡則
《信號處理》第九屆編委會
《信號處理》征稿簡則
《信號處理》第九屆編委會
移位寄存器及算術運算應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合