CAN总线的认知
CAN总线的概念
CAN是控制器局域网络(Controle Area Network)的英文缩写,是ISO国际标准化的“串行通信协议”。
CAN总线是在1985年德国博世公司为了解决汽车上众多测试仪器与控制单元之间的数据传输,而开发的一种支持分布式控制的串行数据通信总线,也是汽车上应用最多、最为普遍的一种总线技术,是汽车B类和C类网络的主流总线。
CAN总线的特点
CAN总线采用双绞线作为传输介质,媒体访问方式为位仲裁,是一种多主总线。
CAN总线为事件触发的实时通信网络,其总线仲裁方式采用基于优先级的载波侦听多路访问冲突检测法。
如今,CAN总线已经成为主流车载网络协议,广泛应用在各大主流车系,如大众、奥迪、奔驰、宝马、雪铁龙、通用、日产、丰田、本田等。
CAN总线系统的结构组成
CAN数据总线系统由电控单元(ECU)、CAN数据传输线和CAN终端电阻组成,如图所示。
电控单元(ECU)
CAN总线连接的电控单元又称CAN总线上的节点。理论上CAN总线可以连接无穷多个节点,实际上受线路越长、传输速率越低的限制,车载CAN总线的节点数可达上百个。
AN总线上的每个电控单元独立完成网络数据交换和测控任务,如发动机电控单元、自动变速器电控单元、ABS电控单元等。
如下图所示为CAN总线电控单元的原理图,CAN总线电控单元由输入电路、输出电路、单片机、CAN控制器、光电隔离电路、CAN收发器组成。
输入电路
输入电路用来接收来自传感器和控制开关的输入信号,并将输入信号转换为单片机可接收的数字信号。如果输入信号是模拟信号,那么输入电路里还含有模/数转换电路(A/D转换),将模拟信号转为数字信号。如冷却液温度传感器的信号是模拟信号,需经A/D转换电路转换为数字信号。
输出电路
输出电路将单片机输出的控制信号转换成能驱动执行器的功率信号,因此输出电路包括放大驱动电路。因为大部分执行器是模拟执行器,所以首先要将单片机输出的数字信号经数/模转换电路(D/A转换)转换为模拟信号。
单片机
单片机在工业控制技术中也常称为微控制器。目前,汽车电控单元使用的单片机是汽车专用增强型单片机,是针对汽车较为复杂的振动、高温、低温和恶劣的电磁环境而设计的。有的汽车单片机芯片内已包含A/D转换、D/A转换和其他专用电路,有的甚至将CAN控制器也合成在一起。
CAN控制器
独立的CAN控制器是基于单片机控制的、专用于执行CAN总线通信协议的独立数字集成电路芯片。也有将单片机与CAN控制器合成的芯片,也称为CAN控制器。
光电隔离电路
以光为媒介传送信号,对输入和输出电路进行电气隔离,因而能有效地抑制系统噪声,消除接地回路的干扰,有响应速度较快、寿命长、体积小、耐冲击等优点。
CAN收发器
由CAN接收器、CAN发送器和差分转换处理电路组成。
以高速CAN总线为例
当单向脉冲信号为“0”,并且代表逻辑“0”时,差分信号的高电平信号用CAN-High表示,电压为3.5V;低电平信号用CAN-Low表示,电压为1.5V;差分电压为2V,此时总线的状态为“显性位”,“显性位”代表逻辑“0”。
当单向脉冲信号为“1”时,并且代表逻辑“1”时,差分信号的高电平信号和低电平信号均为2.5V;差分电压为0V,此时总线的状态为“隐性位”,“隐性位”代表逻辑“1”。
CAN-High信号和CAN-Low信号分别输出到CAN总线上,即双绞线上。接高电平信号的线对应称为CAN-High线,接低电平信号的线对应称为CAN-Low线。
CAN接收器是差分式接收放大器,可将CAN总线上双向的差分信号转变为单向的脉冲信号。CAN收发器在不发送信号时就处于接收状态。CAN总线在任意时刻只能处于一种状态,要么是“隐性位”,要么是“显性位”。如图所示是用示波器在CAN总线测得的电压波形。
CAN数据传输线
CAN数据总线是用以传输数据的双向串行总线,大都采用具有较强抗干扰能力的双绞线。
分为CAN高位(CAN-high)线和CAN低位(CAN-low)线,可以双向传递数,这种结构使系统能够同时读写总线。
数据使用差分电压传送,差分的电压使CAN数据总线系统即使在一条数据线断开或者在噪声极大的环境中也能够工作。这样的结构还可以防止电磁干扰对传输信息的影响,也可以防止本身对外界的干扰。
车辆在使用过程中,电火花、电磁线圈开关、移动电话和发送站等发出的电磁波都会影响或破坏CAN的数据传送。为了防止数据在传送时受到干扰,两条数据传输线缠绕在一起,如图所示,这样也可以防止数据线所产生的辐射噪声。
CAN终端电阻
CAN两端都接一个120Ω的电阻器,即“连接在双绞线的两端”。
终端电阻的作用是防止信号在传输线终端产生反射波,而使正常传输的数据受到干扰。
如下图所示,CAN总线系统元件主要由K线、控制单元、CAN构件、收发器等组成。
CAN总线系统元件的功能
K线
K线用于在CAN总线系统自诊断时连接汽车故障检测仪(如VAS5051),属于诊断用的通信线。
控制单元
控制单元接收来自传感器的信号,将其处理后再发送到执行元件上。
控制单元中的微控制器上带有输入输出存储器和程序存储器。定期查询控制单元接收到的传感器值(如发动机转速或冷却液温度)并按顺序存入输入存储器。
微控制器按事先编制好的程序来处理输入值,处理后的结果存入相应的输出存储器内,然后到达各个执行元件。为了能够处理CAN信息,各控制单元内还有一个CAN存储区,用于容纳接收到的和要发送的信息。
CAN构件
CAN构件用于数据交换,它分为两个区:一个是”接收区”,一个是”发送区”。
CAN构件通过接收邮箱或发送邮箱与控制单元相连,其工作过程与邮局收发邮件的过程非常相似。
CAN构件一般集成在控制单元的微控制器芯片内。
收发器
收发器就是一个发送-接收放大器。在接收数据时,收发器把CAN构件连续的比特流(亦称逻辑电平)转换成电压值(线路传输电平);当发送数据时,收发器把电压值(线路传输电平)转换成连续的比特流。线路传输电平非常适合在铜质导线上进行数据传输。收发器通过TX线(发送线)或RX线(接收线)与CAN构件相连。
收发器的特点
如图所示,收发器的TX线始终与总线耦合,两者的耦合过程是通过一个开关电路来实现的。
收发器内晶体管的状态与总线电平之间的对应关系见下表:
多个收发器与总线导线的耦合
当有多个收发器与总线导线耦合时,总线的电平状态将取决于各个收发器开关状态的逻辑组合。
以3个收发器接到一根总线导线上的情况为例:
如下图收发器A和收发器B的开关呈断开状态,收发器C的开关呈闭合状态。开关断开表示1(无源),开关闭合表示0(有源)。
如果某一开关已闭合,电阻上就有电流流过,于是总线导线上的电压就为0V;如果所有开关均未闭合,那么电阻上就没有电流流过,电阻上就没有压降,于是总线导线上的电压就为5V。
3个收发器开关的状态与总线电平的逻辑关系见下表:
如果总线处于状态1(无源),那么该状态可以由某一个控制单元使用状态0(有源)来改写。一般将无源的总线电平称为隐性的,有源的总线电平称为显性的。其意义体现在:
发送传输错误信号时(错误帧故障信息);
冲突识别时(如果几个控制单元想同时发送信息)。
领取专属 10元无门槛券
私享最新 技术干货