一种吉比特级SpaceWire总线系统的制作方法

文档序号:15281458发布日期:2018-08-28 23:35阅读:223来源:国知局

本发明涉及一种吉比特级spacewire总线系统,属于航天器高速数据传输总线技术领域。



背景技术:

spacewire是一种全双工、双向、串行、点到点的数据总线。在每个方向上,它使用一对差分信号线传输编码后的数据。从而在每个方向上都会有四根信号线(d+、d-、s+、s-),在两个方向上总共是八根信号线。spacewire标准涉及到六个层次的内容,分别为:物理层、信号层、字符层、交换层、数据包层及网络层六层。其中,物理层标准覆盖了电缆线、连接器、电缆组件、印刷电路板走线(pcbtracks)四个部分。spacewire电缆内部包含4组独立的屏蔽双绞线,外部还要包裹一层屏蔽材料。信号层标准规定了信号电压电平、噪声容限及信号编码。信号层采用ds(data-strobe)编码。该编码通过两路信号d和s能将时钟信号和数据信号一起传输。在接收端,时钟信号的恢复是将d信号和s信号相异或实现的。

英国的star-dundee公司按照spacewire标准已经实现了spacewire总线ip(intellectualproperty),并将该ip在航天领域进行推广,目前处于市场主流地位。但是以star-dundee公司的spacewireip为核心的总线系统,物理介质采用电缆,带宽一般只有几百兆,很难达到吉比特级;其次,ds编码在实质上是一路时钟带一路数据,如果数据传输率要超过1gbps,则时钟周期要小于1ns,技术实现的难度很大,因此实际能达到的数据传输率只有200mbps;再有,当前总线系统的数据访问接口为32位宽度,每发送或接收完4个spacewire数据字符(1个数据字符为8bit数据)就需要访问1次存储器,导致访存次数多,等待访存的时间长,从而总线利用率较低。



技术实现要素:

本发明的技术解决问题是:克服现有技术的不足,提出了一种吉比特级spacewire总线系统。将总线系统的数据传输率提高到大于1gbps,同时将存储器访问接口的数据宽度增大到128位,降低了访问存储器的时间开销,能够满足航天器电子系统对吉比特级数据传输的需求。

本发明的技术方案是:

一种吉比特级spacewire总线系统,包括:数据收发模块、数据缓冲模块、spacewire协议处理模块以及数据访问模块;

数据收发模块:接收外部光收发器发送的串行编码,将串行编码转换为并行数据并发送给数据缓冲模块;接收数据缓冲模块发送的并行数据并转换为串行编码发送给外部光收发器;

数据缓冲模块:接收数据收发模块和spacewire协议处理模块发送的并行数据,对数据收发模块和spacewire协议处理模块发送的并行数据同步处理,将同步后的并行数据及时钟发送给spacewire协议处理模块;

spacewire协议处理模块:接收数据缓冲模块发送的同步后的并行数据和时钟,在时钟上升沿读取并行数据;接收数据访问模块发送的下行数据和下行数据地址,生成并行数据,将生成并行数据与自身产生的发送时钟一起发送给数据缓冲模块;根据下行数据地址中的寄存器地址,提取出配置信息设置预设参数,根据当前协议状态和预设参数生成上行数据和地址并发送给数据访问模块;

数据访问模块:接收外部存储器发送的数据和地址,发送给外部cpu和spacewire协议处理模块;接收spacewire协议处理模块和外部cpu发送的数据和地址,发送给外部存储器;接收外部寄存器发送的数据和地址,经片上总线协议转换后发送给外部cpu和spacewire协议处理模块;接收spacewire协议处理模块和外部cpu发送的数据和地址,经协议转换后发送给外部寄存器。

所述数据收发模块包括:吉比特发送模块和吉比特接收模块;

吉比特发送模块:接收数据缓冲模块发送的并行数据并转换为吉比特级速率的串行编码,然后输出给外部光收发器;

吉比特接收模块:接收外部光收发器发送的16b/20b串行编码,将16b/20b串行编码转换为吉比特级速率的并行数据,然后输出给数据缓冲模块。

所述spacewire协议处理模块包括:接收控制模块、控制代码处理模块、发送控制模块、发送时钟模块、运行管理模块;

接收控制模块:接收数据缓冲模块发送的同步后的并行数据及时钟,在时钟上升沿读取并行数据,识别出并行数据中的控制代码和数据字符,将控制代码发送给控制代码处理模块,将数据字符发送给运行管理模块;

控制代码处理模块:接收接收控制模块发送的控制代码,提取出控制信号,然后将控制信号发送给运行管理模块;

运行管理模块:接收控制代码处理模块发送的控制信号,根据预设参数和当前协议状态生成新协议状态,将控制信号扩充成为128位的上行数据与自身生成的上行数据的目标地址一起发送给外部数据访问模块;接收接收控制模块发送的数据字符,拼接成128位上行数据与自身生成的上行数据的目标地址一起发送给外部数据访问模块;接收外部数据访问模块发送的下行数据和下行数据的地址,若是寄存器地址则提取出配置信息设置预设参数,若是存储器地址则将下行数据作为128位数据发送给发送控制模块;发送控制信号给发送控制模块;根据预设参数生产发送速率选择信号并发送给发送时钟模块;

发送时钟模块:接收运行管理模块发送的发送速率选择信号,产生发送时钟信号,将发送时钟信号发送给发送控制模块;

发送控制模块:接收运行管理模块发送的发送控制信号、128位数据和发送时钟模块发送的发送时钟信号,当发送控制信号为高电平时将128位数据分解为多个并行数据并与发送时钟信号一起发送给外部数据缓冲模块。

所述数据访问模块包括:axi总线接口模块和apb总线接口模块;

axi总线接口模块:接收spacewire协议处理模块或cpu发送的数据和地址,发送给外部存储器;接收外部cpu发送的数据和地址,发送给外部存储器;

接收外部存储器发送的数据和地址,如果axi总线事务由spacewire协议处理模块发起则发送数据和地址给spacewire协议处理模块,如果axi总线事务由外部cpu发起则发送数据和地址给外部cpu;

接收spacewire协议处理模块或cpu发送的数据和地址,发送给apb总线接口模块;

接收apb总线接口模块发送的数据和地址,如果axi总线事务由spacewire协议处理模块发起则发送数据和地址给spacewire协议处理模块,如果axi总线事务由外部cpu发起则发送数据和地址给外部cpu;

apb总线接口模块:接收axi总线接口模块的数据和地址,经片上总线协议转换后发送给外部寄存器;接收外部寄存器的数据和地址,经协议转换后发送给axi总线接口模块。

所述并行数据为16位。

所述串行编码为16b/20b串行编码。

所述外部存储器为128位存储器。

本发明与现有技术相比的有益效果是:

1)采用16b/20b编码技术,并且将光纤作为spacewire总线传输的物理介质,提高了物理带宽上限,使最大数据传输率能够达到1gbps;

2)数据处理采用并行处理方式,使得一个时钟周期能够处理16位信息,将数据处理能力增加到ds编码的16倍;

3)采用128位宽度的访存接口,提高了一次读写的数据量,在传输过程中减少了访存次数和时间,提高了总线利用率。

附图说明

图1是本发明所述的系统框图;

图2是16位并行数据格式;

图3是运行管理单元的状态图;

图4是数据访问模块的详细结构图。

具体实施方式

具体实施方式如下所述。

(1)系统架构

一种吉比特级spacewire总线系统,其系统架构的实例如图1所示。

在图1中,总线系统包含:数据收发模块、数据缓冲模块、spacewire协议处理模块、数据访问模块4个核心模块,外围还有光收发器、cpu、128位存储器和一组32位寄存器。在外围的各个单元中,光收发器是光电信号转换的物理接口、cpu是运行总线应用软件的载体、128位存储器用于存放待发送和接收到的总线数据包、32位寄存器用于记录总线运行状态和配置信息。总线系统的核心模块的详细实施方式在后续论述。

(2)数据收发模块

数据收发模块基于光纤链路设计,物理带宽超过10gbps,采用16b/20b编码传输数据。接收外部光收发器发送的串行编码,将串行编码转换为16位并行数据并发送给数据缓冲模块;接收数据缓冲模块发送的16位并行数据并发送给外部光收发器。

数据收发模块包含吉比特发送模块和吉比特接收模块。吉比特发送模块:接收数据缓冲模块发送的16位并行数据并转换为吉比特级速率的16b/20b串行编码,然后输出给外部光收发器;吉比特接收模块接收外部光收发器发送的16b/20b串行编码,将16b/20b串行编码转换为吉比特级速率的16位并行数据,然后输出给数据缓冲模块。

其中,吉比特发送模块通过高速16b/20bserdes将16位并行数据转换为16b/20b串行数据;吉比特接收模块通过16b/20bserdes将16b/20b串行数据转换为16位并行数据。吉比特发送模块和吉比特接收模块中的16b/20bserdes是相同的,提供给数据缓冲模块的信号是16位并行数据和1路工作时钟,工作时钟分为快速时钟和慢速时钟两种,其中快速时钟的频率是166.67mhz。由于一个时钟周期可以发送或接收16位的数据,因此1秒钟可收发的最大数据量为:

从而可知理论上可达到的最大数据传输率为2.133gbps。

(3)数据缓冲模块

数据缓冲模块通过双时钟fifo(firstinputfirstoutput,先入先出队列)同步两个异步时钟:数据收发模块的时钟和spacewire协议处理模块的时钟,并对发送和接收的数据进行缓存。fifo的容量大小为1024个16位,可有效缓冲两个异步系统之间因时钟偏差导致的收发速度不一致问题,从而能够使收发过程协调顺畅,并将同步后的16位并行数据及时钟发送给spacewire协议处理模块。

(4)spacewire协议处理模块

接收数据缓冲模块发送的同步后的16位并行数据和时钟,在时钟上升沿读取16位并行数据;

接收数据访问模块发送的下行数据和下行数据地址,生成16位并行数据,将生成的16位并行数据与自身产生的发送时钟一起发送给数据缓冲模块;

根据下行数据地址中的寄存器地址,提取出配置信息设置预设参数;

根据当前协议状态和预设参数生成上行数据和地址并发送给数据访问模块。

star-dundee公司的spacewire协议ip基于ds编码,然后将d信号和s信号异或生成时钟信号,将d信号作为数据信号,而本发明的数据信号采用16位并行数据,快速时钟是166.67mhz信号,慢速时钟是10mhz信号。基于这两方面的改进,设计了配套的接收控制模块、控制代码处理模块、发送控制模块、发送时钟模块、运行管理模块,使最大数据处理能力超过1gbit/s。

1)接收控制模块

接收控制模块首先需要对数据缓冲模块输入的16位并行数据进行控制字符和数据字符的识别。信息识别的前提是校验位正确,否则将会使能校验错误信号parity_err。识别过程是基于本发明定义的16位并行数据格式(如图2所示)开展的,最高两位是长度域,表明有效信息的长度,其中00表示信息长度为4(代表控制字符),01表示信息长度为8(代表null控制码),10表示信息长度为10(代表数据字符),11表示信息长度为14(代表时间码)。在信息识别的基础上,接收控制模块执行如下步骤:

步骤1:如果信息类型是控制字符fct,则设置got_fct信号后跳转到步骤5;

步骤2:如果信息类型是null控制码,则设置got_first_null信号后跳转到步骤5;

步骤3:如果信息类型是eop、eep或数据字符,则剔除数据字符的高2位附加信息,输出低8位数据,然后执行步骤5;

步骤4:设置got_nchar信号后转到步骤5;

步骤5:按位异或计算校验值,更新全局校验信号,转到步骤6;

步骤6:将parity_err、got_first_null、got_fct、got_nchar信号发送给控制代码处理模块。

上述步骤完成后,接收控制模块会继续等待下一个16位并行数据的到达,然后开始下一次处理过程。

2)控制代码处理模块

控制代码处理模块负责计算接收信用,生成信用错误信号credit_err发送给运行管理模块,并且将来自接收控制模块的信号发送给运行管理模块。

为计算接收信用,控制代码处理模块内部维护一个大小为2kb的虚拟接收缓冲区、定义接收开始指针start_ptr和接收结束指针end_ptr,具体工作流程为:在初始状态,start_ptr和end_ptr都被清为0,表示接收缓冲区为空。每当got_nchar信号有效时,表明接收到数据字符,从而end_ptr依次递增,直到end_ptr与start_ptr的差值大于等于预设定的最大信用值1024,此时接收信用已耗尽将会触发缓冲区满信号,并进一步抑制接收。got_nchar信号的有效会触发对存储器的读操作,每执行一次成功的读操作,接收开始指针start_ptr都会依次递增,直到end_ptr与start_ptr差值为0,此时表明接收到的数据已全部被读取。如果在上述工作过程中发生了接收结束指针与接收开始指针的差值大于1024或者小于0,则会使信用错误信号credit_err使能。

3)发送控制模块

发送控制模块的输入信号有三个:运行管理模块发送的发送控制信号、128位数据和发送时钟模块发送的发送时钟信号。该模块的主要工作是当发送控制信号有效时将128位数据分解为多个16位并行数据与发送时钟信号一起发送给数据缓冲模块。对128位长数据的分解过程为:当发送控制信号变为有效的时刻,利用发送时钟的上升沿将128位发送数据读取到一个128位的内部寄存器senddata_reg中;在发送时钟每个上升沿,从senddata_reg的低16位中取出并行数据,然后将senddata_reg的值右移16位,使得低16位始终是下一次待取出的16位并行数据;当对senddata_reg的读取和右移操作执行了8次后,128位数据的分解过程完毕。

4)发送时钟模块

发送时钟模块根据运行管理模块发送的发送速率选择信号来选择发送控制模块的工作时钟。当发送速率选择信号为高电平时,将内部时钟管理单元生成的166.67mhz快速时钟作为发送时钟信号输出给发送控制模块。当发送速率选择信号为低电平时,将内部时钟管理单元生成的10mhz慢速时钟作为发送时钟信号输出给发送控制模块。

5)运行管理模块

接收控制代码处理模块发送的控制信号,根据预设参数和当前协议状态生成新协议状态,将控制信号扩充成为128位的上行数据与自身生成的上行数据的目标地址一起发送给外部数据访问模块;接收来自接收控制模块发送的数据字符,拼接成128位上行数据与自身生成的上行数据的目标地址一起发送给外部数据访问模块;接收外部数据访问模块发送的下行数据和下行数据的地址,若是寄存器地址则提取出配置信息设置预设参数,若是存储器地址则将下行数据作为128位数据发送给发送控制模块;发送控制信号给发送控制模块;根据预设参数生产发送速率选择信号并发送给发送时钟模块;

运行管理模块的实现基于如图3所示的状态图。图3共包含6个状态:err_reset、err_wait、ready、started、connecting、run。其中,err_reset是运行管理模块的初始状态,在系统复位或运行过程中发生错误后进入;err_wait是状态重置后的等待状态,当处于err_reset状态6.4us后进入;ready是就绪状态,当处于err_wait状态12.8us后进入;started是运行启动状态,当处于ready状态时外部寄存器中的link_enable位被置为1时进入,在started状态允许发送null控制码,同时允许接收控制信息;connecting是连接状态,当处于started状态且收到got_null控制信号时进入,在connecting状态允许发送fct控制码、null控制码,同时允许接收控制信息;run是正常运行状态,当处于connecting状态且收到got_fct控制信号时进入,在run状态允许发送fct控制码、null控制码、nchar数据字符,同时允许接收数据,对数据执行拼接操作。

运行管理模块可在started、connecting、run三个状态下向发送控制模块输出发送控制信号和并行数据。在started状态下,当发送控制信号有效时输出的并行数据为null控制码;在connecting状态下,当发送控制信号有效时输出的并行数据为fct或者null控制码;在run状态下,当发送控制信号有效时输出的并行数据为fct控制码、null控制码或nchar数据字符。

运行管理模块对发送时钟模块输出的发送速率选择信号是由外部寄存器中的send_rate位决定的,当该位为1时发送速率选择信号为高电平,否则为低电平。

运行管理模块对数据访问模块发送的上行数据是在run状态下通过接收数据并执行拼接操作生成的,32位地址的初始值是由外部寄存器存放的接收存储地址决定的,在每次接收到数据后执行累加计算形成新的32位地址。

(5)数据访问模块

数据访问模块为spacewire协议处理模块和cpu提供对存储器和寄存器的访问接口,如图4所示。在图4的实例中,数据访问模块包括axi总线接口模块和apb总线接口模块。其中,axi总线接口模块共提供三组接口信号:cpu接口、协议处理模块(协议ip)接口和存储器接口,这三组接口都遵循axi总线标准,在结构上是同构;apb总线接口模块提供一组接口信号:寄存器接口,该接口遵循apb总线标准。

在数据访问模块中,axi片上总线的作用是将总线系统spacewire协议处理模块、外部cpu和存储器进行高速互联。存储器的实现方式为dpram(dualportram,双口ram),使外部cpu和内部spacewire协议处理模块能同时访问存储器。外部存储器接口的数据宽度为128位,通过这种超大数据访问接口,使一次访存的读写数据量显著增加。通过采用128位到32位宽度转换器、axi到ahb协议转换器、ahb-apb总线桥和32位apb片上总线将低速寄存器挂接到axi总线上,使外部cpu和内部spacewire协议处理模块都可以对寄存器进行配置和查看寄存器的状态。

具体为接收外部存储器发送的数据和地址,发送给外部cpu和spacewire协议处理模块;接收spacewire协议处理模块和外部cpu发送的数据和地址,发送给外部存储器;

接收外部寄存器发送的数据和地址,经片上总线协议转换后发送给外部cpu和spacewire协议处理模块;接收spacewire协议处理模块和外部cpu发送的数据和地址,经片上总线协议转换后发送给外部寄存器。

本发明说明书中未作详细描述的内容属本领域专业技术人员的公知技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1