0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术CAN总线在工业领域的用途

英创信息技术 来源:英创信息技术 作者:佚名 2019-10-31 15:13 次阅读

CAN总线是什么

CAN是控制器局域网络(Controller Area Network, CAN)的简称,ISO国际标准化的串行通信协议(ISO 11898),具有实时性强、传输距离远、抗电磁干扰能力强、成本低等特点。CAN总线协议已经成为汽车计算机控制系统嵌入式工业控制局域网的标准总线,广泛应用于汽车电控制系统、电梯控制系统、安全监测系统、医疗仪器、纺织机械、船舶运输等领域。

英创主流工控主板ESMARC系列(目前包括4个大型号:ESM6802,ESM6800,ESM335x,ESM928x)均板载两路CAN总线,用户可以直接使用板载CAN总线进行功能评估使用。英创ESMARC底板上面的CAN部分如下图:

英创ESMARC开发评估底板上的CAN电路部分

CAN总线的工作原理

CAN总线使用串行数据传输方式,可以以1Mb/s的速度在40m的双绞线上运行,也可以使用光缆连接。CAN控制器通过组成总线的两条线(CAN-H和CAN-L)的电位差来确定总线的电平。在任一时刻,总线上都有两种电平:显性电平和隐性电平。只要有一个单元输出显性电平,总线上即为显性电平,只有所有的单元都输出隐性电平,总线上才为隐性电平。

连接在总线上的所有节点都能够发送信息,如果有超过一个节点在同一时刻发送信息,有最高优先级的节点获得发送的资格,所有其它节点执行接收操作。

CAN总线工作原理

当CAN总线上的一个节点发送数据时,它以报文形式广播给网络中所有节点。发送节点将要发送的数据和自己的标识符传送给本节点的CAN芯片,并处于准备状态,然后在收到总线分配以后,转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它节点处于接收状态。每个处于接收状态的节点对接收到的报文进行检测,判断这些报文是否发给自己,以确定是否接收。每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不能有两个节点发送具有相同标识符的报文。

CAN模块支持以下帧类型:数据帧,远程帧,错误帧,超载帧,空闲帧。

典型的CAN帧结构

数据帧:用于各节点之间传送数据消息,由7个不同的位场组成:帧起始、仲裁场、控制场、数据场、CRC场、应答场和帧结束。

远程帧:用于一个节点请求其他节点所拥有的数据信息。远程帧的标识符标识了所需数据的类型,而被送回的数据信息的标识符和远程帧的标识符完全一致。数据源节点在接收到远程帧后,根据远程帧的标识符判断所需数据信息类型,并在总线空闲时将相应数据送出。

远程帧由6个位场组成:帧起始、仲裁场、控制场、CRC场、应答场和帧结束。

错误帧:为进行错误界定,每个CAN控制器均设有两个错误计数器:发送错误计数器(TEC)和接收错误计数器(REC)。CAN总线上的所有节点,按其错误计数器数值情况,可分为3个状态:错误活动状态、错误认可状态和总线关闭状态。

上电复位后,两个错误计数器的数值都为0,节点处于错误活动状态,可正常参与总线通信。检测到错误时,节点发送活动错误标志,当错误计数器任一数值超过127时,节点进入错误认可状态。处于错误状态的节点可以参与总线通信,但出错后会发送认可错误标志,并在开始进一步发送数据之前等待一段附加时间(暂停发送场)。当发送错误计数器和接收计数器均小于或等于127时,节点从错误认可状态再次变为错误活动状态。若发送错误计数器数值超过255,则节点进入总线关闭状态,无法收发数据。当软件执行操作模式请求命令,并等待128次总线释放(BusˉFree)序列(11位连续隐性位)后,节点从总线脱离状态重新回到错误活动状态。

错误帧由两个不同的位场组成,第一个场由来自不同的节点的错误标志叠加而成,第二个场为错误界定符。

超载帧:超载帧由超载标志和超载界定符组成。超载标志由6个显性位组成,其格式与活动错误标志相同。超载界定符由8个隐性位组成,其格式与错误界定符相同。导致发送超载帧的两个条件为:

(1)一个接收节点内部接收条件未准备好,要求延迟下一个数据帧或远程帧发送;

(2)在间歇场(3位)检测到显性位。

当超载标志发出后,每个节点监视总线状态,直至检测到从显性至隐性位的跳变,此时,所有的节点均己完成了超载标志的发送,随后所有节点开始发送8个隐性位组成的超载界定符。

空闲帧:数据帧及远程帧与前帧消息之间的间隔被称为空闲帧的场隔开,空闲帧由间歇场和总线空闲场组成,前面已经发送过报文的错误节点还包括暂停发送场。间歇场由3个隐性位组成,在此期间,CAN节点不进行帧发送。间歇场的存在使CAN控制器在下次消息发送前有时间进行内部处理操作。总线空闲场可以为任意长度,此时总线处于空闲状态,允许任何节点开始报文发送。等待报文发送的节点紧随间歇场后启动报文发送,即在空闲场第一位期间就启动报文发送。

错误认可节点完成一个报文发送后,在开始另一次报文发送或进入总线空闲状态之前,紧随间歇场发送8个隐性位的暂停发送场。发送暂停发送场期间,若其他节点开始发送报文,则本节点停止送出暂停发送场,并变为报文接收器

CAN总线电路特点

下图是一个典型的CAN总线扩展电路(英创ETA704 CAN总线扩展模块):

典型的CAN接口电路

由图中可以看出,CAN总线收发管脚通过磁耦器件ADuM1201隔离后,和CAN驱动芯片TJA1050连接,就组成了一个典型的CAN总线通讯电路。带隔离CAN总线通讯模块的CAN收发器端的所有信号电源与其它部分完全隔离,有效保护了电路的安全。需要注意的是如果扁平带线过长,会影响高速信号的完整性,所以在评估时使用的连接线尽量短一些,避免出现问题。

CAN总线在英创主板平台上的应用

英创EM335x工控主板套件 + ETA704 CAN扩展模块扩展4路CAN

英创主板可以通过主板自带和外扩功能模块,支持和管理多路CAN通信。英创工控主板作为核心控制平台,管理和控制CAN接口与下位设备进行通讯,从而实现实时数据处理监控等应用。历年来,大量用户使用英创主板进行CAN通信相关应用,英创也累积了丰富的工程经验。下面整理出了英创网站发表的相关技术文档供用户参考。虽然有一些方案文档中提到的英创主板是较老的型号,用户在新产品开发的时候未必会使用这些老主板产品,但是文中的软硬件使用技巧、编程技巧和方法等技术细节,是值得用户参考或者直接使用的。

应用方案

WinCE系统双CAN构建方案低成本嵌入式Linux CAN应用方案

使用方法与技巧

CAN接口COM组件在WinCE平台上的实现CAN接口COM组件在C#语言中的使用

基于SJA1000的CAN通讯接口函数使用说明EM9170嵌入式主板CAN通讯接口使用说明

SJA1000的CAN通讯接口函数扩展应用说明工控主板EM9170的CAN通讯应用说明

EM9287 Linux Socket CAN驱动简介C/C#开发基于WEC7的CAN通讯应用

EM335x工控主板多路CAN总线扩展方案介绍英创WinCE主板CAN接口数据接收性能测试

英创WinCE主板新CAN驱动使用说明英创新CAN驱动接口调用方法及说明

关于新CAN驱动的错误帧定义ESM6802 Android版支持双CAN通信


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6085

    浏览量

    35198
  • 安卓
    +关注

    关注

    5

    文章

    2120

    浏览量

    56998
收藏 人收藏

    评论

    相关推荐

    支持Linux高级客户自行移植内核

    上市)  该项服务具体说明和实施流程参见:支持客户进行Linux移植  需要该服务的客户需与签订技术保密协议,并承诺严格履行协议:
    发表于 01-18 13:52

    信息技术ARM9工控板远程监控领域的应用

    ARM9工控主板的数据采集功能通常采用板上的GPIO实现数字输入输出、通过精简ISA总线扩展相应的AD或DA实现模拟数据的输入输出。
    的头像 发表于 11-12 10:04 1729次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息技术</b>ARM9工控板<b class='flag-5'>在</b>远程监控<b class='flag-5'>领域</b>的应用

    信息技术ISA总线的CE设备驱动程序介绍

     公司推出的系列ARM9工控主板是面向工业智能设备的高性价比ARM9+WinCE平台,主板上不仅配置了常规的标准通讯接口,如以太、串口、USB、CAN通讯接口等,最有特色的还配置了
    的头像 发表于 11-12 10:17 1573次阅读

    信息技术CAN接口COM组件C#语言领域应用

     ARM9工控主板的一个很大的特色就是提供了标准的CAN总线通讯接口,客户可以方便地工业
    的头像 发表于 11-12 10:34 2410次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息技术</b><b class='flag-5'>CAN</b>接口COM组件<b class='flag-5'>在</b>C#语言<b class='flag-5'>领域</b>应用

    信息技术SJA1000的CAN通讯接口函数介绍

    ARM9系列嵌入式主板一大特色就是提供了CAN接口,并实现了相应的驱动程序,用户只需直接调用CAN_API函数即可实现CAN数据报文的通
    的头像 发表于 01-14 15:04 2603次阅读

    信息技术EM335x工控主板多路CAN总线扩展方案介绍

    。EM335x核心板已经自带了两路CAN总线,默认的配置为一路CAN总线,如果需要两路CAN总线
    的头像 发表于 02-03 10:08 2017次阅读

    信息技术WinCE主板CAN接口数据接收性能测试介绍

    公司嵌入式主板产品中,高端的335x主板系列及低端的ESM9287主板均可支持2路CAN总线标准接口。本文提供CE平台的EM3352和
    的头像 发表于 02-04 11:39 1472次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息技术</b>WinCE主板<b class='flag-5'>CAN</b>接口数据接收性能测试介绍

    信息技术CAN驱动接口调用方法及说明

    用户可从开发光盘中或联系工程师获得CAN例程源码。参考例程使用
    的头像 发表于 02-05 10:26 1345次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息技术</b>新<b class='flag-5'>CAN</b>驱动接口调用方法及说明

    信息技术ESM6802 Android版支持双CAN通信简介

    2017年8月,ESM6802 Android基础版之上,完善了对双CAN接口的支持。 CAN接口的工作思路大致如下图所示: 图1 A
    的头像 发表于 02-06 10:57 2146次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息技术</b>ESM6802 Android版支持双<b class='flag-5'>CAN</b>通信简介

    信息技术JAVA操作主板SPI接口简介

    2017年9月,Linux的文件系统中移植了针对嵌入式Linux的JRE(Java Runtime Environment),能够支持Java应用程序的运行。由于Java语言不能直接访问硬件
    的头像 发表于 02-06 11:09 1878次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息技术</b>JAVA操作<b class='flag-5'>英</b><b class='flag-5'>创</b>主板SPI接口简介

    信息技术JAVA操作主板I2C接口简介

    2017年9月,Linux的文件系统中移植了针对嵌入式Linux的JRE(Java Runtime Environment),能够支持Java应用程序的运行。由于Java语言不能直接访问硬件
    的头像 发表于 02-06 11:06 1649次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息技术</b>JAVA操作<b class='flag-5'>英</b><b class='flag-5'>创</b>主板I2C接口简介

    信息技术主板Windows CE环境中的串口配置

    异步串口UART是工业领域使用最广泛,技术最为成熟的接口。Windows CE环境的主板中
    的头像 发表于 02-06 11:06 1146次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息技术</b>主板<b class='flag-5'>在</b>Windows CE环境中的串口配置

    信息技术工控主板产品选型指南介绍

    成都信息技术有限公司是一家专注于嵌入式工控主板研发、销售与服务的高科技公司,嵌入式领域已有18年的从业经历。
    的头像 发表于 02-06 11:31 1681次阅读

    信息技术精简ISA总线WinCE编程简介

    据线加上4条总线控制信号,即可实现对外部数据的快速读写,异步访问的最高速率5MB/s左右。同步访问需要再使能一条总线时钟信号(共13条信号),可实现高达12MB/s的数据传输。精简ISA总线
    的头像 发表于 02-11 16:55 1252次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息技术</b>精简ISA<b class='flag-5'>总线</b>WinCE编程简介

    信息技术6路独立CAN总线的实现方案简介

    CAN(Controller Area Network)即控制器局域网,由于具有高性能、高可靠性以及简单的网络结构,工业系统中越来越受到人们的重视,并迅速成为了目前国际上应用最广泛的现场总线
    的头像 发表于 02-12 10:53 2010次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息技术</b>6路独立<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>的实现方案简介