CAN (Controller Area Network)即控制局域网,具有高性能、高可靠性等特点,越来越受到人们的重视,应用也日益广泛。虽然CAN总线通信速率最高可达1 Mbps,但是其通信最大距离受位速率的影响,若要达到最高的1 Mbps,则最大通信距离只能为40 m。
新出现的LVDS(Low Voltage Defferential Signaling,低压差分信号)传输技术,具有高速(最高1.923 Gbps)、低噪、低功耗等特点,其技术标准只规定驱动器输出特性和接收器输入特性,为总线配置、缆线和终端提供准则,而协议、连接器和总线结构则依赖于应用,由参考标准确定。本文利用LVDS的以上特点来改进CAN总线的性能,并就如何在CAN总线上应用LVDS技术进行讨论,设计出具体应用方式,得出测试结果。
1 LVDS接口原理以及电特性
LVDS的基本工作原理如图1所示。其源端驱动器由一个恒流源(通常约为3.5 mA,最大不超过4 mA) 驱动一对差分信号线组成。接收端的接收器本身为高直流输入阻抗,所以几乎全部的驱动电流都流经100 Ω的终端匹配电阻,并在接收器输入端产生约350 mV的电压。通过驱动器的开关,改变直流电阻的电流方向,从而产生“1”和“0”的逻辑状态。在LVDS系统中,采用差分方式传送数据,有着比单端传输方式更强的共模噪声抑制能力。
图1 LVDS的基本工作原理
2 LVDS应用分析与实现方式
2.1 应用分析
在CAN总线节点结构中,至关重要的部分是CAN总线控制器(如SJA1000)和CAN总线驱动器(如82C250)。前者是连接数据链路层和物理层的接口;后者是CAN总线控制器与物理总线之间的接口,直接影响系统网络性能,决定了CAN总线数据传输的方式、位速率和距离。表1列举了位速率与最大距离的关系,这里的最大距离是CAN总线系统中同一条总线上两个节点之间的距离。在位速率一定的情况下,两节点之间的距离如果超过了表中所列的最大距离,节点就必须增加中继器(或“网关”)来扩大通信距离。
表1 最大距离与位速率的关系
CAN总线驱动器主要由1个驱动器和1个接收器构成。驱动器向总线发送差分信号CANH和CANL,接收器接收总线上的CANH和CANL信号,并转化为CAN控制器使用的信号,这样使得总线信号能以差分信号在各节点之间进行传输。这种“驱动器—接收器”结构与LVDS的基本结构非常相似,如果用LVDS驱动器和接收器来代替CAN总线驱动器里的驱动器和接收器,则同样可以实现信号的差分传送。
图2利用LVDS技术的总线节点及连接方式
2.2 实现方式
基于以上分析,利用LVDS技术重新设计CAN总线的节点。以非智能节点为例,如图2所示,LVDS驱动器接收CAN控制器发出的信号,将其转化为LVDS信号后发送到CAN总线上;LVDS接收器接收来自CAN总线上的LVDS信号,转化为TTL信号给另一节点的CAN控制器。这样在CAN总线上传送的将是电压摆幅更小的LVDS信号。
如果利用LVDS技术应用模式中的多点拓扑结构(MLVDS),如图3所示,就可以组成改进节点后的CAN总线。MLVDS的节点数最多为32个,终端电阻在互连的两端,而驱动器可以位于总线的任何位置;在某一时刻只有一个驱动器有效(正常模式),可避免总线冲突。
图3 LVDS多点拓扑结构
3 测试电路设计
采用Philips公司的P87C591单片机作为改进型CAN总线主控制器,此款单片机与MCS51完全兼容,内部嵌入了CAN点线控制器SJA1000,遵守CAN总线的相关协议。采用这款单片机是为了简化单片机与SJA1000之间的连接,在实验中只要设计总线驱动电路即可。LVDS电路采用差分发送器DS90C031和差分接收器DS90C032完成TTL—LVDS、LVDS—TTL的转化。LVDS测试电路(只包括P87C591和DS90C031、DS90C032之间的部分)如图4所示,根据芯片配置要求, 输出端两条差分信号间的匹配电阻为330 Ω,另外驱动器的100 Ω匹配电阻应尽量靠近接收器。
图4 LVDS测试电路
任一节点的P87C591单片机TXDC发出的CAN信号经DS90C031转化为LVDS信号后传送到CAN总线上,供其他具有相同结构的节点接收;当总线上有此节点需接收的信号时,LVDS接收器将LVDS信号转换回来后发送到RXDC供P87C591处理。
4 测试结果
4.1 可行性测试
图5(a)是上述LVDS电路组成的两个节点之间进行通信所得的波形,速率为250 kbps,传送距离为80 m。其中,输入信号是P87C591的TXDC发送到DS90C031的信号;LVDS信号是总线上的信号(为了显示清晰,只采集CANH上的信号,下同);输出信号是LVDS接收器DS90C032传送给另一节点处的P87C591上RXDC接收到的信号。
从测试所得波形可以看出,输出信号与输入信号的波形非常接近,并且经P87C591处理后CAN信号转换回来的数据与所发送的数据也非常吻合,这说明利用LVDS技术也能正常传送CAN信号。还可以从图5中看出,LVDS信号的差分电压摆幅只有350 mV左右(电压范围为0.85~1.2 V),远低于传统节点方式的差分电压摆幅2.4 V左右(电压范围为1.4~3.8 V,如图5(b)所示),这将更有利于CAN总线抑止外界干扰。
图5 可行性测试波形图
4.2 通信距离测试
图6(a)是利用P87C591和82C250组成的传统节点方式,在1 000 kbps(最大距离为40 m)的传输速率下,以80 m的距离来测试。可以看出CAN总线已不能正常通信。
图6(b)是利用LVDS技术同样以1 000 kbps速率进行80 m传送测试。虽然输出信号较输入信号有0.3~0.4 μs左右的延时,波形也稍有畸变,但通信仍然比较正常,P87C591处理后的数据也都正确;此时通信距离已经达到了传统节点通信最大距离的2倍,且通信距离还可以增加。可见,利用LVDS技术重新设计的CAN总线节点在位速率一定时具有更大的通信距离,这样可以大大减少中继器的使用,既降低设备成本,又避免总线信号在中继器处出错情况的产生。
图6 通信距离测试波形
结语
LVDS是总线信号串行化传输高速数据中物理层的一种重要选择技术,本文利用其来改进CAN总线的性能,以提高CAN总线信号的通信距离和抗干扰能力。改进型CAN总线由于采用了LVDS技术的多点拓扑结构,也丧失了CAN总线的多主工作方式。