FPGA实现CAN接口(SJA1000)

FPGA实现CAN接口(SJA1000)学无止境,善于积累,每天积累一点点,成功就在眼前,加油!1CAN总线简介CAN(ControllerAreaNetwork,控制器局域网)总线是一个多主机异步串行总线,也是国际上应用最广泛的现场总线之一。在现场总线中,它是惟一被ISO国际标准化组织批准的现场总线。由于其成本低、容错能力强、支持分布式控制、通信速率高等优点在汽车、工业控制、航天等领域得到广泛应用。特别是由于CAN总线具有…

大家好,又见面了,我是你们的朋友全栈君。

学无止境,善于积累,每天积累一点点,成功就在眼前,加油!
1 CAN总线简介
CAN(Controller Area Network,控制器局域网 )总线是一个多主机异步串行总线,也是国际上应用最广泛的现场总线之一。在现场总线中,它是惟一被ISO国际标准化组织批准的现场总线。由于其成本低、容错能力强、支持分布式控制、通信速率高等优点在汽车、工业控制、航天等领域得到广泛应用。特别是由于CAN总线具有抗干扰性强、高数据传输率及低成本等优点,在小卫星和微小卫星中得到了越来越广泛的应用。
2 CAN硬件设计
传统的CAN通信系统通常采用MCU + SJA1000 + CAN总线收发器的架构,但是单片机速度较低、资源较少,当受到强电磁干扰便很容易出现程序跑飞。本文基FPGA + SJA1000 + CAN总线收发器的CAN总线通讯如图1所示。与传统方案相比,其优点在于可扩展性好,稳定性高,减轻了重量、体积和功耗。注意:对于FPGA而言,接口电平不支持5V I/O标准,如果与5V I/O标准的器件直接相连,将可能导致FPGA管脚流过极大电流,造成器件锁死或者烧毁。电平转换器就是为了防止FPGA损坏。
(图略,请下载原文查看)
图1 CAN硬件框图
3 CAN逻辑设计
FPGA对CAN总线通讯模块的控制主要包括3部分:CAN总线节点初始化、报文发送和报文接收。
1)CAN读写时序图
略,查看原文件。
2)CAN工作模式选择
SJA1000控制器支持两种模式,分别是Intel和Motorola模式。
3)CAN总线节点初始化
CAN初始化属于CAN程序设计的难点,按照手册正确的配置相关寄存器的值很关键。如果初始化失败,设备不能识别波特率

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148289.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python初级:基础知识-函数

    python初级:基础知识-函数

    2021年10月6日
    43
  • logback配置详解maxhistory(logback配置discrim)

    目录1、根节点包含的属性2、根节点的子节点 2.1、设置上下文名称: 2.2、设置loger、root 正文回到顶部1、根节点<configuration>包含的属性scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生…

    2022年4月11日
    541
  • python闭包详解_python闭包的使用场景

    python闭包详解_python闭包的使用场景闭包首先了解一下:如果在一个函数的内部定义了另一个函数,外部的我们叫他外函数,内部的我们叫他内函数。在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用

    2022年8月6日
    2
  • vue-axios使用_vue接口请求放在哪里写

    vue-axios使用_vue接口请求放在哪里写什么是axiosAxios是一个基于promise的HTTP库,可以用在浏览器和node.js中。主要的作用:axios主要是用于向后台发起请求的,还有在请求中做更多是可控功能。a

    2022年7月29日
    24
  • 串口调试助手(CM野人版)4.0有严重Bug,已经跟作者反应,等候更新

    串口调试助手(CM野人版)4.0有严重Bug,已经跟作者反应,等候更新这个软件,看起来很漂亮,能任意设置波特率,支持921600波特率,看起来很华丽。但最近发现其一个严重的Bug:版本就是4.0我打印了一些信息:能正常显示。我把这些打印的代码行给注释了,依然能打印出来,见鬼了。然后我重启电脑,问题消失,不再打印注释过的代码行。我换了别的串口助手,问题消失。所以一定是这个助手的问题。基础的调试软件出问题,非常不易发现,带来的损失非常大。建

    2022年5月8日
    83
  • Linux 查看环境变量_Linux怎么设置环境变量

    Linux 查看环境变量_Linux怎么设置环境变量各位客官好啊,最近新冠病毒疫情比较严重,还望各位出门时多多防范,一定要带口罩!!!接下来,讲一讲环境变量的相关知识点,既然提到了环境变量,那么我当前的环境里有多少默认的环境变量呢?关于这个问题,我教你两个命令就可以了,并且这两个命令一个比一个牛?先说一说【env】一、用env命令来查看环境变量上图就是我的系统输出的结果,简单给大家介绍几个重点的变量1)HOME:代表用户的家目录,通过cd…

    2022年9月1日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号