| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> CAN总线学习 -> 正文阅读 |
|
[嵌入式]CAN总线学习 |
研究CAN总线https://zhuanlan.zhihu.com/p/180515614 CAN的相关视频介绍视频1https://www.bilibili.com/video/BV1KV411J7E1?spm_id_from=333.337.search-card.all.click 常通信的放一起。 动力CAN 娱乐CAN 车身CAN 网关负责将不同的通信协议转换 CAN线是广播。 LIN线,有主从。主从机机制,只有一个主机。 视频2https://www.bilibili.com/video/BV1nq4y1W7oo?spm_id_from=333.337.search-card.all.click CPU — CAN控制器 — 收发器 收发器: 负责管理电平拉高拉低,成对使用。 控制器:主要是控制协议,用来组包。 (CRC校验什么的东西。) CPU : 只发数据,ID CPU主要发控制内容,控制器固定将数据组成帧格式,收发器拉高拉低。 一般CPU和控制器是一起的。 CAN 500kbps , 是闭合回路 ,终端电阻120欧姆, 两边都有终端电阻。 CAN 125kbps 开放回路。 相关接线: 驱动CAN : HIGH 桔黑 ; LOW 桔棕 舒适CAN :HIGH 桔绿 ;LOW 桔棕 信息娱乐CAN : HIGH 桔紫 ;LOW 桔棕 驱动CAN包含:发动机,变速箱,ABS。 舒适CAN : 左前门,右前门,空调。 协议 898协议 519协议 不同的标准之间无法通信,因此网关可以解决这种问题。 汽车中有很多情况是需要广播信息的,因此CAN这种广播的通信方式,比较适合。 CAN可以节约大量的线。 这其实跟电网的建设是类似的,与电网中的母线类似。 CAN 网关相关知识 共轭电感,对信号进行处理 61R9 , 61.9的电阻,2个,就算120欧姆,相当于终端电阻。 CAN芯片,将芯片的差分信号转换成0,5V的信号。TJA1040,TJA1050 控制器,筛选信号是否要。 视频3https://www.bilibili.com/video/BV1g4411F72c?spm_id_from=333.337.search-card.all.click CAN通信实验,有代码。 跟普通的配置串口差不多,只是有不同的工作模式。 视频4https://www.bilibili.com/video/BV1Rx411R75t?p=57 can通信实验,STM32开发板,研究这里的代码。 重要文档《can入门教程.pdf》:(需要阅读2~3遍)
ST板子的开发资料:《STM32F4xx中文参考手册.pdf》 具体代码路径:《G:\IOT\学习视频\CAN总线\【正点原子】探索者STM32F407开发板资料 资料盘(A盘)\4,程序源码\2,标准例程-库函数版本\实验27 CAN通信实验\HARDWARE\CAN\can.c》 基础知识介绍CAN : controller area network 的缩写 两个标准:
CAN的特点: CAN具有高可靠性,广泛应用于汽车电子,工业自动化,船舶,医疗设备,工业设备等方面。
物理层特征先讨论ISO11898标准。 有两根线,CAN_L, CAN_H 两根线上的电位差来判断总线电平。 显性:对应逻辑0,CAN_H 和 CAN_L 的差值为 2V左右。 3.5 , 1.5V 隐性:对应逻辑1,CAN_H 和 CAN_L 的差值为0V , 2.5V 显性电平具有优先权,只要一个单元输出显性电平,总线就为显性。(这个跟IIC中时钟线拉低是类似的。) CAN 起止端都有一个120欧姆的终端电阻,来做阻抗匹配,减少回波反射。 CAN的帧种类
帧格式:标准,扩展。
视频主要介绍数据帧格式,其他帧格式,参考书籍《can入门教程.pdf》 数据帧由7个段组成:
显性 D: dominance ,0, 有压差 隐性 R: recessive , 1 , 压差为0 帧格式分析,可以看代码再回来看。 总线仲裁规律
从ID开始比较如果ID相同,则继续往下比较。 位时序位时序 -> 波特率 这里跟硬件更相关,用到时再研究。 其实也就是一个位,要怎么表示? 要多长?
这些段又由可称为Time Quantum(以下称为Tq)的最小时间单位构成 位时间 = 1/波特率 也就是说,这是用来区分一个很长的1,代表的是多少个1。 STM32 CAN 控制器模式
代码阅读初始化函数: 发送函数: 接受函数: 主函数: 书籍阅读《can入门教程.pdf》CAN是什么CAN是Controller Area Network的缩写, 是ISO国际标准化的串行通信协议. 当前汽车产业中, 出于安全性,舒适性,方便性,低公害,低成本的要求, 各种各样的电子控制系统被开发了出来, 由于这些系统之间通信所用的数据类型 及 对可靠性的要求不尽相同, 由多条总线构成的情况很多, 线束的数量随之增加, 为适应"减少线束数量" , “通过多个LAN , 进行大量数据的高速通信” 的需要, 1986年博世开发处CAN通信协议. 有两个标准:
CAN 应用实例总线拓扑图CAN的特点
错误错误状态的种类
错误状态是哪一种, 情况 , 需要根据计数器来判断.
这些数值的计数方法: CAN协议的基本概念CAN协议数据帧与遥控帧的不同
|
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/29 8:01:18- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |