STM32的CAN怎么与标准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。但是为什么这样区别,还在研究中。

答:终于明白楼主第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完全是多主模式,楼主切莫误解,切莫浮躁。

银火虫 发表于05-28 10:08 浏览65202次
分享到:

已有1条评论

  • 银火虫
    银火虫 05-28 10:10

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

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

银火虫
银火虫(中将)
金币:5919个|学分:6733个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号