一种基于FPGA的高效CAN总线接口制造技术

技术编号:21517515 阅读:36 留言:0更新日期:2019-07-03 10:00
本发明专利技术提供了一种基于FPGA的高效CAN接口,硬件包括FPGA、单片CAN收发器和单片2位电平转换芯片;通过CAN收发器将CAN总线信息接入,再把收、发两链路信号经过一个2位电平转换芯片转换后,发送到FPGA即可;所述FPGA内部,利用可编程逻辑实现主控模块;所述FPGA内部固定有用于模拟数字集成芯片SJA1000的逻辑,作为CAN控制器,所述CAN控制器直接对接主控模块;所述FPGA内部采用时钟分频与锁相环结合的方法,在FPGA内部产生基准时钟。本发明专利技术针对所有型号的FPGA芯片,不需要CAN总线控制器、基准时钟晶振,简易高效的实现CAN接口。

An Efficient CAN Bus Interface Based on FPGA

【技术实现步骤摘要】
一种基于FPGA的高效CAN总线接口
本专利技术涉及于数字电路设计的
,特别是指一种基于FPGA的高效CAN总线接口。
技术介绍
CAN协议是一种通用的通讯标准,其英文全称为ControllerAreaNetwork,是ISO国际标准化的串行通信协议。基于CAN协议的通讯总线是一种全数字化、双向、串行、异步和多主的现场总线。现在,CAN的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。多种品牌汽车、智能航行体的控制系统、信息传输系统都采用CAN总线进行通讯。CAN总线遵从OSI模型,主要工作在数据链路层和物理层。CAN协议具有的特点包括:1)在总线空闲时,所有的单元都可以自主开始发送信息,实现多主控制;2)所有的消息都以固定的格式发送(标准帧、扩展帧),实现不同接口的兼容;3)各单元没有类似于“地址”的信息,总线增加单元时,其它单元的软硬件及应用层都不需要改变;4)根据整个网络的规模,可设定不同的通信速度;5)可通过发送“遥控帧”,请求其它单元发送数据;6)所有单元具有错误检测功能;7)CAN可将引起总线连续故障的单元从总线上隔离出去;8)CAN总线可以同时连接多个单元,理论上单元总数没有限制。FPGA是一种现场可编程门阵列,具有集成度高、逻辑功能强、速度快等特点。单片FPGA利用硬件逻辑语言(VHDL、Verlog)设计,可以实现用户定制的强大逻辑功能,从而替代并综合多种专用数字集成芯片的功能。现有的FPGA器件(XILINX公司、Altera公司)均不支持CAN协议,没有专用的CAN接口。通常实现基于FPGA的CAN总线通讯,需要在FPGA器件外围增加专用的CAN总线控制器,如SJA1000、PCA82C200。电路结构如图1所示。CAN收发器作为单元CAN接口节点,连接外部CAN总线,控制信号从CAN收发器到达总线上的物理层,反之亦然。常用的CAN收发器有PCA82C250。CAN控制器负责执行CAN规约里定义的CAN协议,完成数据转换、信息缓冲和验收滤波。由于CAN控制器需要调节单元通讯波特率与CAN总线上数据传输波特率一致,CAN控制器应接入外部基准时钟。常见的CAN控制器输出的逻辑电平为5V,需要通过电平转换芯片将5V电压转换成FPGA的接口电压。FPGA接收CAN控制器输出的信号,提取CAN总线上的信息。以上方法设计的基于FPGA的CAN总线接口,电路设计冗余复杂,需要增加多种外部芯片,提高设计成本,增加电路布局难度;同时,CAN控制器有多组控制信号、数据信号输出,占用过多FPGA的IO资源,电路布线增加难度。
技术实现思路
本专利技术实施例提供了一种基于FPGA的高效CAN总线接口,为了解决现有技术中基于FPGA的CAN总线接口电路设计冗余复杂、成本高、电路布线难度大的问题。为了解决上述技术问题,本专利技术的实施例采用如下技术方案:一种基于FPGA的高效CAN总线接口,硬件包括FPGA、单片CAN收发器和单片2位电平转换芯片;通过CAN收发器将CAN总线信息接入,再把收、发两链路信号经过一个2位电平转换芯片转换后,发送到FPGA即可;所述FPGA内部,利用可编程逻辑实现主控模块;所述FPGA内部固定有用于模拟数字集成芯片SJA1000的逻辑,作为CAN控制器,所述CAN控制器直接对接主控模块;所述FPGA内部采用时钟分频与锁相环结合的方法,在FPGA内部产生基准时钟。其中,所述模拟数字集成芯片SJA1000的逻辑的方法为:包括CAN核心模块、接口管理逻辑、验收滤波器、接收FIFO和发送缓冲;所述CAN核心模块用于CAN信息帧的收发和CAN协议通讯,CAN核心模块应支持CAN2.0B的协议,并直接与CAN收发器输出的收、发信号连接;所述CAN核心模块读取发送缓冲区中的数据,按CAN协议封装成一条完整的信息帧,根据接口管理逻辑中总线定时寄存器的波特率预设值,将信息帧顺序发送到收信号链路上;反之,根据CAN2.0B协议和固定的波特率,CAN核心模块判断发信号链路上是否有信息到达并读取信息帧,提取有效信息后传送给验收滤波器;所述接口管理逻辑同外部主控模块相连接,用于解释来自主控模块的命令;所述接口管理逻辑内部包含多组寄存器,用于对寄存器进行寻址,向主控模块提供中断信息和控制信息;所述验收滤波器用于对接收信息进行滤波,只有验收滤波通过且无差错,才能把接收的信息帧送入接收FIFO缓存区;所述验收滤波器把接收信息的ID与识别码的内容相比较,决定是否接收信息;识别码由读取屏蔽寄存器中的存储值获得;所述验收滤波器由FPGA中的比较器资源实现;所述接收FIFO是主控模块与验收滤波之间的缓冲区域,用来存储从CAN总线上接收的ID和数据;接收FIFO有64字节,先入先出,所述接口管理逻辑可随时访问;所述接收FIFO采用FPGA中自带的FIFO资源实现;所述发送缓冲用于存储一个完整的信息帧,长度为13字节,主控模块可直接将ID和数据送入发送缓冲区,然后置命令寄存器的发送请求位,启动CAN核心模块读取发送缓冲区的数据;所述发送缓冲由RAM资源实现。优选地,所述接口管理逻辑中的寄存器包括控制寄存器、命令寄存器、状态寄存器,中断寄存器、屏蔽寄存器、总线定时寄存器、数据存储寄存器、中断使能寄存器、仲裁丢失捕捉寄存器,各寄存器功能采用FPGA中ROM资源实现。本专利技术的有益效果为:本专利技术实施例提供了一种基于FPGA的高效CAN接口,硬件包括FPGA、单片CAN收发器和单片2位电平转换芯片;通过CAN收发器将CAN总线信息接入,再把收、发两链路信号经过一个2位电平转换芯片转换后,发送到FPGA即可;所述FPGA内部,利用可编程逻辑实现主控模块;所述FPGA内部固定有用于模拟数字集成芯片SJA1000的逻辑,作为CAN控制器,所述CAN控制器直接对接主控模块;所述FPGA内部采用时钟分频与锁相环结合的方法,在FPGA内部产生基准时钟。本专利技术针对所有型号的FPGA芯片,不需要CAN总线控制器、基准时钟晶振,简易高效的实现CAN接口;利用FPGA控制的CAN总线接口,硬件设计中可以减少一片CAN控制器、一片外部晶振、两片电平转换芯片;同时电路板上走线由原来的14根减少为2根,节约电路板上布线资源,节约FPGA的IO资源。附图说明图1是现有技术中FPGA的CAN接口电路连接关系图;图2是本专利技术实施例提供的基于FPGA的高效CAN总线接口的电路关系图;图3是本专利技术实施例提供的基于FPGA的高效CAN总线接口的SJA1000内部结构图。具体实施方式下面结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术的保护范围。参照附图2和图3,本专利技术实施例提供了一种基于FPGA的高效CAN总线接口,硬件包括FPGA、单片CAN收发器和单片2位电平转换芯片;通过CAN收发器将CAN总线信息接入,再把收、发两链路信号经过一个2位电平转换芯片转换后,发送到FPGA即可;FPGA内部,利用可编程逻辑实现主控模块;FPGA内部固定有用本文档来自技高网
...

【技术保护点】
1.一种基于FPGA的高效CAN接口,其特征在于,硬件包括FPGA、单片CAN收发器和单片2位电平转换芯片;通过CAN收发器将CAN总线信息接入,再把收、发两链路信号经过一个2位电平转换芯片转换后,发送到FPGA即可;所述FPGA内部,利用可编程逻辑实现主控模块;所述FPGA内部固定有用于模拟数字集成芯片SJA1000的逻辑,作为CAN控制器,所述CAN控制器直接对接主控模块;所述FPGA内部采用时钟分频与锁相环结合的方法,在FPGA内部产生基准时钟。

【技术特征摘要】
1.一种基于FPGA的高效CAN接口,其特征在于,硬件包括FPGA、单片CAN收发器和单片2位电平转换芯片;通过CAN收发器将CAN总线信息接入,再把收、发两链路信号经过一个2位电平转换芯片转换后,发送到FPGA即可;所述FPGA内部,利用可编程逻辑实现主控模块;所述FPGA内部固定有用于模拟数字集成芯片SJA1000的逻辑,作为CAN控制器,所述CAN控制器直接对接主控模块;所述FPGA内部采用时钟分频与锁相环结合的方法,在FPGA内部产生基准时钟。2.根据权利要求1所述的基于FPGA的高效CAN接口,其特征在于,所述模拟数字集成芯片SJA1000的逻辑的方法为:包括CAN核心模块、接口管理逻辑、验收滤波器、接收FIFO和发送缓冲;所述CAN核心模块用于CAN信息帧的收发和CAN协议通讯,CAN核心模块应支持CAN2.0B的协议,并直接与CAN收发器输出的收、发信号连接;所述CAN核心模块读取发送缓冲区中的数据,按CAN协议封装成一条完整的信息帧,根据接口管理逻辑中总线定时寄存器的波特率预设值,将信息帧顺序发送到收信号链路上;反之,根据CAN2.0B协议和固定的波特率,CAN核心模块判断发信号链路上是否有信息到达并读取信息帧,提取有效信息后传送给验收滤波器;所述...

【专利技术属性】
技术研发人员:刘春跃唐济远王占军
申请(专利权)人:中国船舶重工集团公司七五〇试验场
类型:发明
国别省市:云南,53

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1