CAN按功能划分
按功能简单划分:微控制器:主要负责和其他应用层的一些交互当数据需要发送时,会将数据传递给CAN控制器;
CAN控制器:数据到达后会进行报文的封装以二进制码的方式传递给CAN收发器;收到收发器的信息时,会进行解封装,将应用层数据打包传给微控制器处理;
CAN收发器:负责将二进制的信号与物理的电平信号进行转换,会根据CAN协议物理层定义的电平转换逻辑将CAN高和CAN低的电平拉到相应的预值;当收发器检测到CAN总线上个的数据时,会将CAN高与CAN低两根线的差分电平解析成数据链路层传输的二进制的比特流;
另外,在节点两端,都会有一个终端电阻R0;作用是为了保证信号在传输过程中的阻抗连续性,消除了由于阻抗中断或者不连续带来的反射波效应;
CAN的寻址方式
CAN采用的是广播寻址的方式,可以实现一对多的发送,即发送节点在发送过程中只负责将数据发送到总线上去,而不会去指定具体的接收节点,所有挂载在总线上面的节点都可以去接收到数据, 但是具体接不接受是由各个接收节点去决定的;
在每一个CAN节点的内部:在CAN控制器中都会有一个过滤器(接收过滤),可以根据应用层的配置,选择上层需要的数据进行传递,其他的数据直接过滤丢弃掉(控制器);可以减少微控制器对不必要数据的处理,所以也可以实现一对一,一对多的数据传输;
CAN的总线访问机制
CAN里节点没有主从之分,每一个节点在总线空闲的时候都可以去访问总线,因为是共享传输介质,那么总线在任一时刻,只能对一个节点去访问发送数据,节点在访问过程中,可能会出现访问冲突的情况;在CAN中采用的是