做外贸需掌握的网站,建设公司网站需要什么技术,wordpress 多域名多站点,西安网站建设开发建议同时阅读本专栏的#xff1a;
Autosar CAN开发03#xff08;从实际应用认识CAN总线的物理层#xff09;
Autosar CAN开发04#xff08;从实际应用认识CAN报文#xff09;
Autosar CAN开发05#xff08;从实际应用认识CAN波特率#xff09;
前言
在上一章的《AU…建议同时阅读本专栏的
Autosar CAN开发03从实际应用认识CAN总线的物理层
Autosar CAN开发04从实际应用认识CAN报文
Autosar CAN开发05从实际应用认识CAN波特率
前言
在上一章的《AUTOAR CP入门》中我们大概了解一下Autosar和入门Autosar的方法。
另外上一章也说到学习Autosar CAN通讯开发应该先学习跟逻辑相关的东西这样更容易入门等到入门之后再往下学习CAN驱动相关的东西。 但是总不能都搞CAN开发了但是连CAN是什么东西CAN通讯要怎么接线都不知道吧
所以接下来我会先把CAN物理层的东西并且是经常要实际用到的CAN物理层的知识讲一下。
另外由于此时是CAN入门关于CAN物理层的很多的深入的细节都会略过比如错误帧、CAN报文的各个段、ACK等等这些内容大部分都是要解决一些CAN问题时才用得到。而且另外还有很多是CAN开发中基本用不上的概念这篇文章就不那么深入讲解了。
如果一开始学习就全部概念都去看大多是看的一知半解而且学了这些概念对软件开发没有特别大的帮助反而打击了学习信心和欲望。
实际上等到后面接触多了CAN的东西碰到相关问题时自然就会有一种渴望去学习这些最底层的CAN相关知识。
从物理上认识CAN总线
好了回归正题。
CAN开发CAN开发所以肯定要先知道CAN是个什么东西。
首先大家第一次真正接触CAN是不是通过电脑CAN上位机软件看到很多的CAN数据在不断刷屏 要出现这样的数据CAN接线是这样的 每个人用的设备可能不一样但是都是一个CAN盒、两根CAN线CANH/CANL、一个终端电阻或CAN盒自带终端电阻、或板子自带终端电阻、一个板子、一台电脑
对于刚接触CAN的人来说可能上面的图看不懂。
没关系下面我们从物理层面入手把上面这张图拆解开。
好了我们先把上面的图抽象一点点变成这样 再抽象一点点变成这样 实际上我们的电脑和CAN盒就是一个模拟的CAN节点。
所以我们把上面的图完善一下得出下面这张图 刚接触可能看不太懂上面的图没关系我们从这张图截取一个CAN节点来看梳理一下CAN通信需要的硬件东西都有些什么并且有什么用然后就明白了
①CAN高/CAN低双绞线 注意它是一条双绞线就是像麻花一样卷一起的两条线数据是通过这两条线传输的。绞在一起目的是抗干扰的为什么能抗干扰我们下面马上讲到。
②终端电阻 为什么它叫“终端”电阻。
就是因为在这根双绞线的两头最远处才需要接的电阻只需要两个就行了每个120Ω。原因就难解释了涉及到各种物理知识我也不看的一知半解我们目前只需要知道CAN要正常通讯一定要有这玩意就行。
这时你想起来一开始那张图好像只有一个终端电阻啊 但是你认真想了想发现大家平时确实都这样接单板接CAN盒然后再接一个120Ω的终端电阻最后再把CAN盒接到电脑上。
那么为什么明明CAN标准里的要求其实是CAN总线的两端各需要接一个终端电阻即两个120Ω的终端电阻并联总阻值为60Ω但我们平时调试的时候只接了一个就能正常通讯了呢
据我所知CAN总线要正常通讯并联1~4个终端电阻总电阻120Ω~30Ω都是能正常通讯的。终端电阻的使用与CAN总线的长度和CAN节点的放置有关系在整车CAN总线规划的时候终端电阻会根据CAN总线长度和节点的放置决定阻值。
而我们平时调试只要能正常通讯就行了要求不需要那么严格。
③CAN收发器 CAN收发器它有啥用呢
首先要知道CAN数据是通过CANH和CANL的差分信号进行传输的。
怎么理解呢
看下面这张图图中的是CANH和CANL进行数据传输时的电压情况 从这里我们认识两个概念
隐性电平CANH和CANL差值为0V时称为隐性电平(实际上隐性电平的正常电压范围是-0.5V~0.05V)代表逻辑1。
显性电平CANH和CANL差值为2V称为显性电平(实际上显性电平的正常电压范围是1.5V~3V代表逻辑0一般我都这么记显灵显灵逻辑0。
另外CAN通讯的目的就是传输数据嘛而数据在芯片的世界里只能用逻辑0和逻辑1表示但是CAN总线需要用两根线的差分信号表示逻辑0和逻辑1怎么办呢
所以CAN收发器的作用就出来了
接收数据时把CANH/CANL的差分电平转换成逻辑电平并通过RX引脚传给MCU的CANRX。这样MCU就收到CAN总线的数据了像下面这样 发送数据时把CANTX发过来的逻辑电平转换成CANH/CANL的差分电平发送出去。这样MCU就把数据发到CAN总线了像下面这样 好了到现在为止你应该明白了CAN总线的物理层是怎么一回事。
另外我们上面还遗留一个双绞线为什么抗干扰的问题。
既然我们知道了CAN总线传输数据的方式是差分信号那么你想想由于我们的CANH和CANL是双绞线出现干扰时就会同时干扰两条线如下面这张图 假设由于干扰导致CANH和CANL的电压都上升了1V。
CANH变成了4.5VCANL变成了2.5V。但是4.5V-2.5V还是等于2V。所以这并不影响正常通讯。因此双绞线是能抗干扰的。
好了关于CAN总线要工作起来物理层面所有需要的东西我们总结一下
①双绞线、②终端电阻、③收发器、④带有CAN控制器的MCU(这个入门先不管它知道要有就行了)
有这几样东西之后只要我们MCU的CAN驱动代码是正常的那么就能正常通讯了。
结束
好了了解了CAN物理层面都要些什么具体的东西之后我们下一章看看什么是CAN报文。 建议同时阅读本专栏的
Autosar CAN开发03从实际应用认识CAN总线的物理层
Autosar CAN开发04从实际应用认识CAN报文
Autosar CAN开发05从实际应用认识CAN波特率 发表日期2023.12.25
朋友们关注下我呀我以我过来人再用小白的角度认真写的知识总结一定让你的脑子饿肚子进来扶墙出去...
返回目录
Autosar BSW 开发笔记目录-CSDN博客