基于CAN总线的机器人步进控制系统设计.doc_第1页
基于CAN总线的机器人步进控制系统设计.doc_第2页
基于CAN总线的机器人步进控制系统设计.doc_第3页
基于CAN总线的机器人步进控制系统设计.doc_第4页
基于CAN总线的机器人步进控制系统设计.doc_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

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

文档简介

摘摘 要要 随着总线技术的产生和发展 现场总线技术在仪器控制 生产过程等领域 起着越来越重要的作用 其中 CAN 总线作为一种有效支持分布式控制和实时 控制的技术 以其稳定性好 可靠性高 抗干扰能力强 通讯速率高 维护成 本低及其独特的设计逐渐受到人们的重视 并被公认为最有前途的现场总线之 一 随着现场总线技术的迅猛发展 传统的自动化控制受到严重挑战 取而代 之的将是具有开放性的现场总线控制 基于 CAN 协议的现场总线控制的研究与 开发具有非常现实的意义 为了适应科学技术的需要 本文在研究广泛文献的基础上 研制了基于 CAN 总线的机器人步进控制系统 实现了 CAN 总线舵机控制 本文在讨论了 CAN 总线的技术原理和技术规范的基础上提出和实现了基于 CAN 协议的舵机控制系统 其中 选用基于 ARM Corex M3 内核的 STM32F103RBT6 的 32 位单片机与 CAN 收发器 SN65HVD230 芯片设计了具体的硬 件电路 采用 Keil ARM 高级语言编写了单片机系统软件结构的软件模块 并 且采用 MFC 编写上位机软件 关键词关键词 现场总线 CAN 总线 STM32 微控制器 Visual c 6 0 舵机 控 制系统 A Abstractbstract With the emergence and development of instrumentation bus technology fieldbus in the control apparatus production process and other fields have been playing an increasingly important role CAN fieldbus as an effective distributed controI and real time control of the technology with good stability high realibility Anti interferference capability high speed communication low maintenance costs and its unique design is attracting increasing attention and is recognized as one of the most promising fieldbus With the rapid development of fieldbus technology traditional automatic control is seriousoy challenged and will be replaced by the open fieldbus control Control research and deveIopment based on the agreement of CAN is of great practical significance To meet the needs of science and technology the paper studies in a wide range of literature and developed a control according to the rudder machine of the CAN bus carried out CAN bus rudder machine control In this paper a detailed analysis based on the design of the CAN protocoI of intelligant control is given as well as design features According to functional needs and hardware design selection STM32F103RBT6 and SN65HVD230 CAN chip as a specific hardware circuit use Keil ARM to develop system architecture and software modules and use VC MFC to program for the host computer Key words Fieldbus CAN bus STM32chip Visual c 6 0 Rudder Control system 目录目录 摘 要 1 ABSTRACT 2 1 引言 4 1 1 选题目的及意义 4 1 2 现场总线的发展趋势 5 1 3 本次选题的工作内容及任务 6 1 4 本次设计的先进性 6 1 5 本章小结 6 2 CAN 总线的概念及其相关协议 7 2 1 CAN 总线的概念 7 2 2 CAN 总线的特点 9 2 3 CAN 总线的分层结构和通信协议 10 2 4 报文发送及其帧结构 13 2 5 错误类型和界定 18 2 6 CAN 总线通信原理 19 2 7 本章小结 21 3 系统的硬件组成 22 3 1 CAN 总线控制舵机系统的总体设计方案 22 3 2 STM32F103RBT6 简介 23 3 3 CAN 节点接口芯片介绍 30 3 4 舵机控制器介绍 34 3 5 按键处理 35 3 6 本章小结 36 4 系统的软件设计 37 4 1 系统软件的总统设计 37 4 2 下位机数据采集处理软件设计 37 4 3 CAN 节点的软件设计 38 4 4 上位机软件设计 43 4 5 本章小结 51 5 结论与展望 52 5 1 结论 52 5 2 展望 52 致谢 53 参考文献 54 1 引言引言 1 11 1 选题目的及意义选题目的及意义 1 1 11 1 1 选题目的选题目的 学习和掌握 CAN 总线的概念及其相关的协议 学习 STM32 系列单片机原理及其接口应用 学会利用单片机解决具 体问题 学会利用微处理器 CAN 控制器 CAN 收发器及其相关的器件设计 几个总线节点 实现各节点之间的通信 学习 c 软件开发语言 在 Visual C 开发环境下开发 MFC 上位机 显示界面 实现主节点和计算机的通信 1 1 21 1 2 选题意义选题意义 舵机是比较精密的伺服系统 通过 PWM 信号控制 输出位置与控制信 号脉宽成对应关系 控制方法简单 在工业领域和其他方面得到广泛的应 用 对于由多个舵机组成的舵机系统的控制方式一般有 2 种 1 集中控制 在同一电路板上同时产生多路 PWM 控制信号 通过信号延长线接人舵 机进行控制 这种方式信号间的互扰比较严重 舵机经常出现抖动现象 2 分散控制 舵机控制器安装在舵机附近 通过串口与主控制器通信 这种方式控 制的稳定性和效率比较低 很难满足实时性要求高的系统的要求 为了解 决这些缺点 设计了这套系统 系统采用 CAN 总线传输控制指令 CAN 总 线的传输速率可以达到 1 Mb s 有效地解决了系统的实时性问题 PWM 信 号产生电路安装在舵机附近 并采用硬件计数器产生 这样有效地降低了 信号的互扰 增强了系统的稳定性 1 21 2 现场总线的发展趋势现场总线的发展趋势 现场总线技术自 70 年代诞生至今 由于它在减少系统线缆 简化系统 安装 维护和管理 降低系统的投资和运行成本 增强系统性能等方面的 优越性 引起人们的广泛注意 得到大范围的推广 导致了自动控制领域 的一场革命 1 2 11 2 1 国内现场总线的发展趋势国内现场总线的发展趋势 国内现场总线的发展趋势是 1 多种现场总线在国内展开激烈竞争 竞争的重点是应用工程 2 国内自己开发的现场总线产品开始投入市场 3 国内各行业的现场总线应用工程迅速发展 1 2 21 2 2 现场总线应用工程的发展趋势现场总线应用工程的发展趋势 1 通过应用技术发挥现场总线的优势 2 不同类型的现场总线组合更有利于降低成本 3 现场总线的本质是信息处理现场化 4 网络的设计 一般控制系统也有网络设计问题 网络设计的重点是从 物理形态上考虑通信网络和输入 输出线缆网络的布置 1 31 3 本次选题的工作内容及任务本次选题的工作内容及任务 本课题主要采用基于 ARM Cortex 作为内核的 STM32F103RBT6 微处理器 作为舵机控制核心 并采用 SN65HVD230 作为 CAN 智能节点的核心收发模块 设计出了小型舵机控制系统 能完成舵机的实时控制 双向通信等功能 论文的主要内容如下 l 从 CAN 总线的技术规范 特点 协议 应用及其典型器件等几个方 面对 CAN 总线技术进行了研究 为智能网络控制的数据通信做准备 2 系统的硬件电路设计 适于 CAN 总线的智能网络控制的硬件部分主 要包括上位机和下位机两部分 其中下位机由微处理器实施舵机控制 再 控制 CAN 控制实现报文的发送与接收 上位机实现数据的显示与存储等控 制功能 CAN 收发器完成上位机与下位机的数据传输 实现了 CAN 总线的 通信 3 系统的软件编制 根据硬件结构 软件任务 采用合适的程序设计 方法 绘制程序流程图 采用 C 语言进行程序编制 其中上位机的界面显 示利用 VC 的 MFC 控制台进行编程 软件部分主要包括主程序 键盘检测 CAN 总线通信 上位机界面显示等 1 41 4 本次设计的先进性本次设计的先进性 在对舵机的控制中 采用不同的控制方法会使控制的成本和精度 以及控制的实时性等有巨大的差别 特别是在多路舵机的控制中 常规控 制会增加控制的难度 占用更多的控制引脚 给设计人员带来很大的困扰 本设计采用 CAN 总线控制多路舵机 减少了对硬件资源的占用 提高了控 制的精度 降低了控制成本 对于多路舵机的控制具有很重要的意义 1 51 5 本章小结本章小结 本章主要介绍了本次设计目的意义 然后介绍了现场总线的发展现状 和发展趋势 还介绍了现场总线控制的发展概况 对现场控制总线有一个 总体上的把握和全新的认识 最后 介绍了本次设计的工作内容及设计任 务 为后续的设计工作做整体上的安排 2 CAN 总线的概念及其相关协议总线的概念及其相关协议 2 12 1 CANCAN 总线的概念总线的概念 CAN Controller Area Network 即控制器局域网 可以归属于工业 现场总线的范畴 是目前国际上应用最广泛的开放式现场总线之一 CAN 最初出现在汽车工业中 80 年代由德国 Bosch 公司最先提出 最初动机是 为了解决现代汽车中庞大的电子控制装置之间的通讯 减少不断增加的信 号线 由于 CAN 总线的特点 其应用范围目前已不仅局限于汽车行业 已 经在自动控制 航空航天 航海 过程工业 机械工业 纺织机械 农用 机械 机器人 数控机床 医疗器械及传感器等领域中得到了广泛应用 由于其良好的性能及独特的设计 CAN 总线越来越受到人们的重视 随着应用领域的增多 CAN 的规范从 CAN 1 2 规范 标准格式 发展为兼容 CAN 1 2 规范的 CAN2 0 规范 CAN2 0A 为标准格式 CAN2 0B 为扩展格式 目前应用的 CAN 器件大多符合 CAN2 0 规范 下面我们介绍一下 CAN 中的一些基本概念 1 报文 总线上的报文以不同的固定报文格式发送 但长度受限 当总线空闲 时任何连接的单元都可以开始发送新的报文 2 信息路由 在 CAN 系统中 一个 CAN 节点不使用有关信息结构的任何信息 这里 包含一些重要的概念 系统灵活性 节点可在不要求所有节点及其应用层改变任何软件和硬件的 情况下 被接于 CAN 网络 报文通信 一个报文的内容由其标识符 ID 命名 成组 采用报文滤波 所有节点均接收报文 数据相容性 可以确保报文同时被所有节点或者没有节点接收 3 位速率 不同的系统 CAN 的速度不同 在一个给定的系统里 位速率是唯一的 并且是固定的 4 优先权 在总线访问期间 识别符定义一个静态的报文优先权 5 远程数据请求 通过发送远程帧 需要数据的节点可以请求另一节点发送相应的数据帧 数据帧和相应的远程帧是由相同的识别符命名的 6 仲裁 只要总线空闲 任何单元都可以开始发送报文 具有较高优先权报文的单 元可以获得总线访问权 如果 2 个或 2 个以上的单元同时开始传送报文 那么就会有总线访问冲突 仲裁的机制确保了报文和时间均不损失 当具有相同识别符的数据帧和远 程帧同时初始化时 数据帧优先于远程帧 仲裁期间 每一个发送器都对发送 位的电平与被监控的总线电平进行比较 如果电平相同 则这个单元可以继续 发送 如果发送的是一 隐性 电平而监视的是一 显性 电平 见总线值 那么单元就失去了仲裁 必须退出发送状态 7 错误检测 为了获得最安全的数据发送 CAN 的每一个节点均采取了强有力的措施以 便于错误检测 错误标定及错误自检 要进行检测错误 必须采取以下措施 监视 发送器对发送位的电平与被监控的总线电平进行比较 循环冗余检查 位填充 报文格式检查 错误检测的执行 8 故障界定 CAN 节点能够把永久故障和短暂扰动区别开来 故障的节点会被关闭 9 总线值 CAN 总线具有两种逻辑状态 隐性和显性 显性表示逻辑 0 隐性表示 逻辑 1 显性状态下 VCAN H 和 VCAN L 两者差分电压大于 2V 隐性状态下 VCAN H 和 VCAN L 两者电压差为 0 显性 位和 隐性 位同时传送时 总 线的结果值为 显性 比如 在总线的 写与 执行时 逻辑 0 代表 显性 等级 逻辑 1 代表 隐性 等级 10 应答 所有的接收器检查报文的连贯性 对于连贯的报文 接收器应答 对于不 连贯的报文 接收器作出标志 2 22 2 CANCAN 总线的特点总线的特点 CAN 总线属于总线式串行通信网络 由于采用了许多新技术以及独特的设 计 与一般的通信总线相比 CAN 总线的数据通信具有突出的性能 可靠性 实时性和灵活性 其特点可以概括如下 1 通信方式灵活 CAN 为多主方式工作 网络上任一节点均可在任意时间 主动的向网络上的其他节点发送信息 而不分主从 且无需站地址等节点信息 利用这一特点 可以方便的构成多机备份系统 2 CAN 网络上的节点信息分成不同的优先级 可以满足不同的实时要求 3 CAN 网络上采用非破坏性总线仲裁技术 当多个节点同时向总线发送信 息时 优先级较低的节点会主动退出发送 而优先级最高的节点可以不受影响 的继续传送数据 从而大大的节省了总线冲突仲裁时间 尤其是在网络负荷很 重的情况下也不会出现网络瘫痪的情况 4 CAN 只需通过报文滤波即可实现点对点 一点对多点及全局广播等几种 方式传送接受数据 无需专门的 调度 5 CAN 的直接通信距离最远可达 10Km 传输速率 5Kb s 以下 通信速率 最高可达 1Mb s 此时通信距离最长为 40m 6 CAN 上的节点数主要取决于总线驱动电路 目前可达 110 个 报文标示 符可达 2032 种 CAN2 0A 而扩展标准 CAN2 0B 的报文标示符几乎不受限 制 7 CAN 总线通信格式采用短帧格式 传输时间短 受干扰概率低 具有极 好的检错效果 每帧字节数最多为 8 个 可以满足通常工业领域中控制命令 工作状态及测试数据的一般要求 同时 8 个字节也不会占用过长的总线时间 从而保证通信的实时性 8 CAN 的每帧信息都有 CRC 校验及其他检错措施 保证了数据通信的可靠 性 9 CAN 总线通信接口中集成了 CAN 协议的物理层和数据链路层功能 可完 成对通信数据的成帧处理 包括位填充 数据块编码 循环冗余校验 优先级 判断等多项工作 11 据的成帧处理 包括位填充 数据块编码 循环冗余校验 优先级判 断等多项工作 12 CAN 的通信介质可为双绞线 同轴电缆或光纤 选择灵活 13 CAN 节点在错误严重的情况下具有自动关闭输出功能 以使总线上其他 节点的操作不受影响 2 32 3 CANCAN 总线的分层结构和通信协议总线的分层结构和通信协议 2 3 12 3 1 CANCAN 总线的分层结构总线的分层结构 CAN 遵从 OSI 模型 按照 OSI 基准模型 其结构划分为两层 数据链路层 和物理层 数据链路层划分为逻辑链路控制 LLC 和媒体访问控制 MAC 物理 层又划分为物理信令 PLS 物理媒体附属装置 CPMA 和媒体相关接口 MDI 其结构功能如图 2 1 所示 1 LLC 子层功能 LLC 子层提供的功能包括 帧接收滤波 超载通知和恢复管理 帧接收滤波 在 LLC 子层上开始的帧跃变是独立的 其自身操作与先前的 帧跃变无关 帧内容由标识符命名 标识符并不能指明帧目的地 但描述数据 的含义 每个接收器通过帧接收滤波确定此帧与其是否有关 超载通知 如果接收器内部条件要求延迟下一个 LLC 数据帧或 LLC 远程帧 则通过 LLC 予层开始发送超载帧 最多可产生两个超载帧 以延迟下一个数据 帧或远程帧 恢复管理 发送期间 对于丢失仲裁或被错误干扰的帧 LLC 予层具有自 动重发功能 在发送成功前 帧发送服务不被用户认可 2 MAC 子层结构功能 MAC 子层功能由 IEEE802 3 中规定的功能模型描述 在此模型中将 MAC 子 层划分为完全独立的两个部分 即发送部分和接收部分 此两部分功能如下 发送部分功能包括 1 发送数据封装 接收 LLC 帧并接收接口控制信息 CRC 循环计算 通过向 LLC 帧附加 SOF RTR 位 保留位 CRC ACK 和 EOF 构造 lQAC 帧 数据链路层 逻辑链路子层 接收滤波 超载通知 恢复管理 媒体访问控制子层 数据封装 拆装 帧编码 填充 解除填充 媒体访问管理 错误监测 出错标定 应答 串行化 解除串行化 位编码 解码 位定时 同步 驱动器 接收器特性 监控器 故障界定 总线故障管理 图 2 1 CAN 总线的分层结构 2 发送媒体访问管理 确认总线空闲后 开始发送过程 通过帧间空闲应答 MAC 帧串行化 插 入填充位 位填充 在丢失仲裁的情况下 退出仲裁并转入接收方式 错误检 测 监控 格式校验 应答校验 确认超载条件 构造超载帧并开始发送 构 造出错帧并开始发送 输出串行流至物理层准备发送 接收部分功能包括 1 接收媒体访问管理 解除串行结构并重新构筑帧结构 检测填充位 解除位填充 错误检测 CRC 格式校验 填充规则校验 发送应答 构造错误帧并开始发送 确认 超载条件 重新激活超载帧结构并开始发送 2 接收数据拆装 由接收帧去除 LLC 特定信息 输出 LLC 帧和接口控制信息至 LLC 子层 2 3 22 3 2 CANCAN 的通信协议的通信协议 首先我们对 CAN 总线自身的通信规则和帧格式的定义进行简单的介绍 CAN 总线是一种有效支持分布式控制的串行通信网络 可以实现全分布式多机 系统 可以用点对点 一点对多点以及全局广播几种方式传送和接收数据 CAN 总线直接通信距离最远可达 10KM 此时传输速率只能达到 5Kb s 通信速 度最高可达 1Mb s 此时传输距离只能达到 40m 且理论上 CAN 总线通信网络 的节点数不受限制 CAN 总线总是基于下列 5 条基本规则进行通信协调的 总线访问 CAN 是共享媒体的总线 它对内体的访问机制类似于以太网的 媒体访问机制 即采用载波监听多路访问 Carrier Sense Multiple Acess CSMA 的方式 仲裁 当总线空闲时呈隐性电平 任何一个节点都可以向总线发送一个显 性电平作为一个帧的开始 如果有两个或两个以上的节点同时发送 就会产生 总线冲突 CAN 总线解决总线冲突的方法比以太网的 CSMA CD 方法有很大的改 进 CAN 总线是按位对标识符进行仲裁 各节点在向总线发送电平的同时 也 对总线上的电平进行读取 并与自身发送的电平进行比较 如果电平相同则继 续发送下一位 不同则说明网络上有更高优先级的信息帧在传送 即停止发送 退出总线竞争 编码 解码 帧起始域 仲裁域 控制域 数据域和 CRC 序列均使用位填 充技术进行编码 在 CAN 总线中 每连续 5 个不同状态的电平插入一位与它相 补的电平 还原时每 5 个不同状态的电平后的相补电平被删除 从而保证了数 据的透明 出错标志 当检测到位错误 填充错误 形式错误或应答错误时 检测出 错条件的 CAN 控制器将发送一个出错标志 超载标志 一些 CAN 控制器会发送一个或多个超载帧以延迟下一个数据帧 或远程帧的发送 2 42 4 报文发送及其帧结构报文发送及其帧结构 在进行数据传送时 发出报文的单元称为该报文的发送器 该单元在总线 空闲或丢失仲裁前恒为发送器 如果一个单元不是报文发送器 并且总线不是 处于空闲状态 则该单元为接收器 对于报文发送器和接收器 报文实际有效时是不同的 对于发送器而言 如果直到帧结束一直没有出错 则发送器报文有效 如果报文受损 将允许按 照优先权次序自动重发送 为了能同其它报文访问总线进行竞争 总线一旦空 闲 重发送立即丌始 对于接收器而言 如果直到帧结束的最后一位一直没有 出错 则对于接收器报文有效 构成一帧的帧起始 仲裁场 控制场 数据场和 CRC 序列均借助位填充规 则进行编码 当发送器在被发送位流中检测到 5 位连续相同数值时 将自动在 实际发送位流中插入一个补码位 报文传送由四种不同类型的帧表示和控制 数据帧携带数据由发送器至接 收器 远程帧通过总线单元发送 以请求具有相同标识符的数据帧 出错帧由 通过检测发现总线错误的任何单元发送 超载帧用于提供当前和后续数据帧或 远程帧之间的附加延迟 2 4 l2 4 l 数据帧数据帧 数据帧由 7 个不同的位场组成 帧起始 仲裁场 控制场 数据场 CRC 场 应答场 帧结尾 数据场的 长度可以是 0 数据帧的格式如图 2 2 所示 S O F 11 位标识符 仲裁场控制场 RTR LDE R0 LDC 数 据 场 仲 裁 场 S O F 11 位标识符 SSR LDE RTR R0R1 LDC 数据场 控制场 11 位标识符 图 2 2 CAN2 0 数据帧格 式 帧起始 SOF 它标志数据帧或者远程帧的起始 由一个单独的 显性 位组成 只在总 线空闲时 才允许站开始发送 信号 仲裁场 标准格式和扩展格式仲裁场的格式不同 在标准格式中 仲裁场有 11 位 标识符和远程发送请求位组成 标识符位为 m 28 至 ID 18 而在扩展帧中 仲裁场由 29 位标识符和替代远程请求 SSR 位 标识位和远程发送请求位组成 标识符位为至 ID 0 为了区别标准格式和扩展格式 先前 CAN 技术规范 1 m1 2 为 r1 现在记为 IDE 位 标识符分为标准格式标识符和扩展格式标 识符 标准格式标识符的长度位 ll 位 并且对应于扩展格式中的基本 D 这些 位以 ID 28 至 ID 18 的顺序发送 最低位为 ID 18 其中最高 7 位 ID 28 至 ID 22 必须不是全 隐性 而扩展格式标识符与标准格式不同 扩展格式由 29 位组成 扩展格式分为两部分 前 11 位以 ID 28 至 ID 18 的顺序发送 它 等效于标准帧中标识符格式 基本 ID 确定了扩展格式的优先权 而扩展 ID 由 18 位组成 它以 ID 17 到 ID 0 的次序发送 在标准格式中 标识符后为 RTR 位 RTR 位 标准格式和扩展格式 在数据帧中 RTR 必须是 显性 电平 而 在远程帧中 RTR 必须是 隐性 电平 在扩展格式中 先发送基本 RTR 其 后是 IDE 位和 SRR 位 扩展位在 SRR 位后发送 SRR 位在扩展格式中为隐性位 它在标准格式的 RTR 位位置上被发送 并 替代标准格式中的 RTR 位 这样 标准格式和扩展格式的冲突由于扩展格式的 基本标准格式的 D 相同而解决 标准格式较之扩展格式更为流行 IDE 位对应 于扩展格式属于仲裁场 对应于标准格式属于控制场 IDE 在标准格式中以 显性 电平发送 而在扩展格式中为 隐性 电平 仲裁场包括识别符和远 程发送请求位 RTR 控制场 控制场由 6 个位组成 如图 2 3 包括数据长度代码和两个将来作为扩展 用的保留位 m 和 rl fl 在 CAN2 0 以下的协议中位保留 在 CAN2 0B 以上的 协议中标为 IDE IDE 为显性表示为标准帧 IDE 为隐性表示为扩展帧 IDE r1R0DLC3DLC2DLC1DLC0数据场 CRC 场 控制场 标准格式和扩展格式 图 2 3 CAN 报文的控 制场 所发送的保留位必须为 显性 接收器接收所有由 显性 和 隐性 组合在一起的位 数据长度代码 DLC 数据长度代码指示了数据场中字节数 量 数据长度代码为 4 个位 在控制场罩被发送 数据场 数据场由数据帧中的发送数据组成 它可以为 0 8 个字节 每字节首先发 送高有效位 数据长度码中数据字节数目编码如表 2 1 所示 CRC 场 CRC 场包括 CRC 序列 其后是 CRC 界定符 CRC 序列 由循环冗余码求得 的 帧检查序列最适用于位数低于 127 位 BCH 码 的帧 为进行 CRC 计算 被除的 多项式系数由无填充位流给定 组成这些位流的成分是 帧起始 仲裁场 控 制场 数据场 假如有 将此多项式被下面的多项式发生器除 其系数以 2 为 模 X15 X14 X10 X8 X7 X4 X3 1 这个多项式除法的余数 CRC 序列 CRC SEQUENCE 为了实现这个功能 可以使用 15 位的位移寄存器 CRC RG 14 0 如果用 NXTBIT 标记指示位流的下一位 它由从帧的起始到数据场末尾都由无 填充的位序列给定 表 2 1 CAN 总线数据场数据字节数目编码 数据长度码 数据字节数目 DLC3DLC2DLC1DLC0 0dddd 1dddr 2ddrd 3ddrr 4drdd 5drdr 6drrd 7drrr 8rddd 应答场 应答场长度为 2 个位 包含应答闻隙和应答界定符 在应答场里 发送站 发送两个 隐性 位 当接收器正确地接收到有效的报文 接收器就会在应答 间隙期间 发送 ACK 信号 向发送器发送一 显性 的位以示应答 应答间隙 所有接收到匹配 CRC 序列的站会在应答间隙期间用一 显性 的位写入发 送器的 隐性 位来做出回答 ACK 界定符 ACK 界定符是 ACK 场的第二个位 并且是一个必须为 隐性 的位 因此 应答间隙被两个 隐性 的位所包围 也就是 CRC 界定符和 ACK 界定符 帧结束 帧结束表示一帧数据的结束 2 4 22 4 2 远程帧远程帧 通过发送远程帧 作为某数据接收器的站通过其源节点对不同的数据传送 进行初试化设置 远程帧存在标准帧和扩展帧两种格式 在两种情况下 均由 6 个不同的位场组成 帧起始 仲裁场 控制场 CRC 场 应答场和帧结束 同数据帧相反 远程帧的 RTR 位是 隐性 远程帧不存在数据场 DLC 的数据 值是独立的 它可以被标注为允许范围 O 8 中的任何数值 这一数值为对应 数据帧的 DLC RTR 位极性指出所发送帧是数据帧 RTR 位为 显性 还是远 程帧 RTR 位为 隐性 2 4 32 4 3 错误帧错误帧 错误帧由两个不同场组成 第一个场由来自各个站出错标志叠加得到 随 后的第二个场是出错界定符 错误帧组成如图 2 4 所示 数据帧 错误帧 错误标 志 错误界定 符 超 载 帧 帧间空间 错误叠加标 志 图 2 4 错误帧格式 为了正确的终止错误帧 一种 错误认可 节点可以使总线处于 总线空 闲 状态至少三位时间 因而总线不被加载至 100 错误标志具有两种形式 g 一种是活动错误标志 Active error flag 另一种是认可错误标志 Passive error flag 活动错误标志由 6 个连续 显性 位组成 丽认可错误标志由 6 个连续的 隐性 位组成 除非它由来自其它节点的 显性 位冲掉重写 2 4 42 4 4 超载帧超载帧 超载帧包括两部分 超载标志和超载界定符 超载帧组成如图 2 5 所示 存在两种导致发送超载标志的超载条件 一个是要求延迟下一个数据帧或 者远程帧的接收器的内部条件 另一个是在间歇场检测到 显性 位 由前一 个超载条件引起的超载帧起点 仅允许在期望间歇场的第一位时间开始 而由 后一个超载条件引起的超载帧在检测到 显性 位后一位开始 在大多数情况 下 为延迟下一次数据帧或者远程帧 两种超载帧均可以产生 帧结束或错误 界定符或超载 帧 超 载 帧 超载标 志 超载标志叠 加 超载界定 符 超 载 帧 帧间空间 图 2 5 超载帧 格式 超载标志由 6 个 显性 位组成 全部形式对应于活动错误标志形式 超 载标志形成破坏了间歇场的固定形式 因而 所有其它站都检测到一个超载条 件 并且由它们的部件开始发送超载标志 在间歇场第三位期间检测到 显 性 位的情况下 节点将不能正确理解超载标志 而将 6 个 显性 位的第一 位理解为帧起始 第 6 个 显性 位违背引起出错条件的位填充规则 超载界定符由 8 个 隐性 位组成 超载界定符与出错界定符具有相同的 形式 发送超载标志以后 站监视总线直至检测到由 显性 到 隐性 位的 发送 在此时点上 总线上的每个站均完成送出超载标志 并且所有站一致开 始发送剩余 7 个 隐性 位 2 4 52 4 5 帧间空间帧间空间 数据帧和远程帧同其前面的帧 不管它们是何种帧 数据帧 远程帧 错 误帧或超载帧 1 均以称之为帧空间的位场分隔开 相反 在超载帧和出错帧前 面没有帧空间 并且多个超载帧前面也不被帧空间分隔 总线空闲场周期可为 任意长度 此时 总线是开放的 因而任何需要发送的站均可访问总线 在其 它报文发送期间 暂被挂起的待发报文 紧随间歇场从第一位开始 当检测到 总线上的 显性 位将理解为帧起始 2 52 5 错误类型和界定错误类型和界定 2 5 12 5 1 错误类型错误类型 1 位错误 正在向总线送出一位的节点同时监测总线 当监测到的位 数值与送出的位数值不同时 则检测到位错误 其中例外情况是 在仲裁期间 当送出隐性信息位或 ACK 期间送出隐性位时 而检测到显性位不会导致位错误 送出认可错误标志 而检测到显性位的节点也不会导致位错误 2 填充错误 在使用位填充方法进行编码的帧场中 出现第六个连续 相同电平位时 则检测到填充错误 3 CRC 错误 CRC 序列由发送器的 CRC 计算结果构成 接收器以发送 器相同的方法计算 CRC 当所计算的 CRC 序列不等于接收到的序列时 则检测 到 CRC 错误 4 形式错误 当固定格式位场有一个或更多非法位时 则检测到形式 错误 其中例外是 接收器在帧结束的最后位监测到显性位时 不将其理解为 形式错误 5 应答错误 在发送器 ACK 期间未监测到显性位时 则检测到一个应 答错误 当任何节点检测到位错误 填充错误 形式错误或应答错误时 由各自节 点在下一位启动发送错误标志 当检测到 CRC 错误时 出错帧在紧随 ACK 界定 符后开始发送 除非其他出错条件的出错帧已经开始发送 2 5 2 2 5 2 错误界定规则错误界定规则 网络中的任何一个节点 根据其错误计数器数值 可能处于下列三种状态 之一 1 错误激活 正常总线通信的节点检测到错误时 发出一个活动错误 标志 中断当前总线传输 2 错误认可 发送器启动认可出错标志后成为错误认可节点 错误认 可节点在开始进一步发送前将等待一段附加时间 3 总线脱离 当节点发生严重错误请求故障界定隔离 从而对总线处 于关闭状态时处于总线脱离状态 在总线脱离状态下 节点不发送也不接收任 何帧 系统启动时若仅有一个节点在线 该节点发送帧就没有其它节点应答 节 点将检测到错误并重发帧 其状态变成为错误认可 但不会由此进入脱离总线 状态 2 62 6 CANCAN 总线通信原理总线通信原理 通过对上述介绍 下面可以对 CAN 总线的组织和通信过程作一简单归纳 CAN 控制器只能在总线空闲状念期间启动发送过程 总线上的所有的控制 器同步于帧起始的前沿 这个过程由硬同步来完成 若有两个或更多的 CAN 控 制器同时开始发送 总线访问冲突时通过仲裁场发送期间位仲裁处理方法予以 解决 仲裁期问 每个进行发送的 CAN 控制器都将发送的位电平与监控总线电 平进行比较 任何发送一个隐性位而监视到一个显性位电平的 CAN 控制器立即 变成总线上较高优先权报文的接收器 而不破坏总线上的任何信息 每段报文 包括一个唯一的标识符和在报文中含描述数据类型的 RTR 位 标识符和 RTR 位 最先发送 标识符和 RTR 位对应二进制数值最低的报文具有最高的优先权 由 于数据帧的 RTR 位为显性电平 因此数据帧比远程帧具有更高的优先权 对于 每个数据帧存在唯一的发送器 从与其他 CAN 总线控制器兼容性的考虑 禁止 使用标识符 位模式 ID 1111lllXXXX X 表示任意电平位 这样在 BasicCAN 方式下 帧起始 仲裁场 控制场 数据场和 CRC 序列使用位填充技术进行编 码 当正在发送的 CAN 控制器检测到 5 个连续的相同极性的位被发送 一个互 补 填充 位被插入到该发送位流中 当一个正在接收的 CAN 控制器检测到接收 的上述五种位场的位流中 具有 5 个相同极性的连续位 它将自动地删除下一 个接收 填充 位 删除的填充位电平必须与先前位相反 否则一个填充错误被 检测到并被标注 其余的位场和帧具有固定的形式 因而不使用位填充方法进 行编码 解码 当发生位错误 填充错误 形式错误或应答错误时 检测到出 错条件的 CAN 控制器将发送一个出错标志 出错标志在下一位开始发生 当检 测到 CRC 错误时 出错标志在紧跟应答界定符后的一位开始发送 除非其他一 些出错条件的错误标志已经开始发送 出错标志将破坏位填充或损坏固定形式 的位场 位填充法则的破坏将影响检测出错条件的任何 CAN 控制器 一个检测出错条件的认可型 CAN 控制器将发送一个认可出错标志 认可出 错标志不会中断在不同 CAN 控制器上的当前报文 但这类出错标志可能被其他 控制器忽略 检测到出错条件后 认可型出错 CAN 控制器将等待具有相同极性 的 6 个连续位 并在检测到它们时 将它们理解为出错标志 发送出错标志后 每个 CAN 控制器都在监视总线直至检测到一个显性电平 到隐性电平的跳变 此时 每个 CAN 控制器就完成了其出错标志发送 并所有 CAN 控制器开始发送 7 个附加的隐性位 辨识数据帧或远程帧报文格式的方法是所有可检测的错误均可在报文发送 时间内被标识 因而使 CAN 控制器很容易组成对应报文的出错帧 并且初始化 被破坏报文的重新发送 如果 CAN 控制器监测到出错帧固定格式的任何偏离 它将发送一个新的出错帧 一些 CAN 控制器要求借助于发送一个或更多超载帧来延迟下一个数据帧或 远程帧的发送 超载帧的发送必须起始于所等待间歇场的第一位 在期望的间 歇场期问 重新激活位显性位的超载帧的发送应在该事件后开始 虽然超载帧和出错帧的格式相同 但对它们的处理却不同 在间歇场期间 进行的超载帧的发送不能初始化任何先前的数据帧和远程帧的重新发送 如果 发送超载帧的 CAN 控制器监测到其固定格式的任何偏离 它将发送一个出错帧 以上介绍的 CAN 总线的一些概念 说明了 CAN 的工作原理和为什么能形成 高效率和高可靠性现场总线网络的原因 推出 CAN 总线标准的同时己经为其发 展提供了强有力的技术和物质支持 有关厂家推出的 CAN 控制器芯片和微处理 器 如 Philips 的 82C200 及其升级产品 SJA1000 和 8XC592 可完成物理层和数 据链路层的全部功能 因此以上操作对 CAN 的设计者一来说是透明的 设计者 主要考虑应用层的问题 只要通过相对简单的设计和编程就可能开发出适用的 CAN 总线系统 2 72 7 本章小结本章小结 本章主要介绍了 CAN 总线的一些基本的理论知识 包括 CAN 总线的基本概 念 CAN 总线的特点 CAN 的分层结构 报文传送和帧结构 CAN 总线的通信协 议以及 CAN 总线的通信原理等 掌握好 CAN 总线的基本理论知识是本次设计的 一个目的 同时也是完成本次设计的重要环节 3 系统的硬件组成系统的硬件组成 3 13 1 CANCAN 总线控制舵机系统的总体设计方案总线控制舵机系统的总体设计方案 具有总线结构的舵机控制系统与采用非总线结构的舵机控制系统相比 在 系统的设计 生产 使用和维护等方面具有很多优越性 这也是研究现场控制 总线技术的重要原因 本次设计采取对舵机进行功能开发 用现场总线数字化 多点通信底层控制网络 进行集成创新 实现舵机与微处理器 微处理器与计 算机之间数字信号通信与控制 本集成控制系统是一套舵机控制 实时在线监测控制系统 对舵机进行实 时控制 它包括三个节点 一个从节点 实时控制 并通过 CAN 总线接收主节 点控制命令 一个主节点 负责实现和计算机算计的通信 舵机当前运动状 态发送到上位机并接收上位机的控制命令 系统以 PC 机为上位机计算控制单 元 PC 机通过 USB 线与 CAN 总线上的主 CAN 节点进行通讯 由 STM32F103RBT6 单片机作为微处理器 对从红外和超声波以及 GPS 等传感器检测到的现场数据 进行处理转换 以报文的形式通过 CAN 总线收发器 SN65HVD230 实现控制器与 物理总线的连接 完成应用层协议的功能 实现了数据通信 其中 上位机通过软件编程来控制计算机和单片机对舵机进行控制 控制 上下位机的数据通信 实现运动状态实时显示 控制等功能 当传送的信息出 现错误时 进行错误显示 以方便工作人员无需到现场 直接在工作室就实现 了实时监控的工作任务 现场 CAN 节点一方面通过单片机 数据采集电路或数 据显示电路显示现场数据 一方面通过 CAN 总线实现和主节点进行通讯 把工 作现场的实时运动状态传送给主节点并在计算机上面显示 系统硬件由两部分组成 一部分是节点硬件电路的设计 主要完成对现场 地况的采集 实时显示以及相应的按键连接 另一部分主要完成基于 CAN 总线 的上下位机通信 实现上位机的实时在线监控 CAN 总线测控系统的通信软件设计分为 3 部分 CAN 初始化 数据发送和 数据接收 在软件开发方面 用 c 语言作为主要的开发工具 为提高软件开发 效率 在整个设计过程中使用 KEIL 公司的 uVision4 集成开发环境 上位机测 试软件系统的设计利用 c 及 c 语言在 Visual C6 0 软件开发平台上进行 MFC 控制台程序编写 使用测试软件实时测试个总线节点的舵机运动状态现场数据 下图为本设计的硬件结构框图 3 1 所示 计算机 STM32F103RBT6 传感器 SN65HVD230 STM32F103RB6 SN65HVD230 120 欧姆 120 欧姆 十六路舵机 图 3 1 系统的总体结构图 3 23 2 STM32F103RBT6STM32F103RBT6 简介简介 本设计采用的是应用广泛的系列使用高性能的 ARM Cortex M3 32 位的 RISC 内核 工作频率为 72MHz 内置高速存储器 高达 128K 字节的闪存和 20K 字节的 SRAM 丰富的增强 I O 端口和联接到两条 APB 总线的外设 所有型号 的器件都包含 2 个 12 位的 ADC 3 个通用 16 位定时器和 1 个 PWM 定时器 还 包含标准和先进的通信接口 多达 2 个 I2C 接口和 SPI 接口 3 个 USART 接口 一个 USB 接口和一个 CAN 接口 供电电压为 2 0V 至 3 6V 包含 40 C 至 85 C 温度范围和 40 C 至 105 C 的扩展温度范围 一系列的省电模式保证 低功耗应用的要求 3 2 1 ARM 的的 Cortex M3 核心并内嵌闪存和核心并内嵌闪存和 SRAM ARM 的 Cortex M3 处理器是最新一代的嵌入式 ARM 处理器 它为实现 MCU 的需要提供了低成本的平台 缩减的引脚数目 降低的系统功耗 同时提供卓 越的计算性能和先进的中断系统响应 ARM 的 Cortex M3 是 32 位的 RISC 处理 器 提供额外的代码效率 在通常 8 和 16 位系统的存储空间上发挥了 ARM 内 核的高性能 STM32F103xx 增强型系列拥有内置的 ARM 核心 因此它与所有的 ARM 工具和软件兼容 3 2 2 内置闪存存储器内置闪存存储器 128K 字节的内置闪存存储器 用于存放程序和数据 3 2 3 CRC 循环冗余校验循环冗余校验 计算单元计算单元 CRC 循环冗余校验 计算单元使用一个固定的多项式发生器 从一个 32 位 的数据字产生一个 CRC 码 在众多的应用中 基于 CRC 的技术被用于验证数据 传输或存储的一致性 在 EN IEC 60335 1 标准的范围内 它提供了一种检测 闪存存储器错误的手段 CRC 计算单元可以用于实时地计算软件的签名 并与 在链接和生成该软件时产生的签名比 3 2 4 内置内置 SRAM 20K 字节的内置 SRAM CPU 能以 0 等待周期访问 读 写 3 2 5 嵌套的向量式中断控制器嵌套的向量式中断控制器 NVIC STM32F103RBT6 增强型产品内置嵌套的向量式中断控制器 能够处理多达 43 个可屏蔽中断通道 不包括 16 个 Cortex M3 的中断线 和 16 个优先级 紧耦合的 NVIC 能够达到低延迟的中断响应处理 中断向量入口地址直接进入内核 紧耦合的 NVIC 接口 允许中断的早期处理 处理晚到的较高优先级中断 支持中断尾部链接功能 自动保存处理器状态 中断返回时自动恢复 无需额外指令开销 该模块以最小的中断延迟提供灵活的中断管理功能 3 2 6 外部中断外部中断 事件控制器事件控制器 EXTI 外部中断 事件控制器包含 19 个边沿检测器 用于产生中断 事件请求 每个中断线都可以独立地配置它的触发事件 上升沿或下降沿或双边沿 并能 够单独地被屏蔽 有一个挂起寄存器维持所有中断请求的状态 EXTI 可以检测 到脉冲宽度小于内部 APB2 的时钟周期 多达 80 个通用 I O 口连接到 16 个外 部中断线 3 2 7 时钟和启动时钟和启动 系统时钟的选择是在启动时进行 复位时内部 8MHz 的 RC 振荡器被选为默 认的 CPU 时钟 随后可以选择外部的 具有实时监控的 4 16MHz 时钟 当检测 到外部时钟失效时 它将被隔离 系统将自动地切换到内部的 RC 振荡器 如果 使能了中断 软件可以接收到相应的中断 同样 在需要时可以采取对 PLL 时 钟完全的中断管理 如当一个间接使用的外部振荡器失效时 多个预分频器用 于配置 AHB 的频率 高速 APB APB2 和低速 APB APB1 区域 AHB 和高速 AP

温馨提示

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

评论

0/150

提交评论