CAN总线接口
can总线控制器的接口ip核设计与实现

发送,最高七位不能全为“隐性”。
图2.3仲裁场结构(3)控制场控制场是由保留位和数据长度代码构成。
其中保留位必须是“显性",作为扩展时使用,数据长度代码是待发送数据的字节数量,接收器认可“显性’’与“隐性”的全部组合m】。
仲裁场-●控制场■『效据场陪或CRCⅨaa&D“:1DLcOr'm场保留位数据长度代码图2.4控制场结构数据长度代码是四位,其中d代表显性,r代表隐性。
对其数据字节进行编码后的真值表如图2.5所示。
一…...数据字节的r费眨据长度·代码个数DLC3D●Q亡HC1Dl∞odddd1ddd2ddd3dd4drdd5dd6da7dr8ddd图2.5数据长度代码真值表(4)数据场数据场由数据帧里的发送字节构成,最多可以发送八个字节,字节从最高位开始发送。
(5)CRC场CRC场由CRC序列和CRC界定符构成。
其中CRC序列有15位,是由循环冗余效验模块生成,紧跟其后是隐性的CRC界定符。
10图2.8远程帧结构2.3.3错误帧错误帧是由错误标志和错误界定符两个场构成。
错误标志有两种不同的表现形式:主动错误标志(Activeerrorflag)和被动错误标志(Passiveerrorflag),其中主动错误标志由六个“显性’’位组成,被动错误标志由六个“隐性"位组成嘲【18】【40】。
图2.9错误帧结构错误界定符由八个“隐性”位组成。
当开始传送错误标志后,每个节点都会发送“隐性"位,并监视总线,直到检测到“隐性"位为止,然后发送剩余的“隐性’’位【习。
2.3.4过载帧过载帧是由过载标志和过载定界符构成。
过载帧只能在帧间间隙才产生,因此可以通过这种方式来区分过载帧和错误帧。
图2.10过载帧结构其中过载界定符与错误界定符的工作过程一致,这里就不做介绍。
122.3.5帧间空间帧间空间是由间隙场和总线空闲场构成。
无论是数据帧还是远程帧,要想与其他帧分开,是通过帧间空间来实现的。
当被动错误的节点使用于之前的报文发生器时,帧间空间包括间隙、挂起传送(SUSPENDTRANSMISSIoN)、总线空闲。
CAN总线标准接口与布线规范

CAN 总线标准接口与布线规范
工业4.0 时代已经到来,基于自主优先级仲裁和错误重发机制的CAN 总线应用十分广泛,相同的各种总线故障和问题也十分困扰工程师,其实最
好的解决办法就是产品前期设计要相对的严谨,今天主要带大家熟悉CAN
总线的常用接口和布线规范。
随着CAN 总线技术的应用愈发广泛,不仅涉及汽车电子和轨道交
通,还包括医疗器械、工业控制、智能家居和机器人网络互联等,当然我们
的工程师也被各种奇葩的总线问题困扰,与其后期解决问题,不如前期有效
规避。
一、常见的CAN 总线标准接口
CAN 总线接口已经在CIA 出版的标准CIA 303_1 进行明确规定,熟知接口定义有助于提高自身产品和其它设备兼容性。
1.DB_9 端子
2.M12 端子
图3 M12 接口定义
图3 是M12 形式的接口定义,在这里可能没有什幺特别需要注意的点,还有就是除了5pin 的接口还有8pin、9pin、10pin 和12pin 的接口,具体的定义不在赘述,可参考标准CIA 303_1。
二、CAN 总线布线规范
如果你是一个CAN 总线的入门小白,下面的总线布线规范,你可能
得收藏起来,在你组网布线的时候时不时拿出来看看,相信对你会非常有帮。
can上裝接口斯堪尼亞的can上裝接口

斯堪尼亚的 CAN 上装接口CAN 接头对于配备 BWE(上装电器系统)的车辆,上装设备的 CAN 接头为接头 C493、针脚 3 (CAN-low) 和针脚 4 (CAN-high)。
如果车辆配备有厂家预装的延长线束,则通过将大梁连接至接头 C487 针脚 6 (CAN-high) 和接头 C487 针脚 7 (CAN-low) 完成连接。
连至 CAN 上装设备接口的 CAN 总线,本文件中称作外部 CAN 总线。
车辆 CAN 通信所需之要求SAE J1939 为协议的基础, 但大部分的 SAE J1939 并未实施。
这适用于整个 SAE J1939-81 (Network Management)、SAE J1939-73 (Diagnostics) 的主要部分,以及 SAE J1939-21 (Data Link Layer)。
SAE J1939-81 Network Management:斯堪尼亚车系中的地址空间为静态。
因此无需执行 SAE J1939-81 中所述的 Network Management。
•依据 Preferred addresses for Industry group0, Global and Industry group1, On-highway Equipment,而采用固定地址定位。
•对于一般不属于车辆上的设备之来源地址,遵循 J1939、ISO 11992 或 OBD/EOBD 中之要求。
SAE J1939-73 Diagnostics:斯堪尼亚唯一使用的 PGN (Parameter Group Number) 为 DM1,故障诊断消息 1 (PGN 00FECA)。
此消息会由车辆中所有的控制单元连续传送,以表示通信正常运行中;此外亦用来传送特定警告灯的状态。
不使用 SAE J1939-71 中规定的故障代码。
SAE J1939-21 Data Link Layer:•更多有关可用于斯堪尼亚卡车的所有 CAN 信息的信息可在“CAN 接口”下的“CAN 通信规格文件”中找到。
分析及应用can接口典型电路

分析及应用can接口典型电路CAN接口是一种常见的串行通信协议,主要用于汽车、工业控制等领域。
它能够实现节点之间的高效通信,具有可靠性高、传输速度快等优势。
CAN接口典型电路由电源电路、CAN收发器、MCU芯片、电源管理器等组成,下面将依次进行分析及应用。
1. 电源电路CAN接口必须要有稳定的电源供应来实现正常工作。
一般情况下,CAN接口需要使用5V的电源。
因此,电源电路是CAN接口典型电路中非常重要的组成部分。
电源电路需要提供可靠的稳压作用,以保证数据传输的准确性和稳定性。
2. CAN收发器CAN收发器是CAN接口的重要组成部分。
CAN收发器是将MCU芯片和CAN 总线之间进行隔离的一个元件。
其主要功能是将电压信号转换为差分信号以适应CAN总线,以及进行信号的保护和隔离。
CAN收发器还可以在一定程度上提高CAN总线的抗干扰能力,使其更加稳定可靠。
3. MCU芯片MCU芯片是CAN接口中的核心部件。
MCU芯片可以根据需要自主调整CAN的发送和接收速度,实现数据的传输和处理。
MCU芯片还可以实现CAN的各种功能,如过滤、帧处理和错误检测等。
在CAN接口设计中,MCU芯片是非常重要的部分,不同的MCU芯片还有不同的特点和功能。
4. 电源管理器电源管理器是如果CAN接口,它可以用来控制CAN接口的电源开关和低功耗功能,以实现电源的管理。
电源管理器可以实现电源模块的引脚检测和关闭功能,以实现CAN接口电源的节能和延长使用寿命。
总体来说,CAN接口典型电路是一种高效、可靠和稳定的串行传输系统。
对于设计者来说,电源稳定性,CAN收发器的性能,MCU的选择和电源管理器的应用都非常重要。
设计者需要根据实际应用场景来选择合适的电路和元器件,以确保CAN接口的性能和可靠性。
can通讯接口电路原理

can通讯接口电路原理
CAN(Controller Area Network)通信接口电路原理是一种常
用的串行通信协议,用于在汽车电子系统以及其他工业控制领域中进行数据传输和通信。
其原理如下:
1. 差分信号传输:CAN通信使用差分信号传输,即同时传输
两个信号(CAN_L和CAN_H),分别代表0和1的状态。
这种差分信号传输可以有效地抵抗电磁干扰和噪声,提高通信的可靠性。
2. 线路结构:CAN通信采用双线结构,即CAN_H和CAN_L
两根线,分别用于数据传输和信号接收。
CAN总线上可以连
接多个节点,形成一个总线网络。
3. 帧格式:数据传输使用帧格式,每个帧包含一个标识符、数据、控制域和错误校验码。
标识符用于识别不同的数据包,数据用于传输实际的信息,控制域用于描述帧的类型和数据长度,错误校验码用于检测数据传输的正确性。
4. 碰撞检测:当多个节点同时发送数据时,可能发生碰撞,会导致数据传输错误。
CAN通信使用了非阻塞的仲裁机制,通
过在传输过程中不断检测总线上的信号来解决碰撞问题,高优先级的节点可以在传输过程中抢占总线。
5. 错误检测和纠正:CAN通信使用了CRC(循环冗余校验)
来检测和纠正错误。
每个节点在接收到数据后会进行CRC校验,如果数据错误,则会进行重传。
综上所述,CAN通信接口电路实现了差分信号传输、双线结构、帧格式、碰撞检测和仲裁机制以及错误检测和纠正功能,从而实现了可靠的数据传输和通信。
CAN总线软件编程流程

CAN总线软件编程流程1.初始化CAN总线接口:先选择一个适合的硬件接口,根据硬件接口的数据手册与相应的寄存器进行初始化设置,包括波特率、工作模式等通信参数的配置。
2.配置CAN总线参数:设置CAN总线的参数,如通信速率、帧格式、收发过滤器等。
这些参数的设置要根据实际应用需求进行。
3.监听CAN总线:使能CAN总线接收中断,通过中断响应的方式获取CAN总线上的数据帧。
这样可以实时监听总线上的数据。
4.发送CAN数据帧:将需要发送的数据组成CAN数据帧,设置好帧的标识符、数据长度、数据内容等信息,并通过CAN总线接口发送出去。
在发送过程中,可以根据需要设置发送缓冲区,以便处理发送失败的情况。
5.接收CAN数据帧:通过CAN总线接收中断获取到新的数据帧,解析出数据帧的标识符、数据长度、数据内容等信息,并进行处理。
可以根据数据帧的标识符对接收到的数据进行分类和分析。
6.处理CAN错误:监测CAN总线上的错误,如位错误、格式错误等,及时进行处理并进行相应的错误处理流程。
可以通过错误中断、错误计数器等方式实现错误检测和处理。
7.进行其他相关操作:在CAN总线通信过程中还可能涉及到其他的相关操作,如同步、节点管理、故障检测等。
根据实际应用需求进行相应的处理。
8.关闭CAN总线接口:在软件结束运行之前,应该关闭CAN总线接口,释放资源,并进行相关清理操作,确保资源的正常释放。
9.错误处理和异常流程:在CAN总线通信过程中,可能会遇到一些错误和异常情况,比如通信超时、数据出错等。
在软件编程时需要考虑这些异常情况,设置相应的错误处理和异常流程,避免系统崩溃或数据丢失。
总的来说,CAN总线软件编程流程包括初始化CAN总线接口、配置CAN总线参数、监听CAN总线、发送CAN数据帧、接收CAN数据帧、处理CAN错误、进行其他相关操作、关闭CAN总线接口以及错误处理和异常流程等步骤。
通过这些步骤,可以实现CAN总线的稳定通信和数据交换。
基于单片机的智能传感器CAN总线接口硬件设计

基于单片机的智能传感器CAN总线接口硬件设计随着智能化技术的不断发展,人们越来越关注智能系统的搭建,传感器技术的应用也越来越广泛,单片机技术更是在这个背景下广受关注。
在实现智能传感器的联网和信息处理方面,CAN总线作为一种主要网络协议,已经被广泛应用。
在这种情况下,智能传感器必须具有相应的CAN总线接口设计。
本文将介绍基于单片机的智能传感器CAN总线接口硬件设计。
1、 CAN总线介绍CAN(Controller Area Network)总线是一种串行通信协议,主要用于多个控制节点之间的实时数据传输。
CAN总线的通讯速度高,误码率低,具有自适应性等特点。
CAN总线的应用包括工业控制系统、汽车电子控制系统等。
2、硬件设计原理基于单片机的智能传感器CAN总线接口硬件设计需要根据自己的实际需求进行选择。
以STM32单片机为例,STM32单片机的CAN总线接口包括CAN1和CAN2,这两个接口在硬件电路上都有Rx和Tx引脚和节点电阻。
3、硬件设计流程(1)选择STM32单片机在选取单片机的时候,需要根据实际应用场景来选择。
STM32单片机有许多系列,每个系列又有不同的型号,不同型号的单片机内置了不同的外设,需要根据实际需求进行选择。
同时,要根据芯片性价比、性能、功耗等因素进行考虑。
(2)CAN总线选择在硬件设计中,需要选择CAN总线芯片,这个芯片需要支持CAN2.0A和CAN2.0B协议,并且需要支持高速通讯。
同时,要注意芯片的封装和额定工作温度等特性。
(3) CAN总线硬件连接在硬件连接中,需要将CAN总线芯片的Rx和Tx引脚和单片机的CAN1或CAN2接口相连,同时还需添加适当的电流限制电阻和终端电阻。
(4) CAN总线软件调试最后,需要对硬件电路进行软件调试,包括使用标准的CAN总线协议进行通信、CAN总线的数据传输、接收和发送数据、调试CAN中断等。
4、总结基于单片机的智能传感器CAN总线接口硬件设计需要根据实际需求进行选择,在硬件设计中需要选择合适的单片机、CAN总线芯片,并进行正确的硬件连接。
CAN总线接口电路设计

Ke wo d C u S A1 0 I trae y r s AN b s J 0 0 ne c f
一
、
概 述
光信号 、 雨刮 电机等 电器。因此有必要全面 了解 C N总线接 口 A
这 里主 要 以独立 C N控制器 SA 00 A J 10 为代 表对 C N控 A C N总线 以 目前 技术 条件 较 成 熟 的 I0 0I 型 为基 制器 的功能作一个简单介绍。 A S / S模 础, 与其它 网络相 比, 其信 息传递 的格 式为报文 。报文 的长度 可 以不 同, 但都是 有 限的 。当总线 空 闲时任何 已连 接 的单 元 都可 以开始发新 的报 文 , 报文 以全 网广播 方式散 发 出去 。 各 .
C N总线接 口电路设计 A
杨 晶
( 昆明理 工大学 昆 明 60 3 ) 50 1
摘 要 本文介绍了 C N总线 的主要性能及特点 , A A C N总 线在实际工业应用 中的总体结构 ,同时给出了 C N总线协议转换器 的 A 硬件设计方法和通信协议 。 主要研究 了 C N总线 接 口电路设计 , A 把所设计 的总线接 1电路 由微处理器 、 A 3 : C N控制器 、A C N总线收 发器组成 , 并且详 细介绍 了 C N控 制器 、 A A C N收发 器的功能 以及 C N总线接 口的硬件 电路 和硬件 条件 下的软件设计 , A 主要为后 续 C N总线 接 口电路 的应用打下了基础。 A 关键词 C N总线 SA10 接 口 A J 00 中图分类号 T 9 .2T 3 N 1 0 ;P 1 5 3 文献标识码 A 文章编号 0 1 0 — 2 9 9 4 5 4 2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CAN总线接口
1.CAN模块简介
控制器局域网(CAN)模块是用于与其他外围设备或单片机
进行通信的模块,这种接口协议能在较大的噪声环境中进行通信,具有良好的扰干扰性能。
CAN模块是一个通信控制器,执行的是Bosch公司的CAN2.0A/B协议。
它能支持CAN1.2、CAN 2.0A、CAN 2.OB 协议的旧版本和CAN2.OB现行版本,此控制器模块包含完整的CAN系统。
CAN模块由协议驱动和信息缓冲及控制组成,CAN协议驱动CAN总线
上接收和发送信息的所有功能。
信息装载到某个相应的数据寄存器后再发送,通过读相应的寄存器可检查状态与错误信息。
在CAN总线
上检测到的任何信息都要进行错误检查,然后与过滤器进行比较,判断是否被接收和存储到两个接收寄存器之一。
2.CAN模块支持的帧类型
CAN模块支持以下帧类型:标准数据帧、扩展数据帧、远程帧、出错帧、过载帧和空闲帧。
(1)数据帧。
用于各节点之间传送数据消息,由7个不同的位场组成:帧起始、仲裁场、控制场、数据场、CRC场、应答场和帧结束。
数据帧结构如图1所示。
图1 数据帧组成
(2)远程帧。
当CAN网络上一个节点需要其他节点所拥有的数据信息时,可以通过发送远程帧来请求另一节点发送。
该远程帧的标识符标识了所需数据的类型,因此,被送回的数据信息的标识符和远程帧的标识符完全一致。
数据源节点在接收到远程帧后,根据远程帧的标识符判断所需数据信`患类型,并在总线空闲时将相应数据送出。
远程帧由6个位场组成:帧起始、仲裁场、控制场、CRC场、应答场和帧结束。
除了没有数据场和RTR为隐性外,远程帧结构和数据帧完全相同,远程帧结构如图2所示。
图2 远程帧结构
(3)错误帧。
为进行错误界定,每个CAN控制器均设有两个错误计数器
:发送错误计数器
(te C)和接收错误计数器(REC)。
CAN总线上的所有节点按其错误计数器数值情况可分为3个状态:错误活动状态、错误认可状态和总线关闭状态。
节点状态转换如图3所示。
图3 节点状态转换
上电复位后,两个错误计数器的数值都为0,节点处于错误活动状态,可正常参与总线通信,检测到错误时,发送活动错误标志。
当错误计数器任一数值超过127时,节点进入错误认可状态。
处于错误状态的节点可参与总线通信,但出错后,发送认可错误标志,并在开始进一步发送数据之前等待一段附加时间(暂停发送场)。
当发送错误计数器和接收计数器均小于或等于127时,节点从错误认可状态再次变为错误活动状态。
若发送错误计数器数值超过255后,节点进入总线关闭状态,既不能向总线发送数据,也不能从总线接收数据。
当软件执行操作模式请求命令,并等待128次总线释放(BusˉFree)序列(11位连续隐性位)后,节点从总线脱离状态重新回到错误活动状态。
错误帧由两个不同的位场组成,第一个场由来自不同的节点的错误标志叠加而成,第二个场为错误界定符,错误帧结构如图4所示。
图4 错误帧结构
(4)过载帧。
超载帧由超载标志和超载界定符组成。
超载标志由6个显性位组成,其格式与活动错误标志相同。
超载界定符由8个隐性位组成,其格式与错误界定符相同。
导致发送超载帧的两个条件为:
①一个接收节点内部接收条件未准备好,要求延迟下一个数据帧或远程帧发送;
②在间歇场(3位)检测到显性位。
当超载标志发出后,每个节点监视总线状态,直至检测到从显性至隐性位的跳变,此时,所有的节点均己完成了超载标志的发送,随后所有节点开始发送8个隐性位组成的超载界定符,超载帧结构如图5所示。
图5 超载帧结构
(5)空闲帧。
数据帧及远程帧与前帧消息之间的间隔被称为帧间空间的场隔开,如图6所示,帧间
图6 不包含暂停发送场的帧间空间
空间由间歇场和总线空闲场组成,前面已经发送过报文的错误节点还包括暂停发送场。
间歇场由3个隐性位组成,在此期间,CAN节点不进行帧发送。
间歇场的存在使CAN控制器在下次消息发送前有时间进行内部处理操作。
总线空闲场可以为任意长度,此时总线处于空闲状态,允许任何节点开始报文发送。
等待报文发送的节点紧随间歇场后启动报文发送,即在空闲场第一位期间就启动报文发送。
如图7所示,错误认可节点完成一个报文发送后,在开始另一次报文发送或进入总线空闲状态之前,紧随间歇场发送8个隐性位的暂停发送场。
发送暂停发送场期间,若其他节点开始发送报文,则本节点停止送出暂停发送场,并变为报文接收器。
图7 包含暂停发送场的帧间空间
(6)标准数据帧。
标准数据帧的结构如图8所示。
图8 标准帧格式
(7)扩展帧。
扩展帧的结构如图9所示。
图9 扩展帧格式
3.传输过程中的可靠性和同步问题
(1)可靠性。
CAN网络通信要求信息可靠传送,但由于外界干扰不可避免地会对通信线路造成影响,误码总是客观存在的,所以网络通信中必须采取某些差错控制措施。
当出现错误时,及时发现错误并及时加以纠正。
为提高抗干扰能力和数据的可靠性,CAN采用了多种错误检测手段:发送监视、位填充错误检测、CRC 校验、格式错误检测以及应答错误检测。
为保证CAN网络中节点间的正常通信,必须对报文的位定时作出规定。
接收同步、网络传输延迟补偿及采样点定位均由CAN协议集成电路
的可编程位定时逻辑确定。
CAN中正常位速率被定义为:在不需要重同步的情况下,每秒传送的位数。
正常位定时被定义为一位的持续时间,实际上就是正常位速率的倒数。
(2)同步问题。
位时间可划分为4个互不重叠的时间段:同步段(SYNC ̄SEG:Synchr ON izationSegment)、传播段(PROPˉSEG:Propagation Segment)、相位缓冲段1(PHASEˉSEG:Phase Bufer Segment1)及相位缓冲段2(PHASE-SEG2:Phase Bufer Segment2)。
同步段用于总线上各节点消息传输同步,长度为一个时间份额,此段内需要一个跳变沿。
传播段用于补偿网络内的物理延迟时间,它是信号在总线上传播时间、输入比较器
延迟和输出驱动器延迟之和的两倍,长度可被编程为1~8个时间份额。
实际上,在CAN协议集成器件中并没有定义此段。
相位缓冲段用于补偿上升沿或下降沿的相位误差,通过重同步,这两个时间段可被用户延长或缩短。
相位缓冲段1长度可编程为1~8个时间份额,相位缓冲段2长度取值为相位缓冲段1最大值和消息处理时间之和,消息处理时间个于等于两个时间份额(这一点在CAN协议集成器件中并未严格遵守,实际应用中相位缓冲段1比相位缓冲段2长)。
由采样点开始,保留用于计算后续位电平的时间段被定义为消息处理时间,其长度小于或等于2个时间份额。
总线电平在采样点被读取,所以此点代表该位的数值大小。
采样点位于相位缓冲段1的末尾处。
时间份额是由振荡器
时钟分频得出的一个固定时间单元,在CAN协议集成器件中被称为系统时钟周期,可由一个预分频器设定大小,时间份额由下式计算:
时间份额=m×最小时间份额
其中m为预分频器系数,最小时间份额在CAN集成器件中被称为振荡器
时钟周期。
一个位时间中时间份额总数必须被编程在8~25之间。
网络常采用的同步方式有两种:准同步和标准同步。
准同步又称独立同步,各节点均拥有时间独立的高稳定度振荡时钟,它们的频率并不一定完全相等,但必须时间相近。
准同步的优点是同步体系简单,容易实现,缺点是工作可靠性较差。
标准同步又分为主从同步法和相互同步法两种,主从同步方法中,各网络节点的时钟以在网络中处于重要位置的节点时钟为基准。
其优点是结构相对简单,网络稳定性好,缺点是网络过分依赖于主时钟,有全网瘫痪的危险。
和其他计算机网络相比,CAN网络结构相对简单,所以采用准同步方式,每个节点都拥有自己独立的振荡时钟。
CAN网络中,同步方式又分硬同步和重同步两种形式,同步过程由器件自身完成。
CAN模块使用RB3/CANRX和RB2/CANTX/INT2引脚与CAN总线驱动器接口。
要配置CANRX和CANTX为CAN接口,需要将TRISB〈3>位置1,TRISB(2)位清0。