虽然CAN总线的每一个节点根据应用系统的任务有各自控制功能,但完成CAN总线信息交换的功能是相同的。如图2-9所示,CAN总线的节点一般由控制单元、CAN控制器、CAN收发器三部分组成。
CPU接收到的传感器值会被定期查询并按顺序存入输入存储器。处理后的结果存入输出存储器,然后传递给各个执行器。为了能够处理CAN信息,各CPU内还有一个CAN存储区,用于容纳接收到和要发送的信息。
图2-9 CAN总线的节点结构
如图2-10所示,控制单元接收来自传感器的信号,将其处理后再发送到执行元件上。控制单元由一个微处理器CPU、输入输出存储器以及程序存储器等组成。控制单元接收到的传感器值(如发动机温度或转速)会被定期查询并按顺序存入输入存储器,这个过程在原理上就相当于一个带有旋转式输入选择开关的机械步进选择器。微处理器按事先规定好的程序来处理输入值,处理后的结果存入相应的输出存储器内,然后发送命令给各执行元件。为了能够处理CAN信息,各控制单元内还有一个CAN存储区,用于容纳接收到的和要发送的信息。
CAN控制器用于数据交换,它分为两个区:一个是接收区,一个是发送区。CAN控制器通过接收邮箱或发送邮箱与控制单元相连,它一般集成在控制单元的微处理器芯片内。
CAN收发器通过TX线(发送线)或RX线(接收线)与CAN控制器相连。收发器就是一个发送接收放大器,它把CAN控制器连续的比特流转换成电压值,或反之。RX线通过一个放大器直接与CAN总线相连,总在监听总线信号。
如图2-11左图所示,收发器的TX线发送信息是通过一个开关式晶体管电路来实现的。CAN总线数据线上会出现两种状态:当晶体管处于截止状态时(相当于图2-11b中的开关未
(www.xing528.com)
图2-10 CAN总线的节点结构详解
闭合),总线电平为高电压,我们将其状态作为逻辑1(无源),称为隐性电平;当晶体管处于导通状态时(相当于图2-11a中的开关闭合),总线电平为低电压,我们将其状态作为逻辑0(有源),称为显性电平。控制单元根据两条数据线上的电位差来判断总线电平。发送方通过使总线电平发生变化,将信息发送给接收方。
如图2-12所示,将三个收发器接到一根CAN总线数据线上,如果某一收发器的开关闭合,电阻上就有电流流过,于是总线数据线上的电压就为0V,CAN总线被激活,进行通信;如果所有收发器的开关均未接合,那么就没有电流流过,电阻上就没有电压降,于是总线数据线上的电压就为高电压5V,CAN总线处于未激活状态,未进行通信。因此,如果总线处于状态1(无源),那么此状态可以由某一个控制单元使用状态0(有源)来改写。
图2-11 收发器工作原理
图2-12 收发器工作状态
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。