任志伟
(中国第一汽车股份有限公司天津技术开发分公司)
随着人们对汽车的操控性、安全性和娱乐性等要求的日益提高,许多新技术被应用到汽车生产中。一汽自主的整车已经不局限于一辆能够载人行驶的交通工具,更是一个具有操控、安全、导航及娱乐等电子控制单元的有机整体。为了使这些系统能及时可靠的通信,CAN技术已经被广泛地应用在整车上。为了最大程度上使整车具备更多功能,在新车型研发阶段,越来越多电子控制单元需要连接在整车CAN上,而在确定的通信速率和保证系统通信可靠及时的前提下,一个CAN总线连接的节点和线缆长度必然有一定限制,因此通过一种方法能够便捷地计算出CAN总线的最大节点数和长度,在整车CAN开发中有着重要意义。
CAN被设计作为汽车环境中微控制器之间的通讯,并在各车载ECU之间交换信息,形成汽车电子控制网络。它是一种多主方式的串行通讯总线,设计规范要求有较高的位速率和高抗干扰性,而且能够检测出产生的任何错误。信号传输距离达到10 km时,仍然保持高达5 kB/s的数据传输速率。由于CAN总线具有这些特性,因此在汽车、制造业及航空工业中得到广泛应用。
CAN总线的使用,使相关的操控、安全、导航及娱乐等电子控制单元有机的结合起来。汽车上的各个部件通过中央控制模块(ECU)的控制,执行各种指令,并反馈各种信号,使整车变成了一个智能的电子控制系统。
CAN总线上用“显性”和“隐性”表示2个互补的逻辑值“0”和“1”。当总线上出现同时发送显性和隐性位时,其结果是总线数值为显性(即“0”与“1”的结果为“0”)。在隐性状态,VCAN_H和VCAN_L被固定在平均电压附近,差分输入电压(Vdiff)近似于0。在总线空闲或隐性位期间,发送隐性位。显性位以大于最小阈值的差分电压表示[1]。图1示出总线位的数值表示,图1中,VCAN_H和VCAN_L为CAN总线收发器与总线之间的两接口引脚,信号以两线之间的“差分”电压形式出现。
CAN总线上任意2个节点之间的最大传输距离与其位速率有关,相关数据,如表1所示。
表1 CAN总线系统任意2节点间位速率与最大距离的关系表
在CAN总线系统的实际应用中,需要估算一个网络的最大总线长度和节点数。最大总线长度主要由以下因素决定:
1)互连总线节点的回路延时(由CAN总线控制器和驱动器等确认)和总线线路延时;各节点振荡器频率的相对误差而导致的位时钟周期的偏差;总线电缆串联等效电阻和总线节点的输入电阻而导致的信号幅度的下降。
2)因为传输延迟时间对于总线长度的影响主要是由于非破坏性总线仲裁和帧内应答机制所决定的,所以在每帧报文的应答场,要求接收报文正确的节点在应答间隙将发生节点的隐性电平转为显性电平,作为对发送节点的应答。
3)由于这些过程必须在1个位时间内完成,所以总线线路延时以及其它延时之和必须小于1/2个位时钟周期。
非破坏性总线仲裁和帧内应答本来是CAN总线区别于其他现场总线最显著的优点之一,在这里却成了一个缺点,主要表现在其限制了CAN总线速度进一步提高的可能性,当需要更高的速度时则无法满足要求。
在静态条件下,总线节点的差分输入电压由电流通过该节点差分输入电阻的电流所决定,CAN总线系统网络分布等效电路图,如图2所示,节点的差分输入电压主要取决于以下因素:发送节点的差分输出电压(Vdiff.out),总线电缆的电阻(Rw)和节点的差分输入电阻(Rdiff)。当发送节点在总线一端而接收节点在总线的另一端时为最坏情况,这时接收节点的差分输入电压可按式(1)计算。
式中:Vdiff——差分输入电压,V;
Vdiff.out——差分输出电压,V;
Rw——总线电缆电阻,Ω;
RT——终端匹配电阻,Ω;
Rdiff——差分输入电阻,Ω;
n——节点数。
当Vdiff<0.5 V或0.4 V时,接收节点检测为隐性位,当Vdiff>0.9 V或1.0 V时,接收节点检测为显性位。为了正确地检测到显性位,接收节点必须能够收到一定的Vdiff,这个电压取决于接收显性位的阈值电压(Vth)和用户定义的安全区电压。所需差分输入电压可由式(2)计算。
式中:Vdiff.in.req——需求差分输入电压,V;
Vth——阈值电压,V;
Ksm——决定安全电压的差分系数,在0~1之间选取。
由于接收的Vdiff必须大于检测显性位所需的电压,在极限情况下,可以得到差分输入电压最小值,如式(3)所示。
式中:Vdiff.in.min——差分输入电压最小值,V;
Vdiff.out.min(1.5 V)——输出显性位时最小差分输出电压,V;
Rw.max——最大总线电缆电阻,Ω;
RT.min——最小终端匹配电阻,Ω;
Rdiff.min——差分输入电阻最小值,Ω;
nmax——系统接入的最大节点数。
根据 Rw.max=ρmxnLmax,式(3)经变换后可得:
式中:Lmax——最大总线电缆长度阈值,m;
ρmax——所用电缆的单位长度的最大电阻率,Ω/m;
Vth.max(1 V)——接收显性位最大阈值电压,V。
从式(4)可以清楚地看出,最大总线电缆长度除了与终端匹配电阻和节点数等有关外,还与总线电缆长度电阻率成反比。由于不同类型的电缆电阻率不同,所以其最大总线长度也有很大差别。若Ksm=0.2,在最坏情况下,可得出必须Rw<15 Ω。在正常情况下,当 Vdiff=2 V,Vth=0.9 V,Rdiff=50 kΩ,RT=120 Ω,Ksm=0.2 时,Rw<45 Ω 即可。
一个网络中所能连接的最大节点数主要取决于CAN总线控制器的最小负载电阻(RL.min/Ω)。比如CAN控制器提供的负载驱动能力为RL.min=45 Ω。最大节点数的计算公式,如式(5)所示(假设Rw=0,此时为最坏情况)。
由式(5)可知,假设 Rdiff.min=20 kΩ,当 RT=118 Ω 和RL=45 Ω时,能连接最大节点数为106个;当RT=120 Ω和RL=45 Ω时,则为112个。其实影响节点数多少的因素除了驱动器的驱动能力之外,还与总线长度有密切关系,只有总线长度在合适范围内时,才有可能达到上面的最大节点数。
文章根据等效电路方法得到CAN分布等效电路,推导出最大总线长度不仅与终端匹配电阻和节点数量有关,还与总线电缆长度的电阻率成反比。通过使用CAN总线网络不仅可以减少线束,而且能够提高各控制系统的运行可靠性,减少冗余的传感器及相应的软硬件配置,实现各子系统之间的资源共享,便于集中实现各子系统的在线故障诊断。在产品设计开发阶段,根据实际应用环境的需求可以准确估算出最大总线长度和节点数,这能够为整个网络构建提供可靠的理论技术支持,且容易确定整车系统中需要连接在CAN网络中的节点控制器数量及布置,并能够提高CAN网络系统的设计效率和鲁棒性。