CANBUS特色与应用实例
由于汽车产业不断追求安全可靠、极致性能、舒适方便以及低成本等目标,但汽车内高复杂的系统网络,使得线束过于庞大,导致成本提高且网络架构也难以持续提升,与前者形成冲突。
于是德国Bosch在1985年提出CANBUS(Controller Area Network),不但解决了车内线束持续增加的问题,还为日后可靠且有效率的网络系统垫定了基础。1993年,CANBUS更制定为标准化(IS0-11898),由于具有高可靠性和错误检测能力,也被广泛应用在船舶、航空电子、大众交通、农用设备、医疗设备、工业控制中。
CANBUS的架构与特色
CANBUS是一种串行双线式差分传输的技术规格(见图1),MCU负责运算数据,CANController处理运算后的数据并传送“0”或“1”数据,经过CANTransceiver的转换由CANHigh和CANLow产生差分信号(见图2)。其中,CANHigh电压减CANLow电压小于0.5V代表逻辑状态为“1”,而CANHigh电压减CANLow 电压大于0.9V代表逻辑状态为“0”,所以图2中传送位串为101。藉由差分的方式可以避免噪声的产生,而终端电阻120Q则是防止信息传送后反射造成的干扰。
NodeA
| MCU | ||||||
|
| ||||||
CAN | CAN | CAN | CAN | ||||
Transfer | Receiver | Transfer | Receiver | ||||
CAN Transceiver | | ||||||
120Q | |||||||
CAN Low | CAN Low |
图1CAN BUS的应用架构
Voftage | i L |
|
3.5- 2.5- 1*5- r |
|
■>Time
电吕网
图2CAN BUS的输出准位
CANBUS上最小单位为节点(Node),每个节点都可以主动发送信息到总线上,也可以要求特定节点回传信息,并不限定于只有一个主控端。每个信息(Message)都是以识别子字段(IDField )为起头,以识别值决定发送信息的优先权,数值越小优先权越高。所以信息的传递并不是定义在节点上,而是定义在信息上。由于是串接的架构加上识别子(ID)的判定机制,所以软硬件不需要做修正就能够轻易增加或移除节点,不但降低了布线成本也降低了维护的复杂度,这种多主控端架构成就更完整的智能网络设备。
信息传递可透过节点上的设定,使信息可以被每个节点接收至缓冲器内,也可以选择对该信息置之不理。CANBUS也支持远程数据请求,当该信息识别值符合节点内部的识别值,且该信息是远程信息(RemoteMessage) 时,指定的节点会将相符的数据传送出去。用户便可利用这功能,来进行节点与节点间的沟通。
在CANBUS上,传输速度最快可达1Mbps,用户可藉由修改位时序设定来修改传输速度,而传输距离随通信速度增加而递减,例如当通信速度40Kbps时,通信距离可达1km;当通信速度1Mbps时,通信距离最远可达40m,据此用户可依照本身的应用做调配。
值得信赖的帮手
强大的容错能力
CANBUS协议具有相当可靠的错误处理和检错机制,这些都是属于硬件自动侦测反应,在此种机制下,网络讯息的传输不但有效率且使用起来更加方便。
自动重传
当总线上的节点侦测到错误时,硬件会自动重新发送该讯息到总线上,直到该讯息有任何节点响应ACK
错误侦测 (Acknowledged)后,该讯息才会停止发送。
代码校验(CRC Error),格式错误(FormError),响应错误(AckError),利用这些错误侦测机制,使得总CANBUS提供了五种错误侦测机制,分别为位错误(BitError),填充位错误(StuffError),循环冗余
线上的传输更加稳定,而不需用户介入。
错误通知
侦测到错误发生时,节点会发送错误讯息(ErrorMessage)到总线上,使得总线上的所有节点都知道此时有错误发生,以便作出相对的反应,包括重传或停止发送等。
错误恢复与排除
在CAN协议中规范了每个节点都有传送错误记数器(TEC:Transmit Error Counter)和接收错误记数器(REC:Receive Error Counter),根据TEC和REC的值来决定目前节点为何种状态,一旦TEC大于255,硬件会让该节点脱机且暂时不接收与发送讯号到总线上,待特定情况发生时,用户才可将该节点重新初始化,并重新开始监控总线上的讯号,如此一来,可避免因各别节点使总线发生严重错误,影响其他节点的传输。
无限可能的应用系统
CANBUS的应用实例
电梯系统(Elevator)
传统的电梯系统采用继电器逻辑线路,有着线束过多且维护不便等问题,改换成以CAN建构系统,不仅大幅减少线束,增加系统可靠度,更有着建构简单,便于系统侦错等优点。
桥梁应变规(St rainGage)
有鉴于天然灾害频传,所以藉由桥梁应变规来监控桥梁的健康度,以避免人员及车辆伤亡。但传统应
变规多半置于桥上,需要人员到场而无法远程监控。利用CANBUS低速时传输距离长的特性,可将规划区域内的桥梁上放置应变规,并连接至CANBUS以回传监控中心监控桥梁情形,大幅减少人力成本。
车用监控系统(Recorderwith car informa tion)
由于车祸肇事频传,使用行车纪录器掌握前方路况,作为车祸左证的功能。但监视器只能录取前方路况影像,而无法有效掌控本身行车内部的信息,如目前车速,油门状态等。运用CAN处理行车信息,再由SPI(SerialPeripheral In terface)、I2C(Inter-In tegra ted Circui t)等高速接口传给录像监视器,便可在每段录像画面加上目前车内信息,成为车祸事端更有利的证据。
车用诊断系统(OBDII)
OBDII(On Board Diagnosis - II )为一种车辆发生故障时,产生故障警示讯号,提醒驾驶人进厂维修的协议。我们可以使用支持CAN的MCU来实现,利用USB(UniversalSerial Bus)装置和CAN来建构诊断系统,可随时将OBDIIconnector接上汽车总线,并将其接收讯息透过USB传送到计算机,配合计算机端程序来诊断汽车内部异常讯号,进而加速汽车维修速度。
用方便简单
CANBUS示范系统
图3CAN BUS应用马达控制系统
因为CANBUS具有高扩充性、高可靠度且实时性强和低成本等特性,不仅成为车用网络系统发展技术的核心关键,更在其他产业发挥了强大而显著的技术能力。为了能更了解CANBUS整体的运作,在此使用普遍常见的MOMCU,示范一个以CANBUS传递控制命令与状态消息的马达控制系统(图3),其中NUC140Tiny Board、LearningBoard No.l/No/2和Motor Driving Board分别为CAN总线上不同的节点,利用计算机USB连接NUC140Tiny Board,透过NUC140微处理器译码转换成CAN的讯息,以实现计算机与CANBUS的链接,而各节点可发送与接收系统运作状态和控制命令。因此在示范系统中,透过CANBUS的链接与NUC140微处理器的转换,各节点均可接收到马达的实时状态消息,并显示在板子上的LCD屏幕或者计算机上的人机接口。