历史上的今天
返回首页

历史上的今天

今天是:2025年04月25日(星期五)

正在发生

2019年04月25日 | CAN基础—电平、逻辑、报文是怎么来的

2019-04-25 来源:EEWORLD

CAN总线通讯是我们每天都会使用的工业通讯总线,工程师更多的是关注报文是否能够正常接收,解析结果是否正确。却忽略了CAN总线的报文是怎么产生以及收发的,所以遇到通讯异常的问题时就会无从下手。那么这篇文章将会带您快速了解报文的传输原理。

 

一、 节点通讯的原理

 image.png?imageView2/2/w/550

 

图1  CAN节点示意图

 

如图1所示是一个CAN节点的示意图,整体包括了CAN收发器、CAN控制器和MCU。我们以节点发送报文为例,当我们使用上位机软件发送一段报文时,报文会通过MCU发送给CAN控制器。CAN控制器将这段报文解析成逻辑信号后,再发送给CAN收发器。CAN收发器根据CAN-bus标准将接收到的逻辑信号转换成电信号,再通过CAN_H和CAN_L两根总线将电信号传到总线上的其他节点上。

 

简单说就是MCU将报文发送给控制器,控制器将报文转换成符合规范的CAN报文后,通过CAN收发器以电信号的形式在总线上进行传输。

 

二、 电平是如何转换成逻辑?

 

 

图2  CAN-bus信号电平

 

如图2所示,CAN总线使用的是双线差分信号,所以分为CAN_H和CAN_L两根总线,根据两根总线之间电压的差值大小来判断其显隐性。而线缆上传输的电平信号只有两种可能,分别为显性电平和隐性电平,其中显性电平代表逻辑 0,隐性电平代表逻辑 1。

 

当接受到报文时,首先就要通过CAN收发器将电信号转换成逻辑信号。根据图3所示的ISO11898高速CAN电平标准进行判断,但是线路上经常会受到各种干扰,为了保证传输的稳定性。所以差分电平小于0.5V就是隐性电平代表逻辑1,差分电平大于0.9V就是显性电平代表逻辑0。

 

说明: C:UsersAdministratorAppDataRoamingTencentUsers317308997TIMWinTempRichOleTM]KMNO@B~]NNZ7U@{CYE)B.png?imageView2/2/w/550

 

图3  ISO11898高速CAN电平

 

三、 逻辑信号如何转换成报文?

 

CAN控制器是CAN-bus设备的核心元件,集成了CAN规范中数据链路层的全部功能,能够自动完成CAN-bus协议的解析。

 

当CAN收发器将逻辑信号传送给CAN控制器后,CAN控制器会将逻辑信号转换成符合CAN规范的CAN帧。而CAN帧的类型包括了数据帧、远程帧、帧间空间、错误帧和超载帧。

 

说明: C:UsersAdministratorDocumentsTencent Files317308997FileRecvMobileFileImageU~$0NN@NKD`F[S4N1%Q)S1N.png?imageView2/2/w/550

 

图 4  标准帧格式

 

以最常见的数据帧为例,图4就是标准帧的格式,包括了帧起始、仲裁场、控制场、数据场等。

 

 

图5  报文解析实例

 

图5就是报文解析的实例,当接受到对应的逻辑信号后,CAN控制器就会根据规定的CAN帧格式进行解析,并将报文发给MCU。

 

四、 上位机报文显示

 

说明: C:UsersAdministratorAppDataRoamingTencentUsers317308997TIMWinTempRichOle496F]32H[V)_9`$KEHWG%LJ.png?imageView2/2/w/550

 

图 6  上位机报文显示

 

如图6所示,当CAN控制器完成了CAN-bus协议的解析后,就会将报文传输到MCU中在上位机软件中进行显示。像帧起始、CRC场、ACK场这样的数据不读取,所以我们上位机软件只显示数据帧类型、帧ID和帧数据等信息。

 

总结:

 

对于CAN总线报文错误来说,百分之九十的错误都来自于物理层,而CANScope总线分析仪可以对CAN 波形与报文同步发送和接收,快速对CAN总线进行各项测试,帮助工程师们快速完成故障定位和问题排查。

 



推荐阅读

史海拾趣

德旭电子(DEXU)公司的发展小趣事

在电子行业的浪潮中,德旭电子(DEXU)于XXXX年悄然成立。当时,创始人李先生凭借对电子技术的深刻理解和市场的前瞻性判断,决定涉足这一领域。初创时期的德旭电子面临着资金短缺、技术薄弱、市场竞争激烈等多重挑战。然而,李先生带领的团队凭借坚定的信念和不懈的努力,成功研发出首款具有竞争力的电子产品,并在市场上获得了一定的认可。

为了提升产品质量和技术水平,德旭电子不断加大研发投入,积极引进先进技术和设备。同时,公司还注重人才培养和团队建设,吸引了一批具有丰富经验和专业技能的人才加入。这些努力为德旭电子的后续发展奠定了坚实的基础。

FREESCALE (NXP)公司的发展小趣事

随着产品质量的不断提升和市场份额的逐步扩大,德旭电子开始注重品牌建设和市场拓展。公司积极参加各类行业展会和交流活动,展示自身实力和产品优势。同时,德旭电子还加大了广告宣传力度,通过线上线下相结合的方式提升品牌知名度和美誉度。

在市场拓展方面,德旭电子不仅深耕国内市场,还积极开拓国际市场。公司凭借优质的产品和专业的服务赢得了越来越多客户的信赖和支持。国际市场的拓展为德旭电子的持续发展注入了新的动力。

港源(GANGYUAN)公司的发展小趣事

在德旭电子的发展历程中,供应链管理和成本控制一直是公司关注的重点。为了降低生产成本和提高产品质量,公司不断优化供应链管理流程和技术手段。

德旭电子与多家优质供应商建立了长期稳定的合作关系,并通过引入先进的供应链管理软件和系统实现了供应链的数字化和信息化管理。这些措施有效提高了供应链的响应速度和灵活性,降低了库存和运营成本。

在成本控制方面,德旭电子注重精细化管理和持续改进。公司通过优化生产流程、提高生产效率、降低能耗和原材料成本等措施不断降低生产成本。同时,公司还建立了完善的成本管理体系和考核机制确保成本控制工作的有效实施。

喜美克斯(Cvilux)公司的发展小趣事

喜美克斯(Cvilux)公司自创立之初,就以其对电子技术的深刻理解和创新精神在行业中崭露头角。公司的创始人是一位电子工程领域的资深专家,他带领着一支充满激情的年轻团队,针对当时市场上电子产品的一些痛点,开始研发具有自主知识产权的新技术。经过数月的努力,他们成功开发出了一款具有高效能、低功耗特点的电子芯片,这一创新技术迅速获得了市场的认可,为喜美克斯公司的发展奠定了坚实的基础。

High Energy Corp公司的发展小趣事

随着公司规模的逐渐扩大,喜美克斯公司开始思考如何进一步拓展市场。他们深入研究市场趋势和消费者需求,制定了针对不同市场的精准营销策略。通过与当地合作伙伴的紧密合作,喜美克斯成功地将产品打入了多个新兴市场,实现了销售额的快速增长。

捷茂微(GATEMODE)公司的发展小趣事

随着公司规模的逐渐扩大,喜美克斯公司开始思考如何进一步拓展市场。他们深入研究市场趋势和消费者需求,制定了针对不同市场的精准营销策略。通过与当地合作伙伴的紧密合作,喜美克斯成功地将产品打入了多个新兴市场,实现了销售额的快速增长。

问答坊 | AI 解惑

tsk和mbx的区别

这两个都是DSP/BIOS中的,先大概介绍一下 tsk:     task,任务.在Scheduling中,其优先级高于IDL(背景程序),低于SWI(软中断)和HWI(硬中断).可以被软硬中断打断,也可以被其它事件阻塞(blocked),顺便说一下,SWI和HWI是不能阻塞的.(阻塞和中 ...…

查看全部问答>

各类天线简介

文章内容是TI的一些简单介绍~~·…

查看全部问答>

数字频率计闸门信号怎么控制

要设计一个频率计,其他的部分都差不多搞定了,可是频率控制这块总弄不懂。要求:可测量0——999999的频率,闸门电路时钟信号为 2HZ ,产生计数周期1s,清零周期 0.5s,4s为一个周期测量一次信号。。。。 帮帮忙了,急需。…

查看全部问答>

为什么在超级终端内无法输入AT指令啊?

为什么在超级终端内无法输入AT指令啊? 敲入AT一点反应都没有?根本无法输入字母阿?? 我用的是西门子 GPRS 模块(MC35i) 急求!!!!希望指导一下啊!!!!!…

查看全部问答>

请教个 Verilog 实现 CRC 校验的问题

module crc16(EN,crc_in,data_in,crc_out,valid);input[15:0] crc_in;input[7:0] data_in;input EN;output[15:0] crc_out;output valid;reg[15:0] crc_out;reg valid;always@(crc_in or data_in or EN)beginif(EN==1)beginvalid=1\\\'b0;crc_out[0] ...…

查看全部问答>

STM32使用IAR编译问题

                                 各位同僚,问个问题,我用ST的ARM,使用IAR,我将某个指针型变量设置为局部变量的时候,有几个涉及到该变量的不能 ...…

查看全部问答>

modelsim仿真出现的问题,求赐教。

仿真错误提醒如下: # ** Error: (vsim-SDF-3894) floating_led_v_fast.sdo: Compiled SDF file was not found.# Loading work.CYCLONEII_PRIM_DFFE# ** Fatal: SDF files require Altera primitive library#    Time: 0 ps  ...…

查看全部问答>

lm3s811配合ch451控制数码管的显示

lm3s811配合ch451控制数码管的显示示例,昨天刚调出来的   // 定义全局的系统时钟变量unsigned long TheSysClock = 12000000UL;// 定义引脚#define CH451_PERIPH   SYSCTL_PERIPH_GPIOD#define CH451_PORT    GPIO ...…

查看全部问答>

R7F0C802X 程序试用和心得

本帖最后由 damiaa 于 2014-10-19 17:22 编辑 R7F0C802X 程序试用和心得先把上篇文章的例子重上一次: 程序主要是由几部分构成,可以参照上篇文章里的r01uh0400cj0200_r7f0c801_5.pdf硬件手册对照看: Startup.s 启动文件(C编程一般都要) ...…

查看全部问答>

正准备学习DSP的新手有问题需要指教

楼主刚刚要开始学习DSP,之前完全没有接触过这方面的内容。求各路大神指点一下。 1.有哪些DSP的书籍比较容易上手学习,求推荐。 2.具体一点的问题是,把用C语言写的程序移植到DSP中是怎么样的过程,一般都是用CCS编译器嘛?具体的操作过程是怎么 ...…

查看全部问答>