背景:

  最近一直在使用C8051F340 + SJA1000来实现CAN通信,就SJA1000部分做个记录。

正文:

  整个系统结构拓扑图如下:

   

  两路CAN,C8051F340作为CPU,处理CAN与USB数据。

  转入正题,关于SJA1000的中断。

  SJA1000的/INT脚与单片机的外部中断输入脚相连,平时/INT保持高电平,当SJA1000内部有中断时,/INT脚及变为低电平(单片机外部输入中断引脚设置为低电平有效边沿触发),等待单片机进行处理。

  SJA1000中断部分应该关注两个寄存器“IR”(Interrupt Register),“IER”(Interrupt Enable Register)。顾名思义,“IER”为使能相应中断,“IR”为指示中断状态,应当注意的是:当单片机读取了SJA1000的“IR”寄存器后,/INT脚重新变为高电平,“IR”寄存器所有位复位为0!

  还有一个值得注意的是:为了保险起见,应该要将“IER”清零,然后根据需要配置相应位。

  为此,我也郁闷了许久,过程如下:为了测试,于是将2路CAN相互接通,当通过SJA1000_1发送数据时,按照逻辑来说,SJA1000_1发送数据,SJA1000_2过滤接收该条数据并产生接收完成中断,可是这个SJA1000_1竟然与SJA1000_2同时产生中断!而我中断使能使用的是“或”的方式配置了“总线错误中断”、“数据溢出中断”“错误报警中断”、“接收中断”,SJA1000_1不应该会在这个时候产生中断!SJA1000_1难道会过滤接收自己发的数据?这是首先被怀疑的,查了资料后发现,处于发送状态的节点是不会接收数据的。排除!折腾了许久才发现SJA1000_1发送完毕产生了发送完成中断,因此可以确认“发送使能中断”不清零的话,是有可能被打开的(SJA1000的官档并未说明每一位的默认值),其它“使能中断”亦如此,

记录地点:深圳WZ

记录时间:2016年3月16日

  

CAN总线 SJA1000中断的更多相关文章

  1. SJA1000 CAN驱动程序演示实验

    SJA1000 CAN驱动程序演示实验 2016-04-12 20:41:22来源: eefocus 关键字:SJA1000  CAN  驱动程序  演示实验   收藏 评论(0) 分享到 微博 QQ ...

  2. Intel 80x86 Linux Kernel Interrupt(中断)、Interrupt Priority、Interrupt nesting、Prohibit Things Whthin CPU In The Interrupt Off State

    目录 . 引言 . Linux 中断的概念 . 中断处理流程 . Linux 中断相关的源代码分析 . Linux 硬件中断 . Linux 软中断 . 中断优先级 . CPU在关中断状态下编程要注意 ...

  3. 关于STM32空闲中断

    有一次做一个东西,为了尽量不占用CPU的处理数据时间,所以就使用DMA接收串口的数据,但是呢问题来了.,,,,,怎么样才能确定接收到了一条完整的数据了,,我们都知道只要打开DMA 那家伙就不停的把接收 ...

  4. 1.4 PCI总线的中断机制

    PCI总线使用INTA#.INTB#.INTC#和INTD#信号向处理器发出中断请求.这些中断请求信号为低电平有效,并与处理器的中断控制器连接.在PCI体系结构中,这些中断信号属于边带信号(Sideb ...

  5. Stm32使用串口空闲中断,基于队列来接收不定长、不定时数据

    串口持续地接收不定长.不定时的数据,把每一帧数据缓存下来且灵活地利用内存空间,下面提供一种方式供参考.原理是利用串口空闲中断和DMA,每当对方发来一帧完整的数据后,串口接收开始空闲,触发中断,在中断处 ...

  6. [fw]LINUX中断描述符初始化

    LINUX中断描述符初始化 @CopyLeft by ICANTH,I Can do ANy THing that I CAN THink!~ Author: WenHui, WuHan Univer ...

  7. 串口配合DMA接收不定长数据(空闲中断+DMA接收)-(转载)

    1.空闲中断和别的接收完成(一个字节)中断,发送完成(发送寄存器控)中断的一样是串口中断: 2.空闲中断是接收到一个数据以后,接收停顿超过一字节时间  认为桢收完,总线空闲中断是在检测到在接收数据后, ...

  8. 串口1配合DMA接收不定长数据(空闲中断+DMA接收)

    1.空闲中断和别的接收完成(一个字节)中断,发送完成(发送寄存器控)中断的一样是串口中断: 2.空闲中断是接收到一个数据以后,接收停顿超过一字节时间  认为桢收完,总线空闲中断是在检测到在接收数据后, ...

  9. 006 PCI总线的桥与配置(一)

    在PCI体系结构中,含有两类桥片,一个是HOST主桥,另一个是PCI桥.在每一个PCI设备中(包括PCI桥)都含有一个配置空间.这个配置空间由HOST主桥管理,而PCI桥可以转发来自HOST主桥的配置 ...

随机推荐

  1. AngularJs angular.equals

    angular.equals 对比两个对象/值是否相等.支持值类型.正则表达式.数组和对象. 如果下列至少有一个是正确的,则将两个对象/值视为相等. 两个对象/值能通过===比较. 两个对象/值是同一 ...

  2. 如何在Visual Studio 2013中使用Ribbon For WPF

    1.首先需要 下载Ribbon For WPF.目前最新的版本是Microsoft Ribbon for WPF October 2010. 下载 链接: https://www.microsoft. ...

  3. hdu 1863 - 畅通工程(MST)

    畅通工程 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  4. CF715C:Digit Tree

    传送门 一句话怎么说来着 算法+高级数据结构=OI 现在我感觉到的是 我会的算法+我会的高级数据结构=WA 这道题提交了三四十次,从刚看题到完全写好花了好几天..,主要死于看错费马小定理的适用条件. ...

  5. 【原】web移动端常用知识点笔记

    摘要:因为平时搞移动端的比例多一点,做个小小的总结.虽然网上很多这方面的总结,不过还是想自己也总结一下,适合自己的才是最好的.这样也方便以后自己的查阅 viewport模板——通用 <!DOCT ...

  6. Oracle创建表空间及用户

    1.sys dba登录 2.创建临时表空间 create temporary tablespace wf_temp tempfile 'C:\APP\ADMINISTRATOR\ORADATA\PLA ...

  7. Java——文本组件:JTextComponent

    import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing ...

  8. 最好用的placeholder插件,jQuery插件EnPlaceholder

    EnPlaceholder插件支持密码框哦!实际对比同类的placeholder插件在ie等浏览器下效果做好! 插件效果预览:http://www.wufangbo.com/demo/jquery/3 ...

  9. JAVA个人知识总结

    1.一个.java文件中只能有一个public类,且必须跟文件名相同,其他类不能以public开头. 2.继承: 子类继承父类的属性和方法. 3.继承和组合: 继承是对“是一种”(is-a)关系建模, ...

  10. php常用时间戳记录

    <?php echo '<br/>'; //php获取今日开始时间戳和结束时间戳 echo "今天"; echo '<br/>'; $beginTod ...