一种可编程可重构的帧处理器转让专利

申请号 : CN201610140216.7

文献号 : CN105812365B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张科峰

申请人 : 武汉芯泰科技有限公司

摘要 :

本发明公开了一种可编程可重构的帧处理器。所述帧处理器包括:第一数据处理单元、连接至第一数据处理单元的第一状态机、第二数据处理单元、连接至第二数据处理单元的第二状态机以及分别连接至第一和第二状态机的主状态机。第一和第二数据处理单元分别包括帧结构描述表,用于存储帧头地址指针、帧尾地址指针和通信协议规定的各字段的值;第一状态机、第二状态机和主状态机分别包括协议状态结构描述表,用于存储帧头地址指针、帧尾地址指针和状态转移值。通过配置帧结构描述表和协议状态结构描述表,可实现对协议规定的各字段的值和协议的状态的重构,从而使处理器自适应协议的变化,极大地提升了处理器的兼容性,降低了处理器重构的代价。

权利要求 :

1.一种可编程可重构的帧处理器,其特征在于,包括:第一数据处理单元,用于接收来自下层协议的帧/包并将处理后的帧/包发送至上层协议;

第一状态机,连接至所述第一数据处理单元,用于通过有限状态转移表控制所述第一数据处理单元的运行;

第二数据处理单元,用于接收来自上层协议的帧/包并将处理后的帧/包发送至下层协议;

第二状态机,连接至所述第二数据处理单元,用于通过有限状态转移表控制所述第二数据处理单元的运行;以及主状态机,分别连接至所述第一状态机和第二状态机,用于通过有限状态转移表控制所述第一状态机和第二状态机的运行;

所述第一和第二数据处理单元分别包括帧结构描述表,用于存储帧头地址指针、帧尾地址指针和通信协议规定的各字段的值;

所述第一状态机、第二状态机和主状态机分别包括协议状态结构描述表,用于存储头地址指针、尾地址指针和状态转移值。

2.根据权利要求1所述的可编程可重构的帧处理器,其特征在于,还包括:上回环桥,分别连接至所述第一数据处理单元、第二数据处理单元和主状态机,用于在所述主状态机的控制下,实现所述第一和第二数据处理单元之间的桥接,从而使来自上层协议的帧/包经所述第二数据处理单元、上回环桥和第一数据处理单元处理后发送至上层协议。

3.根据权利要求1所述的可编程可重构的帧处理器,其特征在于,还包括:下回环桥,分别连接至所述第一数据处理单元、第二数据处理单元和主状态机,用于在所述主状态机的控制下,实现所述第一和第二数据处理单元之间的桥接,从而使来自下层协议的帧/包经所述第一数据处理单元、下回环桥和第二数据处理单元处理后发送至下层协议。

4.根据权利要求1所述的可编程可重构的帧处理器,其特征在于,所述第一数据处理单元包括:第一开关,用于开启或关闭所述第一数据处理单元的帧/包的接收和发送;

第一帧头开关,连接至所述第一开关,用于开启或关闭帧头的接收和发送;

第一帧头处理模块,分别连接至所述第一帧头开关和所述第一状态机,用于在所述第一状态机的控制下处理帧头;

第一帧数据开关,连接至所述第一开关,用于开启或关闭帧数据的接收和发送;

第一帧数据处理模块,分别连接至所述第一帧数据开关和所述第一状态机,用于在所述第一状态机的控制下处理帧数据;

第一校验开关,连接至所述第一开关,用于开启或关闭校验数据的接收和发送;以及第一校验模块,分别连接至所述第一校验开关和所述第一状态机,用于在所述第一状态机的控制下处理校验数据。

5.根据权利要求4所述的可编程可重构的帧处理器,其特征在于,所述帧结构描述表包含在所述第一帧头处理模块中。

6.根据权利要求1所述的可编程可重构的帧处理器,其特征在于,所述第二数据处理单元包括:第二开关,用于开启或关闭所述第二数据处理单元的帧/包的接收和发送;

第二帧头开关,连接至所述第二开关,用于开启或关闭帧头的接收和发送;

第二帧头处理模块,分别连接至所述第二帧头开关和所述第二状态机,用于在所述第二状态机的控制下处理帧头;

第二帧数据开关,连接至所述第二开关,用于开启或关闭帧数据的接收和发送;

第二帧数据处理模块,分别连接至所述第二帧数据开关和所述第二状态机,用于在所述第二状态机的控制下处理帧数据;

第二校验开关,连接至所述第二开关,用于开启或关闭校验数据的接收和发送;以及第二校验模块,分别连接至所述第二校验开关和所述第二状态机,用于在所述第二状态机的控制下处理校验数据。

7.根据权利要求6所述的可编程可重构的帧处理器,其特征在于,所述帧结构描述表包含在所述第二帧头处理模块中。

8.根据权利要求5所述的可编程可重构的帧处理器,其特征在于,所述第一帧头处理模块包括:第一校验和电路,用于对从帧头地址指针到帧尾地址指针所指向的数据做校验和以确定是否接收当前帧/包;以及第一条件接收电路,用于进一步确定是否接收当前帧/包;

所述第一条件接收电路包括:

第一FIFO寄存器,用于存储帧头地址指针、帧尾地址指针和通信协议规定的各字段的值;

第二FIFO寄存器,用于存储帧头地址指针、帧尾地址指针和通信协议规定的各字段的掩码;以及第一运算器,用于对待接收的帧/包的帧头、通信协议规定的各字段的值和通信协议规定的各字段的掩码进行运算,并输出运算结果以确定是否接收当前帧/包。

9.根据权利要求7所述的可编程可重构的帧处理器,其特征在于,所述第二帧头处理模块包括:第二校验和电路,用于对从帧头地址指针到帧尾地址指针所指向的数据做校验和以确定是否接收当前帧/包;以及第二条件接收电路,用于进一步确定是否接收当前帧/包;

所述第二条件接收电路包括:

第三FIFO寄存器,用于存储帧头地址指针、帧尾地址指针和通信协议规定的各字段的值;

第四FIFO寄存器,用于存储帧头地址指针、帧尾地址指针和通信协议规定的各字段的掩码;以及第二运算器,用于对待接收的帧/包的帧头、通信协议规定的各字段的值和通信协议规定的各字段的掩码进行运算,并输出运算结果以确定是否接收当前帧/包。

10.根据权利要求1所述的可编程可重构的帧处理器,其特征在于,所述第一状态机、第二状态机和主状态机分别还包括状态转移判决模块,用于确定从一个状态转变为下一个状态的条件;

所述状态转移判决模块包括:

编码值输入电路,用于提供可重构的编码值;以及

逻辑运算电路,用于根据所述编码值输入电路提供的编码值进行逻辑运算,进而输出运算结果以确定是否转移到下一个状态。

11.根据权利要求10所述的可编程可重构的帧处理器,其特征在于,所述编码值包括:运算编码值,用于确定所述逻辑运算电路的逻辑运算类型;

当前触发事件源编码值,用于表征当前事件源;以及目标事件源编码值,用于表征目标事件源。

12.根据权利要求1所述的可编程可重构的帧处理器,其特征在于,还包括:可编程时序产生器,用于为所述第一和第二状态机提供时序信号;

所述可编程时序产生器包括:

计数器;

相对延时输出模块,连接至所述计数器,用于根据配置的相对延时值提供标准化的数据发送时序,所述相对延时值包括数据发送前延迟时间、数据发送后延迟时间、帧保护时间和信道周期;以及独立延时输出模块,连接至所述计数器,用于根据配置的独立延时值提供至少一个独立的延迟时间,以提供数据接收时序。

说明书 :

一种可编程可重构的帧处理器

技术领域

[0001] 本发明涉及数据通信和数字集成电路技术领域,尤其涉及一种可编程可重构的帧处理器。

背景技术

[0002] 在目前的数据处理器中,任何一个处理器可识别的数据协议种类是有限的。但是随着技术的不断进步,各种新的协议不断出现,原有的协议也在不断升级和修改。现有的数据处理器并不能自适应协议的升级和修改,更不能自适应新协议。在出现升级的或新的通信协议时,只能相应地设计新的处理器。
[0003] 因此,现有技术的处理器存在不能动态地适应协议变化以及升级和重构代价大的缺点。

发明内容

[0004] 针对现有技术中处理器存在不能动态地适应协议变化以及升级和重构代价大的缺陷,本发明提供一种可编程可重构的帧处理器。
[0005] 本发明就上述技术问题而提出的技术方案如下:
[0006] 一方面,提供了一种可编程可重构的帧处理器,包括:
[0007] 第一数据处理单元,用于接收来自下层协议的帧/包并将处理后的帧/包发送至上层协议;
[0008] 第一状态机,连接至所述第一数据处理单元,用于通过有限状态转移表控制所述第一数据处理单元的运行;
[0009] 第二数据处理单元,用于接收来自上层协议的帧/包并将处理后的帧/包发送至下层协议;
[0010] 第二状态机,连接至所述第二数据处理单元,用于通过有限状态转移表控制所述第二数据处理单元的运行;以及
[0011] 主状态机,分别连接至所述第一状态机和第二状态机,用于通过有限状态转移表控制所述第一状态机和第二状态机的运行;
[0012] 所述第一和第二数据处理单元分别包括帧结构描述表,用于存储帧头地址指针、帧尾地址指针和通信协议规定的各字段的值;
[0013] 所述第一状态机、第二状态机和主状态机分别包括协议状态结构描述表,用于存储头地址指针、尾地址指针和状态转移值。
[0014] 优选地,所述的可编程可重构的帧处理器还包括:
[0015] 上回环桥,分别连接至所述第一数据处理单元、第二数据处理单元和主状态机,用于在所述主状态机的控制下,实现所述第一和第二数据处理单元之间的桥接,从而使来自上层协议的帧/包经所述第二数据处理单元、上回环桥和第一数据处理单元处理后发送至上层协议。
[0016] 优选地,所述的可编程可重构的帧处理器还包括:
[0017] 下回环桥,分别连接至所述第一数据处理单元、第二数据处理单元和主状态机,用于在所述主状态机的控制下,实现所述第一和第二数据处理单元之间的桥接,从而使来自下层协议的帧/包经所述第一数据处理单元、下回环桥和第二数据处理单元处理后发送至下层协议。
[0018] 优选地,所述第一数据处理单元包括:
[0019] 第一开关,用于开启或关闭所述第一数据处理单元的帧/包的接收和发送;
[0020] 第一帧头开关,连接至所述第一开关,用于开启或关闭帧头的接收和发送;
[0021] 第一帧头处理模块,分别连接至所述第一帧头开关和所述第一状态机,用于在所述第一状态机的控制下处理帧头;
[0022] 第一帧数据开关,连接至所述第一开关,用于开启或关闭帧数据的接收和发送;
[0023] 第一帧数据处理模块,分别连接至所述第一帧数据开关和所述第一状态机,用于在所述第一状态机的控制下处理帧数据;
[0024] 第一校验开关,连接至所述第一开关,用于开启或关闭校验数据的接收和发送;以及
[0025] 第一校验模块,分别连接至所述第一校验开关和所述第一状态机,用于在所述第一状态机的控制下处理校验数据。
[0026] 优选地,所述帧结构描述表包含在所述第一帧头处理模块中。
[0027] 优选地,所述第二数据处理单元包括:
[0028] 第二开关,用于开启或关闭所述第二数据处理单元的帧/包的接收和发送;
[0029] 第二帧头开关,连接至所述第二开关,用于开启或关闭帧头的接收和发送;
[0030] 第二帧头处理模块,分别连接至所述第二帧头开关和所述第二状态机,用于在所述第二状态机的控制下处理帧头;
[0031] 第二帧数据开关,连接至所述第二开关,用于开启或关闭帧数据的接收和发送;
[0032] 第二帧数据处理模块,分别连接至所述第二帧数据开关和所述第二状态机,用于在所述第二状态机的控制下处理帧数据;
[0033] 第二校验开关,连接至所述第二开关,用于开启或关闭校验数据的接收和发送;以及
[0034] 第二校验模块,分别连接至所述第二校验开关和所述第二状态机,用于在所述第二状态机的控制下处理校验数据。
[0035] 优选地,所述帧结构描述表包含在所述第二帧头处理模块中。
[0036] 优选地,所述第一帧头处理模块包括:
[0037] 第一校验和电路,用于对从帧头地址指针到帧尾地址指针所指向的数据做校验和以确定是否接收当前帧/包;以及
[0038] 第一条件接收电路,用于进一步确定是否接收当前帧/包;
[0039] 所述第一条件接收电路包括:
[0040] 第一FIFO寄存器,用于存储帧头地址指针、帧尾地址指针和通信协议规定的各字段的值;
[0041] 第二FIFO寄存器,用于存储帧头地址指针、帧尾地址指针和通信协议规定的各字段的掩码;以及
[0042] 第一运算器,用于对待接收的帧/包的帧头、通信协议规定的各字段的值和通信协议规定的各字段的掩码进行运算,并输出运算结果以确定是否接收当前帧/包。
[0043] 优选地,所述第二帧头处理模块包括:
[0044] 第二校验和电路,用于对从帧头地址指针到帧尾地址指针所指向的数据做校验和以确定是否接收当前帧/包;以及
[0045] 第二条件接收电路,用于进一步确定是否接收当前帧/包;
[0046] 所述第二条件接收电路包括:
[0047] 第三FIFO寄存器,用于存储帧头地址指针、帧尾地址指针和通信协议规定的各字段的值;;
[0048] 第四FIFO寄存器,用于存储帧头地址指针、帧尾地址指针和通信协议规定的各字段的掩码;以及
[0049] 第二运算器,用于对待接收的帧/包的帧头、通信协议规定的各字段的值和通信协议规定的各字段的掩码进行运算,并输出运算结果以确定是否接收当前帧/包。
[0050] 优选地,所述第一状态机、第二状态机和主状态机分别还包括状态转移判决模块,用于确定从一个状态转变为下一个状态的条件;
[0051] 所述状态转移判决模块包括:
[0052] 编码值输入电路,用于提供可重构的编码值;以及
[0053] 逻辑运算电路,用于根据所述编码值输入电路提供的编码值进行逻辑运算,进而输出运算结果以确定是否转移到下一个状态。
[0054] 优选地,所述编码值包括:
[0055] 运算编码值,用于确定所述逻辑运算电路的逻辑运算类型;
[0056] 当前触发事件源编码值,用于表征当前事件源;以及
[0057] 目标事件源编码值,用于表征目标事件源。
[0058] 优选地,所述的可编程可重构的帧处理器还包括:
[0059] 可编程时序产生器,用于为所述第一和第二状态机提供时序信号;
[0060] 所述可编程时序产生器包括:
[0061] 计数器;
[0062] 相对延时输出模块,连接至所述计数器,用于根据配置的相对延时值提供标准化的数据发送时序,所述相对延时值包括数据发送前延迟时间、数据发送后延迟时间、帧保护时间和信道周期;以及
[0063] 独立延时输出模块,连接至所述计数器,用于根据配置的独立延时值提供至少一个独立的延迟时间,以提供数据接收时序。
[0064] 实施本发明实施例,具有如下有益效果:通过配置帧结构描述表和协议状态结构描述表,可实现对协议规定的各字段的值和协议状态的重构,从而使处理器自适应协议的变化,极大地提升了处理器的兼容性,降低了处理器重构的代价。另外,通过将数据发送的时序标准化,可使本发明的处理器适用于任何时序机制和信道时分机制的通信协议。用户只需简单地重置相对延时输出模块的相对延时值,即可改变处理器的时序机制和信道时分机制。通过设置上回环桥,可实现处理器的自回环检测。通过设置下回环桥,可实现对下层设备的检测。

附图说明

[0065] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0066] 图1是本发明提供的第一实施例处理器结构示意图;
[0067] 图2是本发明提供的第二实施例处理器结构示意图;
[0068] 图3是本发明提供的数据处理单元结构示意图;
[0069] 图4是本发明提供的校验模块结构示意图;
[0070] 图5是本发明提供的帧头处理模块结构示意图;
[0071] 图6是本发明提供的协议状态结构描述表示意图;
[0072] 图7是本发明提供的状态转移判决模块结构示意图;
[0073] 图8是图7中的逻辑运算电路结构示意图;
[0074] 图9时本发明提供的可编程时序产生器结构示意图。

具体实施方式

[0075] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0076] 实施例一:处理器
[0077] 本实施例提供了一种可编程可重构的帧处理器100,参见图1,该处理器100包括:
[0078] 第一数据处理单元12,用于接收来自下层协议的(Ln-1层)帧(或包)并将处理后的帧(或包)发送至上层(Ln+1层)协议;
[0079] 第一状态机11,连接至第一数据处理单元12,用于通过有限状态转移表控制第一数据处理单元12的运行;
[0080] 第二数据处理单元22,用于接收来自上层协议的帧(或包)并将处理后的帧(或包)发送至下层协议;
[0081] 第二状态机21,连接至第二数据处理单元22,用于通过有限状态转移表控制第二数据处理单元22的运行;以及
[0082] 主状态机10,分别连接至第一和第二状态机11和21,用于通过有限状态转移表控制第一和第二状态机11和21的运行;
[0083] 第一和第二数据处理单元12和22分别包括帧结构描述表12a和22a,用于存储帧头地址指针、帧尾地址指针和通信协议规定的各字段的值;
[0084] 第一状态机11、第二状态机21和主状态机10分别包括协议状态结构描述表11a、21a和10a,用于存储头地址指针、尾地址指针和状态转移值。
[0085] 在本实施例中,处理器100的工作原理如下:
[0086] 主状态机10通过地址总线ABus和数据总线DBus获取必要的数据和指令,并通过有限状态转移表向第一和第二状态机发出不同的控制信号。其中,CLK是主状态机10的时钟信号,CSR是主状态机10的状态字信号,RST是主状态机10的复位信号。主状态机10包括了协议状态结构描述表10a,可用来存储帧头地址指针、帧尾地址指针和状态转移值。因此,只需要配置帧头地址指针和帧尾地址指针的值,即可实现主状态机10中的状态转移值的重构。
[0087] 第一状态机11、第二状态机21和主状态机10的结构可以完全相同。第一和第二状态机11和21主状态机10的控制下进行状态转移,进而分别控制第一和第二数据处理单元12和22工作。其中,CLKR和CLKT分别为第一和第二状态机11和21的时钟信号,AR和AT分别为第一和第二状态机11和21的地址总线,DR和DT分别为第一和第二状态机的数据总线。CSRR和CSRT分别为第一和第二状态机的状态控制字信号。第一和第二状态机11和21分别包括帧结构描述表11a和21a。因此,第一和第二状态机11和21的状态转移值也是可重构的,因此第一和第二状态机11和21的有限状态转移表可适用于不同的通信协议。
[0088] 第一和第二数据处理单元12和22的结构也可以完全相同。帧结构描述表12a和22a存储了通信协议规定的各字段的值,因此帧结构描述表12a和22a中的通信协议数据也是可以重构的。
[0089] 因此,通过帧结构描述表和协议状态结构描述表,可实现协议转移状态的重构和协议各字段值的重构,进而实现了可识别任何协议的功能。另外,本申请通过设置两个数据处理单元,分别用于接收某一层的数据以及向该层发送数据。也就是说,对于某一具体的层,本申请的处理器采用两个独立的数据处理单元来分别完成数据接收和发送工作,进而实现了对同层协议的转换。
[0090] 具体地,本实施例处理器具有如下8种数据处理模式,其具体信号流如下:
[0091] 模式一:dRi→第一数据处理单元12→dRo,即Ln-1协议层发送的输入数据dRi经第一数据处理单元12后形成输出数据dRo发送至Ln+1协议层。该处理模式主要起到帧中继/转发、路由等作用。
[0092] 模式二:dTi→第二数据处理单元22→dTo,即Ln+1协议层发送的输入数据dTi经第二数据处理单元22后形成输出数据dTo发送至Ln-1协议层。该处理模式同样主要起到帧中继/转发、路由等作用。
[0093] 模式三:dRi→第一数据处理单元12→第一状态机11→主状态机10,即Ln-1协议层发送的输入数据dRi经第一数据处理单元12和第一状态机11后发送至主状态机10。该处理模式主要起到Ln-1协议层向主状态机10发送控制指令或响应的作用。
[0094] 模式四:主状态机10→第一状态机11→第一数据处理单元12→dRo,即主状态机10通过第一状态机11、第一数据处理单元12将输出数据dRo发送至Ln+1层。该处理模式主要用于主状态机向Ln+1协议层发送控制指令或应答等。
[0095] 模式五:dTi→第二数据处理单元22→第二状态机21→主状态机10,即Ln+1层发送的输入数据dTi经第二数据处理单元22、第二状态机21后发送至主状态机10。该处理模式主要起到Ln+1协议层向主状态机10发送控制指令或响应的作用。
[0096] 模式六:主状态机10→第二状态机21→第二数据处理单元22→dTo,即主状态机10通过第二状态机21和第二数据处理单元22将输出数据dTo发送至Ln-1协议层。该处理模式主要用于主状态机向Ln-1协议层发送控制指令或应答等。
[0097] 模式七:dRi→第一数据处理模块12→第一状态机11→主状态机10→第二状态机21→第二数据处理单元22→dTo,即Ln-1层输入的数据dRi依次经过第一数据处理单元12、第一状态机11、主状态机10、第二状态机21和第二数据处理单元22后形成输出数据dTo发送给Ln-1层。该处理模式主要用于协议转换和Ln-1协议层检测。换句话说,Ln-1协议层输入的数据可能采用的是A协议,经本处理器处理后,变成采用B协议的数据重新返回至Ln-1协议层。当然,也可以不转换协议,只是用来检测本处理器的下层是不是正常工作的。例如,本处理器可能是工作在MAC层(介质访问层),那么就可以通过本处理器检测物理层是否正常。
[0098] 模式八:dTi→第二数据处理单元22→第二状态机21→主状态机10→第一状态机11→第一数据处理模块12→dRo,即Ln+1协议层输入的数据dTi依次经过第二数据处理单元
22、第二状态机21、主状态机10、第一状态机11和第一数据处理单元12后形成输出数据dRo发送给Ln+1层。该处理模式主要用于协议转换和自回环检测。也就是说,可以通过该工作模式检测本处理器是否正常工作。
[0099] 应理解,在本申请中,本处理器所处的协议层是任意的,例如可以是物理层、MAC层、IP层、TCP层或应用层。因此,本申请的处理器具有普遍适用性。
[0100] 应理解,在本申请中,“第一”、“第二”、“第三”和“第四”等词语并不是用来限定先后顺序,只是为了区分部件的名称。
[0101] 实施例二:处理器
[0102] 本实施例提供了另一种结构的处理器100,如图2所示,该处理器100在第一实施例的基础上增加了上回环桥31和下回环桥32。
[0103] 上回环桥31分别连接至第一数据处理单元12、第二数据处理单元22和主状态机10,用于在主状态机10的控制信号Sbu的控制下,实现第一和第二数据处理单元12和22之间的桥接,从而使来自上层的数据dTi经第二数据处理单元22、上回环桥31和第一数据处理单元12后形成输出数据dRo并发送至上层。
[0104] 下回环桥32分别连接至第一数据处理单元12、第二数据处理单元22和主状态机10,用于在主状态机10的控制信号Sbd的控制下,实现第一和第二数据处理单元12和22之间的桥接,从而使来自下层的数据dRi经第一数据处理单元12、下回环桥32和第二数据处理单元22后形成输出数据dTo并发送至下层。
[0105] 因此,本实施例处理器除了具备第一实施例中的8种数据处理模式外,还具备以下2种数据处理模式。其具体信号流如下:
[0106] 模式九:dRi→第一数据处理单元12→下回环桥32→第二数据处理单元22→dTo,即Ln-1层发送的数据dRi经第一数据处理单元12、下回环桥32和第二数据处理单元22后返回至Ln-1协议层。该处理模式主要用于对下层数据的协议转换和下层检测。
[0107] 模式十:dTi→第二数据处理单元22→上回环桥31→第一数据处理单元12→dRo,即Ln+1协议层发送的数据dTi经第二数据处理单元22、上回环桥31和第一数据处理单元12后返回至Ln+1协议层。该处理模式主要用于对上层数据的协议转换和本处理器的自回环检测。
[0108] 本实施例未提及的部分以及附图2未示出的部分与第一实施例相同,在此不再累述。
[0109] 实施例三:数据处理单元
[0110] 本实施例提供了一种可编程可重构的帧处理器100,主要是给出了实施例一和实施例二中的数据处理单元12和22的一种具体实施方式。如图3所示,本实施例中,第一数据处理单元12和第二数据处理单元22的结构相同。在通信过程中,数据包或帧包括三部分:帧头、帧数据和校验数据。校验数据有很多种,常见的如CRC校验码。相应地,第一数据处理单元12包括:
[0111] 第一开关121,用于开启或关闭第一数据处理单元12的帧(或包)的接收和发送;
[0112] 帧头开关(SW)122a,连接至第一开关121,用于开启或关闭帧头的接收和发送;
[0113] 帧头处理模块123a,分别连接至帧头开关122a和第一状态机11,用于在第一状态机11的控制下处理帧头;
[0114] 帧数据开关122b,连接至第一开关121,用于开启或关闭帧数据的接收和发送;
[0115] 帧数据处理模块123b,分别连接至帧数据开关122b和第一状态机11,用于在第一状态机11的控制下处理帧数据;
[0116] 校验开关122c,连接至第一开关121,用于开启或关闭校验数据的接收和发送;以及
[0117] 校验模块123c,分别连接至校验开关122c和第一状态机11,用于在第一状态机11的控制下处理校验数据。
[0118] 第二数据处理单元22包括:
[0119] 第二开关221,用于开启或关闭第二数据处理单元22的帧(包)的接收和发送;
[0120] 帧头开关222a,连接至第二开关221,用于开启或关闭帧头的接收和发送;
[0121] 帧头处理模块223a,分别连接至帧头开关222a和第二状态机21,用于在第二状态机21的控制下处理帧头;
[0122] 帧数据开关222b,连接至第二开关221,用于开启或关闭帧数据的接收和发送;
[0123] 帧数据处理模块223b,分别连接至帧数据开关222b和第二状态机21,用于在第二状态机21的控制下处理帧数据;
[0124] 校验开关222c,连接至第二开关221,用于开启或关闭校验数据的接收和发送;以及
[0125] 校验模块223c,分别连接至校验开关222c和第二状态机21,用于在第二状态机21的控制下处理校验数据。
[0126] 因为主状态机10左右两侧结构相同,下面以主状态机10左侧的结构为例介绍其具体工作原理。
[0127] 当状态机使能信号ERX有效时,第一状态机11开始工作。
[0128] 当使能信号Shr有效时,第一开关121、帧头开关122a闭合,帧头处理模块123a工作,d11=dRi,dRo=d16。
[0129] 当使能信号Sdr有效时,第一开关121、帧数据开关122b闭合,帧数据处理模块123b工作,d21=dRi,dRo=d26。
[0130] 当使能信号Scr有效时,第一开关121、校验开关122c闭合,校验模块123c工作,d31=dRi,dRo=d36。
[0131] 主状态机10右边的结构与左边相同,其工作原理也相同,在此不再累述。
[0132] 实施例四:帧头处理模块
[0133] 本实施例提供了帧头处理模块的具体结构,其适用于实施例三中的帧头处理模块123a和223a。如图4所示,该帧头处理模块包括:校验和电路141a和条件接收电路141b。
[0134] 校验和电路141a用于对从帧头地址指针PS到帧尾地址指针PE所指向的数据做校验和以确定是否接收当前帧(包)。校验和电路141a具体如何根据头地址指针PS、尾地址指针PE和输入数据di做校验和的方法,可以采用现有技术中的任何一种方法,在此不再累述。校验和电路141a进行校验和处理之后,将处理结果通过Cout信号输出。在不同的协议中,需要对输入数据di的不同位做校验和,本申请中通过帧头地址指针PS和帧尾地址指针PE来指定做校验和的位置,因此可通过改变地址指针来适应任何的协议。
[0135] 条件接收电路141b用于进一步确定是否接收当前帧(包)。优选地,实施例一至实施例三种的帧结构描述表包含在帧头处理模块的条件接收电路141b中。具体地,条件接收电路141b包括:
[0136] FIFO寄存器1411,用于存储帧头地址指针PS、帧尾地址指针PE和通信协议规定的各字段的值;
[0137] FIFO寄存器1413,用于存储帧头地址指针PS、帧尾地址指针PE和通信协议规定的各字段的掩码;以及
[0138] 运算器1412,用于对待接收的数据的帧头(输入数据di)、通信协议规定的各字段的值Pi和通信协议规定的各字段的掩码Mi进行运算,并输出运算结果do以确定是否接收当前数据。
[0139] 条件接收电路141b工作原理如下:
[0140] 复位信号RST有效或初始化时通过地址总线AR和数据总线DR修改帧头地址指针PS、帧尾地址指针PE和通信协议规定的各字段的值。在使能信号Shr有效时,开始工作,输出数据do=OP(Pi,di,Mi)。其中,OP为运算器1412的运算逻辑,可根据实际需要进行定义。例如,OP运算逻辑可以为:当Mi=0时,do=Pi&di(Pi与di的逻辑与);当Mi=1时,di=Pi。在帧头中,do转换为1,则接收当前帧,否则丢弃当前帧。
[0141] 在本实施例中,帧头处理模块并没有定义任何一种具体的协议的数据处理规则,而是单纯地将帧头与FIFO寄存器1411中的协议字段进行逻辑运算,逻辑运算的规则可通过改变FIFO寄存器1413中的掩码来确定。也就是说,用户可以配置FIFO寄存器中的协议字段,同样可以配置协议字段的掩码,通过这两个配置,条件接收电路141b随时重构以识别任何新的协议数据。当然,本申请的帧数据结构描述表并不一定是采用FIFO寄存器实现,先进先出、先进后出、循环队列都是可行的技术方案。
[0142] 实施例五:校验模块
[0143] 本实施例提供了校验模块143的具体结构,其适用于实施例三中的校验模块123c和223c。如图5所示,该校验模块143包括:移位寄存器1431和逻辑处理单元1432。其工作原理如下:
[0144] 当使能信号Scr/Sct有效时,校验模块143工作。从d33/d63装入新的多项式。根据新装入的多项式和当前接收到的校验数据di,逻辑处理单元1432进行逻辑处理,对数据进行校验或纠错。
[0145] 在本实施例中,只要给移位寄存器1431设置足够的存储空间,那么移位寄存器1431中就可以配置适合不同通信协议的多项式。因此,本申请中的校验模块也是可重构的。
[0146] 实施例六:状态机
[0147] 本实施例提供了状态机的具体数据结构和工作原理,其适用于实施例一至实施例三种的第一状态机11、第二状态机21和主状态机10。图6示出了状态机中协议状态结构描述表数据结构。如图6所示,FIFO寄存器中存储了帧头地址指针PS、帧尾地址指针PE和状态转移值VS(1)~VS(M)。其中M为当前协议的状态数。FIFO寄存器的存储空间足以满足任何协议对状态数的要求。
[0148] 图7示出了状态转移判决模块的结构示意图。如图7所示,状态转移判决模块15包括:编码值输入电路151和逻辑运算电路152。编码值输入电路151用于提供可重构的编码值,该编码值包括运算编码值OPC、当前触发事件源编码值Cs和目标事件源编码值Cd。通过运算编码值OPC,可以确定逻辑运算电路152的运算类型。例如,运算编码值OPC为2bit,那么可以定义4种类型的逻辑运算,OPC为3bit,则可以定义8种类型的逻辑运算。OPC的值可接受用户的配置,从而适用于不同的协议。Cs可用于表征当前事件源,其值也可以进行配置,以适用于不同的协议。Cd用于表征目标事件源,与当前事件源进行逻辑运算以确定在当前事件源下是否进行状态转移。
[0149] 具体地,如图8所示,逻辑运算电路152可包括逻辑运算器152a和选择器152b。S0表示保持当前状态,S1表示转移到下一个状态。在一个具体实施例中,OPC为2bit,那么OPC可以有四个取值00、01、10和11。逻辑运算器就可以定义四种运算方式,例如与、或、异或和同或。当然,也可以根据实际需要定义更加复杂的运算方式。而选择器152b的逻辑则可为:
[0150]
[0151] 应理解,逻辑运算电路152的具体实现方式有很多种,本实施例只是列举了其中一种可能方案。本领域技术人员在本实施例的教导下,可以根据实际需要,设计出各种合适的实现方式。这也正是本申请的状态机可重构的根本体现。
[0152] 因此,本申请的状态机的状态转移判决电路也是可重构的,通过输入不同的编码值,就可以重构出不同的状态转移模型以适用于不同的协议。
[0153] 实施例七:可编程时序产生器
[0154] 本实施例提供了可编程时序产生器400的具体结构,其用于定义实施例一至实施例三的数据处理模块的数据接收和发送时序。如图9所示,该可编程时序产生器400包括:计数器41、相对延时输出模块42和独立延时输出模块43。
[0155] 参考图1-3和9,相对延时输出模块42,连接至计数器41,用于根据配置的相对延时值提供标准化的数据发送时序,相对延时值包括数据发送前延迟时间Tds、数据发送后延迟时间Tde、帧保护时间Tdp和信道周期Tdt。如图9所示,四个相对延时值可通过四个串联的置数单元42a~42d来设置,最后输出这四个相对延迟时间的和DTime。因此根据不同的通信协议的时序要求,可配置(或称可编程)四个相对延迟时间的值。本发明通过将不同的协议的时序标准化,简单地配置四个置数单元的值即可构造成符合不同通信协议的时序关系。
[0156] 参考图1-3和9,独立延时输出模块43,连接至计数器41,用于根据配置的独立延时值提供至少一个独立的延迟时间,以提供数据接收时序。图9给出了四个独立的延迟时间T1~T4。这四个独立的延迟时间通过四个并联的置数单元43a~43d来设置。当然,本实施例给出的置数单元的个数只是为了阐述其工作原理,并不是用来限制其结构。本领域技术人员在本申请的教导下,可根据实际需要设计置数单元的数量,这并不需要付出创造性劳动。
[0157] 因此,通过本实施例可实现标准化的数据接收和发送时序,用户只需简单配置置数单元的值即可重构出适用于不同协议的数据接收和发送时序。
[0158] 以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。