基于CAN总线的电加热座椅控制系统设计说明书.doc_第1页
基于CAN总线的电加热座椅控制系统设计说明书.doc_第2页
基于CAN总线的电加热座椅控制系统设计说明书.doc_第3页
基于CAN总线的电加热座椅控制系统设计说明书.doc_第4页
基于CAN总线的电加热座椅控制系统设计说明书.doc_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

I 目 录 摘 要 III Abstract IV 1 绪 论 1 1 1 选题的背景与课题概述 1 1 2 汽车加热座椅的研究背景和意义 1 1 3 CAN 总线的国内外研究现状 1 1 4 本章小结 2 2 CAN 总线原理 3 2 1 CAN 总线的特点 3 2 2 CAN 总线的技术规范 3 2 2 1 CAN 总线的基本概念 3 2 2 2 CAN 总线的分层结构 4 2 2 3 CAN 报文帧类型格式 5 2 3 本章小结 5 3 系统的硬件设计 6 3 1 汽车座椅加热系统的总体设计 6 3 2 单片机的选择 7 3 3 温度传感器的选择 8 3 4 CAN 总线控制器的选择 9 3 5 CAN 总线驱动器的选择 11 3 6 CAN 总线与单片机连接电路设计 13 3 7 显示器的电路设计 13 3 8 压力传感器功能模块设计 15 3 9 开关和键盘电路设计 16 3 10 最小系统电路 17 3 11 系统功能模块设计 18 3 12 本章小结 21 II 4 系统的软件设计 22 4 1 软件设计内容与开发测试工具简介 22 4 1 1 软件设计内容简介 22 4 1 2 开发测试工具简介 22 4 2 CAN 总线节点的软件设计 22 4 2 1 初始化过程设计 22 4 2 2 发送过程设计 23 4 2 3 接收过程设计 24 4 3 温度控制子节点软件设计 25 4 3 1 温度读取子程序设计 26 4 3 2 温度值处理子程序设计 26 4 3 3 LED 数码管显示子程序 27 4 4 控制节点软件设计 28 4 4 1 压力传感器 A D 转换子程序设计 29 4 4 2 键盘扫描子程序设计 29 4 4 3 温度比较子程序设计 30 4 5 软件抗干扰设计 30 4 5 1 常见的干扰及软件抗干扰方法介绍 30 4 5 2 本系统采用的抗干扰技术 31 4 6 本章小结 31 5 总结与展望 33 参考文献 34 附录 35 致谢 43 III 基于 CAN 总线的电加热座椅控制系统 摘 要 本文是基于 CAN 总线对座椅进行加热控制的设计 本设计有带温度采集 温度显示 和温度调节于一身的控制系统 首先进行总体设计 将系统划分为驾驶员控制的中央节 点 副驾驶节点和后排座椅节点 在低成本和高精度的前提下 选择了 AT89C51 单片机 SJA1000 控制器和 82C250 温度传感器等元器件 同时根据具体的节点情况设计出硬件电 路图 软件的程序编写使用的是 C 语言 模块化的理念 简化了程序的编写 此外 考 虑到车辆使用环境对系统存在着干扰 所以增加了抗干扰措施 让系统的运行更加稳定 与准确 关键词 CAN 总线 电加热座椅 单片机 软件设计 IV Electric heating seat control system based on CAN bus Abstract This article is based on the design of CAN bus heating control of the seat This design is a control system with temperature acquisition temperature display and temperature adjustment First the overall design was carried out to divide the system into driver controlled central nodes first passenger nodes and rear row seat nodes Under the premise of low cost and high precision the AT89C51 single chip microcomputer SJA1000 controller and 82C250 temperature sensor and other components were selected and the hardware circuit diagram was designed according to the specific node conditions The programming of the software uses the C language the modular concept and simplifies the programming of the program In addition considering that the vehicle use environment interferes with the system anti jamming measures have been added to make the system more stable and accurate Key words CAN bus Electric heated seat Single chip computer Software design 1 1 绪 论 1 1 选题的背景与课题概述 在经济快速发展的时代 生活的质量越来越受到人们的关注 汽车的安全性和舒适 性也同样需要提高 对于如今的机械运动装置已经很成熟 因为自动控制的低成本和高 收益的因素 也越来越受到人们的关注 现如今的汽车几乎都是机械 电子与信息一体 化 汽车创新大多数都与汽车电子技术相关 这暗示着汽车要进入由一定机械机构支撑 的大量电子系统的阶段 1 在提高汽车整体性能的情况下 汽车中的电子器件与设备也随之增加 电子控制技 术现如今已经成为功能实现的主流 由于功能的增加 电子设备之间的交互也越来越繁 杂 各个控制单元间需要进行大量数据交换 从而线束也会暴增 为了解决线束增多的 问题 并且能满足各控制系统高速通信 汽车应用了 CAN 总线技术 因为 CAN 总线有 高速性 高可靠性等优点 所以 CAN 总线成为组成汽车车载电子网络中应用最广的技术 之一 2 CAN 总线是由德国博世公司于 1986 年推出 用于实现汽车的检测和控制而设计的 其总线已经被国际标准组织定为国际标准 3 1 2 汽车加热座椅的研究背景和意义 现如今汽车产业发展迅速 汽车在大街小巷都随处可见 出门远行旅游必然选择的 出行方式 在其普及率持续增高的同时 消费者对于汽车的安全性与舒适性等要求也越 来越高 故而在汽车行业快速发展的市场指导下 对于绝大多数桥车而言 座椅的制造 成本仅次于发动机 座椅的价格之所以高 是因为座椅是与驾驶员 乘客直接接触的部 件 是轿车与乘客直接反馈舒适度的物件 座椅是消费者购车的参考元素之一 因此在 设计座椅的过程中 不仅需要注重其安全性 更要考虑其舒适性 4 为了让人们在乘坐轿车时感到舒适与体现人文关怀 各大汽车企业将其定为目标 在寒冷的冬天 无论是身处于南方或者北方 在坐座椅的那一瞬间都会感到特别的冰凉 在那一段时间内 消费者很容易着凉感冒 即使驾驶轿车也无不例外 虽然汽车都配备 空调 但是空调温度需要较长时间才能达到适宜的温度 可谓远水救不了近火 故而研 究汽车加热座椅是十分必要的 1 3 CAN 总线的国内外研究现状 80 年代初期 许多知名的国外汽车公司就尝试了汽车总线技术的研究及应用 目前 CAN 局域网已成为每一辆客车的标准配置 其它交通工具如火车轮船等也是 CAN 总线的 应用领域 CAN 已经成为国际重要的总线之一 我国 CAN 总线技术起步相对较晚 直到 2 1996 年底 邬宽明编著 CAN 总线原理和应用系统设计 才引发了对 CAN 总线的研究 5 从而 激发了各高校 科学院所以及电子公司等研究机构对 CAN 总线技术的研究热潮 2012 年电子科技大学的刘刚提到 目前 CAN 总线水平仍处于初步阶段 要走的路还很长 2016 年吉林大学的秦慧敏利用 CAN 总线对温度进行采集工作的设计 通过对温度传感器 采集数据到单片机上 处理并将数据通过控制器和驱动器在 CAN 总线一端发送 并在另 一端接收 即时的显示温度 2017 年 南京邮电大学的 基于 CAN 总线的新型汽车仪表 系统的设计与实现 一文中 叙述了根据仪表需要实现的功能需求对整体结构的硬件设 计 硬件设计包括 主要模块的选型 选取内部集成 CAN 控制器 CAN 收发器 液晶显 示器显示数据等 然后完成仪表的主控电路及外围电路 绘出电路板 最后进行软件设 计 6 1 4 本章小结 本章为论文的绪论 主要由三个部分组成 分别是选题的背景与课题概述 汽车加 热座椅的研究背景意义和 CAN 总线的国内外研究现状 针对国内外 CAN 总线的国内外 研究现状 说明国内外研究迫切需求 并了解到汽车加热座椅是一个更好体现人文关怀 的课题 3 2 CAN 总线原理 2 1 CAN 总线的特点 1 多主工作方式 网络拓扑上的节点都能自发地发送报文 在总线空闲的时候 任 一节点也能发送报文 最先访问总线的节点优先获得发言权 多个节点同时发送 时 依据报文的优先权而不是节点的优先权进行总线访问控制 2 非破坏性总线仲裁技术 总线难免有时会发生冲突 当其发生冲突时 具有高 优先级报文的能够不受干扰地进行传输 确保了具有高优先级报文的实时性要 求 而低优先级的报文退出传输 3 具有点对点 一点对多点及全局广播等多种传输方式 4 请求远程数据 CAN 能够通过发送 远程帧 来完成对其它节点数据请求的要求 5 高效的短帧结构 虽然数据帧数据域仅为 8 个字节 但是传送短报文时效率很 高 6 可靠性高 短帧在传输过程中 所用时间短且受到的干扰概率较低 而且在每 帧有位填充和 CRC 校验的措施 降低了一定的出错率 发送期间因出错或丢 失仲裁而发生破坏的帧可以自动重发 7 自动关闭 如果 CAN 总线上发生的暂时数据错误或者持续性错误时 总线都 是可以判断出其错误的类型 暂时性的数据错误有如外部噪声 持续性数据错 误可能会是内部故障 驱动器故障 断线等硬件错误 当节点发生持续错误时 节点能够自动关闭并脱离总线 8 在 11 位标准帧报文标识符的 CAN 总线上的节点目前能达到 110 个 而 29 位 扩展帧的报文标识符的个数不受限制 9 总线配置灵活 2 2 CAN 总线的技术规范 2 2 1 CAN 总线的基本概念 1 数据传输率 CAN 总线在一个特定的系统里 具有唯一固定的数据传输速度 但是在不同系统的时候 其传输速度会发生变化 2 系统灵活性 任何硬件和软件的前提下 在不要求节点和应用层发生改变的时 候 节点能够直接连到 CAN 网络上 3 报文路由 标识符 ID 是报文内容的命名方式 ID 没有直接指出报文的目的 但是标识符能够描述数据的含义 方便网络中的所有节点都拥有借助报文滤波 4 决定是否对数据做出反应 CAN2 0A 中 ID 为 11 位 4 数据兼容性 CAN 总线能够同时被所有的节点和特定的节点接收报文 5 报文 总线所传递的信息以不同的格式报文来发送 6 远程数据请求 远程数据以发送远程帧来请求别的节点发送相应的数据帧 7 故障界定 CAN 总线节点有能力识别永久性故障和突发干扰 可自动关闭故障 节点 8 安全性 CAN 总线有自检查 位填充和循环冗杂检查等功能 9 优先权 在总线访问期间 标识符定义静态的报文优先权 从而确定节点报文的 优先级 10 连接 CAN 通信链路层是能够连接很多单元的总线 理论上来说 连接的单 元数目是无限的 但是单元总数往往受限于延迟时间和线路上的电气负载值 所以总的来说 CAN 串行链路连接单元数量是有限的 11 应答 全部的驱动器也就是收发器都对接收到的报文进行连贯性的检查 对 于连贯的报文 驱动器给予应答 对于不连贯的报文 则接收器做出标识 12 总线控制权 每当总线空闲的时候 任何节点单元都能传送报文 只不过具 有高优先级的报文单元能够优先获得总线的指导权 2 2 2 CAN 总线的分层结构 CAN 总线的结构由数据链路层 物理层和应用层三部分组成 数据链路层又有逻辑 链路和媒体访问控制两个子层 7 如图 2 1 所示 5 图 2 1 CAN 的分层结构和功能 CAN 总线协议 2 0B 是参照 IOS 模式来制定的 将协议分成两个层次即数据链路层和 物理层来方便定义和管理 在数据链路层里又被分成逻辑链路控制子层 LLC 和媒体访 问控制子层 MAC 而这两个子层功能与 2 0A 协议中应用层与传输层功能相同 LLC 子 层的主要作用为帮助信息交流和协助节点向其他节点发送请求数据的远程帧 判定 LLC 层收到的消息是否已被接收 同时 LLC 子层在一些方面还能提供系统的状态 比如系统 过载了会提供过载详细信息 MAC 子层的功用主要是控制传输规则 即规定帧机构中的 控制域 仲裁判别的方式 对错误进行判定 检测报文的错误和错误校准 MAC 子层的 功用不能随意的更改 因为它的一部分功用设计到用于同步的定时作用 8 CAN 总线协议 2 0B 对物理层的定义与 2 0A 里差不多 物理层定义了实际的信号传 输方法 比如传输媒介呀 电压的大小高低 同时在 2 0B 中还包含了关于编码的时序 编码 译码与同步 物理层没有对驱动器的元件定义 以便技术人员根据实际的需要对 总线进行优化 9 2 2 3 CAN 报文帧类型格式 CAN 通信协议 2 0A 规定了四种不同的帧格式 数据帧 远程帧 出错帧和超载帧 数据帧用于传输数据使用 远程帧能够实现请求数据 超载帧实现在扩展帧序列的延迟时 间 当局部发生出错条件后将会出现一个全局信号 这个就是出错帧产生的 10 CAN2 0B 中 根据其标识符的长度不同而进行两种不同的帧格式分类 11 位标识符 的帧是标准帧 29 位的帧叫做扩展帧 如图 2 2 所示 图 2 2 扩展帧的组成 2 3 本章小结 本章主要阐述了 CAN 总线方面的相关技术 先对 CAN 总线相关技术进行一个基本 的概述以及对 CAN 通讯总线技术基本的特点进行介绍 紧接着详细描述了 CAN 总线技 术规范 主要分为 CAN 总线的基本概念说明 CAN 总线技术的分层结构和 CAN 总线报 文帧类型格式这三个方面 通过对本章理论知识的学习 对 CAN 总线技术的相关理论知 识有了充分地理解 为接下来论文的研究和设计提供了理论依据 6 3 系统的硬件设计 3 1 汽车座椅加热系统的总体设计 在进行系统的硬件选择时 应当在满足所需的性能要求外 更应该遵循稳定性高 可靠性强 运算速度快 精度高和功耗低等原则 能够通过按键方便快捷地控制座椅温 度度数 能够自动加热到所设定的温度并且保持 更要有加热保护功能等性能要求 11 总体设计由中央节点 副驾驶座椅控制节点和后排座椅节点组成 它们之间通过 CAN 总线来完成信息的交互与实现相应的功能 中央节点由三个开关 压力感应器 加 热片 LED 数码管 温度传感器 单片机 控制器和驱动器组成 副驾驶节点由压力传 感器 加热片 LED 数码管 单片机 键盘 开关 温度传感器 CAN 控制器 CAN 驱 动器组成 后排座椅节点所连接元件与副驾驶节点所连元件一样 中央节点设置三个开 关的目的是为了让驾驶员不仅能控制驾驶座椅 更能够控制副驾驶与后排座椅温度的开 启与关闭 总体设计图如图 3 1 所示 图 3 1 总体设计图 7 3 2 单片机的选择 在满足功能需求的条件下 并且系统应具有体积小 成本低和高精度等要求下 选 择使用 AT89C51 单片机 AT89C51 是一款低电压高性能的单片机 片内有可反复擦写的 Flash 只读程序存储器和随机存取数据存储器 12 其主要性能参数如下 完全兼容与 51 单片机系列指令系统 可以重复擦写的 4K 字节 Flash 存储器 1000 次擦写周期 全静态操作 0HZ 24HZ 三级加密程序存储器 128 8 字节内部 RAM 32 个可编程 I O 口线 6 个中断源 可编程串行 UART 通道 低功耗空闲和掉电模式 引脚功能说明 图 3 2 AT89C51 引脚 VCC 电源电压 GND 地 P0 口 一个 8 位双向开路每脚可吸收 8TTL 门电流 I O 口 管脚首次写入 1 时 定义 为高阻输入 P1 口 具有上拉电阻功能的 8 位双向 I O 口 其被内部上拉表示输入 被外部下拉 表示输出 P2 口 与 P1 口有类似的功能 具有上拉电阻功能的 8 位双向 I O 口 其被内部上拉 表示输入 被外部下拉表示输出 但具有作为外部程序存储器进行选取时 其输出高八 位的地址 在给出地址 1 时 利用内部上拉优势 对外部存储器进行读写 输出特殊存 储器的功能内容 P3 口 具有上拉电阻功能的 8 位双向 I O 口 其被内部上拉表示输入 被外部下拉 表示输出 P3 口不仅仅是一般的 I O 口 它还具有口管脚备选功能 P3 0 RXD 串行的输入口 P3 1 TXD 串行的输出口 P3 2 INTO 外部中断 0 P3 3 INT1 外部中断 1 P3 4 TO 计时器 0 外部输入 P3 5 T1 计时器 1 外部输入 8 P3 6 WR 存储器外部数据写选通 R3 7 RD 存储器外部数据写选通 P3 口同时为闪烁编程和编程校验接收一些控制信号 RST 复位输入 当振荡器复位器件时 要保持 RST 脚两个机器周期的高电平时间 ALE PROG 外部访问存储器被 ALE 访问时 地址锁存允许输出的电平锁存地址的 低位字节 PSEN 外部程序存储器的选通信号 EA VPP 当 EA 保持低电平时 则在此期间外部程序存储器不管是否有内部程序存 储器 XTAL1 反向振荡放大器的输入管脚和内部时钟工作电路的输入功能引脚 XTAL2 反向振荡器的输出管脚 3 3 温度传感器的选择 由于座椅加热系统有对座椅温度进行即时测温要求 所以温度测量是必要的功能 要想实现测温功能方法有很多种 在设计选择过程中 人们多使用数字芯片和热敏电阻 由于热敏电阻在采集温度后 需要将温度变化的电压或电流进行 A D 转换 该过程需要 A D 转换电路 相对数字芯片较为麻烦 所以本文选择使用 DS18B20 传感器 DS18B20 测量温度后输出信号数字化 方便单片机处理与控制 该传感器具有小巧简单 只有三 个引脚和电路设计简单等优点 通常来说 DS18B20 传感器不需要外界给它供电 它可以 通过 I O 引脚上 偷 能量 但是为了保证在动态周期时能获得足够的电流 所以使用 VCC 外接供电 温度传感器的信号线与单片机相连来实现即时温度的采集 DS18B20 与 单片机连接如图 3 3 所示 U1 89C51 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 RST 9 RXD 10 TXD 11 INT0 12 INT1 13 T0 14 T1 15 WR 16 RD 17 XTAL2 18 XTAL1 19 GND 20 P2 0 21 P2 1 22 P2 2 23 P2 3 24 P2 4 25 P2 5 26 P2 6 27 P2 7 28 PSEN 29 ALE PROG 30 EA VPP 31 P0 7 32 P0 6 33 P0 5 34 P0 4 35 P0 3 36 P0 2 37 P0 1 38 P0 0 39 VCC 40 R1 5k U2 DS18B20 VCC DQ GND VCC 12V 图 3 3 温度采集电路接口图 9 3 4 CAN 总线控制器的选择 市面上的 CAN 控制器有 MCP510 和 SJA1000 两种 还有的就是直接内嵌入单片机内 的 CAN 控制器 由于之前选定了 AT89C51 单片机 它并不没有 CAN 控制器 所以这里 要选择一个单独工作的控制器 上述两类控制器中 MCP510 的推出时间要晚于 SJA1000 故其在性能上要优于 SJA1000 但是要比 SJA1000 要复杂 另外座椅加热控制 系统的要求也不是很高 SJA1000 就能够充分满足系统的需要 13 在本文中就选择 SJA1000 这款比较简单的元件来满足系统的设计 1 SJA1000 的引脚功能介绍 CLKOUT 当单片机需要脉冲来工作是除了可以外接一个时钟产生器也可以连接这 个 CLKOUT 引脚 这个引脚脉冲是由 SJA1000 内部自带的振荡器产生 Vss1 接地 MODE 该引脚是控制器工作模式的选取引脚 高电平为 Intel 模式 能够允许对 其读写操作 低就为 Motorola 模式 能够允许对其写操作 VDD3 输出驱动的电源 Vss3 输出驱动器接地 VDD2 输入比较器的电源源 Vss2 输入比较器的接地端 VDD1 逻辑电路的 5V 电源 因为有些引脚与单片机引脚功能重复故不重复介绍 2 SJA1000 的内部结构和引脚定义 其功能模块由振荡模块 位流处理器模块 验收滤波模块 位时序逻辑模块 错误 管理辑模块 错误管理辑模块 复位模块 接口管理逻逻辑模块 发选缓冲器模块等组 成 SJA1000 内部结构图如图 3 4 所示 10 图 3 4 SJA1000 内部结构 3 SJA1000 引脚图如图 3 5 所示 图 3 5 SJA1000 引脚 11 4 SJA1000 的模块结构 图 3 6 为 SJA1000 模块结构图 其功能如下 图 3 6 SJA1000 模块结构 3 5 CAN 总线驱动器的选择 驱动器是把控制器的发送信号通过自身的转换变为 CAN 物理层的标准信号 实现放 大传输到总线上实行通信 总线接收到的信号不能直接被控制的电平信号 需要通过驱 动器进行转换 14 本次设计选用 PAC82C250 驱动器 具有以下特性 完全符合 ISO11898 标准 高速率 最高达 1Mb s 具有抗汽车环境中的瞬间干扰 保护总线能力 斜率控制 降低射频干扰 RFI 差分接收器 抗宽范围的共模干扰 抗电磁干扰 EMI 热保护 防止电池和地之间发生短路 低电流待机模式 未上电的节点对总线无影响 可连接 110 个节点 可适应 40 125 的环境温度 1 82C250 的功能框图如图 3 7 所示 12 图 3 7 82C250 的功能框图 2 82C250 引脚图如图 3 8 所示 图 3 8 82C250 引脚图 3 82C250 的功能叙述 82C250 有高速 斜率和准备三种模式 RS 引脚能够进行模式的控制 13 3 6 CAN 总线与单片机连接电路设计 R5 390 C2 100mF R6 390 U1 82C250 TXD 1 RXD 2 VREF 3 VCC 4 CANH 5 CANL 6 RS 7 GND 8 VDD 12V U3 AT89C51 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2021 22 23 24 25 26 27 INT0 ALE WR RD P2 7 P2 6 P2 5 P2 4 P1 4 P1 3 P1 2 P1 1 P1 0 U4 6N137 IN VDD VCC EN OUT GND U5 6N137 IN VDD VCCEN OUT GND R1 390 R2 390 R3 6 2k R4 4 7 C1 100mF VCC 12V C3 100mF R7 47k LED1 LED2 C4 30pF C5 30pF U2 SAJ1000 AD0 1 AD1 2 AD2 3 AD3 4 AD4 5 AD5 6 AD6 7 AD7 8 CS 9 RD 10 WR 11 ALE 12 INT 13 CLOCK 14 VSS3 15 VSS2 16 VSS1 17 VDD3 18 VDD2 19 VDD1 20 MODE 21 CLKOUT 22 RX1 23 RX0 24 TX1 25 TX0 26 XTAL2 27 XTAL1 28 图 3 9 CAN 总线与单片机连接图 CAN 总线硬件设计包括三个部分 SJA1000 与单片机的连接 CAN 控制 SJA1000 与 驱动器 82C250 连接及其它外围电路 82C250 外围电路 CAN 总线与单片机并不是直接 相连 而是通过 CAN 控制器与 CAN 驱动器来解决繁杂的协议规范 图 3 9 由 AT89C51 单片机 SJA1000 控制器 82C250 收发器和高速光电耦合器 6N137 组成 AT89C51 负责 CAN 控制器的初始化 进而驱动器 82C250 将控制器发送的信号转变为符合 CAN 总线物 理标准的信号 进行放大 传输 且将总线上接收到的信号转变为控制器所能接收到的 电平信号 15 SJA1000 的 AD0 AD4 分别与单片机的 P1 0 P1 4 口相连 AD5 AD7 分别与 P2 4 P2 6 相连 CS 连接到 P2 7 SJA1000 的 RD WR ALE 分别与 AT89C51 的 RD WR ALE 引脚相连 由于车载设备繁多 CAN 总线所处的环境必然存在各种干扰 所以为了增强 CAN 总 线节点的抗干扰能力 其控制器不是与驱动器直接相连 而是通过高速光耦后在而连接 到驱动器上 这样便能达到电气分离的效果 控制器和 CAN 也不是直接相连 而是接了 瞬变抑制二极管和电容滤波 实现过压保护和滤除高频干扰等功能 16 3 7 显示器的电路设计 1 数码管结构与工作原理 数码管本质上来说 就是把一个个分散的 LED 灯按照一定的形状排列起来组成特定 的字符 市面上的数码管都可以归结为共阴极数码管和共阳极数码管 八段数码管的结 14 构从图 3 10 可以清晰地看懂 它将 7 个条型 LED 摆成 8 的形状 在右下角添加了一个 小数点 DP 结构图解释了共阴极和共阳极的区别 共阴极将每个 LED 的阴极连接在一起 接到低电平上 共阳极则是将 LED 的共阳极接到高电平上 图 3 10 LED 数码管结构图 通过单片机引脚输出高低电平 可使数码管显示对应的数字和字母 这种使数码管 显示字形的数据称为字形码 又称选段码 通常把公共端叫做 位选端 因为一个八段的 数码管代表一位 把从 a 到 DP 的每一端称为 字选端 它决定了哪一个 LED 亮 这样 通过不同的组合就能显示出 0 9 的数字 数码管的操作是先选位再选字 共阴极数码管 连单片机电路时 要想显示 1 这个数字 则需要 b c 这两个显示段发光 2 数码管电路设计 本次设计使用 2 个共阴极数码管作为显示电路的温度显示 由于加热座椅不需要精 确到小数点 所以仅使用两个数码管用于显示整点温度 2 位数码管的 a b c d e f g dp 线分别与 AT89C51 的 P00 P07 口相连 2 位数码管的 CA 分 别与单片机 P2 0 和 P2 1 口相连接 只要 P2 0 和 P2 1 中任意一位输出低电平 则选中与 该位相连的数码管 数码管与单片机硬件接口如图 3 11 所示 U1 89C51 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 RST 9 RXD 10 TXD 11 INT0 12 INT1 13 T0 14 T1 15 WR 16 RD 17 XTAL2 18 XTAL1 19 GND 20 P2 0 21 P2 1 22 P2 2 23 P2 3 24 P2 4 25 P2 5 26 P2 6 27 P2 7 28 PSEN 29 ALE PROG 30 EA VPP 31 P0 7 32 P0 6 33 P0 5 34 P0 4 35 P0 3 36 P0 2 37 P0 1 38 P0 0 39 VCC 40 U2 A B C D E F G CA H U3 A B C D E F G CA H R1 10k RPACK 8 图 3 11 数码管与单片机硬件接口图 15 3 8 压力传感器功能模块设计 压力传感器的使用目的是通过检测到压力来快捷地启动系统 压力传感器功能模块 由两部分组成 即压力传感器和 A D 转换器组成 本设计选用的压力传感器为硅压阻式 压力传感器 A D 转换器选择型号为 ADC0832 的转换器 1 硅压阻式压力传感器 硅压阻式压力传感器是由四个分散等值的电阻组成 通过连接成电桥的方式 来实 现电与力之间转换的感性元器件 当外界压力作用传感器上时 电桥会失衡 从而对电 桥施加恒流或恒压的激励电源 从而得到该压力与输出电压的正比关系 进而通过计算 便能实现测压的功能 2 ADC0832 模数转换器 ADC0832 是一种 8 位分辨率 双通道的 A D 转换芯片 它体积小 兼容性强 性价 比高且具有较高的普及率 其引脚如图 3 12 所示 图 3 12 AC0832 引脚图 ADC0832 各引脚对应的功能如下 CS 片选使能 低电平芯片使能 CH0 输入模拟通道 0 CH1 输入模拟通道 1 GND 接地 DI 选择通道控制数据的信号输入 DO 数据的信号输出和转换数据输出 CLK 时钟的输入 Vcc Vref 电源的输入 3 压力传感器模块与单片机的接口电路设计 ADC0832 灵活的串行接口 使得其能与大多数微计算机和微处理器很容易地进行接 口连接 压力传感器模块与单片机的接口电路如图 3 13 所示 AT89C51 配置为串行接口方式 0 工作模式 其信号读入端与单片机的 P1 7 相连 信 号读出端与单片机的 P2 3 口相连 16 4 压力传感器与单片机连接图如图 3 13 所示 U2 89C51 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 RST 9 RXD 10 TXD 11 INT0 12 INT1 13 T0 14 T1 15 WR 16 RD 17 XTAL2 18 XTAL1 19 GND 20 P2 0 21 P2 1 22 P2 2 23 P2 3 24 P2 4 25 P2 5 26 P2 6 27 P2 7 28 PSEN 29 ALE PROG 30 EA VPP 31 P0 7 32 P0 6 33 P0 5 34 P0 4 35 P0 3 36 P0 2 37 P0 1 38 P0 0 39 VCC 40 R1 3k R2 3k R3 3k R4 3k R5 5 1k C1 1uF VCC VCC 12V U1 ADC0832 CS 1 CH0 2 CH1 3 GND 4 DI 5 DO 6 CLK 7 VCC ref 8 图 3 13 压力传感器模块与单片机连接图 3 9 开关和键盘电路设计 本次设计中 为了能够实现对座椅温度的控制 所以在系统中加入了由三对按键构 成的独立键盘 即按键 J1 J2 J3 J4 J5 J6 按键的一端分别与单片机 AT89C51 的 P1 6 P1 5 P1 4 P1 3 P1 2 P1 1 相连 另一端与地相连 当按下任意一个键时 P1 口读取低电平有效 系统通电之后 键盘扫描子程序启动 通过查询的方式确定全部按 键的值 从而完成温度初始值的设定 每按下 J1 J3 J5 温度在初设定的温度值上加一 每按下 J2 J4 J6 温度在初设定的温度值上减一 J1 和 J2 控制驾驶员的温度量 J3 和 J4 控制副驾驶的温度量 J5 和 J6 控制后排座椅的温度量 键盘与单片机接口连接图如图 3 14 所示 开关是非常常见的人机交互手段 开关的构造可能千差万别 但是实质上都可以看 作是两个端点的器件 要么闭合 要么打开 本次设计在中央节点布置三个开关 通过 这三个开关来控制各节点系统的开启与关闭 值得注意的是 在开关的操作中需要有消 抖功能 所谓的消抖就是人在开启和关闭开关时 由于机械触点有一定的弹性 开关闭 合或是断开时 信号不会马上稳定地接通或是立刻断开 而是在闭合及断开的瞬间均出 现一连串的抖动 抖动时间长短由开关的机械特性决定 一般为 5 10s 开关抖动如果不 经过处理就可能引起单片机误判 所以在消抖方面使用硬件消抖 可以从物理层面上将 非理想的开关操作转换为无抖动的操作 本次开关消抖设计使用专用的芯片 MAX6816 来 17 实现 MAX6816 是美信公司出品的 CMOS 开关去抖芯片 小巧的 SOT SSOP 表贴封装 非常适用于小的开关 J9 控制中央节点加热功能的开启与关闭 J10 控制副驾驶节点加热 功能的开启与关闭 J11 控制后排座椅节点加热功能的开启与关闭 开关与单片机接口连 接图如图 3 14 所示 J1 U1 89C51 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 RST 9 RXD 10 TXD 11 INT0 12 INT1 13 T0 14 T1 15 WR 16 RD 17 XTAL2 18 XTAL1 19 GND 20 P2 0 21 P2 1 22 P2 2 23 P2 3 24 P2 4 25 P2 5 26 P2 6 27 P2 7 28 PSEN 29 ALE PROG 30 EA VPP 31 P0 7 32 P0 6 33 P0 5 34 P0 4 35 P0 3 36 P0 2 37 P0 1 38 P0 0 39 VCC 40 J2 VCC J4 J3 J6 J5 U2 MAX6816 IN OUT GND VCC U3 MAX6816 IN OUT GND VCC U4 MAX6816 IN OUT GND VCC J9 J10 J11 图 3 14 键盘与单片机连接图 3 10 最小系统电路 单片机的最小系统是基于单片机测控系统的核心部分 是整个系统能否正常运行的 关键 随着单片机技术的不断发展 最小系统的定义也在不断变化 2 按照字面理解 单 片机最小系统是指使单片机上电之后能够正常自动运行 预先由用户烧写在程序存储器 中的代码的最小硬件构成 因此一般的单片机最小系统通常由以下几个部分组成 单片机最小系统 电源 复位电路 时钟电路 单片机 复位电路的功能可以理解为一个 开始 信号 这个信号的告诉单片机要开始运行了 单片机在接收到复位信号时 会无条件地重新初始化系统 从内置代码的第一行开始运 行 所以当系统跑死机的时候 我们经常复位一下让系统重新正常运行 看似很简单的 功能 如果在设计的时候没有认真考虑 有时就会出现很大的问题 4 以下几点是需要注 意的地方 1 51 单片机是高电平复位 即引脚 RESET 出现 2 个周期以上的高电平时 单片 18 机开始复位 如果引脚 RESET 一直是高电平 则单片机循环复位 2 复位高电平的脉冲宽度应大于 2 个机器周期 在 51 单片机中 一个机器周期 等于 12 个时钟振荡周期 因为选择的是晶振 12MHz 时候 2 个机器周期的时间就是 2 微 秒 在实际的应用中 考虑到各种非理想因素 一般的复位时间要留有余量 3 最简单的复位电路就是阻容复位 RC 乘积为电路的时间常数 通过合理选择 RC 能够使上电复位时间满足要求 所有数字电路都必须有时钟信号 它就像一个时刻 表 指挥着这个复杂的系统有条不紊地运行 对于 51 单片机来说有两种时钟获得方式 内部振荡和外部振荡 本文选择使用内部振荡的方式 它仅需要一个晶体和两个电容就 能完成时钟电路的产生 如图 3 15 所示 单片机内部集成了高增益反相放大器 这样与 外面的晶体连接后形成自激振荡电路以产生时钟脉冲信号 4 系统最小电路图如图 3 15 所示 J1 Key Space U1 89C51 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 RST 9 RXD 10 TXD 11 INT0 12 INT1 13 T0 14 T1 15 WR 16 RD 17 XTAL2 18 XTAL1 19 GND 20 P2 0 21 P2 1 22 P2 2 23 P2 3 24 P2 4 25 P2 5 26 P2 6 27 P2 7 28 PSEN 29 ALE PROG 30 EA VPP 31 P0 7 32 P0 6 33 P0 5 34 P0 4 35 P0 3 36 P0 2 37 P0 1 38 P0 0 39 VCC 40 VCC R1 8 2k C1 10pF X1 12MHz VCC 1 R2 8 2k VCC 12V VCC 2 0 C2 20pF C3 20pF 0 3 4 图 3 15 最小系统电路图 每按下 J1 开关系统复位一次 电容 C1 10uF C2 C3 20PF 电阻 R1 R2 为 8 2k 晶振频率为 12MHz 3 11 系统功能模块设计 1 加热片的选择 19 加热片是加热系统的核心元件 在选择加热片时应当考虑加热片的发热功率不能过 高 开关开启后升温要迅速 能够适应乘客长时间的挤压 有合适的尺寸使座椅加热更 全面 综合以上因素 选择使用 15cm 宽为 10cm 的 12V 防水碳纤维加热片 加热片如图 3 16 所示 图 3 16 加热片实物图 发热片具体参数如下 尺寸 150mm 100mm 适用电压 功率 12V 7 5W 碳纤维工艺 电热转换热效率高 升温速度快 可以发生曲面变形 不轻易断 安全性高 使用寿命长 短时间内加热到 40 度座椅并保持恒温 2 电源的选择 本系统的加热片的电源供应由汽车电瓶提供 3 达林顿 ULN2803 加热片的适用电压要比单片机的电路电压高 7V 达林顿输入 TTL 信号为 5V 时 输 出的电压能够满足加热片的需求 最大电流可达 500mA 工作温度范围在 0 度到 70 度 之间 其内部功能结构和引脚图如图 3 17 和 3 18 所示 20 图 3 17 ULN2803 内部结构图 图 3 18 ULN2803 引脚图 其引脚定义如下 1 8 引脚 输入端 11 18 引脚 输出端 9 引脚 接地 10 引脚 电源 3 系统加热功能模块电路设计 U1 89C51 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 RST 9 RXD 10 TXD 11 INT0 12 INT1 13 T0 14 T1 15 WR 16 RD 17 XTAL2 18 XTAL1 19 GND 20 P2 0 21 P2 1 22 P2 2 23 P2 3 24 P2 4 25 P2 5 26 P2 6 27 P2 7 28 PSEN 29 ALE PROG 30 EA VPP 31 P0 7 32 P0 6 33 P0 5 34 P0 4 35 P0 3 36 P0 2 37 P0 1 38 P0 0 39 VCC 40 VCC R1 100 U2 ULN2803 INT1 1 INT2 2 INT3 3 INT4 4 INT5 5 INT6 6 INT7 7 GND 8 COM 9 OUT7 10 OUT6 11 OUT5 12 OUT4 13 OUT3 14 OUT2 15 OUT1 16 R2 100 R3 100 VCC 12V R4 100 VCC 12V VCC 12V VCC 12V VCC 12V 图 3 19 加热功能图 加热片功能的实现 当预设温度高于实时温度时 单片机 P2 2 口输出高电平信号到 达林顿管 随后对加热片进行驱动 当座椅温度达到预设温度时 加热片停止工作 21 3 12 本章小结 本章主要对汽车加热座椅系统进行了硬件结构的设计 首先根据自己的 CAN 总线各 节点的分布思路进行总体设计 然后对主要模块进行选择 包括 单片机 温度传感器 CAN 控制器 CAN 驱动器 显示器 压力传感器和键盘 紧接着使用 Multisim 绘图工具 根据所选的器件并结合各项功能指标要求 对汽车加热座椅的电路进行设计 主要包括 温度传感器与单片机接口 CAN 总线通信硬件接口 显示器与单片机接口 压力传感器 模块接口 开关键盘电路 系统最小电路和加热功能电路 22 4 系统的软件设计 4 1 软件设计内容与开发测试工具简介 4 1 1 软件设计内容简介 基于 CAN 总线的汽车功能节点的软件设计包括两个部分 一个是 CAN 总线通信模 块的软件设计 另一个是功能实现模块的软件设计 17 CAN 节点的初始化 报文发送和报文接收是通信模块的软件设计 熟悉掌握程序设 计后就能够编写出通信节点的应用程序 如果 CAN 总线系统所处的环境设备太过于繁多 还需要对 CAN 的错误处理 接收滤波 比特率进行了解 功能模块的软件设计是使用 C 语言对单片机进行程序的设计和烧写 最终单片机对 功能模块的元件进行控制 编程工作由分析问题 确定算法 画程序流程图 编写程序组成 4 1 2 开发测试工具简介 1 CAN 开发软件和测试工具 CAN 总线的系统开发需要的软件根据具体的内容而定 单片机的开发是由硬件和软 件设计组成 在我们已经完成硬件的设计之后 我们就要对软件部分进行设计 其中汇 编语言和 C 语言是两种比较流行的语言 汇编语言是直接与机器进行接触的语言 与机 器语言差不多 虽然现在流行使用汇编语言 但因为自己的课程原因 选择使用较为简 单的 C 语言进行编写程序 17 现在的测试环境较多 选择使用较为流行的 Keil 2 程序设计语言介绍 程序设计可以由三种语言实现 它们是机器语言 汇编语言还有高级语言 机器语 言也就是 0 和 1 组成的代码 汇编语言是采用英文缩写的指令 与机器语言差不多 能 直接对硬件进行操作 高级语言也就是机器语言和汇编语言之外的语言 本文选择使用 C 语言 4 2 CAN 总线节点的软件设计 4 2 1 初始化过程设计 1 SJA1000 初始化流程 SIA1000 的初始化流程图如图 4 1 所示 23 图 4 1 SJA1000 的初始化流程图 2 SJA1000 初始化过程 当系统开始 首先 CAN 控制器 SJA1000 进入复位模式 选择二 PeliCAN 模式 开 放中断 再设置验收代码寄存器和验收屏蔽寄存器 同时设置总线定时器为 400Kbps 波 特率和输出控制寄存器位正常输出 然后返回工作状态 SJA1000 初始化完毕 4 2 2 发送过程设计 1 SJA1000 发送流程 SJA1000 的发送流程图如图 4 2 所示 24 图 4 2 SJA1000 的发送流程图 2 SJA1000 的发送过程 发送开始时 首先读入 SJA1000 的状态 然后判断是否正在接收 不是则再进入读 取 SJA1000 状态 是则等待 待接收完成后继续判断是否上次发送已经成功 不是则再 进入读入 SJA1000 状态 是则等待 然后判断发送缓冲器是否锁定 不是则需要设置 TX 标准帧报文 再设置 ID 数据报 再装入实际温度值 然后启动发送 最后返回 4 2 3 接收过程设计 1 SJA1000 的

温馨提示

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

评论

0/150

提交评论