CAN总线通讯控制系统及通信系统转让专利
申请号 : CN202010991480.8
文献号 : CN112039745B
文献日 : 2021-06-22
发明人 : 刘锴 , 宋宁 , 崔明章 , 杜金凤
申请人 : 广东高云半导体科技股份有限公司
摘要 :
权利要求 :
1.一种基于具有FGPA与MCU的 SoC架构的CAN总线通讯控制系统,其特征在于,包括集成在同一片上系统中的MCU内核和FPGA内核,所述FPGA内核逻辑资源设置有CAN总线中断信号映射模块、MCU总线映射模块和多个CAN总线控制器模块;其中,每个所述CAN总线控制器模块用于基于所述FPGA内核的逻辑资源实现CAN总线标准协议,并连接位于所述片上系统外部的外部CAN设备,所述MCU总线映射模块用于将所述MCU内核的一路CAN系统总线,映射为数量能够动态配置的多路CAN子系统总线,以实现所述片上系统所连接的外部CAN设备的功能和数量的动态可配;所述CAN总线中断信号映射模块连接各个所述CAN总线控制器模块,所述CAN总线中断信号映射模块用于将各个所述CAN总线控制器模块的中断信号按照规定的优先级映射到所述MCU内核的中断向量表中,以实现MCU内核对各个所述CAN总线控制器模块的优先级的分类控制。
2.如权利要求1所述的CAN总线通讯控制系统,其特征在于,所述MCU系统总线映射模块通过所述FPGA内核的内部边界延伸到所述FPGA内核,与相应的所述CAN总线控制器模块连接,实现MCU内核与所述外部CAN设备的交互。
3.如权利要求1所述的CAN总线通讯控制系统,其特征在于,每路所述CAN子系统总线用于连接相应的一个所述CAN总线控制器模块;每个所述CAN总线控制器模块均包括:CAN总线功能控制模块,用于基于所述FPGA内核的逻辑资源实现CAN总线标准协议;
CAN总线外部接口,连接所述CAN总线功能控制模块和相应的所述外部CAN设备,以实现所述CAN总线功能控制模块与所述外部CAN设备的CAN总线通信交互;
CAN总线内部接口,连接所述CAN总线功能控制模块、所述MCU总线映射模块和所述CAN总线中断信号映射模块,用于实现CAN总线功能控制模块和所述MCU总线映射模块、所述CAN总线中断信号映射模块之间的交互。
4.如权利要求1所述的CAN总线通讯控制系统,其特征在于,每个所述CAN总线控制器模块均包括通用寄存器组,所述通用寄存器组包括控制寄存器、状态寄存器、读数据寄存器和写数据寄存器;所述通用寄存器组中的各个寄存器连接所述CAN总线功能控制模块的相应引脚。
5.如权利要求4所述的CAN总线通讯控制系统,其特征在于,所述MCU总线映射模块还用于译码所述MCU内核的外设地址空间,在所述MCU内核的外设地址空间中映射相应的所述CAN总线控制器模块的寄存器,以实现所述MCU内核与所述外部CAN设备的读、写与控制。
6.如权利要求所述4的CAN总线通讯控制系统,其特征在于,所述CAN 总线功能控制模块包括:时钟引脚、复位引脚、控制类引脚、状态类引脚、读数据引脚和写数据引脚;其中,所述时钟引脚外接MCU内核的时钟信号,所述复位引脚外接所述MCU内核的复位信号,所述控制类引脚连接所述控制寄存器,所述状态类引脚连接所述状态寄存器,所述读数据引脚连接所述读数据寄存器,所述写数据引脚连接所述写数据寄存器。
7.一种通信系统,其特征在于,包括权利要求1 6中任一项所述的基于具有FGPA与MCU~
的 SoC架构的CAN总线通讯控制系统,以及,与所述CAN总线通讯控制系统连接的至少一个外部CAN设备,每个所述外部CAN设备与所述CAN总线通讯控制系统中相应的一个CAN总线控制器模块连接。
8.如权利要求7所述的通信系统,其特征在于,所述外部CAN设备包括外部CAN收发器,所述外部CAN收发器与所述CAN总线通讯控制系统集成在同一片上系统中,或者,所述外部CAN收发器的至少部分设置在所述CAN总线通讯控制系统所在的片上系统的片外。
9.一种利用权利要求7所述的通信系统实现动态配置CAN总线各个设备节点的优先级的方法,其特征在于,包括以下步骤:
首先,利用FPGA的逻辑资源,将MCU的一路CAN系统总线,映射为数量能够动态配置的多路CAN子系统总线;
然后,将各个外部CAN设备的CAN总线控制器挂载到相应的所述CAN子系统总线上;
接着,设置每个所述CAN总线控制器的中断信号,并将每个所述CAN总线控制器的中断信号,按照规定的优先级映射到所述MCU的中断向量表中,以实现MCU对各个所述外部CAN设备所在节点的优先级分类控制。
说明书 :
CAN总线通讯控制系统及通信系统
技术领域
背景技术
CAN系统总线CAN_H这两根线与外部设备相连,且内部继承了错误探测和管理模块。CAN被广
泛应用于汽车计算机控制系统和嵌入式工业控制局域网领域,在MCU(Micro‑controller
Unit,微控制器单元)单片机领域,通常作为MCU的外部设备与片外CAN总线串行通信。
起来,构成一个MCU内核加FPGA内核的SoC架构。基于FPGA可编程的特点,该片上系统架构具
有良好的扩展性。
发明内容
制,以使得CAN设备功能和数据动态可配。
块、MCU总线映射模块和多个CAN总线控制器模块;其中,每个所述CAN总线控制器模块用于
基于所述FPGA内核的逻辑资源实现CAN总线标准协议,并连接位于所述片上系统外部的相
应的外部CAN设备,所述MCU总线映射模块用于将所述MCU内核的一路CAN系统总线,映射为
数量能够动态配置的多路CAN子系统总线。
先级映射到所述MCU内核的中断向量表中,以实现MCU内核对各个所述CAN总线控制器模块
的优先级的控制。
CAN总线中断信号映射模块的交互。
寄存器连接所述CAN总线功能控制模块的相应引脚。
内核与所述外部CAN设备的读、写与控制。
引脚外接所述MCU内核的复位信号,所述控制类引脚连接所述控制寄存器,所述状态类引脚
连接所述状态寄存器,所述读数据引脚连接所述读数据寄存器,所述写数据引脚连接所述
写数据寄存器。
CAN设备与所述CAN总线通讯控制系统中相应的一个CAN总线控制器模块连接。
上系统的片外。
CAN设备所在节点的优先级分类控制。
FPGA中实现的CAN子系统总线能作为MCU的外部设备,提高了MCU的扩展性。
计具有良好的扩展性,用户可以动态配置MCU外部的CAN总线控制器模块的数量,并进一步
通过CAN总线控制器模块动态配置所接入的外部CAN设备,以达到外部CAN设备的功能和数
据动态可配的目的,提高了MCU的扩展性和易用性,降低了MCU挂载外部CAN设备的设计与应
用复杂度,有助于用户快速应用CAN总线。
控制器模块的优先级的分类控制,降低了CAN总线优先级对CAN设备节点的依赖性,增强了
MCU对CAN设备节点优先级的控制性,提高了MCU外部CAN设备的扩展性和易用性。
附图说明
具体实施方式
非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
13具有至少一路CAN系统总线,每路CAN系统总线具有低电平CAN系统总线CAN_L和高电平
CAN系统总线CAN_H两根线。FPGA内核10内部的逻辑资源主要包括逻辑控制区块(Logical
ControlBlock,LCB) 资源、时钟网络资源、时钟处理资源、块随机存储器(Block RAM)、数字
信号处理资源(DSP核)和接口资源。逻辑控制区块资源包括显示查找表、加法器、寄存器、多
路选择器等等。本实施例中,所述FPGA内核10逻辑资源设置有一MCU总线映射模块11、一CAN
总线中断信号映射模块12以及n个CAN总线控制器模块1 n,其中n≥2且为整数。
~
CAN总线标准协议,并连接设置于所述片上系统SoC外部的相应的外部CAN设备21 2n。即CAN
~
总线控制器模块1 n通过CAN总线与外部CAN设备21 2n一一对应连接,外部CAN设备21 2n位
~ ~ ~
于片上系统SoC外部并作为CAN总线的设备节点。在实际应用时,实际接入系统的外部CAN设
备的数量m可以小于n,此时,一些CAN总线控制器模块就未连接外部CAN设备,处于空闲状
态。
CAN总线外部接口(未图示)、CAN总线内部接口(未图示)以及通用寄存器组。其中,CAN总线
功能控制模块100用于基于所述FPGA内核10的逻辑资源实现CAN总线标准协议。CAN总线外
部接口连接所述CAN总线功能控制模块和外部CAN设备21 2n中的一个外部CAN设备,以实现
~
所述CAN总线功能控制模块与该外部CAN设备的CAN总线通信交互。CAN总线内部接口连接所
述CAN总线功能控制模块100和所述MCU总线映射模块11、所述CAN总线中断信号映射模块
12,用于实现CAN总线功能控制模块100和所述MCU总线映射模块11、所述CAN总线中断信号
映射模块12的交互。
存器102用于存放两类信息:一类是体现当前指令执行结果的各种状态信息,另一类是存放
控制信息;读数据寄存器103用于暂存读取的数据;写数据寄存器104用于暂存需要写入的
数据。
述时钟引脚外接MCU内核13的时钟信号,所述复位引脚外接所述MCU内核13的复位信号,所
述控制类引脚连接所述控制寄存器101,所述状态类引脚连接所述状态寄存器102,所述读
数据引脚连接所述读数据寄存器103,所述写数据引脚连接所述写数据寄存器104。
该时刻的输入,与电路原来的状态无关。所述CAN总线中断信号映射模块12的输入侧还通过
各个所述CAN总线控制器模块1 n的CAN总线内部接口,连接各个所述CAN总线控制器模块1
~ ~
n的控制寄存器101和状态寄存器102,所述CAN总线中断信号映射模块12的输出侧连接MCU
内核13的中断向量表。所述CAN总线中断信号映射模块12用于将各个所述CAN总线控制器模
块1 n的中断信号,按照规定的优先级映射到所述MCU内核13的中断向量表中,以实现MCU内
~
核13对各个所述CAN总线控制器模块1 n的优先级的控制。
~
H两根线。所述MCU总线映射模块11能够根据CAN总线控制器模块1 n所连接外部CAN设备的
~
数量,将所述MCU内核13的一路CAN系统总线,映射为与所接入的外部CAN设备的数量相同的
多路CAN子系统总线,即所述MCU总线映射模块11能够根据需要接入的外部CAN设备的数量,
动态配置CAN子系统总线的数量,每路所述CAN子系统总线与需要接入的外部CAN设备一一
对应,且每路所述CAN子系统总线用于连接CAN总线控制器模块1 n中相应的一个。
~
CAN_H映射为多根高电平CAN子系统总线CAN_H_s,且一根低电平CAN子系统总线CAN_L_s和
一根低电平CAN子系统总线CAN_L_s组成一路CAN子系统总线,一路CAN子系统总线连接相应
的一个CAN总线控制器模块,此时,外部CAN设备21 2n相当于并联到MCU内核13上,通过MCU
~
内核13对所述CAN总线控制器模块1 n的优先级的分类控制,可以实现MCU内核13对外部CAN
~
设备21 2n的优先级控制,由此避免了现有技术中MCU仅有两根CAN系统总线时很难支持两
~
路外部CAN设备以及MCU并不能很好地控制CAN总线各个设备节点的优先级的问题。
备21 2n的交互。
~
控制器模块的寄存器,实现所述MCU内核13与所述外部CAN设备21 2n的读、写与控制。
~
用寄存器组的地址深度,以及所接入的外部CAN设备21 2n的数量,对MCU内核12的外设地址
~
空间进行地址分段,并在地址分段与通用寄存器组的寄存器组地址之间形成映射关系,并
进一步通过CAN子系统总线和CAN系统总线将映射关系发送至MCU内核13,以使得MCU内核13
能够根据映射关系产生所接入的每个外部CAN设备在MCU内核13中的专用外设地址信号。进
一步地,MCU总线映射模块11还将每个外部CAN设备在MCU内核13中的专用外设备地址信号
映射成该外部CAN设备的寄存器组地址信号,进一步发送至对应的CAN总线控制器模块,该
CAN总线控制器模块根据该寄存器组地址信号对其通用寄存器组进行操作,以进一步利用
其通用寄存器组对所连接的外部CAN设备进行操作,以实现MCU内核13与所述外部CAN设备
21 2n的读、写与控制。
~
型对其通用寄存器组中对应的寄存器进行相应的操作。
内的多个外部CAN设备21 2n,且MCU总线映射模块11已根据各个所述CAN总线控制器模块1
~ ~
n中的通用寄存器组的地址深度,以及接入的外部CAN设备21 2n的数量,将所述MCU内核13
~
的一路CAN系统总线,映射为数量能够动态配置的n路CAN子系统总线,每路CAN子系统总线
用于连接一个外部CAN设备,其中第i路CAN子系统总线连接CAN总线控制器模块i,CAN总线
控制器模块i连接外部CAN设备2i,实现片上系统SoC与外部CAN设备2i之间的交互。MCU内核
13需要对外部CAN设备2i进行操作的具体流程包括:
CAN总线控制器模块i继续处于待机状态,若是,CAN总线控制器模块i使能,并从所述操作指
令中解析出操作类型,判断是读操作还是写操作;
器、控制寄存器和读数据寄存器,并通过选中的寄存器和对外部CAN设备2i进行控制以及数
据读取,读取的数据可以暂存于读数据寄存器中,控制和确定操作模式以及当前执行任务
的特性等信息暂存于控制寄存器,体现当前指令执行结果的各种状态信息以及CAN总线控
制器模块i产生的用于控制外部CAN设备2i的控制信息等暂存于状态寄存器中;CAN总线控
制器模块i进一步通过MCU总线映射模块11和CAN总线中断信号映射模块12将其读数据寄存
器中的数据发送给MCU内核13,以完成读数据操作。
器和写数据寄存器,并通过选中的寄存器和对外部CAN设备2i进行控制以及写入数据,待写
入外部CAN设备2i的数据可以暂存于写数据寄存器中,控制和确定操作模式以及当前执行
任务的特性等信息暂存于控制寄存器;CAN总线控制器模块i进一步通过将其写数据寄存器
中的数据写入到外部CAN设备2i中,以完成写数据操作。
所述的CAN总线通讯控制系统,以及,与所述CAN总线通讯控制系统(即片上系统SoC)连接的
至少一个外部CAN设备21 2n,每个所述外部CAN设备与所述CAN总线通讯控制系统中相应的
~
一个CAN总线控制器模块连接。
外的外部CAN设备之间的CAN总线,以使得在FPGA中实现的CAN总线能作为MCU的外部设备,
提高了MCU的扩展性。而且基于FPGA可编程的特点,利用FPGA内核中的逻辑资源来实现的
CAN总线控制器模块的数量以及MCU总线映射模块映射出的CAN子系统总线的数量可以动态
调整,因此该设计具有良好的扩展性,用户可以动态配置MCU外部的CAN总线控制器模块的
数量,并进一步通过CAN总线控制器模块动态配置所接入的外部CAN设备,以达到外部CAN设
备的功能和数据动态可配的目的,提高了MCU的扩展性和易用性,降低了MCU挂载外部CAN设
备的设计与应用复杂度,有助于用户快速应用CAN总线。此外,由于所述CAN总线中断信号映
射模块将各个所述CAN总线控制器模块的中断信号,按照规定的优先级映射到所述MCU内核
的中断向量表中,因此能实现MCU内核对各个所述CAN总线控制器模块的优先级的分类控
制,降低了CAN总线优先级对CAN设备节点的依赖性,增强了MCU对CAN设备节点优先级的控
制性,提高了MCU外部CAN设备的扩展性和易用性。
设备所在节点的优先级分类控制。
明的CAN总线通讯控制系统的MCU内核13来实现,步骤S1中的FPGA通过本发明的CAN总线通
讯控制系统的FPGA内核10来实现,步骤S1的整体过程通过FPGA内核10中的MCU总线映射模
块11的功能来实现,步骤S2中的各个CAN总线控制器通过FPGA内核10中相应的CAN总线控制
器模块来实现,步骤S2的整体过程通过CAN总线控制器模块、MCU总线映射模块11、MCU内核
13连接后的组合功能来实现,步骤S3中通过CAN总线控制器模块、CAN总线中断信号映射模
块12与MCU内核13连接后的组合功能来实现。
来实现CAN系统总线数量的动态调整,因此该设计具有良好的扩展性,用户可以动态配置
MCU外部的CAN系统总线及所接入的外部CAN设备的数量,以达到外部CAN设备的功能和数据
动态可配的目的,提高了MCU的扩展性和易用性,降低了MCU挂载外部CAN设备的设计与应用
复杂度,有助于用户快速应用CAN总线。同时,由于能将每个所述CAN总线控制器的中断信
号,按照规定的优先级映射到所述MCU的中断向量表中,因此能实现MCU对各个外部CAN设备
的优先级的分类控制,降低了CAN总线优先级对CAN设备节点的依赖性,增强了MCU对CAN设
备节点优先级的控制性,提高了MCU外部CAN设备的扩展性和易用性。
都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等
同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对
以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围
内。
而不是用来限制本发明的范围。必须注意的是,此处的以及所附权利要求中使用的单数形
式“一个”、“一种”以及“该”包括复数基准,除非上下文明确表示相反意思。因此,例如,对
“一个步骤”或“一个装置”的引述意味着对一个或多个步骤或装置的引述,并且可能包括次
级步骤以及次级装置。应该以最广义的含义来理解使用的所有连词。因此,词语“或”应该被
理解为具有逻辑“或”的定义,而不是逻辑“异或”的定义,除非上下文明确表示相反意思。此
处描述的结构将被理解为还引述该结构的功能等效物。可被解释为近似的语言应该被那样
理解,除非上下文明确表示相反意思。