| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> CAN--- Controller Area Network -> 正文阅读 |
|
[网络协议]CAN--- Controller Area Network |
CAN理论概述 1..CAN的分层结构(依照OSI标准): --CAN与以太网类似---包含最底的两层(物理层和数据链路层)。 --另外还包含传输层---用于发送控制(单次触发或发送失败时永久重发)。 --应用层即为发送接收相关的发送/接收函数、中断及数据的处理。 --因此虽然标准CAN不包含OSI中的七层,但也可以构成简易的网络, --?CANopen是一种架构在控制局域网路(Control Area Network, CAN)上的高层通讯协定,包括通讯子协定及设备子协定常在嵌入式系统中使用,也是工业控制常用到的一种现场总线。 CANopen 实作了OSI模型中的网络层以上(包括网络层)的协定。CANopen 标准包括寻址方案、数个小的通讯子协定及由设备子协定所定义的应用层。 CANopen 支援网络管理、设备监控及节点间的通讯,其中包括一个简易的传输层,可处理资料的分段传送及其组合。一般而言资料链结层及实体层会用CAN来实作。除了 CANopen 外,也有其他的通讯协定(如EtherCAT)实作 CANopen 的设备子协定。 --CAN与CANOPEN是两种协议,没有CANOPEN也可以组成CAN网络及应用。 --CAN+CANOPEN组成较完整的OSI;这类似于TCP/IP+以太网组成互联网。 --从OSI网络模型的角度来看同,现场总线网络一般只实现了第1层(物理层)、第2层(数据链路层)、第7层(应用层)。因为现场总线通常只包括一个网段,因此不需要第3层(传输层)和第4层(网络层),也不需要第5层(会话层)第6层(描述层)的作用。 2..CAN技术特点: (1)工作方式:CAN为多主方式工作,网络上任一节点均可在任意时刻主动地向网络上其他节点发送信息,而不分主从,通信方式灵活,且无需站地址等节点信息。 (2)消息的发送:CAN网络上的节点信息分成不同的优先级,可满足不同的实时要求,高优先级的数据最多可在134us内得到传输。 (3)仲裁:CAN采用非破坏性总线仲裁技术,大大节省了总线冲突仲裁时间。尤其是在网络负载很重的情况下也不会出现网络瘫痪情况(以太网则可能)。 (4)系统的柔软性:与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。 (5)连接:CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。 (6)故障封闭:?CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上 隔离出去。 (7)通信速度:根据整个网络的规模,可设定适合的通信速度。在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。 (8)远程数据请求:可通过发送“遥控帧/远程帧”请求其他单元发送数据。 (9)错误检测/通知/恢复功能:? 所有的单元都可以检测错误(错误检测功能)。? 检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。? 正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送,此消息直到成功发送为止(错误恢复功能)。 (10)CRC校验:CAN的每帧信息都有CRC校验及其他检错措施,保证了数据出错率极低。 3..标准协议: ISO 标准化的 CAN协议 CAN 协议经 ISO 标准化后有 ISO11898?标准和 ISO11519-2 标准两种。ISO11898和 ISO11519-2 标准对于数据链路层的定义相同,但物理层不同。? (1) ?关于 ISO11898 ISO11898 是通信速度为 125kbps-1Mbps??的 CAN 高速通信标准。 目前,ISO11898 追加新规约后,成为 ISO11898-1 新标准。 (2) ?关于 ISO11519 ISO11519 是通信速度为 125kbps以下的 CAN 低速通信标准。 ISO11519-2 是 ISO11519-1 追加新规约后的版本。 总结: >>两种标准物理层不同,数据链路层相同。 >>数据链路层对应控制器;物理层对应收发器。 >>CAN2.0A/B的区别是ID位数不同---数据链路层(控制器)不同。 >>ISO11898与ISO11519-2的区别是物理层(收发器)的不同。 >>课题所用到的PCA82C250、VP230以及TJA1050都支持ISO11898标准。 PCA82C252与TJA1053支持ISO11519-2标准。 4.. 错误: --------错误状态的种类? 单元始终处于?3 种状态之一。 (1) ?主动错误状态:? 主动错误状态是可以正常参加总线通信的状态。? 处于主动错误状态的单元检测出错误时,输出主动错误标志。? (2) ?被动错误状态: 被动错误状态是易引起错误的状态。? 处于被动错误状态的单元虽能参加总线通信,但为不妨碍其它单元通信,接收时不能积极地发送错误通知。 处于被动错误状态的单元即使检测出错误,而其它处于主动错误状态的单元如果没发现错误,整个总线也被认为是没有错误的。? 处于被动错误状态的单元检测出错误时,输出被动错误标志。? 另外,处于被动错误状态的单元在发送结束后不能马上再次开始发送。在开始下次发送前,在间隔帧期间内必须插入“延迟传送”(8 个位的隐性位)。 (3) ?总线关闭状态:? 总线关闭态是不能参加总线上通信的状态。? 信息的接收和发送均被禁止。? 这些状态依靠发送错误计数和接收错误计数来管理,根据计数值决定进入何种状态。 --------错误状态和计数值关系: ? ? |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年11日历 | -2024/11/26 6:32:55- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |