在分体模块间进行AXI总线信号发送接收的方法及装置
技术领域
本发明涉及通信系统,尤其涉及一种在分体模块间进行AXI总线信号传输的方法及装置。
背景技术
AXI总线的全称是Advanced eXtensible Interface(高级可扩展接口),该协议是ARM公司提出的AMBA(Advanced Microcontroller BusArchitecture,高级微控制器总线架构)3.0协议中最重要的部分。在通讯子系统内部各分体模块之间AXI总线信号的交互,如在LTE eNodeB(基站)子系统内部的软件运算单元和硬件加速器单元分体设计的情况下,软件运算单元需通过AXI总线信号向各硬件加速器单元传输数据。如果在分体模块之间采用AXI并行总线实现AXI控制信号与数据的同步传输,会存在以下3个问题:
(1)在实际应用中分体模块之间往往需要大量的管脚连接以及连线,AXI总线布线困难,布线成本大;
(2)并行信号线之间串扰严重,无法满足AXI时钟速率的要求;
(3)AXI总线的控制信号与数据传输延迟的不一致性问题严重。
因此,如果在分体模块之间采用AXI总线的并行传输方式,实现效率低、实现成本高、且实现难度大。
发明内容
本发明所要解决的技术问题是提供一种在分体模块间进行AXI总线信号传输的方法及装置,以实现分体模块之间的AXI总线的低成本、低延迟、高性能的同步传输。
为解决上述问题,本发明提供了一种在分体模块间进行高级可扩展接口(AXI)总线信号发送的方法,包括:
发送方模块通过AXI总线将待发送数据写入兵乓随机存取存储器(RAM)中;其中,写入速率为clk0,通过AXI总线写入的数据位宽为N;
帧格式转换单元从所述乒乓RAM中读取数据,并将在一预设时长内读出的数据及同步字K28.5写入到一宽为M比特的帧格式后,发送给第一串行器/解串器(SERDES);其中,M为所述第一SERDES的并行输入数据位宽值;
所述第一SERDES对所述帧格式中的所有比特数据进行编码、并串转换及数模转换处理后,将得到的数据以串行的方式发送给接收方模块。
进一步地,
所述第一SERDES的并行输入数据速率为clk1,串行输出数据速率为R;其所述R值满足如下条件:
R>clk0×N。
进一步地,
所述预设的时长T0值通过下式计算:
N×T0×clk0+K28.5=M×T0×clk1
其中,K28.5为所述同步字K28.5的长度。
进一步地,
所述帧结构的长度L=T0×clk1。
相应地,本发明还提供了一种在分体模块间进行AXI总线信号接收的方法,包括:
接收方的第二串行器/解串器(SERDES)接收到发送方发来的串行模拟数据后,对该数据进行时钟恢复与数据恢复、串并转换以及解码操作后,发送给接收方的第二帧格式转换单元;
所述第二帧格式转换单元对接收到的数据进行解帧,并把解出的AXI总线数据写入第二乒乓RAM中;
所述接收方模块从所述第二兵乓RAM中读取恢复出的AXI总线数据。
进一步地,
所述对数据进行解码操作,具体包括:对所述数据进行10B8B解码操作。
相应地,本发明还提供了一种在分体模块间进行高级可扩展接口(AXI)总线信号发送的装置,包括:
兵乓随机存取存储器(RAM),用于将发送方模块通过(AXI)总线发来的待发送数据写入本存储器中;其中,写入速率为clk0,通过AXI总线写入的数据位宽为N;
帧格式转换单元,用于从所述乒乓RAM中读取数据,并将在一预设时长内读出的数据及同步字K28.5写入到一宽为M比特的帧格式后,发送给第一串行器/解串器(SERDES);其中,M为所述第一SERDES的并行输入数据位宽值;
所述第一SERDES,用于对所述帧格式中的所有比特数据进行编码、并串转换及数模转换处理后,将得到的数据以串行的方式发送给接收方模块。
进一步地,
所述第一SERDES的并行输入数据速率为clk1,串行输出数据速率为R;其所述R值满足如下条件:
R>clk0×N。
进一步地,
所述预设的时长T0值通过下式计算:
N×T0×clk0+K28.5=M×T0×clk1
其中,K28.5为所述同步字K28.5的长度。
进一步地,
所述帧结构的长度L=T0×clk1。
相应地,一种在分体模块间进行高级可扩展接口(AXI)总线信号接收的装置,包括:
第二串行器/解串器(SERDES),用于接收到发送方发来的串行模拟数据后,对该数据进行时钟恢复与数据恢复、串并转换以及解码操作后,发送给接收方的第二帧格式转换单元;
所述第二帧格式转换单元,用于对接收到的数据进行解帧,并把解出的AXI总线数据写入第二乒乓RAM中。
进一步地,
所述第二串行器/解串器用于对数据进行解码操作,具体包括:所述第二串行器/解串器用于对所述数据进行10B8B解码操作。
本发明采用简单的方案和低廉的成本实现了AXI总线在分体模块之间进行数据传输,将AXI协议的并行信号信息编码到特定的帧格式,然后利用分体模块之间的serdes模块完成并串转换、串行收发以及同步设计,解决了分体模块之间所引入的上述3个问题,同时消除了分体模块之间瞬态电势差对分体模块的损坏,改善了系统的EMC(Electro Magnetic Compatibility,电磁兼容性)的辐射性能。
附图说明
图1是本发明实施例中在分体模块间进行AXI总线信号发送方法的流程示意图;
图2是本发明实施例中在分体模块间进行AXI总线信号接收方法的流程示意图;
图3是本发明实施例中帧结构示意图;
图4是本发明实施例中在分体模块间进行AXI总线信号发送的装置结构示意图;
图5是本发明实施例中在分体模块间进行AXI总线信号接收的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在本实施例中,一种在分体模块间进行AXI总线信号传输的方法,包括:
步骤10、发送方模块通过AXI总线将待发送数据写入第一兵乓RAM(Random Access Memory,随机存取存储器)101中;其中,写入速率为clk0,通过AXI总线写入的数据位宽为N;需要说明的是,待发送数据中包含控制信号与其他数据。
采用兵乓RAM可避免数据读地址与写入RAM地址冲突,保证了通过AXI总线写入本RAM的数据可流水写入,并与读出数据无冲突。
步骤20、第一帧格式转换单元201从第一乒乓RAM 101中读出数据,将在T0时长内读出的数据写入到长为L比特,宽为M比特的帧格式并加入同步字K28.5后,发送给第一SERDES(串行器/解串器)301;
其中,该第一SERDES 301的并行输入数据位宽为M,并行输入数据速率为clk1,串行输出数据速率为R。为了保证第一SERDES 301中的数据不会溢出,R值应满足如下条件:
R>clk0×N (1)
如果R不能满足公式(1),可以对N进行分组处理,例如可以把N分为2组,用2路SERDES分别实现N/2数目的AXI总线数据的传输,此时只需要SERDES速率满足R>clk0×N/2即可。
此外,经过帧格式转换后得到的帧结构为长为L比特、宽为M比特的结构,且在时间T0内,需保证:
N×T0/Tclk0+K28.5=M×T0/Tclk1 (2)
其中,K28.5为同步字K28.5的长度,一般为8比特;T
clk0为AXI总线写入数据频率,
T
clk1为第一SERDES 301并行输入数据频率,
因此,上述公式(2)亦可改写为:
N×T0×clk0+K28.5=M×T0×clk1 (3)
步骤30、第一SERDES 301对上述帧格式的数据与同步字进行编码、并串转换及数模转换处理后,将处理后得到的模拟数据以串行的方式发送给接收方模块;
此时,即完成了AXI总线信号的发送流程,如图1所示。下述各步骤为AXI总线信号的接收流程,如图2所示。
步骤40:接收方的第二SERDES 401接收串行输入的模拟数据后,对其进行时钟恢复与数据恢复、串并转换以及解码操作后,发送给接收方中的第二帧格式转换单元501;
步骤50:第二帧格式转换单元501对接收到的数据进行解帧,并把解出的数据按照时序要求写入第二乒乓RAM 601中;
步骤6:接收方模块从第二兵乓RAM 601中读取恢复出的AXI总线数据。
下面,以一个具体的示例对上述方法进行进一步说明。
在本示例中,AXI发送端写入速率clk0=25MHz,发送控制信号与数据总和为268条,即写入的数据位宽N=268。发送端写入数据速率为25MHz×268=6.7GHz。这些控制信号和数据需要通过第一SERDES发送,由第一SERDES进行8B10B编码,则需要第一SERDES的线速率大于6.7G/0.8=8.375Gbps,因此选择线速率为8.5Gbps的第一SEDES是可以满足设计需求的。第一SERDES并行输入数据位宽M=32bit,假设clk1=212.5MHz。设计T0=80ns,268*80/40+K28.5=544bit,所以在转换后的帧格式中,宽度等于M,即32bit,长度L=544÷32=17bit,具体帧格式如图3所示,其中空白格部分为通过AXI总线写入的数据,带阴影线部分为8bit同步字K28.5,内容为8’hbc。
利用上述公式(2)求解T0的过程如下:要使等式268×T0×25+8=32×T0×212.5成立,解出T0=80ns。
将268bit位宽的AXI总线数据以25MHz的时钟乒乓写入第一兵乓RAM101中。第一帧格式转换单元201模块以212.5MHz的时钟乒乓读取第一兵乓RAM,并完成图3所示帧格式中数据与同步字的拼接处理,在第一SERDES301模块对上述帧格式数据进行8B10B编码以及编码后并行数据转为串行数据,并转化成模拟数据后进行发送。
在分体模块的接收端,第二SERDES 401接收到串行输入的模拟数据后,进行数据时钟恢复、串并转换以及10B8B的数据解码,第二帧格式转换单元501接收第二SERDES 401发送的组帧后的AXI数据,进行解帧功能,并把数据以212.5Mhz的时钟速率写入乒乓RAM中,第二乒乓RAM601以25MHz的时钟读取恢复出的AXI总线数据,完成AXI数据的分体传输。
在本实施例中,一种在分体模块间进行AXI总线信号发送的装置,如图4所示,包括:
兵乓随机存取存储器(RAM),用于将发送方模块通过AXI总线发来的待发送数据写入本存储器中;其中,写入速率为clk0,通过AXI总线写入的数据位宽为N;
帧格式转换单元,用于从所述乒乓RAM中读取数据,并将在一预设时长内读出的数据及同步字K28.5写入到一宽为M比特的帧格式后,发送给第一串行器/解串器(SERDES);其中,M为所述第一SERDES的并行输入数据位宽值;
所述第一SERDES,用于对所述帧格式中的所有比特数据进行编码、并串转换及数模转换处理后,将得到的数据以串行的方式发送给接收方模块。
较优地,
所述第一SERDES的并行输入数据速率为clk1,串行输出数据速率为R;其所述R值满足如下条件:
R>clk0×N。
较优地,
所述预设的时长T0值通过下式计算:
N×T0×clk0+K28.5=M×T0×clk1
其中,K28.5为所述同步字K28.5的长度。
较优地,
所述帧结构的长度L=T0×clk1。
相应地,一种在分体模块间进行AXI总线信号接收的装置,如图5所示,包括:
第二串行器/解串器(SERDES),用于接收到发送方发来的串行模拟数据后,对该数据进行时钟恢复与数据恢复、串并转换以及解码操作后,发送给接收方的第二帧格式转换单元;
所述第二帧格式转换单元,用于对接收到的数据进行解帧,并把解出的AXI总线数据写入第二乒乓RAM中。
较优地,
所述第二串行器/解串器用于对数据进行解码操作,具体包括:所述第二串行器/解串器用于对所述数据进行10B8B解码操作。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上所述仅为本发明的优选实施例而已,并非用于限定本发明的保护范围。根据本发明的发明内容,还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。