CAN控制器与CAN收发器.ppt_第1页
CAN控制器与CAN收发器.ppt_第2页
CAN控制器与CAN收发器.ppt_第3页
CAN控制器与CAN收发器.ppt_第4页
CAN控制器与CAN收发器.ppt_第5页
已阅读5页,还剩171页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

CAN总线 1 3CAN总线 1 3 1CAN的发展概况现代社会对汽车的要求不断提高 这些要求包括 极高的主动安全性和被动安全性 乘坐的舒适性 驾驶与使用的便捷和人性化 尤其是低排放和低油耗的要求等 在汽车设计中运用微处理器及其电控技术是满足这些要求的最好方法 而且已经得到了广泛的运用 目前这些系统有 ABS 防抱系统 EBD 制动力分配系统 EMS 发动机管理系统 多功能数字化仪表 主动悬架 导航系统 电子防盗系统 自动空调和自动CD机等 1 3典型应用系统构成 1 汽车总线控制系统 图9 19目前国产轿车上的网络连接方式 汽车CAN总线节点ECU 发动机控制器 的设计 图9 20由51单片机开发的CAN节点的原理图 2 陶瓷窑现场总线控制系统 1 控制系统结构及总体设计 图9 22控制系统总体设计 2 控制系统硬件设计 图9 23驱动模块硬件结构图 1 3 1CAN的发展概况 这些系统由多个电控单元相互连接而成 可分为控制器 传感器 执行器等 同时各个系统之间也互相连接 进行着越来越多的数据交换 这样就需要使用大量的线束和插接器来实现互连 进行它们之间的数据交换 随着汽车电子技术的不断发展 这种需求的增长是惊人的 如图 1 3 1CAN的发展概况 由于线束和插接器的数量不断增加 整车电子系统的复杂程度愈来愈高 其可靠性将难以保证 故障率会提高 维修会更加困难 为了满足汽车内部信息交换量急剧增加的要求 有必要使用一种实现多路传输方式的车载网络系统 这种网络系统采用串行总线结构 通过总线信道共享 减少线束的数量 车载网络除了要求采用总线拓扑结构方式外 必须具有极好的抗干扰能力 极强的差错检测和处理能力 满足信息传输实时性要求 同时具备故障的诊断和处理能力等 另外考虑到成本因素 要求其控制接口结构简单 易于配置 1 3 1CAN的发展概况 20世纪80年代 Bosch的工程人员开始研究用于汽车的串行总线系统 因为当时还没有一个网络协议能完全满足汽车工程的要求 参加研究的还有Mercedes Benz公司 Intel公司 还有德国两所大学的教授 1986年 Bosch在SAE 汽车工程人员协会 大会上提出了CAN1987年 INTEL就推出了第一片CAN控制芯片 82526 随后Philips半导体推出了82C200 1993年 CAN的国际标准ISO11898公布从此CAN协议被广泛的用于各类自动化控制领域 1 3 1CAN的发展概况 1992年 CIA CANinAutomation 用户组织成立 之后制定了第一个CAN应用层 CAL 1994年开始有了国际CAN学术年会 ICC 1994年美国汽车工程师协会以CAN为基础制定了SAEJ1939标准 用于卡车和巴士控制和通信网络 到今天 几乎每一辆欧洲生产的轿车上都有CAN 高级客车上有两套CAN 通过网关互联 1999年一年就有近6千万个CAN控制器投入使用 2000年销售1亿多CAN的芯片 2001年用在汽车上的CAN节点数目超过1亿个 但是轿车上基于CAN的控制网络至今仍是各大公司自成系统 没有一个统一标准 1 3 1CAN的发展概况 基于CAN的应用层协议应用较通用的有两种 DeviceNet 适合于工厂底层自动化 和CANopen 适合于机械控制的嵌入式应用 任何组织或个人都可以从DeviceNet供货商协会 ODVA 获得DeviceNet规范 购买者将得到无限制的 真正免费的开发DeviceNet产品的授权 DviceNet自2002年被确立为中国国家标准以来 已在冶金 电力 水处理 乳品饮料 烟草 水泥 石化 矿山等各个行业得到成功应用 其低成本和高可靠性已经得到广泛认同 1 3 2CAN的性能特点 有专门的国际标准ISO11898 任一节点可在任一时刻主动发送 报文以标识符分为不同的优先级 可满足不同的实时性要求 优先级最高的报文保证134us内得到传输 非破坏性总线仲裁技术 大大节省了总线冲突的仲裁时间 通过对报文滤波可实现点对点 一点对多点和全局广播等多种传送方式 速率最高可达1Mbps 最远可达10km节点数可达110个 标识符几乎不受限制 1 2CAN的性能特点 短帧结构 传输时间短 受干扰概率低 适于工业环境每帧信息都采用CRC校验及其他检错措施 数据出错率极低 通信介质选择灵活 双绞线 同轴电缆或光纤 错误严重情况下自动关闭输出 保证不影响总线上其他节点通信 性价比高 器件容易购置 节点价格低 开发技术容易掌握 能充分利用现有的单片机开发工具 1 3 3位数值表示和通信距离 显性 位0和 隐性 位1若总线上有两个以上驱动器同时分别发送 0 和 1 其结果是总线数值为显性 0 CAN总线上两个节点间的最大距离 CAN和485的比较 第2章CAN技术规范 1991年9月BOSCH公司发布了CAN技术规范2 0 该技术规范包括A和B两部分 2 0A给出了CAN报文的标准格式2 0B给出了标准的和扩展的两种报文格式1993年11月ISO正式将它颁布为 道路交通工具 数据信息交换 高速通信控制器局域网标准ISO11898 2 0B完全兼容2 0A 所以我们介绍2 0B 2 1基本概念 位速率在一个给定的CAN系统里 位速率是唯一且固定的远程数据请求通过发送远程帧 需要数据的节点可以请求另一节点发送相应数据帧仲裁当总线开放时任何单元均可开始发送报文 运用非破坏性逐位仲裁规则解决潜在冲突 在标识符 仲裁区 发送期间 每个发送器都监视总线上当前的电平 并与它发送的电平进行比较 如果相等则继续发送 如果发送一个隐性位 1 而检测到的是一个显位 0 那么此节点失去仲裁 立即停止后续位的发送 仲裁区值最小的竞争者将赢得仲裁 2 1基本概念 标识符的逐位仲裁 显性 隐性 失去仲裁 节点1 节点2 线上可见 2 2依据OSI模型的CAN的分层结构 位编码 解码位定时同步驱动器接收器特性 逻辑链路子层LLC接收滤波超载通知恢复管理 介质访问控制子层MAC数据包装 解包帧编码介质访问管理错误监测出错标定应答串并转换 数据链路层 物理层 故障界定 总线故障管理 监控器 2 3报文传送及其帧结构2 3 1帧格式和帧类型 标准帧11位标识符扩展帧29位标识符帧类型数据帧 远程帧 错误帧和过载帧编码规则1 位填充 发送器监视发送位流 连续5个相同位便自动插入一个补码位 错误帧和过载帧以及帧结束标志不执行位填充 2 采用不归零 NRZ 编码 2 3 2数据帧 由7个不同的场组成 数据场长度可为0CAN2 0B存在标准和扩展两种帧格式为了设计简单 可以对标准格式执行部分扩展 不一定要完全扩展可以用整个标识符进行报文滤波 也可以把标识符屏蔽一部分进行报文滤波 仲裁场 控制场 数据场 CRC场 帧间空间 帧结束 帧起始 ACK场 帧间空间 数据帧 数据帧的标准格式和扩展格式 标准格式 扩展格式 仲裁场 控制场 数据场 11位标识符 SOF RTR IDE r0 DLC 仲裁场 控制场 数据场 11位标识符 SOF RTR IDE DLC 18位标识符 r1 r0 SRR 数据帧的标准格式和扩展格式 帧起始 SOF 仅由一显位构成 所有站都必须同步于首先发送的那个帧起始前沿仲裁场 标准格式 由11位标识符ID28 ID18 远程发送请求位RTR组成 其中ID高七位不可全为1 隐性 仲裁场 扩展格式 由29位标识符ID28 ID0 SRR位 IDE位 RTR位组成SRR是隐性位 它用于替代标准格式的RTR位 IDE 1 隐性 代表扩展格式 IDE位在扩展格式中位于仲裁场而在标准格式中位于控制场 数据帧的标准格式和扩展格式 控制场由6个位组成数据长度码DLC3 DLC0指示数据场的字节数 0 8 其他数值不允许使用 保留位r1和r0必须为0 IDE 标准格式 0数据场 0 8个字节 8位 字节 MSB先发CRC场由15位CRC序列和1位CRC界定符组成 CRC界定符为一隐性位 保留位 控制场 数据场或CRC场 数据长度码 仲裁场 IDE r1 r0 DLC3 DLC2 DLC1 DLC0 数据帧的标准格式和扩展格式 应答场为2位 包括应答间隙和应答界定符 不进行位填充 在应答间隙时间 发送器发隐位 所有正确接收到有效报文的接收器发一个显位 应答界定符为隐位 1 帧结束 由7个隐位组成 不进行位填充 7 2 3 3远程帧需要数据的节点可以发送远程帧请求另一节点发送相应数据帧远程帧的RTR位是隐性的 它没有数据场 所以数据长度码没有意义 2 3 4错误帧 错误帧由两个不同的场组成 第一个场是不同站提供的错误标志的叠加 第二个场是错误界定符 错误标志分两种 主动错误标志 6个显性位 和被动错误标志 6个隐性位 检测到错误条件的 错误主动 站发送主动错误标志 这样一来所有其他站都会检测到错误条件并开始发送错误标志 叠加在一起最多12个显性位 错误标志的重叠 错误界定符 帧间空间或过载帧 错误帧 数据帧 错误标志 2 3 4错误帧 检测到错误条件的 错误被动 站发送被动错误标志 从那时开始 等待6个相同极性的位 一旦等到 被动错误标志就算完成错误界定符包括8个隐性位 一个站发送错误标志以后 就发送一个隐性位 并一直监视总线 直到发现一个隐性位 就发送其余7个隐性位 2 3 5过载帧 过载帧包括两个场 过载标志 6个显位及其叠加 和过载界定符 8个隐位 导致发送过载标志的条件 接收器内部要求延迟下一个数据帧或远程帧 在间歇场第一或第二位检测到一个显性位过载标志的形式与主动错误标志一样一个站发出过载标志 其他站都将检测到过载条件并发出过载标志 过载界定符的形式与错误界定符一样 过载标志发送后 站就监视总线直到发现从显位到隐位的跳变 然后发送其余7个隐性位 过载标志的重叠 过载界定符 帧间空间或过载帧 过载帧 帧结束或错误界定符或过载界定符 过载标志 2 3 6帧间空间 对于数据帧或远程帧 无论它前面是什么帧 都用帧间空间来分开 但是对于过载帧或错误帧 没有帧间空间与前面帧分开间歇场由3个隐位组成 间歇场期间不允许启动发送数据帧或远程帧 总线空闲周期可为任意长度 此时 总线是开放的 任何站可随时发送 间歇场 总线空闲 帧 帧间空间 帧 2 4错误类型和界定 5种错误类型 位错误 发送器监视到总线位数值与发出的位数值不同 仲裁场填充位和应答间隙发出隐位而检测到显位则例外填充错误 应该使用位填充的地方出现第6个相同位 CRC错误 计算结果与收到的CRC不同形式错误 固定形式的位场中出现非法位应答错误 在应答间隙 发送器未检测到显位 2 4错误类型和界定 检测到CRC错误 应在应答界定符后发送错误标志 检测到其他错误应在下一位发送错误标志 节点的3种故障状态 错误主动 错误被动 总线关闭正常情况下节点是 错误主动 站 此类站检测到错误时发送主动错误标志出现错误较多的节点转为 错误被动 站 此类站检测到错误时只能发被动错误标志出现太多错误时节点转为 总线关闭 状态 此时节点不可对总线有任何影响 例如关闭输出驱动器 2 4错误类型和界定 为了界定故障 在每个节点中都有两种计数 发送错误计数和接收错误计数 按照以下规则计数 接收器检出错误时 接收错误计数器加1接收器在送出错误标志后第一位检出一个显位 接收错误计数器加8发送器送出一个错误标志时 发送错误计数器加8送出一个错误标志或过载标志时检测到位错误 发送错误计数器加8报文成功发送后发送错误计数器减1 2 4错误类型和界定 报文成功接收后接收错误计数器减1 但若其 127则将其置为119到127之间某数发送错误计数器 127或接收错误计数器 127 节点置 错误被动 状态发送错误计数器 255 节点置 总线关闭 状态两个计数器均小于等于127 错误被动节点置为错误主动节点在检测到总线上连续11个隐位发生128次后 总线关闭节点变为错误主动节点且两个计数器清0 2 5位定时与同步 一个标称的位时间分为 同步段 传播段 相位缓冲段1 相位缓冲段2 同步段用于同步各节点 正常情况下跳变沿落在此段内传播段用于补偿网络内的传输延时采样点时刻读取的电平代表这个位的电平 同步段 4时间份额 1时间份额 1位时间 10时间份额 传播段 1时间份额 4时间份额 相位缓冲段1 相位缓冲段2 采样点 2 5位定时与同步 时间份额由振荡器周期分频而得各时间段长度为 同步段1份额 传播段1 8份额 相位缓冲段1 1 8份额 相位缓冲段2 Max 相位缓冲段1 信息处理时间 其中信息处理时间 2份额 一个位的总时间份额数为8 25 可以编程 同步的规则 在总线空闲时 只要检测到一个隐性到显性的边沿 就执行一次硬同步 以该边沿作为同步段 在总线不空闲时 若边沿落在同步段以外 则按其与同步段之差执行再同步 2 5位定时与同步 再同步情况 边沿落在同步段以后 则把所差份额加到相位缓冲段1再同步情况 边沿落在同步段以前 则从相位缓冲段2减去所差份额再同步所加减的份额有个上限 该上限可取值1 4个时间份额 但不可大于相位缓冲段1 因为有位填充规则 所以可用于再同步的边沿在一定时间内总会出现 最大可能时间间隔是29个位 一个位时间内只能执行一次同步一般只把隐性到显性的边沿用于同步 5 3CAN控制器和CAN收发器简介5 3 1CAN控制器的作用 完成CAN规范所规定的物理层和数据链路层大部分功能有微处理器接口 易于连接单片机结构分两种类型 独立IC或与单片机集成在一起 SJA1000属于前者属于后者的有 PHILIPS的87C591 LPC2119 西门子的C167C INTEL的80C196CA等都遵循CAN2 0规范 掌握其中一种就可触类旁通 5 3 2CAN控制器SJA1000主要特性 28引脚 可与INTEL系列或MOTOROLA系列微处理器接口支持CAN2 0A和CAN2 0B规范支持11位和29位标识符64字节先进先出 FIFO 接收缓冲器通信速率最高1MbpsCAN输出驱动器可配置工作温度 40 125 扩展的报文验收滤波器 可置成单滤波或双滤波模式 CAN控制器SJA1000在系统中的位置 传感器执行元件MMI 模块控制器 CAN控制器 CAN收发器 TX RX 传感器执行元件MMI 微控制器 SJA1000 82C250 TX RX CAN总线 分布模块1 分布模块2 SJA1000的模块结构 发送缓冲区 验收滤波器 接收FIFO CAN2 0B核心模块 接口管理逻辑 主控制器 收发器 SJA1000 CAN总线线路 SJA1000发送缓冲器的布局 标准帧格式 扩展帧格式 SJA1000接收缓冲器 FIFO 的布局 SJA1000接收标准帧报文的单滤波器配置 标识符 数据字节1 2 SJA1000接收扩展帧报文的单滤波器配置 29位标识符 SJA1000接收标准帧报文的双滤波器配置 SJA1000接收扩展帧报文的双滤波器配置 SJA1000与单片机典型接口电路 总结 SJA1000重要的寄存器 要编写CAN总线通讯程序 只要了解CAN总线协议 熟悉SJA1000寄存器的配置 就可以完成CAN总线通讯 所以我们首先必须要详细了解SJA1000的寄存器 1 SJA1000的两个工作模式 Basic和Peli 所使用的寄存器数目不同 功能也不尽相同 BasicCAN有从0 31共32个寄存器可用 PeliCAN有从0 127共128个寄存器可用 要实现CAN通讯 主要就是怎么配置这些寄存器 2 要掌握的重要寄存器 模式寄存器 命令寄存器 状态寄存器 中断寄存器 中断使能寄存器 总线定时器0 总线定时器1 输出控制寄存器 时钟分频寄存器 屏蔽寄存器0 3 验收代码寄存器0 3 3 模式寄存器的作用 控制SJA1000的运行在什么模式下 包括 睡眠模式 自检测模式 复位模式 只听模式 4 命令寄存器的作用 启动发送或自发送 释放接收寄存器 中止发送 5 状态寄存器的作用 指示SJA1000的状态 以判断是否可以进行下一步操作 6 中断寄存器的作用 当发生中断后 读其值可以判断是什么原因引起的中断 7 中断使能寄存器的作用 打开相应的中断 8 总线定时器的作用 设置通讯的速率 9 输出控制寄存器的作用 控制输出模式 10 时钟分频寄存器的作用 控制CAN总线采用那种模式 11 验收代码寄存器和屏蔽寄存的作用 决定接收哪类标志码的数据 注意验收滤波器的设置 CAN总线通讯程序编写 在编写CAN总线通讯程序时 主要编写函数由初始化函数 发送函数和接收函数组成 其中发送函数一般写为主动发送函数 接收函数一般采用中断接收 下面就简单介绍一下三个函数的编写 1SJA1000寄存器初始化配置顺序 1 进入复位模式 进行配置 2 配置时钟分频寄存器 决定Peil模式还是Basic模式 3 配置总线定时寄存器 确定波特率 4 配置中断使能寄存器 决定使用那几个中断 5 配置输出控制寄存器 6 配置验收码和屏蔽码 决定接收哪一类节点的数据 7 退出复位模式 进入正常工作模式 2发送数据顺序 1 查询状态寄存器 判断是否正在接收 是否正在发送 是否数据缓冲区被锁 2 配置发送缓冲区 3 配置命令寄存器 启动发送 3接收数据顺序 1 采用中断接收 关CPU中断 2 判断是不是接收中断 3 判断是远程帧还是数据帧 4 读取数据 5 开中断 软硬件联调注意问题 在软硬件联调的时候 必须首先要确保硬件是否工作正常 硬件正常是整个调试工作的基础 在进行软件调试之前首先需要仔细检查硬件连接 保证每一个连接是正确的 没有虚焊 而在所有连接中CPU与CAN控制器的连接又是最重要的 所以我们采用软件方法对CAN控制器与CPU的连接接口进行了检测测试 检测步骤如下 1 CAN节点上电复位后 检测SJA1000的复位管脚电平应为高电平 反之说明SJA1000的复位电路不正常 2 向SJA1000的测试寄存器写入AAH 再读SJA1000的测试寄存器 结果应该是AAH 如果不是 说明数据线 地址线 控制线的连接有问题 3 向SJA1000的测试寄存器写入55H 再读SJA1000的测试寄存器 结果应该是55H 如果不是 说明数据线 地址线 控制线的连接有问题 4 在CAN总线驱动器的总线端接上负载电阻120欧姆 软件强制SAJ1000进入工作模式 看其是否真正进入工作模式 若已进入工作模式 说明CAN控制器与CPU连接正常 带CAN控制器的单片机 全静态80C51中央处理单元 可提供OTP ROM和无ROM型16K字节内部程序存储器 可外部扩展到64K字节512字节片内数据RAM 可外部扩展到64K字节3个16位定时 计数器T0 T1 标准80C51 和附加的T2 捕获 比较 带6路模拟输入的10位ADC 可选择快速8位ADC2个8位分辨率的脉宽调制输出 PWM 作为标准80C51引脚时有32个I O口带字节方式主和从功能的I2C总线串行I O口 片内看门狗定时器T3扩展的温度范围 40 85 加速指令周期500ns 12MHz操作电压范围 5V5 保密位 ROM 2位 OTP 3位 32字节加密阵列4个中断优先级 15个中断源全双工增强型UART 带有可编程波特率发生器电源控制模式 时钟可停止和恢复 空闲模式 掉电模式空闲模式中ADC有效双DPTR可禁止ALE实现低EMI 可编程I O口 准双向 推挽 高阻和开漏 掉电模式可通过外部中断唤醒软件复位 AUXR1 5 复位脚低有效上电检测复位Once模式 与CAN相关的特性 CAN2 0B控制器 支持11位标准和29位扩展标识符8MHz时钟可实现1Mbit sCAN总线速率64字节接收FIFO13字节发送缓冲区增强型PeliCAN内核 取自SJA1000独立CAN2 0B控制器 5 3 3CAN收发器82C250主要特性 符合ISO11898标准 最高速率1Mbps 抗汽车环境瞬间干扰 具有保护总线能力 斜率控制 降低射频干扰RFI 热保护以及电源和地短路保护 低电流待机模式 未上电的节点对总线无影响 可连接110个节点 工作温度 40 125 功能模块 CAN内核模块根据CAN2 0B规范控制CAN帧的发送和接收CAN接口包含5个实现CPU与CAN控制器连接的特殊功能寄存器对重要CAN寄存器的访问通过快速自动增加的寻址特性和对特殊功能寄存器的位寻址来实现 CAN控制器发送缓冲区能够保存一个完整的CAN信息扩展或标准帧格式只要通过CPU启动发送 信息字节就从发送缓冲区传输到CAN内核模块 当接收一个信息时 CAN内核模块将串行位流转换成并行数据输入到验收滤波器 通过该可编程滤波器P8xC591确定实际接收到的信息 所有由验收滤波器验收的接收数据都保存在接收FIFO中 取决于操作模式和数据长度的不同 最多可保存21个CAN信息 这使用户在指定系统的中断服务和中断优先级时有更多的灵活性 因为数据溢出的可能性大大降低了 特殊功能寄存器 带有SPI接口的独立CAN控制器MCP2515 Microchip公司的MCP2515完全支持CAN2 0B技术规范 与MCU连接通过SPI来实现 能够发送与接收标准和扩展数据帧以及远程帧 特性 三个发送缓冲器 具有优先级设定及发送终止功能 两个接收缓冲器 可优先存储报文 6个29位验收滤波寄存器 2个29位验收屏蔽寄存器 对头两个数据字节进行滤波 高速SPI接口 10MHz 支持0 0和1 1的SPI模式 单触发模式确保报文发送只尝试一次 带有可编程预分频器的时钟输出引脚 可用作其他器件的时钟源 帧起始信号可用于监控SOF信号 带有可选使能设定的中断输出引脚 结构框图 由三部分组成 CAN协议引擎用来为器件及其运行进行配置的控制逻辑和SRAM寄存器 SPI协议模块 协议引擎处理所有总线上的报文发送和接收 通过SPI接口与器件进行通信 CAN协议引擎 1协议有线状态机2循环冗余校验错误管理逻辑位时序逻辑 报文收发控制 1报文发送采用3个发送缓冲器 每个占用14字节的SRAM 并映射到器件存储器上 其中第一个字节TXBnCTRL是发送缓冲器n的控制寄存器 其中信息决定报文在何种条件下发送 并在报文发送时指示其状态 用5个字节装载标准和扩展标志符以及其他报文仲裁信息 分别为 1 发送缓冲器n的标准标识符高位TXBnSIDH2 标准标识符低位TXBnSIDL 扩展标识符高位TXBnEID8扩展标识符低位TXBnEID0数据长度码TXBnDLC最后8个字节用于装载等待发送报文的8个可能的数据字节m TXBnDm 发送报文之前应对CANINTE TXINE位进行初始化 以便在报文发送时使能或禁止中断的产生 提供内部优先级 表示内部等待发送报文的优先级与CAN协议中固有的报文仲裁优先级无关 发送起始帧SOF之前 器件将所有等待发送报文的发送缓冲器的优先级进行比较 具有较高优先级的发送缓冲器首先发送 启动发送方式 通过SPI写命令来写寄存器发送SPI的RTS命令把要发送报文的发送缓冲器的TXnRTS引脚置为低电平 报文接收 具有两个全接收缓冲器 每个接收缓冲器配备有多个验收过滤器 还有一个单独的报文集成缓冲器 3个接收缓冲器中 MAB总能够接收来自总线的下一条报文 MAB对接收到的报文进行组合 并将满足验收过滤器条件的报文传送至RXBn缓冲器 其余的两个接收缓冲器RXB0和RXB1可以通过MAB接收来自协议引擎的完整报文 当其中一个缓冲器处于接收等待或其内部保存着上一条接收到的报文时 MCU可访问另一个缓冲器 报文验收过滤器及屏蔽寄存器 他们用来确定报文集成缓冲器中的报文是否应被载入接收缓冲器 处于配置模式时 才能对屏蔽和过滤寄存器中的内容进行修改 一旦接收到有效报文 报文中的标识符将与过滤寄存器中的值进行比较 如果两者匹配 该报文将被载入相应的接收缓冲器 错误检测 接收错误计数器和发送错误计数器 工作模式 1 配置模式2 休眠模式3 仅监听模式4 环回模式5 正常模式 SPI接口及指令集 复位指令读指令读RX缓冲器指令写指令装载TX缓冲器指令请求发送指令读状态指令RX状态指令位修改指令 AT89C51CC0 x Atmel公司推出带CAN控制器的8051型单片机AT89C51CC01 3系列 01没有SPI口 02没有P0口 都支持时间触发通信TTC 也都支持ISP 主要特征 256字节片内RAM2KB片内ERAM64KB片内flash数据保存期为10年 读写次数100万次2KB片内flash用作引导装入2KB片内EEPROM 读写次数100万次管理内部电源供应的集成电源监控器14个4级中断 3个16位的定时器 计数器全双工异步串行通信兼容80C515个端口5通道16位PCA带有 PWM 高速输出 定时器和边沿捕捉 双数据指针21位看门狗定时器一个10位精度的A D转换器带有8路输入 SPI接口完全的CAN控制器节电模式 AT89C51CC0X中断系统 共有10个中断向量 2个外部中断 3个定时器中断 1个串口中断 PCA中断 CAN中断 CAN定时器溢出中断和ADC中断 AT89C51CC03的时钟 通过时钟控制寄存器对标准模式和X2模式进行切换 利用CKCON0的位0可以进行模式的切换 复位后标准模式被激活 AT89C51CC03的存储器系统 1 256字节片内RAM2 集成2KB的扩展RAM由EEPROM控制寄存器EECON进行设置对EEPROM存储器的一次物理分两步 1写数据到列锁存器2编程 程序 代码存储器 内部有64KB的程序 代码存储器 片内有两个flash1 flashFM0 包含64KB程序存储器组成的128字节的页2 flashFM1 2KB的引导装载器和应用编程接口APIFM0可以用并行编程和串行的ISP 而FM1只支持编程器的并行编程 FM0由四部分组成 1 64KB空间 组成512页 每页128字节2 特别行 128字节 可能包含引导器使用的信息3 硬件安全字节 1字节 高4位由软件读 写 低4位只能由软件读和在并行模式下由硬件写 4列锁存寄存器 具有一整页 列缓冲器是前面三个存储区域的入口缓冲器 交叉的flash访问 2 在系统编程 ISP 3 flash编程和擦除4 引导过程引导装载器跳转位引导向量地址特别的字节和状态字节 硬件引导过程 看门狗定时器 由一个14位的计数器再加一个可编程计数器 看门狗定时器复位寄存器和看门狗编程寄存器组成 退出复位时 WDT使默认失效 掉电模式时 振荡器停止 WDT也停止通过硬件复位或电平激发的外部中断退出掉电模式等待模式时 振荡器继续运行 CAN控制器 1 AT89C51CC03通过SFR对CAN控制器访问 进行算术逻辑运算 传输和程序控制15个独立的报文对象被使用 一个分页系统管理他们的访问 任何一个报文对象都能够安排在一个接收缓冲器块内 为了接收被定义的报文 一个或几个接收器报文对象可以设置屏蔽码而不考虑缓冲器的特征 缓冲器满时产生一个中断 CAN控制寄存器信箱和寄存器组织 分页功能通过34个SFR管理321个寄存器 其中包含300个字节的信箱 所有对报文对象窗口SFR的操作都是针对报文对象编号指向的相关报文对象寄存器 编号是在页面管理寄存器中得到的 页面报文对象寄存器用来选择15个报文对象中的一个 报文对象控制CANCONCH和报文对象状态CANSTCH寄存器就有效于在相应SFR中被选择的这个编号的报文对象 一个单独的寄存器CANMSG用于这个报文 信箱指针由页面报文寄存器CANPAGE管理 每次访问结束后自动加1 计数范围是8 CAN控制器管理 CAN控制器首先进行初始化 总控制 CANGCON 位定时 CANBT1 2 3 15个报文对象的每一页报文对象控制 CANCONCH 报文对象状态 CANSTCH 报文对象设置如下 发送报文对象接收报文对象接收缓冲器报文对象失效 禁止 中断管理 发送中断接收中断错误中断 位错误 填充错误 CRC错误 格式错误及应答错误 缓冲器满中断CAN定时器溢出中断 位定时和波特率 CAN报文的发送 1 查询控制的发送2 中断控制的发送3 中止发送 1 标称位速率 Baudrateprescaler 标称位速率为一理想的发送器在没有重新同步的情况下每秒发送的位数量 2 标称位时间 标称位时间 1 标称位速率CAN标称位时间定义比较灵活 这里给出一个简单的原则 定义 CAN时钟 Tscl BRP 1 Fvpb则 Tseg1 TSEG1 1 TsclTseg2 TSEG2 1 TsclTsjw SJW 1 Tscl应满足 Tseg2 2TsclTseg2 TsjwTseg1 Tseg2 CANBTR设置实例 假设VPB时钟为24MHz 需设置CAN标称位速率为100k可设置CANBTR为 0 x001C000E也即 BRP 14 SJW 0 TSEG1 12 TSEG2 1 从而CAN位速率可以由下式计算得到 CANbps Fvpb TSEG1 TSEG2 3 BRP 1 其中 CANbps为CAN位速率 Fvpb为VPB频率如上式所示 当Fvpb 24MHz时 CANbps 100kbits s另外 MaxCANbps Fvpb TSEG1 TSEG2 3 SJW 1 BRP 1 106kbits sMinCANbps Fvpb TSEG1 TSEG2 3 SJW 1 BRP 1 94kbits s CAN总线应用系统设计 CAN总线应用系统的一般组成CAN总线网络由许多CAN节点组成 若干个CAN节点通过CAN总线收发器连接在一个网络中 通过相互的通信和协作 完成控制任务 CAN总线网络设计步骤如何安排和利用现场总线 安排CAN网络的主要工作是确定所谓的通信帧 通信帧规定了发送的CAN报文 以及发送或接收的网络节点 首先确定所有特定的应用信号 分析的基础上用敏感的优先级标识符对已确定的信号进行分组 由此来定义系统的CAN报文 即确定通信帧 然后规范单个网络节点的行为 可以通过循环发送或通过更复杂的协议来规定节点报文的收发 通过估计总线负载和由此对高优先级报文造成的等待时间来确定波特率 基于CAN的测控系统一般分为3个阶段 1 需求分析和网络系统的设计2 总线仿真测试3 系统集成 CAN报文格式分析工具CANscope CANscope是记录和评估CAN总线上的信号电平的一种测量工具 提供的信息包括CAN物理电平和逻辑电平 逻辑电平方面 加在CAN网络的电压被描述为信号响应 逻辑电平以单个比特位的形式提供信息 可以分析CAN总线的物理特性 识别发生的错误 工具软件CANoe CANoe是为CAN总线系统的开发 测试和分析提供的通用环境 可以在总线上观察 分析和仿真数据传输 其高性能的函数和自由的可编程能力能够满足所有CAN总线节点系统仿真和实现的需要 所有和总线相连的节点网络节点都可被仿真 可以生成一些窗口对网络节点进行操作 这些节点的操作元素可以用环境变量来触发 CANoe里的仿真能包括真实的和仿真的网络节点 通过PC接口卡可以实现与真实总线的耦合 CAPL语言可用于对一个仿真节点的动态行为进行建模 CANoe由4个独立的程序组成 可以运用CAPL浏览器创建行为模型 用面板编辑器创建面板 用CANoe的主要程序构造仿真模型 含有所有现存的CAN报文 环境变量 网络节点的中央数据库 会使操作变得方便 5 3 3CAN收发器82C250主要特性 内部具有限流电路 可防止发送输出级对电源 地或负载短路 虽然短路出现时功耗增加但不至于损坏器件 若结温超过160 则两个输出端电流限将减小 从而限制了芯片温升 器件的所有其他部分将继续工作 双线差分驱动有助于抑制汽车等恶劣电器环境下的瞬变干扰 5 3 3CAN收发器82C250 PCA82C250收发器的典型应用如图 SJA1000的RX和TX分别通过光电隔离电路连接到82C250 82C250的差动收发端CANH和CANL连接到总线电缆 输入RS用于模式控制 Vref输出电压是0 5 Vcc Vcc 5V CAN总线系统智能节点硬件设计 TJA1040 正常模式和待机模式 1 正常模式通过总线CANH和CANL发送和接收数据 差动接收器将总线上的模拟数据转换为数字数据 通过多路转换器输出到RXD 总线线路上输出信号的斜率是固定的并进行了优化 保证有很低的电磁辐射 待机模式 发送器和接收器都关断 只用低功耗的差动接收器监控总线 总线长度及节点数 互连总线节点的回路延时和总线线路延时由于各节点振荡器频率的相对误差而导致的位时钟周期的偏差 由于总线电缆串联等效电阻和总线节点的输入电阻而导致的信号幅度的下降 位速率与总线长度的关系 CANopen协议 CANopen由来 1993年 Bosch公司领导的CAN BUS协会开始研究CAN BUS通讯 系统 管理方面的细则 以后逐步完善 由此发展成为CANopen协议 它是CAL CANApplicationLayer 协议基础上开发的 使用了CAL通信和服务协议子集 它在保证网络节点互用性的同时允许节点的功能随意扩展 定义了基于CAN的分布式工业自动化系统的应用标准以及CAN应用层通信标准 CANopen协议是一个开放性的协议 对于开发者来说它是完全免费的 CANopen在发布后不久就获得了广泛的承认 后来 有CiA CANinAutomation 协会管理 维护 和发展 到2001年 CANopen协议已经成为全欧洲的嵌入式网络标准 结构模式 设备模型 通信对象模型 进程数据对象 PDO PDO被映射到单一的CAN帧中 使用所有的8个字节的数据域来传输应用对象 每个PDO有一个独立的标识符并且可能只被一个节点发送 但它可以被多于一个节点接收 这种模式被称之为生产者 消费者通信模式 PDO可以通过多种模式传送 内部事件 外部时钟 远程帧请求以及从特定节点接收到同步报文都可以启动PDO发送 服务数据对象 SDO 该对象可以传输大于8个字节的配置信息 也就是说 SDO传送协议允许传送任意长度的对象 接收者将确认收到的每个段信息 发送和接收者间将建立点对点的通信 称之为客户机 服务器模式 未来 CANopen将允许快速传输SDO 不必对传送的每个段都进行确认 只要在整个对象传送完毕后进行确认即可 网络管理对象 NMT 包括节点警戒对象以及NMT对象 节点警戒对象是由NMT主节点远程请求发送的带有1字节数据的CAN帧 一个字节的数据中包含1个触发位以及7个用于表示节点状态的数据位 NMT主节点将周期性地发送节点警戒对象 发送周期 警戒时间 的长度在对象字典中规定并且可以通过SDO进行配置 另外 系统还定义了生命警戒时间 NMT主节点要在生命警戒时间过后向NMT从节点发送远程请求 这种机制保证了即使NMT主节点不在了 系统中的其他节点也可以通过用户定义的方式进行回应 特殊功能对象 CANopen还为同步 紧急状态表示以及时间标记传送定义了三个特定的对象 同步对象由同步制造者向网络进行周期性广播 该对象将提供基本的网络时钟 当设备发生严重的内部错误时 相关的一个紧急状态客户机将发送一个紧急状态对象 时间标记对象将为应用设备提供公共的时间帧参考 要理解CANopen规范 核心是要理解CANopen的设备模型和各类型的通信对象 掌握了这两者后 通过利用各类标准的设备描述就可以开发出符合国际标准的CANopen设备了 对象字典 对象字典描述了设备使用的所有的数据类型 通信对象和应用对象 是一个CANopen设备的核心部分 对象字典位于通信程序和应用程序之间 向应用程序提供接口 应用程序对对象字典进行操作就可以实现CANopen通信 理解对象字典的概念是理解CANopen模型的关键 应用程序由用户编写 包括功能部分和通信部分 通信部分通过对对象字典进行操作实现CANopen通信 而功能部分由用户根据应用要求实现 CANopen标识符分配 ID地址分配表与预定义的主从连接集 set 相对应 因为所有的对等ID是不同的 所以实际上只有一个主设备 知道所有连接的节点ID 能和连接的每个从节点 最多127个 以对等方式通讯 两个连接在一起的从节点不能够通讯 因为它们彼此不知道对方的节点ID 比较上表的ID映射和CAL的映射 显示了具有特定功能的CANopen对象如何映射到CAL中一般的CMS对象 CANopen网络中CAN标识符 或COB ID 分配3种不同方法 使用预定义的主从连接集 ID是缺省的 不需要配置 如果节点支持 PDO数据内容也可以配置 上电后修改PDO的ID 在预操作状态 使用 预定义的 SDO在节点的对象字典中适当位置进行修改 使用CALDBT服务 节点或从节点最初由它们的配置ID指称 节点ID可以由设备上的拨码开关配置 或使用CALLMT服务进行配置 当网络初始化完毕 并且启动后 主节点首先通过 Connect Remote Node 报文 是一个CALNMT服务 和每个连接的从设备建立一个对话 一旦这个对话建立 CAN通讯ID SDO和PDO 用CALDBT服务分配好 这需要节点支持扩展的BOOT UP 为了减小简单网络的组态工作量 CANopen定义了强制性的缺省标识符 CAN ID 分配表 这些标志符在预操作状态下可用 通过动态分配还可修改他们 CANopen设备必须向它所支持的通讯对象的提供相应的标识符 缺省ID分配表是基于11位CAN ID 包含一个4位的功能码部分和一个7位的节点ID Node ID 部分 基于CAN总线的CANopen网络通讯具有以下特点 使用对象字典 OD ObjectDictionary 对设备功能进行标准化的描述 使用ASCII文档 电子数据文档 EDS 和设备配置文件 DCF 对设备及其配置进行标准化的描述 CANopen网络的数据交换和系统管理基于CAL中CMS服务 系统boot up和节点保护 NodeGuarding 的标准基于CAL中NMT服务 定义了整个系统的同步操作 定义了节点特定的应急报文 为与CANopen通讯协议和相应的设备子协议保持一致 以使制造商的产品能够用于任何CANopen网络 以下3种层次的兼容性要求需要满足 对日益增长的设备兼容性的要求 一致性 设备连接到CANopen网络后不能影响其他设备的通讯 应用层的一致性 互用性 设备能够同网络上的其它节点交换数据 通讯协议的一致性 互换性 设备能够代替另外一个同类设备 设备子协议的一致性 一个CANopen设备至少应该具有 最小能力设备 一个节点ID 一个对象字典 内容由设备功能决定 一个SDO 能够访问对象字典中必需的对象 只读 支持下列NMT从设备服务 Reset Node Enter Preoperational State Start Remote Node Stop Remote Node Reset Communication 缺省的标识符分配 5 4DeviceNet简介5 4 1DeviceNet技术概述 如图 在Rockwell提出的三层网络结构中 DeviceNet处于最底层 即设备层 5 4 1DeviceNet技术概述 工业控制网络底层节点相对简单 传输数据量小 但节点数量大 要求节点费用低 针对以上通信要求 DeviceNet可以提供 低端网络设备的低成本解决方案 低端设备的智能化 主 从以及对等通信的能力 DeviceNet有两个主要用途 传送与低端设备关联的面向控制的信息 传送与被控系统间接关联的其他信息 例如配置参数 5 4 1DeviceNet技术概述 物理 介质特性主干线 分支线结构 最多支持64个节点 无需中断网络即可解除节点 同时支持网络供电 传感器 及自供电 执行器 设备 使用密封式或开放式连接器 接线错误保护 数据波特率可选125 250 500kbps 标准电源插头 电源最大容量可达16A 内置式过载保护 5 4 1DeviceNet技术概述 通信特性 物理信号及MAC使用CAN 基于连接概念的协议 要与设备交换信息须先与它连接 典型的请求 响应方式 适用于两个设备间多用途的点对点报文传递 I O数据的高效传输 为长度大于8字节的报文提供分段服务 重复节点地址 MACID 的检测 表5 4 1DeviceNet的主要技术特点 5 4 1DeviceNet技术概述 DeviceNet的通信模式在现场总线领域常用的通信模式有两种 a 源 目的模式 b 生产者 消费者模式 源 目 点对点 通信模式的缺点 多个节点间同步动作困难 浪费带宽 源节点必须多次发送给不同节点 生产者 消费者模式的特点 一个生产者 多个消费者 数据更新在多个节点同时发生 提供多级优先 适用于实时I O数据交换 5 4 1DeviceNet技术概述 DeviceNet的通信模型 5 4 2DeviceNet的物理层 媒体访问单元 媒体访问单元包括收发器 连接器 误接线保护电路 稳压器和光隔离器 收发器可采用市面上的集成CAN收发器 注意需保证所选符合DeviceNet规范 5 4 2DeviceNet的物理层 媒体访问单元 误接线保护 MWP 电路如图 要求节点能承受连接器5根线的各种组合的接线错误 在U 电压高达18V时不会造成永久损害 VD1防止U 端子误接了U 电压 VT1作为电源线上接入的开关防止U 断开造成损害 5 4 2DeviceNet的物理层 传输介质 拓扑结构 典型是干线 分支方式 如图 干线末端必须有终端电阻 线缆包括粗缆 干线 细缆 支线 支线最长6m 允许连接多个节点 只允许在支线上有分支结构 总线线缆中包括24VDC电源线 信号线及屏蔽线 总线支持有源和无源设备 对有源设备提供专门设计的光隔离收发器 5 4 2DeviceNet的物理层 传输介质 终端电阻 121 1 金属膜电阻 1 4W 终端电阻不可包含在节点中 如包含很容易错误导致阻抗太高或太低 连接器 5针 即1对信号线 1对电源线和1根屏蔽线 包括密封式和非密封式连接器 DeviceNet连接器 5 4 2DeviceNet的物理层 传输介质 设备分接头 设备直接通过端子或通过支线连接到网络 电源分接头 电源分接头不同于设备分接头 它包含 1 连在电源U 上的肖特基二极管 2 两根熔丝或断路器 防止总线过电流而损坏电缆和连接器 干线的额定电流为8A 也允许外部供电的设备 如电动机起动器 阀门驱动器等 连到总线 但是要有光电隔离 DeviceNet应该一点接地 如果多点接地会造成接地回路 如果不接地将容易受到静电以及外部噪声的影响 5 4 3DeviceNet的数据链路层 DeviceNet的数据链路层遵循CAN协议规范 并通过CAN控制芯片实现 MAC帧 在CAN定义的4种帧格式 数据帧 远程帧 超载帧 错误帧 里面 DeviceNet不使用远程帧 总线仲裁机制 CSMA NBA 带非破坏性逐位仲裁的载波侦听多址访问 即CAN的仲裁机制错误诊断和故障界定机制 同CAN 5 4 4DeviceNet的应用层 5 4 4 1连接的概念OSI7层协议中连接的概念 层之间通过接口提供两种服务 面向连接的服务和无连接的服务面向连接 服务双方必须先建立可用连接 然后利用该连接完成数据传送 最后还要释放建立连接时所需资源 这种服务典型的例子是有线电话系统 无连接 要传递的数据自身携带目的地址信息 因而

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论