首先明确一个概念,关于MCU中通信总线和通信协议,通信总线是一种用于连接各种外设和模块的物理接口,它可以传输数据和控制信息。通信协议则是指在通信总线上传输数据时所遵循的规则和约定,以确保不同设备之间能够正确地交换信息,我们也可以把他叫做通信总线协议。
PCI(Peripheral Component Interconnect)总线的诞生与PC(Personal Computer)的蓬勃发展密切相关。在处理器体系结构中,PCI总线属于局部总线(Local Bus)。局部总线作为系统总线的延伸,主要功能是为了连接外部设备。
首先,应该明白总线是什么?度娘的完整定义是:总线是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束,按照计算机所传输的信息种类。
今天给大侠带来基于FPGA的CAN总线控制器的设计,由于篇幅较长,分三篇。今天带来第一篇,上篇,CAN 总线协议解析以及 CAN 通信控制器程序基本框架。话不多说,上货。
在ISO 11898-2和ISO 11898-3中分别规定了两种CAN总线结构(在BOSCH CAN2.0规范中,并没有关于总线拓扑结构的说明):高速CAN总线和低速CAN总线,区别表如下所示:
CAN总线在硬件系统中占有一席之地,国际上应用最广泛的现场总线之一,与我们讲过的SPI、UART不同,属于“高端高效”系列。
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。
一、控制器局域网总线(CAN,Controller Area Network)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线、同轴电缆或光纤来传输信号,因其高性能、高可靠性和高实时性等特点,已经成为了世界上应用最广泛的现场总线之一。公元1991年,CAN总线技术规范(CAN Version2.0)制定并发布,该技术规范共包括A和B两部分,称为CAN2.0A和CAN2.0B。其中CAN2.0A给出了CAN报文的标准格式,CAN2.0B给出了标准格式和扩展格式两种。CAN总线最高传输速率可达1Mbps(通信距离最长40m),如果降低传输速率,其直接通信的最远距离可达10km(速率5Kbps以下),其总线上的节点数可达110个。
在详解CAN总线:高速CAN总线和低速CAN总线的特性文章中,高速CAN网络和低速CAN网络都需要安装终端电阻。
在之前的博文中分享过一系列一文搞懂:SPI协议、I2C协议、PID算法、Modbus协议等文章,也考虑过是否可以出一篇介绍CAN总线协议的文章,但是在之后的学习研究中,发觉CAN总线协议比较庞大和复杂,做为刚刚进入汽车电子行业的开发小白,一篇文章难以讲解清晰,所以决定在汽车电子专栏中连载分享关于CAN总线协议的相关知识。
CAN总线上传输的信息称为报文,当总线空闲时任何连接的单元都可以开始发送新的报文。
诊断和通信管理功能单元(Diagnostic and communication management functional unit)包含10种服务,本篇博文将详细讲解ECUReset Service(SID:0X11)的特性和协议。
诊断和通信管理功能单元(Diagnostic and communication management functional unit)包含10种服务,本篇博文将详细讲解SecurityAccess Service(SID:0X27)的特性和协议。
诊断和通信管理功能单元(Diagnostic and communication management functional unit)包含10种服务,本篇博文将详细讲解DiagnosticSessionControl Service(SID:0X10)的特性和协议。
CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO 国际标准化的串行通信协议。在北美和西欧,CAN 总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以 CAN 为底层协议专为大型货车和重工机械车辆设计的 J1939 协议。
控制器局域网总线(CAN,Controller Area Network)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。CAN协议用于汽车中各种不同元件之间的通信,以此取代昂贵而笨重的配电线束。该协议的健壮性使其用途延伸到其他自动化和工业应用。CAN协议的特性包括完整性的串行数据通讯、提供实时支持、传输速率高达1Mb/s、同时具有11位的寻址以及检错能力。
最近有很多大侠在交流群里讨论PCI总线,PCI作为高速接口之一,在当下的FPGA产品设计研发中,地位举足轻重,应用广泛,今天给大侠带来PCI Express 系列连载,今天带来第二十篇,PCIe总线的事务层(TLP的格式(通用TLP头的Fmt字段和Type字段、TC字段、Attr字段、通用TLP头中的其他字段))。希望对各位大侠的学习有参考价值,话不多说,上货。
控制器局域网(CAN bus)由罗伯特·博世公司于1983年开发。该协议于1986年美国密歇根州底特律市举行的国际汽车工程师学会(SAE)会议上正式发表。第一个CAN控制芯片,由英特尔和飞利浦生产,并且于1987年发布。 世界上第一台装载了基于CAN的多重线系统的汽车是1991年推出的梅赛德斯-奔驰 W140。[1]
本年度专为工业自动化爱好者而生的“2021贝加莱橙色灯塔杯技术最强音挑战赛”已经接近尾声,感谢合作伙伴和技术粉丝们的厚爱,感谢大家的踊跃参与!
采用示波器侦测串口总线的通信是比较常用的一种解码技术。研华USB数字存储示波器USB-DSO提供8位/16位 1GS/s采样,信号输出和高级信号捕获、总线译码、信号比对测试等功能。其中总线译码功能可译码的总线有:I2C,UART, CAN, ProfiBus,ARINC429, MIL-STD-1553, LIN。128M深度存储器可以让软件采集较长时间、不间断的数据,适合于总线译码。本文以CAN总线为例进行说明。
我们根据can总线具有的一些特性可知:CAN总线肯定具有分层结构,而且参考OSI模型(OSI参考模型介绍)是肯定的,我们可以看一下相关的文档可知:CAN遵从OSI模型。
我之前学习CANOpen的时候,网上有用的资料极少,走了不少弯路。到目前为止,网上关于CANOpen的资料依然很少。所以,特地写下该系列教程,帮助初学者跨过这道坎。
依照瑞萨公司的《CAN入门书》的组织思路来学习CAN通信的相关知识,并结合网上相关资料以及学习过程中的领悟整理成笔记。好记性不如烂笔头,加油!
cache监听一致性主要是获得cache的总线访问权,比如core1和core2同时写入相同的地址,会交由总线进行仲裁,确定哪个核先写入,在获得写入权限后,会通过总线广播使地址失效。一般的smp架构cpu cache结构如下图:
因为工作,需要研究CAN总线。博主的CAN学习参考正点原子和野火的教程。虽然没有买板子,不过对于博主现在来说,感觉开发板都差不多吧!毕竟工作中开发板肯定是不一样的!
至今没有一种通信网络可以完全满足未来汽车的所有成本和性能要求,为此,汽车制造商和OEM (Original Equipment Manufacture)商仍采用多种协议(LIN、CAN和 MOST等),实现未来汽车上的连网。
CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由德国BOSCH公司开发的,并最终成为国际标准(ISO 11898),是汽车计算机控制系统和嵌入式工业控制局域网的标准总线。随着新能源汽车、无人驾驶汽车的发展,CAN总线得到越来越多的应用。研华提供各种接口的CAN总线通讯产品,包括PCI-1680/PCIE-1680/PCM-3680/MIC-3680等。
总线风暴,听着真是一个帅气的词语,但如果发生在你的系统上那就不是很美丽了,废话不多说,先看图说结论。
使用过CAN或RS-485总线的同学应该对终端电阻有所了解,用485和CAN总线的时候只知道要加一个120欧的终端电阻,但是终端电阻具体的作用是什么呢?什么是终端电阻?百度百科中对终端电阻的解释为:
最近有很多大侠在交流群里讨论PCI总线,PCI作为高速接口之一,在当下的FPGA产品设计研发中,地位举足轻重,应用广泛,今天给大侠带来PCI Express 系列连载,今天带来第十四篇,PCI设备对不可Cache的存储器空间进行DMA读写、PCI设备对可Cache的存储器空间进行DMA读写、PCI设备进行DMA写时发生Cache命中以及DMA写时发生Cache命中的优化相关内容。希望对各位大侠的学习有参考价值,话不多说,上货。
CAN:Controller Area Network,控制局域网络,最早由德国 BOSCH(博世)开发,,目前已经是国际标准(ISO 11898),是当前应用最广泛的现场总线之一。
I2C.SPI总线多用于短距离传输,协议简单,数据量少,主要用于IC之间的通讯,而 CAN 总线则不同,CAN(Controller Area Network) 总线定义了更为优秀的物理层、数据链路层,并且拥有种类丰富、简繁不一的上层协议。与I2C、SPI有时钟信号的同步通讯方式不同,CAN通讯并不是以时钟信号来进行同步的,它是一种异步通讯,只具有CAN_High和CAN_Low两条信号线,共同构成一组差分信号线,以差分信号的形式进行通讯。
随着不断提升的以太网带宽对总线吞吐率要求的提升,需要在芯片内部采用更高的主频、更大的总线位宽,但受制程及功耗影响,总线频率不能持续提升,这就需要在总线数据位宽方面加大提升力度。下图为Achronix公司在介绍400G以太网FPGA实现时给出的结论,对于400G以太网的数据处理,意味着数据总线位宽超过1024bit,时钟频率超过724MHz,传统的FPGA在实现时很难做到时序收敛。
于是乎,我们想到了总线,用一个统一的接口协议,设计出一个符合要求的总线,然后将ARM核和各种外设模块挂载在总线上,这样,命令和数据似乎便可以在CPU和外设之间自由穿梭。
作为并非通信专业的汽车工程师,汽车CAN通信是必须掌握的,但是,记得刚开始上来一看什么定义(什么串行数据通信协议,什么物理层和数据链路层功能,什么帧处理,位填充。。。刚学的时候确实一脸懵)。所以,我只从汽车工程师的角度讲讲我能理解和用得到的CAN通信,才疏学浅,请各位指教!
学无止境,善于积累,每天积累一点点,成功就在眼前,加油! 1 CAN总线简介 CAN(Controller Area Network,控制器局域网 )总线是一个多主机异步串行总线,也是国际上应用最广泛的现场总线之一。在现场总线中,它是惟一被ISO国际标准化组织批准的现场总线。由于其成本低、容错能力强、支持分布式控制、通信速率高等优点在汽车、工业控制、航天等领域得到广泛应用。特别是由于CAN总线具有抗干扰性强、高数据传输率及低成本等优点,在小卫星和微小卫星中得到了越来越广泛的应用。 2 CAN硬件设计 传统的CAN通信系统通常采用MCU + SJA1000 + CAN总线收发器的架构,但是单片机速度较低、资源较少,当受到强电磁干扰便很容易出现程序跑飞。本文基FPGA + SJA1000 + CAN总线收发器的CAN总线通讯如图1所示。与传统方案相比,其优点在于可扩展性好,稳定性高,减轻了重量、体积和功耗。注意:对于FPGA而言,接口电平不支持5V I/O标准,如果与5V I/O标准的器件直接相连,将可能导致FPGA管脚流过极大电流,造成器件锁死或者烧毁。电平转换器就是为了防止FPGA损坏。 (图略,请下载原文查看) 图1 CAN硬件框图 3 CAN逻辑设计 FPGA对CAN总线通讯模块的控制主要包括3部分:CAN总线节点初始化、报文发送和报文接收。 1)CAN读写时序图 略,查看原文件。 2)CAN工作模式选择 SJA1000控制器支持两种模式,分别是Intel和Motorola模式。 3)CAN总线节点初始化 CAN初始化属于CAN程序设计的难点,按照手册正确的配置相关寄存器的值很关键。如果初始化失败,设备不能识别波特率
原文链接:https://blog.csdn.net/w464960660/article/details/129127589
CAN是控制器局域网络(Controller Area Network, CAN)的简称,是一种能够实现分布式实时控制的串行通信网络。
1)在总线空闲时,所有单元都可以发送消息,两个以上单元同时发送消息时,对各消息的Identifier进行逐位仲裁比较,仲裁获胜的单元(具有较高优先级)可继续发送消息,仲裁失败的单元停止发送。
1980年,Bosch的工程师开始研究汽车上高速串行通信的问题,并在1986年发布了CAN(Controller Area Network)总线。CAN以其多主,高速(最高1Mbps),抗干扰的特性被广泛应用汽车及各种工业环境。在此我们主要介绍一下CAN总线的特点,帧类型,以及应用中的注意事项。
今天给大侠带来基于FPGA的CAN总线控制器的设计,由于篇幅较长,分三篇。今天带来第三篇,下篇,程序的仿真与测试以及总结。话不多说,上货。
在《图解 | CPU-Cache》一文中介绍了VIVT、PIPT、VIPT三种Cache查找方式。
领取专属 10元无门槛券
手把手带您无忧上云