基于TMS320C6678的SRIO接口设计
2022-12-20
来源:乌哈旅游
a叶强2017#-g 30卷第5期 Electronic Sci.&Tech./May.15.2017 nt,子・电路 doi:10.16180/j.cnki.issnl007—7820.2017.05.030 基于TMS320C6678的¥RIO接口设计 --7丹丹 ,王晓东 (1.中国电子科技集团公司第27研究所测控雷达部,河南郑州450047; 2.中国人民解放军防空兵学院导弹系,河南郑州450052) 摘要针对如何在DSP+FPGA架构的信号处理平台实现片间大量数据实时、高速传输的问题,文中提出了基于 TMC320C6678的SRIO(Serial Rapid io)接口设计。通过在DSP上配置丰富的SRIO参数接口,在无需停止SRIO的情况 下,实现DSP与FPGA间任意长度、大小的数据传输。通过实际工程验证,该设计有效实现了DSP与FPGA片间大量数 据实时、高效、灵活的传输。 关键词 TMS320C6678;SRIO;FPGA 中图分类号TN911 文献标识码A 文章编号1007—7820(2017)05—110—03 Design of SRIO Interface Based on TMC320 C6678 DIAO Dandan ,WANG Xiaodong (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) Abstract An SRIO interface design based on the TMC320C6678 is proposed for real—time high speed trans- mission 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 veriies that reafl—time, eficient,and fflexible transmission is implemented between the DSP and FPGA. Keywords TM¥320C6678;SRIO:FPGA 如何在目前通用的DSP+FPGA架构的信号处理 平台上,实现板间及芯片间海量数据的实时性高速传 1 SRlO 输,成为目前研究方向。 TMS320C6678是TI公司推出的一款单片多核芯 片,在具有高速运算能力的同时集成了多种对外数据 交换接口,其中高速串行接口SRIO(Serial Rapid I/O) 传输速率可达3.125 GHz,远高于普通数据总线的传 输速度,如果采用SRIO作为DSP与FPGA之间的数 据传输接口可大幅提高两者之间的数据吞吐量,提高 设备的运算效率和实时性,一定程度上满足DSP与 FPGA间的海量数据实时传输需求。本文基于某 DSP+FPGA雷达信号处理平台,研究了DSP与FPGA 间的SRIO通信设计 I4 J,实现了大量数据实时、高效、 灵活地传输,并成功应用于某型研制雷达项目中。 Rapid I/0协议采取物理层、传输层和逻辑层3 层分级的体系结构 J。逻辑层位于3层协议的最高 层,定义了所有协议和包格式,其主要功能是对协议 进行处理以及将事务进行匹配;传输层协议定义了 包交换的路由及其寻址机制;物理层描述了设备之 间的物理接口协议,例如包缓冲机制、队列管理、链 路错误检测及错误管理等。 … \、f …L { 一、、 ]// —] 传轴屉规 、1 馘 黼 一/ 绚一 … 广 .] 8/16bit l I l 圈 1I l I l{l冈 I 图1 RapidIO规范层次结构 收稿日期:2016一o6—13 作者简介:刁丹丹(1984一),女,硕士,工程师。研究方向:雷达 SRIO是Seria1 Rapid I/0的缩写,是在Rapid I/ 信号处理及数据处理。 110—————————WWW.O物理层采用串行结构。SRIO是基于请求和响应 dianzi ̄eji.urg 刁丹丹,等:基于TMS320C6678的SRIO接口设计 电子・电路 事务进行数据交换的,同时也是基于包交换的传输 模式。 一SRIO数据事务的处理,同时,DSP提供了8组(LSU0— 7)寄存器用于配置SRIO数据的发送和接收。每组 次完整的数据传输过程首先由发起器件(Intia— LSUx寄存器由7个32 bit寄存器组成,通过配置这7 个寄存器,C6678可以设定发送的目的地址、源地址以 tor)产生一个请求事务,然后将事务发送至目标器件 (Target),最后目标器件产生一个响应事务并回传给 发起器件,从而完成一个完整的传输过程,其流程如图 2所示。 及发起器件ID和目标器件ID等。寄存器0—5包含 用户配置的信息,即控制信息,寄存器6包含一些状态 信息,反映了LSU寄存器的工作状态,LSU寄存器的 说明如图4所示。 唧 ■口l棚 由 ●6B tga ̄l 唧. 嚆n 姗 }札 2 D 崩☆孵 哪. , " L5l忡 31"16 lM2 I £ 9e口s .11-16 I l啪 I11-18 l ‰Il IlH H I19o. Iim_ct ̄tt, H I¨ l1 『o h呻l № I 螂 J l 晰L呐 I・ c Il5l忡 ”lⅪ j ∞ JM I咖 ,lm I l∞ j ・ tO l 6 I姗 l¥-2 ll}o 】uD Il I l IM 图4 Rapid IO LSU寄存器配置说明 图2 SRIO传输流程 C6678同时还提供了MAU(Memou Access Unit) 包(Packet)是SRIO的基本通信单元,协议中定义 了两种类型的包,分别是数据包和控制符号。数据包 格式分别由代表3层协议规范结构的多个字段构成, 控制单元,在Direct I/O模式下SRIO的传输中主要用 于识别相应的device ID,只有ID配对成功,数据才可 所有包均以物理层字段开始,紧接着是传输层和逻辑 层。其中包括了3层协议中的所有头部信息、有效数 据以及CRC校验位等,一般包头的长度可以是十几到 二十几Byte。每包的负载数据长度不超过256 Byte 。以按照要求传递到指定地址。 SRIO传输模式的多样性在数据传输灵活性设计 中也起到关键作用。C6678集成的标准1X/4X Rap— id I/O接口,最多可支持4个端口,16根差分线同时 工作。根据设计需要通过PLM Port(n)Path Control Register(PLM—SP(n)一PATH—CTL)配置成相应的 图3显示了典型的请求和响应包格式。 图耪 ■ 口 模式。 对图4中的寄存器0—5进行配置,配置后的值 自动加入到包中,实现SRIO对数据包的读写操作和 :!:l! :!竺I兰: 竺:竺兰竺!!竺l竺 == 竺:竺 竺豳 4 ¥ 3£48.融 B。2胁 & j6 门铃操作。首先SRIO进行初始化,包括使能端口, 响应 隧 璧耋碧鏖藿塑鲤篷塑墼ll_ 竺_______●:: = :: 匝巫三丑 三 谰图3 SRIO数据包字段组成 配置端口工作模式,配置和使能PLL模块、配置和使 能LSU控制单元和MAU控制单元、传输通道参数 (包括:设备ID、数据包长度(1ength)、大小(size)及 传输速率)、配置和使能中断。查询链路是否连接成 功,若未连接成功,则重新初始化SRIO端口,直至链 路连接成功,成功连接后,则可进行读操作和门铃 操作。 2 C6678端的SRIO设计 C6678的SRIO操作支持多种模式,包括Direct L/ O、Message、Maintenance和Doorbell ,在本文的设计 中采用Direct I/O和Doorbell两种模式。在Direct I/0 通过写操作FPGA一次向DSP的共享存储区内 写人长度为2×length个包,每个数据包发送完成 后,FPGA同时会向DSP发送一个Doorbell包,DSP 模式下,C6678作为发起器件将发起器件ID、目标器件 ID、发送的目的地址和源地址等信息插入数据包的头 文件中,目标器件解析包头得到的相应地址空间,通过 DMA将数据写入相应的地址空间。Doorbell模式主要 触发DOOEBELL[0]一ICSR中的第1位产生一个中 断请求。当FPGA写完length个包时,DSP根据 doorbell info计数,通过读操作开始读取数据,同时, SRIO继续写下一个length的数据,如此便配置成乒 乓机制,保证DSP在处理数据时SRIO仍可继续工 111 用于传输完成后的通知以及传输的同步。 C6678提供了8组LSU(Load/Store Unit)用于 WWW.did_nzikeji.0rg—— 电子・电路 刁丹丹,等:基于TMS320C6678的SRIO接口设计 作,传输数据和处理数据的最大效率。同时,DSP 每次会在第length—1个包时对数据参数进行修 改,FPGA则在第length个包根据参数修改下次发 送的数据长度和大小并执行,实现DSP与FPGA问 海量数据灵活传输。 3 FPAG端的SR10设计 RapidIO的三层协议通过Xilinx公司提供的Ra— pidIO IP核来实现,RapidIO IP核为用户生成了SRIO 的时钟管理、复位控制以及封装好的逻辑层用户接口, 用户只需根据设计要求选择适合的接口类型。基于 IP核设计的用户接口逻辑的主要功能是将FPGA内部 数据流按照SRIO IP核的接口时序要求形成发送数 据,并通过两级写FIFO组成数据包 j。 图6 CCS观测读取的数据 f lL上‘ 『- _l _ ’' FPGA通过SRIO传输数据时,首先使能链路初始 化信号,将FIFO阻塞信号拉低,在SRIO的ireq接口 时序srio—ireq中的数据有效标志位txIniDv和数据长 度有效信号txLenEn使能后,用户接口user—interface 开始缓存待发送数据。同时,IP核接口在等待ireq— tvalid信号的使能后,开始发送IP核接口数据。 5 结束语 本文设计的基于TMS320C6678的SRIO接口设 计,高效实现了DSP与FPGA间实时大数据传输;配置 了丰富的参数接口,可依据设计需要,在不停止SRIO 4测试结果 基于某雷达信号处理平台,C6678配置SRIO端 口工作模式为1×4x,单个数据包大小为64×400 bit, 一接口的情况下,在任意时刻配置传输数据的长度及大 小,大幅提高了基于DSP+FPGA架构的雷达信息处理 平台数据传输的灵活性,简单易操作。该设计成功应 用于某雷达项目,获得了用户的认可。 参考文献 [1]李国平.基于多核DSP的雷达信号处理板研制[D].南 京:南京航空航天大学。2012. 次发送数据为20个数据包。通过Chipscope工具观 测到SR10传输状态如图5所示。 [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 Chipscope观测SRIO传榆状态 [5] SPRUGW.KeyStone architecture serial rapid IO user guide [M].USA:Texas Instruments,2011. [6] 张强.串行RapidIO互连系统的设计与实现[D].南京:南 京理工大学,2013. 在CCS5.2 Memory Rendering Brower观测C6678 通过SRIO读取的数据,用Graph绘制成图,如图6 所示。 WWW.Oi3,nztk巳_il.orij