历史上的今天
返回首页

历史上的今天

今天是:2025年04月17日(星期四)

正在发生

2020年04月17日 | CAN BUS的架构特点、应用优势与实例分析

2020-04-17

由于汽车产业不断追求安全可靠、极致性能、舒适方便以及低成本等目标,但汽车内高复杂的系统网络,使得线束过于庞大,导致成本提高且网络架构也难以持续提升,与前者形成冲突。


于是德国Bosch在1985年提出CAN BUS(Controller Area Network),不但解决了车内线束持续增加的问题,还为日后可靠且有效率的网络系统垫定了基础。1993年,CAN BUS更制定为标准化(ISO-11898),由于具有高可靠性和错误检测能力,也被广泛应用在船舶、航空电子、大众交通、农用设备、医疗设备、工业控制中。


CAN BUS的架构与特色


CAN BUS是一种串行双线式差分传输的技术规格(见图1),MCU负责运算数据,CAN Controller处理运算后的数据并传送“0”或“1”数据,经过 CAN Transceiver的转换由CAN High和CAN Low产生差分信号(见图2)。其中,CAN High电压减CAN Low电压小于0.5V代表逻辑状态为“1”,而CAN High电压减 CAN Low电压大于0.9V代表逻辑状态为“0”,所以图2中传送位串为101。藉由差分的方式可以避免噪声的产生,而终端电阻120Ω则是防止信息传送后反射造成的干扰。

CAN BUS的架构特点、应用优势与实例分析

CAN BUS上最小单位为节点(Node),每个节点都可以主动发送信息到总线上,也可以要求特定节点回传信息,并不限定于只有一个主控端。每个信息(Message)都是以识别子字段(ID Field )为起头,以识别值决定发送信息的优先权,数值越小优先权越高。所以信息的传递并不是定义在节点上,而是定义在信息上。由于是串接的架构加上识别子(ID)的判定机制,所以软硬件不需要做修正就能够轻易增加或移除节点,不但降低了布线成本也降低了维护的复杂度,这种多主控端架构成就更完整的智能网络设备。


信息传递可透过节点上的设定,使信息可以被每个节点接收至缓冲器内,也可以选择对该信息置之不理。CAN BUS也支持远程数据请求,当该信息识别值符合节点内部的识别值,且该信息是远程信息(Remote Message)时,指定的节点会将相符的数据传送出去。用户便可利用这功能,来进行节点与节点间的沟通。


在CAN BUS上,传输速度最快可达1Mbps,用户可藉由修改位时序设定来修改传输速度,而传输距离随通信速度增加而递减,例如当通信速度40Kbps时,通信距离可达1km;当通信速度1Mbps时,通信距离最远可达40m,据此用户可依照本身的应用做调配。


强大的容错能力


CAN BUS协议具有相当可靠的错误处理和检错机制,这些都是属于硬件自动侦测反应,在此种机制下,网络讯息的传输不但有效率且使用起来更加方便。


自动重传


当总线上的节点侦测到错误时,硬件会自动重新发送该讯息到总线上,直到该讯息有任何节点响应ACK (Acknowledged)后,该讯息才会停止发送。


错误侦测


CAN BUS提供了五种错误侦测机制,分别为位错误(Bit Error),填充位错误(Stuff Error),循环冗余代码校验(CRC Error),格式错误(Form Error),响应错误(Ack Error),利用这些错误侦测机制,使得总线上的传输更加稳定,而不需用户介入。


错误通知


侦测到错误发生时,节点会发送错误讯息(Error Message)到总线上,使得总线上的所有节点都知道此时有错误发生,以便作出相对的反应,包括重传或停止发送等。


错误恢复与排除


在CAN协议中规范了每个节点都有传送错误记数器(TEC: Transmit Error Counter)和接收错误记数器(REC: Receive Error Counter),根据TEC和REC的值来决定目前节点为何种状态,一旦TEC大于255,硬件会让该节点脱机且暂时不接收与发送讯号到总线上,待特定情况发生时,用户才可将该节点重新初始化,并重新开始监控总线上的讯号,如此一来,可避免因各别节点使总线发生严重错误,影响其他节点的传输。


CAN BUS的应用实例


电梯系统(Elevator)


传统的电梯系统采用继电器逻辑线路,有着线束过多且维护不便等问题,改换成以CAN建构系统,不仅大幅减少线束,增加系统可靠度,更有着建构简单,便于系统侦错等优点。

桥梁应变规(Strain Gage)


有鉴于天然灾害频传,所以藉由桥梁应变规来监控桥梁的健康度,以避免人员及车辆伤亡。但传统应变规多半置于桥上,需要人员到场而无法远程监控。利用CAN BUS低速时传输距离长的特性,可将规划区域内的桥梁上放置应变规,并连接至CAN BUS以回传监控中心监控桥梁情形,大幅减少人力成本。


车用监控系统(Recorder with car information)


由于车祸肇事频传,使用行车纪录器掌握前方路况,作为车祸左证的功能。但监视器只能录取前方路况影像,而无法有效掌控本身行车内部的信息,如目前车速,油门状态等。运用CAN处理行车信息,再由SPI(Serial Peripheral Interface)、I2C(Inter-Integrated Circuit)等高速接口传给录像监视器,便可在每段录像画面加上目前车内信息,成为车祸事端更有利的证据。


车用诊断系统(OBDII)


OBDII (On Board Diagnosis - II ) 为一种车辆发生故障时,产生故障警示讯号,提醒驾驶人进厂维修的协议。我们可以使用支持CAN的MCU来实现,利用USB(Universal Serial Bus)装置和CAN来建构诊断系统,可随时将OBDII connector 接上汽车总线,并将其接收讯息透过USB传送到计算机,配合计算机端程序来诊断汽车内部异常讯号,进而加速汽车维修速度。


CAN BUS示范系统

因为CAN BUS具有高扩充性、高可靠度且实时性强和低成本等特性,不仅成为车用网络系统发展技术的核心关键,更在其他产业发挥了强大而显著的技术能力。为了能更了解CAN BUS整体的运作,在此使用普遍常见的M0 MCU,示范一个以CAN BUS传递控制命令与状态消息的马达控制系统(图3),其中NUC140 TIny Board、Learning Board No.1/No/2和Motor Driving Board分别为CAN总线上不同的节点,利用计算机USB连接NUC140 TIny Board,透过NUC140微处理器译码转换成CAN的讯息,以实现计算机与CAN BUS的链接,而各节点可发送与接收系统运作状态和控制命令。因此在示范系统中,透过CAN BUS的链接与NUC140微处理器的转换,各节点均可接收到马达的实时状态消息,并显示在板子上的LCD屏幕或者计算机上的人机接口。



推荐阅读

史海拾趣

ABC [ABC Taiwan Electronics Corp]公司的发展小趣事

随着全球电子市场的不断扩大,ABC Taiwan Electronics Corp开始实施国际化战略。公司积极参与国际电子展会,与国外客户建立合作关系,将产品推向国际市场。同时,公司还加强了对国际标准和法规的研究,确保产品符合国际质量要求。通过不断拓展海外市场,ABC的销售额和市场份额逐年攀升,成为了国际知名的电子零件供应商。

Gumstix公司的发展小趣事
检查电路中是否有异物导致短路,清理异物并修复受损部分。
Dresden Elektronik公司的发展小趣事

Dresden Elektronik公司始终将产品质量放在首位。他们建立了严格的质量管理体系,从原材料采购到生产、检测、包装等各个环节都严格把关。这种对品质的执着追求使公司的产品在市场上赢得了良好的口碑,也为公司赢得了众多忠实的客户。

Heidenhain Corp公司的发展小趣事

随着电子行业的快速发展,对高精度电子元件的需求日益增长。海德汉公司凭借其iTNC系列数控系统的高精度控制能力,成为众多电子元件制造商的首选合作伙伴。某知名电子元件生产商在引入海德汉iTNC 530数控系统后,成功实现了微型电子元件的精密加工,将加工精度提升至微米级,大大提高了产品的质量和市场竞争力。这一合作不仅巩固了海德汉在高精度加工领域的领先地位,也推动了电子行业向更高精度、更高质量方向发展。

Accetek公司的发展小趣事

随着产品质量的不断提升和市场口碑的积累,Accetek公司开始积极拓展国内外市场。公司参加了多个国际电子展览和交流活动,与全球多家知名企业建立了合作关系。同时,公司还加强了品牌建设和市场推广工作,通过广告宣传、媒体合作等方式提高品牌知名度和美誉度。这些举措有效地提升了公司的市场竞争力,为公司的快速发展提供了有力支持。

B&B Electronics Manufacturing Company公司的发展小趣事

B&B公司成立于二战后的经济恢复期,最初是一家小型的电子制造公司。在创始人对电子技术的深厚兴趣和不懈追求下,公司逐渐在数据通信和商业应用领域找到了自己的定位。初步的产品线主要集中在转换器、控制器等基础电子设备上,为当时的工业自动化和过程控制提供了稳定可靠的解决方案。

问答坊 | AI 解惑

有搞家电控制器的进来

呵呵 进来交流交流 感觉这行不能长久 总不能一辈子守这点玩意…

查看全部问答>

FFT理论分析

本帖最后由 paulhyde 于 2014-9-15 03:13 编辑 FFT理论分析 很有用    …

查看全部问答>

用 STM32 DIY 数码复读机

打算用STM32 DIY一个数码复读机,具体计划如下,欢迎感兴趣的兄弟们一起参与进来,大家一起研究哦。 活动宗旨:学习,讨论,开放,灵活,和谐 活动形式:站方组织创建项目实施团队带领活动成员共同DIY 规划: 第一阶段:前期准备   &n ...…

查看全部问答>

CE 用什么控件显示数据

我想在设备上对数据库中进行显示,查询等操作,但CE下不能使用datagridview控件, 请教下大家在开发时候都用什么控件或者什么方法 对数据进行数据显示和查询的操作的。…

查看全部问答>

wince datagrid 使用方法是怎样的

现在需要用列表形式显示数据,第一列为名称,第二列为具体的数据。 其中: 第一列,标题,简单的label显示即可 第二列,存在编辑框、下拉菜单两种情况 界面中的dataGrid要如何初始化?标题及其对应内容应如何添加?…

查看全部问答>

关于24C04的地址问题

  我用的是S3C410的开发板,想通过IIC往24C04里写点东西,我开发板附带的文档里说24C04的地址是1010,可我怎么写都写不进去,我十分怀疑这个地址的真实性,然后我看网上说2410的板子还有个24C02寄存器,地址是0X50,于是我往0X50这个地址 ...…

查看全部问答>

嵌入式怎样学习?

我是一名计算机科学与技术专业毕业的本科生,请问高手们如果我想学习LINUX和WINCE方面的嵌入式编程,能够转行吗?如果可行的话转行成本是多少?应该从什么基础来学习,如果有书籍推荐的话更好,呵呵...…

查看全部问答>

LM3S8962评估套件

以太网转CAN通信…

查看全部问答>

版主请教个问题!STM32I2S接AUDIOCODEC

一般的 AUDIO CODEC 是这样的接口 !!  ST 的没法接 !!!  因为在输出 DAC 的同事需要读取出 ADC 值!  也就是 MIC !  如果要分时用的话! ...…

查看全部问答>

omap3530 wince6.0 lcd 驱动怎么实现de同步模式

3715只支持行場同步模式,而我现在用的屏幕却只支持de模式, 请教怎么将行場同步模式改成de模式,我查看wince lcd的驱动代码,看不懂hsw vsw 前后消隐在代码中体现 我想通过io来实现de信号功能,但不知啥时传输的是有效数据,啥时是无效数据, 还望大虾 ...…

查看全部问答>