分享

STM32的CAN怎么与标准CAN不同,主从模式怎么理解。

 圆锥的布袋 2018-01-11

所属分类:STM32  提问者:watershade 提问时间:2016-04-26
标签:CAN

问:

最近想在STM32上做CAN通讯,之后向上CANopen。自己之前用过CAN2.0B但是奇怪的是ST的CAN一点也不规范。第一STM32的CAN被称作bxCAN,第二CAN的两根通讯线被称为CAN_TX和CAN_RX,人家CAN的两根线明明是差分行吧,一根断了另一个是传输不了数据的。可是你瞧STM32这样命名。我就想问问,者到底怎么回事。而且现在用的407是两个CAN,我之前以为是相同的CAN模块名想到一用,发现是主从的。CAN的节点本身是平等的,何来主从可言呐。不理解,求解释


答:自问自答: 问题1:关于CAN_RX和CAN_TX。 答:CAN通讯由CNA控制器和CAN收发器的区别,CAN控制器出来的信号本身就是CAN_RX和CAN_TX,信号和电平转换等是由CAN收发器来实现的。可以看一下TJA1050等CAN收发器的原理图就可以看到。 问题2:CAN怎么还分主从,不是对等通讯吗? 答:CAN是对等通讯,但是STM32内部用主从来区分能不能访问512字节的SRAM。但是为什么这样区别,还在研究中。
回答者:watershade 回答时间:2016-04-26

答:问题1,楼上的已经说得很明白了,我就不重复了. 问题1, 表示从没有发现bxCAN还有主从模式,只是示例代码中有Master和Slave两个宏,不知道楼主是不是指这个,如果是,那么这完全只是软件逻辑的用法,与bxCAN外设没有任何关系,也就是说,在硬件上bxCAN一直都是多主模式,从没有过主从模式,那只是你的误解。
回答者:任风吹吹 回答时间:2016-05-06

答:终于明白楼主第2个问题的意思了. 1 bxCAN对外上,在CAN总线上是多主模式,从来就不是主从模式,楼主不要误解。 2 STM32F103有2个bxCAN外设,即CAN1,CAN2,这两个CAN外设各自都有自己的发送邮箱,接收FIFO0和FIFO1,但是,CAN除了这个之外,还有接收过滤器,而CAN2没有,但是,在实际工作中,这个接收过滤器是只需要一个,并不是两路CAN各自都需要,因此CAN2完全可以共享CAN1的接收过滤器(这个就是CAN1与CAN2共享的512个字节的SRAM了),只不过是在芯片内部通过CAN1的存储器读写控制器间接的访问,从这种CAN1和CAN2的结构上来说,将CAN1看成是主CAN,CAN2看成是从CAN就不足为奇了,除了称呼,在使用和功能上没有任何区别,这些都只是芯片内部bxCAN的设计,对外bxCAN完全是多主模式,楼主切莫误解,切莫浮躁。
回答者:任风吹吹 回答时间:2016-05-10

答:楼上 103 没有两个CAN
回答者:寂寞,点燃一支烟 回答时间:2017-08-14

          

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多