本发明涉及通信技术领域,特别涉及一种实现中央处理器与功能芯片通信的方法和装置。
背景技术:
在一个复杂的通信设备内,往往有主控板和多块各种功能支路板组成,并且每块板上有多片芯片实现各种功能。
一般主控板上处理器通过本地总线(local bus)连到各芯片进行控制、状态上报、或其他的信息传递等功能来实现协调工作,但是这种方法有一定的局限性,如需要较多的连线,且由于走线较长,速率受限,拉低了处理器工作速率;走线距离较长还会导致稳定性也容易出问题;不能实现跨距较大的直接管理,系统规模受限。
也可以采用多处理器的方式,每个处理器管理周围的功能芯片,处理器间再通过某种方式通信协调工作,这样大大增加了系统复杂性。
技术实现要素:
有鉴于此,本申请提供一种实现中央处理器与功能芯片通信的方法和装置,以解决系统复杂、规模受限,工作效率低下的问题。
为解决上述技术问题,本申请的技术方案是这样实现的:
一种实现中央处理器与功能芯片通信的方法,增加与中央处理器通过以太网通信,与功能芯片通过本地总线通信的FPGA,该方法包括:
所述FPGA接收到中央处理器发送的命令以太网帧时,进行缓存;
当缓存一个完整的命令以太网帧时,从缓存中读出该命令以太网帧中的操作命令,并根据该操作命令在本地总线上产生与功能芯片相对应的信号和时序进行操作;
从本地总线读出数据并存储;
当完成所述完整的命令以太网帧中的操作命令时,根据预定义的帧结构,使用存储的数据和操作命令生成回报执行结果的回报以太网帧,并发送给中央处理器。
一种实现中央处理器与功能芯片通信的装置,该装置应用于增加与中央处理器通过以太网通信,与功能芯片通过本地总线通信的FPGA上,该装置包括:接收单元、存储单元、处理单元、生成单元和发送单元;
所述接收单元,用于接收命令以太网帧;
所述存储单元,用于当所述接收单元接收到中央处理器发送的命令以太网帧时,进行缓存;将所述处理单元从本地总线读出的数据存储;
所述处理单元,用于当所述存储单元缓存一个完整的命令以太网帧时,从缓存中读出该命令以太网帧中的操作命令,并根据该操作命令在本地总线上产生与功能芯片相对应的信号和时序进行操作;并从本地总线读出数据;
所述生成单元,用于当所述处理单元完成所述完整的命令以太网帧中的操作命令时,根据预定义的帧结构,使用存储的数据和操作命令生成回报执行结果的回报以太网帧;
所述发送单元,用于将所述生成单元生成的回报以太网帧发送给中央处理器。
由上面的技术方案可知,本申请中通过使用FPGA转换以太网和本地总线,实现中央处理器对各功能芯片寄存器的操作,能够扩展中央处理器的管理范围,降低系统的复杂性,提高中央处理器的工作速率。
附图说明
图1为本申请实施例中系统结构示意图;
图2为本申请实施例中预定义的帧结构;
图3为本申请实施例实现中央处理器与功能芯片通信的流程示意图;
图4为本申请应用于上述技术的装置结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并举实施例,对本发明的技术方案进行详细说明。
在一个复杂系统内,需要很多个各种功能芯片进行协调工作,实现系统整体功能,为此需要中央处理器对各功能芯片进行管理控制。
系统比较庞大时,中央处理器直接通过local bus接到各功能芯片比较困难,本申请具体实现时,在根据系统的具体结构划分的每个功能模块内,放置一个现场可编程门阵列(FPGA,Field Programmable Gate Array),FPGA与中央处理器通过以太网通信,通过本地总线与各功能芯片通信。
参见图1,图1为本申请实施例中系统结构示意图。图1中新增的FPGA个数根据系统划分的功能模块确定。
本申请中提到的本地总线均为中央处理器(CPU)本地总线,功能芯片为实现功能的芯片。本申请在具体实现时,利用通信系统划分的模块结构,不再重新划分模块。一个模块可能对应实现一个功能的功能芯片,也可能对应实现多个功能的功能芯片,一个功能芯片可以是实现一个功能的芯片,也可以是实现多个功能的芯片,对此,本申请均不作限制。
现在大多中央处理器具有以太网接口,本申请具体实现时,直接利用已存在的以太网接口收发以太网帧即可。
在中央处理器和FPGA上预先配置预定义的帧结构,以使中央处理器和FPGA能够互相识别接收到的以太网帧。
参见图2,图2为本申请实施例中预定义的帧结构。
图2中DA、SA,填充目的和源媒体访问控制(MAC)地址,为中央处理器和FPGA的MAC地址。FPGA接收到中央处理器发送的命令以太网帧时,目的MAC地址为FPGA的MAC地址,源MAC地址为中央处理器的MAC地址;FPGA生成并向中央处理器发送的回报以太网帧时,源MAC地址为FPGA的MAC地址,目的MAC地址为中央处理器的MAC地址。
Type:帧类型,选择一个与目前已知协议不同的数值即可。
Protocol:协议编号。
Order:帧序号,命令以太网帧的帧序号可以依次递增实现,回报以太网帧与对应命令以太网帧的帧序号一致,以便中央处理器容易判断命令以太网帧是否丢。
Operate code:操作码。
Ind:
Bit3-0:1H:写操作;2H:读操作;3H:写操作回送数据;4H:读操作回送数据。
Addr:地址,可用高位地址区分芯片,低位地址用于芯片内寄存器。
Data:读写数据。命令写时为写数据,命令读时填充为0,为回送预留位置。回送时为寄存器读出值。
Addr和Data的长度可根据系统具体需要规定。根据需要一个帧可包含一个或多个operate code。
End:当前帧操作结束标志,固定为0。
Pad:填充域,如果帧不够最小以太网帧长填充0。
FCS:循环冗余校验码(CRC,Cyclic Redundancy Check)校验码。
下面结合附图,详细说明本申请通过FPGA实现中央处理器与功能芯片通信的过程。
参见图3,图3为本申请实施例实现中央处理器与功能芯片通信的流程示意图。具体步骤为:
步骤301,FPGA接收到中央处理器发送的命令以太网帧时,进行缓存。
FPGA接收到中央处理器发送的命令以太网帧之后,进行缓存之前,进一步执行如下处理:
该FPGA对所述命令以太网帧进行CRC校验,删除错误的命令以太网帧,并按照预定义的帧结构校验命令以太网帧,即校验帧中的DA、SA、Type等域,只保留对功能芯片操作的命令以太网帧;其它的帧都丢弃,防止误操作。
步骤302,当该FPGA缓存一个完整的命令以太网帧时,从缓存中读出该命令以太网帧中的操作命令,并根据该操作命令在本地总线上产生与功能芯片相对应的信号和时序进行操作。
由于以太网帧和通过本地总线对芯片操作的速率不匹配,因此,因先缓存以太网帧,在接收完一个完整帧后开始处理一个完整的以太网帧。
本步骤中从缓存中读出该命令以太网帧中的操作命令,并根据该操作命令在本地总线上产生与功能芯片相对应的信号和时序进行操作时,如果操作命令是读,则从功能芯片中读出数据;如果操作指令是写,在功能芯片中写入数据后再读一次写入数据的寄存器。
步骤303,该FPGA从本地总线读出数据并存储。
步骤304,该FPGA当完成所述完整的命令以太网帧中的操作命令时,根据预定义的帧结构,使用存储的数据和操作命令生成回报执行结果的回报以太网帧,并发送给中央处理器。
本步骤中FPGA根据预定义的帧结构,使用存储的数据和操作命令生成回报执行结果的回报以太网帧时,还产生CRC校验码,并携带在回报以太网帧中,以使中央处理器能够进行CRC校验。
该FPGA根据预定义的帧结构,使用存储的数据和操作命令生成回报执行结果的回报以太网帧时,在回报以太网帧中携带与对应命令以太网帧的帧序号一致的帧序号,以使中央处理器根据帧序号判断命令以太网帧是否丢失。
若接收到携带对应命令以太网帧的帧序号的回报以太网帧,则确定该命令以太网帧未丢失;否则,确定该命令以太网帧丢失。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
综上所述,本申请通过使用FPGA转换以太网和本地总线,实现中央处理器对各功能芯片寄存器的操作,能够扩展中央处理器的管理范围,降低系统的复杂性,提高中央处理器的工作速率。
基于同样的发明构思,本申请还提出一种实现中央处理器与功能芯片通信的装置,该装置应用于增加与中央处理器通过以太网通信,与功能芯片通过本地总线通信的FPGA上。参见图4,图4为本申请应用于上述技术的装置结构示意图。该装置包括:接收单元401、存储单元402、处理单元403、生成单元404和发送单元405;
接收单元401,用于接收命令以太网帧;
存储单元402,用于当接收单元401接收到中央处理器发送的命令以太网帧时,进行缓存;将处理单元403从本地总线读出的数据存储;
处理单元403,用于当存储单元402缓存一个完整的命令以太网帧时,从缓存中读出该命令以太网帧中的操作命令,并根据该操作命令在本地总线上产生与功能芯片相对应的信号和时序进行操作;并从本地总线读出数据;
生成单元404,用于当处理单元403完成所述完整的命令以太网帧中的操作命令时,根据预定义的帧结构,使用存储的数据和操作命令生成回报执行结果的回报以太网帧;
发送单元405,用于将生成单元404生成的回报以太网帧发送给中央处理器。
较佳地,
处理单元403,具体用于从缓存中读出该命令以太网帧中的操作命令,并根据该操作命令在本地总线上产生与功能芯片相对应的信号和时序进行操作时,如果操作命令是读,则从功能芯片中读出数据;如果操作指令是写,在功能芯片中写入数据后再读一次写入数据的寄存器。
较佳地,
所述预定义的帧结构包括的字段为:目的和源MAC地址、帧类型、协议编号、帧序号、操作码、当前帧操作结束标志,校验码;其中,当帧结构为命令以太网帧对应的帧结构时,操作码中填充操作命令;当帧结构为回报以太网帧对应的帧结构时,操作码中填充操作结果。
较佳地,
处理单元403,进一步用于在接收单元401接收到中央处理器发送的命令以太网帧之后,存储单元402进行缓存之前,对所述命令以太网帧进行CRC校验,删除错误的命令以太网帧,并按照预定义的帧结构校验命令以太网帧,只保留对功能芯片操作的命令以太网帧;
生成单元404,进一步用于根据预定义的帧结构,使用存储的数据和操作命令生成回报执行结果的回报以太网帧时,产生CRC校验码,并携带在回报以太网帧中。
较佳地,
生成单元404,进一步用于根据预定义的帧结构,使用存储的数据和操作命令生成回报执行结果的回报以太网帧时,在回报以太网帧中携带与对应命令以太网帧的帧序号一致的帧序号,以使中央处理器根据帧序号判断命令以太网帧是否丢失。
本申请实施例中采用通用的以太网传递信息,通过FPGA转换为localbus总线访问各功能芯片的寄存器;并把操作结果通过以太网回送给处理器;采用DA、SA、Type、Protocol等域识别信息过滤无用以太网帧;采用对以太网帧加帧序号判断是否有丢失的信息帧,使用多个FPGA可以扩展处理器的管理范围。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。