STM32单片机的MODBUS通讯器毕业论文.doc_第1页
STM32单片机的MODBUS通讯器毕业论文.doc_第2页
STM32单片机的MODBUS通讯器毕业论文.doc_第3页
STM32单片机的MODBUS通讯器毕业论文.doc_第4页
STM32单片机的MODBUS通讯器毕业论文.doc_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

STM32 单片机的单片机的 MODBUS 通讯器毕业论文通讯器毕业论文 目目 录录 摘摘 要要 I ABSTRACT II 第第 1 章章 绪绪 论论1 1 1 概述 1 1 2 目的与意义 2 1 3 发展现状和前景展望 3 1 4 研究的主要内容和步骤 4 1 4 1 主要内容 4 1 4 2 设计的步骤 4 第第 2 章章 系统设计方案系统设计方案 6 2 1 设计方案选择 6 2 2 芯片选择 6 2 3 软件方案设计 7 第第 3 章章 硬件电路设计硬件电路设计 9 3 1 主机 CPU 模块 9 3 2 电源模块 10 3 3 液晶显示模块 10 2 3 4 存储模块 12 3 5 程序调试下载模块 12 3 6 串口通讯模块 13 3 7 从机主控模块 14 3 8 LED 灯显示模块 15 3 9 温度检测模块 15 第第 4 章章 软件设计软件设计 17 4 1 串口通信模块 17 4 2 数据帧处理模块 17 4 3 参数保存模块 19 4 4 液晶显示模块 20 第第 5 章章 系统调试系统调试 23 5 1 硬件调试 23 5 1 1 主机电路板调试 23 5 1 2 从机电路板调试 24 5 2 软件件调试 24 5 2 1 调试平台 24 5 2 2 调试问题 25 5 3 调试结果 26 参考文献参考文献 28 3 致致 谢谢 29 附录附录 1 主机硬件原理图主机硬件原理图 30 附录附录 2 从机硬件原理图从机硬件原理图 31 附录附录 3 主机主机 PCB 实物图实物图32 附录附录 4 从机从机 PCB 实物图实物图33 附录附录 5 主机通讯程序代码主机通讯程序代码34 附录附录 6 从机通讯程序代码从机通讯程序代码38 基于单片机的 MODBUS 通讯器设计 1 第第 1 章章 绪绪 论论 1 1 概述概述 Modbus 是由 Modicon 在 1979 年发明的 是全球第一个真正用于工业现场的总线 协议 为更好地普及和推动 Modbus 在基于以太网上的分布式应用 目前施耐德公司已 将 Modbus 协议的所有权移交给 IDA 组织 并成立了 Modbus IDA 组织 为 Modbus 今 后的发展奠定了基础 Modbus 协议是应用于电子控制器上的一种通用语言 通过此协议 控制器相互之 间 控制器经由网络和其它设备之间通讯 它已经成为一种通用工业标准 有了它 不同厂商生产的控制设备可以连成工业网络 进行集中监控 此协议定义了一个控制 器能认识使用的消息结构 而不管它们是经过何种网络进行通讯的 它描述了控制器 请求访问其它设备的过程 如何回应来自其它设备的请求 以及怎样侦测错误并记录 它制定了消息域格局和内容的公共格式 当在 Modbus 网络上通信时 此协议决定了每个控制器须要知道它们的设备地址 识别按地址发来的消息 决定要产生何种行动 如果需要回应 控制器将生成反馈信 息并用 Modbus 协议发出 Modbus 具有以下几个特点 1 标准 开放 用户可以免费 放心地使用 Modbus 协议 不需要交纳许可证费 也不会侵犯知识产权 目前 支持 Modbus 的厂家超过 400 家 支持 Modbus 的产品超 过 600 种 2 Modbus 可以支持多种电气接口 如 RS 232 RS 485 等 还可以在各种介质上 传送 如双绞线 光纤 无线等 3 Modbus 的帧格式简单 紧凑 通俗易懂 用户使用容易 厂商开发简单 在大多数工厂里 现场仪表采用单独的控制室直连对绞线电缆连接到控制系统 当仪表设备被连接到一种分散式 I O 系统的时候 可以增加更多的现场设备 但是仅 仅需要一根对绞线电缆就可以把所有数据传送到 MODBUS 主站 以 MODBUS 网络的 方式组网连接的时候 把现场设备连接到一个过程控制系统 PLC 或是工业计算机系 统 整个工厂的连接都能够从对绞线电缆控制室直连的方式转变成为 MODBUS 连接方 式 基于单片机的 MODBUS 通讯器设计 2 到目前为止 我们仅仅涉及到了简单的 MODBUS 数据采集系统 还有一种方案也 是可能的 那就是把控制设备安装在现场 然后通过 MODBUS 使其与中央控制系统进 行通讯 它也可以被编程用来执行控制功能 例如 PID 控制 ON OFF 控制 现场报 警 诊断以及报警监视等 另一种 智能化 并且具有控制能力的 MODBUS 设备是来自于 Moore Industries 公 司的 MDS 方程站 这是一种多功能控制器 它能够执行很多种类型的控制功能和运算 有了 MDS 方程站 在实现简单控制任务 多变量控制任务 例如监视和控制一个蒸煮 器里的纸浆液位或者使用来自多个流量 温度和压力变送器的输入信号实现质量流量 计算 时就不再需要 PLC 或者大型控制器了 最多可以有 127 个 MDS 模件被安装在 一个 MODBUS 网络上面来实现对工厂的控制或是采集整个工厂的信号 PID 比例 积分和微分 控制器最初都是单机独立运行的无通讯控制器 由于 PLC 和 DCS 都已经智能化 因此现在 PID 控制器也智能化了 今天 许多终端用户依 然青睐那些直接读出和编程简单的单回路控制器 诸如 MODBUS 等数字化通讯协议能 够给这些一直单机运行的仪表注入一些新的活力 通过对这些控制器进行多分支网络 连接 可以创造一个自己的小型分散控制系统 现代的控制领域持续不断的产生和应用诸如现场总线和网状网络等先进概念 MODBUS 的简单性以及它的便于在许多通讯媒介上实施应用的特点一直使它受到最广 泛的支持 并且成为全球应用最广泛的工业协议 当使用现有老式控制系统的用户发 现自己需要扩充现场仪表或者增加远程控制器的时候 他们都会采用 MODBUS 作为一 个能够解决复杂问题的简单解决方案 用户试图把一个外来设备连接到控制系统里面 使用这个设备的 MODBUS 接口被证明是最为容易的办法 虽然 MODBUS 已经是最为 古老的通讯方法之一 由于非常多的原因它也是最普及的通讯方法 MODBUS 便于使 用 非常可靠 价格低廉并且可以连接到控制工业领域几乎所有的传感器和控制设备 MODBUS 广泛的应用于程序自动化 工业自动化 智能建筑 输配电通讯 协议 智能电表 车用通讯 1 2 目的与意义目的与意义 在现代化工业控制中 由于被控对象 测控装置等物理设备的地域分散性 以及控 制与监控等任务对实时性的要求 不同设备之间现场交互性信息的传递越来越多 但传 基于单片机的 MODBUS 通讯器设计 3 统的工业控制系统软件存在着一些问题 不具备开放性 各个部分的联系过于紧密 使系统过于复杂 这样使系统的更新 扩展和升级变得非常困难 对系统任何一部分 的修改都有可能对其它部分造成影响 从而导致大量且烦琐的软件和硬件的修改 传 统的工业控制软件开发中出现的另一个主要问题是软件的重复开发 软件不能够复用 资源不能共享 造成大量的人力与物力资源的浪费 虽然使用高级语言函数库让我们 可以利用面向对象的继承等方法大量重用源代码 但这些复用只是对源代码级的复用 而不是对可执行文件级的复用 由于传统工业控制系统的带来的不便 造成形成了大量的 信息孤岛 但是 对 于工业控制而言 各站点之间不是孤立的 它们必须互相配合 协调才能保证产品质 量和实现连续生产 这就需要各站点能互通讯息 另外 上级管理网也需要与子站交 互数据 以实现全局的监控和优化 然而 子站是采用不同开发平台 不同通讯协议 组成的结构系统 可能由不同的厂家和个体开发 要为每种协议写一个转换接口或驱 动是比较繁琐的 特别是在站点和协议较多的时候 因此 怎样有效集成数据 避免 信息孤岛的出现 是工业控制领域中常遇到难点问题之一 比较好的方法是各站点都采用标准协议进行数据通讯 而不必为每一种协议开发 一个通讯接口 目前这方面的协议比较多 MODBUS 就是其中的一种 MODBUS 是 一种全开放 免费提供 非常容易理解和实施的协议 从 70 年代诞生以来 在制造业 电 力 水电 冶金 矿山 交通 基础设施的工业领域中的数据采集和过程控制得到了 广泛应用 形成了一种事实上的工业标准 同时 随着单片机技术的迅速发展 单片 机技术已逐步进入工业自动化领域 单片机以体积小 质量轻 价格便宜 应用方便等 优势 它允许 MODBUS 协议与单片机 232 接口结合 在单片机串口中嵌入 MODBUS 信息帧 成为 MODBUS RTU 或 MODBUS ASCII 在工业自动化领域中 具有很高的性 能价格比 是一种真正开放的理想解决方案 1 3 发展现状和前景展望发展现状和前景展望 目前在全球范围内已经安装了 MODBUS 串行设备 基于 MODBUS 和单片机技术 的 透明就绪 的广泛应用可以被归类到三大市场 能源与基础设施 工业 以及建筑 行业 基于单片机的 MODBUS 通讯器设计 4 在能源与基础设施市场 机场 隧道 数字通讯 电信 水处理 油气 能 源等行业大大得益于 透明就绪 的远程控制能力 在工业市场 食品与饮料 微电子 制药 汽车等行业则高度的受益于 透明 就绪 中从 IT 系统贯通到车间层单片机的统一全局网络架构 在建筑市场 医疗机构 公用建筑 民用住宅 船舶等行业在 透明就绪 中 使用他们原有的单片机 232 网络 从而大大的降低了实施费用 1 4 研究的主要内容和步骤研究的主要内容和步骤 1 4 1 主要内容主要内容 1 查找资料 熟悉单片机的基本结构及功能 熟悉利用 STC12C5A60S2 STM32F103VET6 单片机进行通讯器的硬件设计 2 掌握 C51 语言 并完成 MODBUS 通讯程序的编写 3 构建各个模块功能 利用 Altium designer 软件画原理图及 PCB 4 购买元器件并焊接 制作通讯器 5 搭建测试平台 通讯器软硬件调试 1 4 2 设计的步骤设计的步骤 本次设计的课题是基于单片机的 MODBUS 通讯器的设计 主要的研究方法步骤如 下 1 对整个 MODBUS 通讯协议的构成 要求 应用等进行大概的了解 明确课题 的定位和所要解决的问题 2 对单片机控制的理论以及涉及到的相关知识进行系统的学习 例如 如何建立 单片机 232 通讯 如何利用电脑对单片机编程 常用的编译软件 以及通讯所要达到 的效果等等 3 选择单片机型号 经过对常用编译软件的相关了解 对单片机性能及控制方法 做简单测试 经过之前的理论学习和了解 以及参考大量文献总结前人经验 初步选 型方案选定如下 选用 STM32F103VET6 做主控单片机 4 3 寸 TFT 彩屏做界面显示 从机采用 STC12C5A60S2 做控制 主控单片机发送 MODBUS 命令给三个从机 从机 基于单片机的 MODBUS 通讯器设计 5 根据命令执行相应操作 同时从机将采集到的数据保存到单片机 RAM 单元中供主机查 询 4 根据选定的单片机型号画出对应的最小系统以及各个功能模块电路图 画出 PCB 板 搭建硬件调试环境 5 软件调试 首先利用电脑做 MODBUS 主机 分别调试主机控制板和从机控制 板 确保软硬件完美结合 6 综合调试 主机控制板与从机控制板进行 MODBUS 通讯 分别控制各个功能 块 对设计的结果进行分析和总结 基于单片机的 MODBUS 通讯器设计 6 第第 2 章章 系统设计方案系统设计方案 2 1 设计方案设计方案选择选择 方案一 采用电脑当主机 从机利用单片机与电脑通过 RS232 通讯 电脑发送 MODBUS 命令查询从机数据 从机接收命令返回相应数据 电脑工控软件刷新从机数 据 从而实现 MODBUS 通讯器功能 方案二 单片机做主机 利用显示屏作为数据显示界面 主机单片机发送 MODBUS 命令给从机 从机返回数据给主机单片机 主机控制液晶屏刷新从机数据 实现 MODBUS 通讯器功能 方案一连接简单 操作方便 只需开发从机模块与电脑通讯 只需编写从机 MODBUS 通讯协议代码 方案二利用液晶屏代替电脑显示器界面 单片机做主机 同 时开发主机与从机 需要编写主机和从机 MODBUS 通讯协议 难度偏大 权衡考虑后 方案二实用性更强 所以本系统采用方案二设计 2 2 芯片选择芯片选择 由于主机液晶显示采用 4 3 寸 TFT 触摸屏 对主机 CPU 控制器要求较高 故主机 主控芯片采用 STM32 系列的 STM32F103RBT6 芯片 从机主控芯片则有两种选择 1 STM 系列的 STM8S105K4 此芯片编程简单 单片机价格便宜 与传统 51 单 片机编程方法兼容 内部资源丰富 下载程序简单 可在线调试 但需特定下 载器 而且下载器价格昂贵 2 STC 系列的 STC12C5A60S2 此芯片编程简单 价格便宜 与传统 51 单片机 编程方法兼容 内部资源丰富 下载程序只需 RS232 接口即可将程序下载到单 片机 经济实惠 根据比较 本系统从机主控芯片采用 STC12C5A60S2 利用串口通讯芯片 基于单片机的 MODBUS 通讯器设计 7 MAX3232 与上位机连接 系统硬件结构框图如图 2 1 所示 主机 从机1从机2从机3 RXD GND TXD RXDRXDRXDTXDTXDTXDGNDGNDGND 图 2 1 系统硬件结构框图 2 3 软件方案设计软件方案设计 本系统主机基于 STM32 单片机平台 从机基于 STC 单片机平台 利用其中的 RS232 主机发送 MODBUS 命令查询从机数据 主机根据触摸屏定义的功能 下置数 据到从机寄存器 改变从机寄存器模拟量的值 然后根据 Modbus 总线协议编写相应的 程序完成其功能 另外再利用 DS18b20 测量温度 通过 Modbus 实现温度报警等功能 然后利用 4 3 寸 TFT 触摸屏实时显示通讯状态 LED 灯的状态 实时温度值 图 2 2 为软件的总体流程图 基于单片机的 MODBUS 通讯器设计 8 开始 系统初 始化 主机发送 查询命令 从机接收命 令匹配地址 地址匹配的从 机返回数据 液晶屏刷新对 应从机数据 图 2 2 软件总体流程图 基于单片机的 MODBUS 通讯器设计 9 第第 3 章章 硬件电路设计硬件电路设计 3 1 主机主机 CPU 模块模块 主机 CPU 模块采用 STM32 系列的 Cortex M3 处理器 STM32F103VET6 STM32 系列基于专为要求高性能 低成本 低功耗的嵌入式应用专门设计的 ARM Cortex M3 内核 按性能分成两个不同的系列 STM32F103 增强型 系列和 STM32F101 基本型 系列 增强型系列时钟频率达到 72MHz 是同类产品中性能最高的产品 基本型时钟 频率为 36MHz 以 16 位产品的价格得到比 16 位产品大幅提升的性能 是 16 位产品 用户的最佳选择 两个系列都内置 32K 到 128K 的闪存 不同的是 SRAM 的最大容量 和外设接口的组合 时钟频率 72MHz 时 从闪存执行代码 STM32 功耗 36mA 是 32 位市场上功耗最低的产品 相当于 0 5mA MHz STM32F103VET6 外围电路设计简单 芯片最小系统电路如图 3 1 所示 PE2 1 PE3 2 PE4 3 PE5 4 PE6 5 VBAT 6 PC13 TAMPER RTC 7 PC14 OSC32 IN 8 PC15 OSC OUT 9 VSS 5 10 VDD 5 11 OSC IN 12 OS OUT 13 NRST 14 PC0 15 PC1 16 PC2 17 PC3 18 VSSA 19 VREF 20 VREF 21 VDDA 22 PA0 WKUP 23 PA1 24 PA2 25 PA3 26 VSS 4 27 VDD 4 28 PA4 29 PA5 30 PA6 31 PA7 32 PC4 33 PC5 34 PB0 35 PB1 36 PB2 37 PE7 38 PE8 39 PE9 40 PE10 41 PE11 42 PE12 43 PE13 44 PE14 45 PE15 46 PB10 47 PB11 48 VSS 1 49 VDD 1 50 PB12 51 PB13 52 PB14 53 PB15 54 PD8 55 PD9 56 PD10 57 PD11 58 PD12 59 PD13 60 PD14 61 PD15 62 PC6 63 PC7 64 PC8 65 PC9 66 PA8 67 PA9 68 PA10 69 PA11 70 PA12 71 PA13 72 NC 73 VSS 2 74 VDD 2 75 PA14 76 PA15 77 PC10 78 PC11 79 PC12 80 PD0 81 PD1 82 PD2 83 PD3 84 PD4 85 PD5 86 PD6 87 PD7 88 PB3 89 PB4 90 PB5 91 PB6 92 PB7 93 BOOT0 94 PB8 95 PB9 96 PE0 97 PE1 98 VSS 3 99 VDD 3 100 U3STM32F103VE 12 Y1 32 768 12 Y2 8M 10pF C18 10pF C19 20pF C20 20pF C21 1M R3 GND GND GND GND OSC32 IN OSC32 OUT OSC IN OSC OUT OSC32 IN OSC32 OUT OSC IN OSC OUT VSSA VREF VREF VDDA 3V3 3V3 3V3 3V3 3V3 GND GND GND GND GND 10K R4 GND 10K R5 GND 3V3 10K R6 100nF C22 3V3 GND RESET RESET JTCK JTMS JTDI JTDO JNTRST PD14 PD15 PD0 PD1 PE7 PE8 PE9 PE10 PE11 PE12 PE13 PE14 PE15 PD8 PD9 PD10 PD4 PD5 PB12 PB13 PB14 PB15 PC7 PC8 PC9 PC10 PC11 PC12 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PA8 PA9 PA10 PA11 PA15 PD2 PD3 PD6 PD7 PD11 PD12 PD13 PB0 PB1 PB2 PB5 PB6 PB7 PB8 PB9 PB10 PB11 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PE0 PE1 PE2 PE3 PE4 PE5 PE6 PC13 D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 CS SPI2 MISO SPI2 MOSI SPI2 SCK SPI2 NSS WR RS RD BLACK LIGHT INT BUSY F CS SD CS SPI1 MISO SPI1 MOSI SPI1 SCK SPI1 NSS U2TX U2RX U1RX U1TX LED1 LED2 LED3 LED4 LED5 LED LEFT LED RIGHT WAKEUP KEY1 KEY2 KEY3 BUZZER 如图 3 1 STM32F103VET6最小系统电路 基于单片机的 MODBUS 通讯器设计 10 3 2 电源模块电源模块 主机系统供电采用 Lm7805 稳压出 5V 供给 LT1117 输入 使得输出为 3 3V 主芯 片所需的电源 电源模块原理图如图 3 2 所示 LT1117 三端可调或固定电压 3 3V 输出电流为 1A 线路调整率为 0 2 负载调整 率为 0 4 封装类型为 SOT 223 三端稳压集成电路 lm7805 常见的三端稳压集成电路有正电压输出的 lm78 系 列和负电压输出的 lm79 系列 三端 IC 是指这种稳压用的集成电路 只有三条引脚 输出 分别是输入端 接地端和输出端 OUT 3 IN 1 GND 2 U1LM7805 IN 3 GND 1 OUT 2 U2LT1117 GNDGND 10uF C2 10uF C3 9 12V GNDGNDGNDGND 10uF C1 GND 3V3VCC 3V3 GND 10uF C13 10nF C14 10nF C15 100nF C16 10uF C17 10uH L1 10uH L2 10R R1 10R R2 GND 3V3VDDAVREF VREF VSSA D1 POWER 470R R14 3V3 GND GND 9 12V 1 2 3 P4 Header 3 100nF C4 100nF C5 100nF C6 100nF C7 100nF C8 100nF C9 100nF C10 100nF C11 100nF C12 图 3 2 电源模块电路图 3 3 液晶显示模块液晶显示模块 主机系统采用 4 3 寸 TFT 液晶显示屏做界面显示 4 3 寸彩色 TFTLCD 显示模块 的内置 LCD 控制器以及显存 对 4 3 寸模块进行操作时 实际上是对 LCD 控制器的控 制寄存器 显示数据存储器进行操作 液晶显示模块及 CPU 引脚接口电路如图 3 5 所示 4 3 寸模块内部有双图层显示功能 双图层显示的模块具有两个显示图层 一个背 基于单片机的 MODBUS 通讯器设计 11 景层 一个前景层 两个图层都具备 16 位真彩的显示能力 本系统直接采用 STM32 单片机驱动液晶屏 STM32 单片机内部带有静态存储器 控制器 FSMC FSMC 模块能够与同步或异步存储器和 16 位 PC 存储器卡接口 它的主要作用是 1 将 AHB 总线传输信号转换到适当的外部设备协议 2 满足访问外部设备的时序要求 所有的外部存储器共享控制器输出的地址 数 据和控制信号 每个外部设备可以通过一个唯一的片选信号加以区分 界面显示如图 3 3 3 4 所示 图 3 3 开机界面 图 3 4 主界面 12 34 56 78 910 1112 1314 1516 1718 1920 2122 2324 2526 2728 2930 3132 P1 PD14PD15 PD0PD1 PE7PE8 PE9PE10 PE11PE12 PE13PE14 PE15PD8 PD9PD10 3V3 GND PD4PD5 PB14 PB15 PB13 PB12 RESET PD7PD11 PD13 PC9 PC10 PC11 PC12 D0D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 CSRS RD BLACK LIGHT INT BUSY F CS SD CS WR SPI2 MISO SPI2 MOSI SPI2 SCK SPI2 NSS 12 34 56 78 910 1112 1314 1516 1718 1920 2122 2324 P3 Header 12X2H PA15 PD2 PD3 PD6 PB5 PB6 PB7 PB8 PB9 PE0 PE1 PC2 PC3 PB0 PB1 PB2 PB10 PB11 PD11 PD12 PD13 PA8 PA11 TFT GND 图 3 5 TFT 液晶及 CPU 引脚接口 基于单片机的 MODBUS 通讯器设计 12 3 4 存储模块存储模块 由于主机采用 4 3 寸 TFT 触摸屏作为界面显示 像素点为 480 272 需要大量图片 数据信息 而主芯片内部 Flash 只有 512KB 最多只能存放两张图片 所以本系统采 用了外扩存储器的方法存储图片数据 图片数据存入存储芯片的固定地址 多张图片 分地址放置 CPU 只需按地读取存储器内部数据送入 TFT 显示器 即可完成所有图片 显示 节约了 CPU 内部空间 本系统存储模块采用 AT45DB161D 存储芯片 存储容量为 2M 足够存储大量图 片数据信息 模块电路图如图 3 6 所示 AT45DB161D 是一款 2 5V 或 2 7V 串行接口 的 FLASH 存储器 是各种数字语音 图像 程序代码和数据存储应用的理想选择 AT45DB161D 支持 RapidS 串行接口 适用于要求高速操作的应用 RapidS 串行接口 兼容 SPI 最高频率可达 66MHz AT45DB161D 的存储容量为 17 301 504 位 组织形 式为 4 096 页 每页 512 或 528 页 SI 1 SCK 2 RESET 3 CS 4 WP 5 VCC 6 GND 7 SO 8 U4 AT45DB161D 3V3 3V3 GND PA4 PA5 PA6PA7 SPI1 NSS SPI1 SCK SPI1 MOSISPI1 MISO 图 3 6 存储模块 3 5 程序调试下载模块程序调试下载模块 STM32 内部集成 JTAG 调试模块 JTAG Joint Test Action Group 联合测试行动小 组 是一种国际标准测试协议 IEEE 1149 1 兼容 主要用于芯片内部测试 现在多数 的高级器件都支持 JTAG 协议 如 DSP FPGA 器件等 标准的 JTAG 接口是 4 线 TMS TCK TDI TDO 分别为模式选择 时钟 数据输入和数据输出线 JTAG 编程方式是在线编程 传统生产流程中先对芯片进行预编程再装到板上因此 而改变 简化的流程为先固定器件到电路板上 再用 JTAG 编程 从而大大加快工程 进度 JTAG 接口可对 PSD 芯片内部的所有部件进行编程 具有 JTAG 口的芯片都有如下 JTAG 引脚定义 TCK 测试时钟输入 TDI 测试数据输入 数据通过 TDI 输入 JTAG 口 基于单片机的 MODBUS 通讯器设计 13 TDO 测试数据输出 数据通过 TDO 从 JTAG 口输出 TMS 测试模式选择 TMS 用来设置 JTAG 口处于某种特定的测试模式 可选引脚 TRST 测试复位 输入引脚 低电平有效 含有 JTAG 口的芯片种类较多 如 CPU DSP CPLD 等 JTAG 内部有一个状态机 称为 TAP 控制器 TAP 控制器的状态机通过 TCK 和 TMS 进行状态的改变 实现数据和指令的输入 JTAG 标准定义了一个串行的移位寄存器 寄存器的每一个单元分配给 IC 芯片的 相应引脚 每一个独立的单元称为 BSC Boundary Scan Cell 边界扫描单元 这个串 联的 BSC 在 IC 内部构成 JTAG 回路 所有的 BSR Boundary Scan Register 边界扫描 寄存器通过 JTAG 测试激活 平时这些引脚保持正常的 IC 功能 JTAG 的系统板设计和连线关系如图 3 7 所示 Vref 1 Vsupply 2 nTRST 3 GND 4 TDI 5 GND 6 TMS 7 GND 8 TCK 9 GND 10 TDO 11 GND 12 TDO 13 GND 14 nSRST 15 GND 16 DBGRQ 17 GND 18 DBGACK 19 GND 20 J1 JTAG 10K R11 10K R7 10K R8 10K R9 10K R10 0R R13 0R R12 RESET VCC 3V3 GND JNTRST JTDI JTMS JTCK JTDO JTAG 图 3 7 JTAG 电路图 3 6 串口通讯模块串口通讯模块 串口通讯模块为整个设计的最重要的部分 本系统是基于串口 RS232 接口加入 MODBUS 通讯协议 此部分一旦不能工作本系统将变得毫无意义 通讯方式直接利用 串口通讯芯片 MAX3232 MAX3232 有双串口接口 串口 1 接口与从机相连 连接方 式采用 RJ45 网络通讯接口 串口 2 接口与 DB9 接口相连 可以与电脑 RS232 通讯 便于调试 芯片外部电路图如图 3 8 所示 下面简单介绍 MAX3232 芯片 采用专有低压差发送器输出级 利用双电压在 3 0V 至 5 5V 电源供电时能够实现 真正的 RS 232 性能 器件仅需四个 0 1uF 的外部小尺寸电压电容 MAX3232 确保在 120kbps 数据速率 同时保持 RS 232 输出电平 MAX3232 具有二路接收器和二路驱动 基于单片机的 MODBUS 通讯器设计 14 器 提供 1uA 关断模式 有效降低功效并延迟便携式产品的电池使用寿命 关断模式 下 接收器保持有效状态 对外部设备进行监测 仅消耗 1uA 电源电流 MAX3232 的引脚 封装和功能分别与工业标准 MAX242 和 MAX232 兼容 即使工作在高数据速 率下 MAX3232 仍然能保持 RS 232 标准要求的正负 5 0V 最小发送器输出电压 只要输入电压在 3 0V 至 5 5V 范围以内 即可提供 5 5V 倍压电源 和 5 5V 反相电压 输出电压 电压工作在非连续模式 一旦输出电压低于 5 5V 将开 启电压 输出电压超过 5 5V 即可关闭电荷泵 每个电压需要一个电容器和一个储能 电容 产生 V 和 V 的电压 MAX3232 在最差工作条件下能够保证 120kbps 的数据速率 通常情况下 能够工 作于 235kbps 数据速率 C1 1 V 2 C1 3 C2 4 C2 5 V 6 T2out 7 R2in 8 R2out 9 T2in 10 T1in 11 R1out 12 R1in 13 T1out 14 GND 15 VCC 16 U5 ST3232 1 2 3 4 5 6 7 8 9 11 10 J2 D Connector 93V3 GND 100nFC23 100nFC24 100nFC25 100nFC26 GND PA2 PA3 PA9 PA10 U1TX U1RX U2RX U2TXT2OUT T2OUT R2IN R2IN GND 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 P2 Header 16H GND T1OUT R1IN R1IN T1OUT 470R R20 470R R21 3V3 3V3 LED LEFT LED RIGHT PC0 PC1 232 图 3 8 串口通讯电路 3 7 从机主控模块从机主控模块 从机主控采用 STC12C5A60S2 最小系统电路图如图 3 9 所示 STC12C5A60S2 单片机性能特点 1 工作频率 0 40M 相当于普通 8051 的 0 80M 2 FLASH 程序储存 4K 64K RAM 数据储存 512B 1280B 3 内部集成 EEPROM 2K 16K 及看门狗和专用复位电路 4 带 A D 功能 超小封装 5 2 4 路 PWM 8 10 位高速 A D 转换 6 有 ISP 和 IAP 功能 强抗干扰和降低 EMI 性能 基于单片机的 MODBUS 通讯器设计 15 470nF C9 10K R2 VCC GND NRST P1 5 1 P1 6 2 P1 7 3 RST P4 7 4 P3 0 RXD 5 P4 3 CCP1 TxD2 SCLK 6 P3 1 TxD 7 P3 2 INT0 8 P3 3 INT1 9 P3 4 T0 10 P3 5 T1 11 P3 6 12 P3 7 13 XTAL2 14 XTAL1 15 GND 16 P4 0 SS 17 P2 0 18 P2 1 19 P2 2 20 P2 3 21 P2 4 22 P2 5 23 P2 6 24 P2 7 25 P4 4 26 ALE P4 5 27 P4 1 28 EX LVD P4 6 RST2 29 P0 7 30 P0 6 31 P0 5 32 P0 4 33 P0 3 34 P0 2 35 P0 1 36 P0 0 37 VCC 38 P4 2 39 P1 0 40 P1 1 41 P1 2 42 P1 3 43 P1 4 44 U1 STC125A60S2 12 Y1 11 0592M 10pF C18 10pF C19 GNDGND XTAL1 XTAL2 NRST XTAL1 XTAL2 GND VCC RXD TXD TXD1 RXD1 LED1 LED2 LED3 LED4 LED5 LED6 LED7 LED8 C1 C2 C3 C4 KEY1 KEY2 KEY3 KEY4 KEY5 TEMP LAN RIGHT LAN LEFT a b c d e f g h 图 3 9 从机主控模块最小系统 3 8 LED 灯显示模块灯显示模块 LED 灯模块采用 8 个 0805 封装的 LED 显示 LED 模块电路图如图 3 10 所示 利用 STC 单片机 8 个 I O 端口分别控制 8 路 LED 每一路都用 100 级 PWM 来调 节 LED 亮度 每一路亮度值都可通过从机按键设置值 也可在主机触摸屏上设置每一 路亮度值 也可以直接控制每一路 LED 亮灭 通过 MODBUS 命令下置到从机单片机 从机单片机根据亮度值修改 LED 亮度 470 R3 470 R4 470 R5 470 R6 470 R7 470 R8 470 R9 470 R10 D1 D2D3D4 D5D6 D7 D8 VCC LED1 LED2 LED3 LED4 LED5 LED6 LED7 LED8 图 3 10 LED 灯显示模块 3 9 温度检测模块温度检测模块 温度的测量使用了 DS18B20 温度传感器 温度检测模块电路如图 3 11 所示 温度 传感器的种类众多 在应用与高精度 高可靠性的场合时 DALLAS 达拉斯 公司生 产的 DS18B20 温度传感器当仁不让 超小的体积 超低的硬件开消 抗干扰能力强 精度高 附加功能强 使得 DS18B20 更受欢迎 基于单片机的 MODBUS 通讯器设计 16 DS18B20 的主要特征 1 全数字温度转换及输出 2 先进的单总线数据通信 3 最高 12 位分辨率 精度可达土 0 5 摄氏度 4 12 位分辨率时的最大工作周期为 750 毫秒 5 可选择寄生工作方式 6 检测温度范围为 55 C 125 C 67 F 257 F 7 内置 EEPROM 限温报警功能 8 64 位光刻 ROM 内置产品序列号 方便多机挂接 9 多样封装形式 适应不同硬件系统 只需要一条口线通信 多点能力 简化了分布式温度传感应用 无需外部元件 可用 数据总线供电 电压范围为 3 0 V 至 5 5 V 无需备用电源 测量温度范围为 55 C 至 125 华氏相当于是 67 F 到 257 华氏度 10 C 至 85 C 范围内精度为 0 5 C CPU 与 DS18B20 只有一跟数据线连接 为读写以及温度转换可以从数据线本身获 得能量 不需要外接电源 因为每一个 DS18B20 的包含一个独特的序号 多个 DS18B20 可以同时存在于一条总线 这使得温度传感器放置在许多不同的地方 它的 用途很多 包括空调环境控制 感测建筑物内温设备或机器 并进行过程监测和控制 GND 1 DQ 2 VCC 3 U3 18B20 4 7K R19 VCC GND TEMP 图 3 11 温度检测模块 基于单片机的 MODBUS 通讯器设计 17 第第 4 章章 软件设计软件设计 4 1 串口通信模块串口通信模块 串行通信是实现单片机与 PC 及通信的一种基本方式 在本系统中使用的是一个 主机三个从机 一片 MAX3232 做主机通讯接口 另外三个作为从机通讯接口 RS232 总线直接使用 RS232 电平通讯 在串行通信的实现中 本系统采用了串口通信工作方式一 波特率 115200 的方案 在串行通信过程中必然涉及寄存器以及定时器的配置 TMOD 定时器寄存器 GATE C T M1 M0 GATE C T M1 M0 T1 方式字段 T0 方式字段 TMOD 0X20 即定时器 T1 工作在方式 2 自动重装的 8 位定时器 SCON 串行口控制寄存器 SM0 SM1 SM2 REN TB8 RB8 TI RI SCON 0X50 即串行口工作方式一 8 位 UART 波特率可变 由于单片机需要对数据帧进行处理 而处理数据帧所需要的时间相对比较长 为 了提高单片机的效率 在串行通信时 应该采用中断方式接受数据帧 一般而言 中 断函数应该尽可能的简单 所以中断函数只负责接受数据帧 而对于接收数据帧的处 理则放在主函数里 4 2 数据帧处理模块数据帧处理模块 数据帧处理是整个系统的核心部分 在现场总线技术中有着至关重要的作用 必 须了解 Modbus 的各个功能对应的帧格式 理解其含义和本质 然后才能找到对应信息 去对其相应的处理 根据ModBus 协议 其RTU模式数据帧格式如下 12345678 从机地 址 MODBUS 命令 起始寄 存器高 字节 起始寄 存器低 字节 寄存器 数高字 节 寄存器 数低字 节 CRC 低 字节 CRC 高 字节 基于单片机的 MODBUS 通讯器设计 18 硬件采用 RS232 主从式半双工通讯 主机呼叫从机地址 从机应答方式通讯 数据帧 10 位 1 个起始位 8 个数据位 1 个停止位 无校验 在数据帧处理过程中 首先判断数据帧是否完整 然后判断是不是发给本从机 对完整数据帧进行CRC校验 CRC校验正确的帧执行下面的处理步骤 否则丢弃该帧 并通知上位机重发数据 帧处理的前提除了CRC校验正确 还需要确保地址位正确 在前提条件满足的情况下才能提取功能位和数据位 根据功能位确保要执行的功能 并执行相关功能 在具体功能中提取实现功能所需的数据位 图4 1为数据帧处理流程 图 开始 是否接收完 地址是否匹配 CRC是否校验 正确 数据处理 向上位机 返回数据 结束 N Y Y N N Y 图 4 1 数据帧处理流程图 基于单片机的 MODBUS 通讯器设计 19 上位机对发回来的帧进行处理 判断是否正确后执行对应的处理 4 3 参数保存模块参数保存模块 在本系统中 为信息安全 需要增加参数的保存模块 让掉电后数据能保存起来 下次开机的时候能读出来 保存修改的参数可以使之能够较好的适应各种环境的测量 我们可以设置报警的上下限 测量的上下限 由于需要保存的参数较少 直接使用片 内的EEPROM 来保存修改的参数 EEPROM 可以用于保存一些在应用过程中修改并 掉电不丢失的参数数据 EEPROM数据读取流程图如图4 2所示 开始 系统初始化 读取EEPROM 保存的数据 主机通过 MODBUS 查询从机数据 液晶屏显示保 存数据 结束 图4 2 EEPROM读取流程图 ISP IAP 数据寄存器 ISP DATA ISP IAP 操作时的数据寄存器 ISP IAP 从 Flash 读出数据放在此处 向 Flash 写的数据也放在此处 ISP IAP 地址寄存器 ISP ADDRH 和 ISP ADDRL 用于存放 EEPROM 要寻址的 地址 复位后为 0000H ISP IAP 命令寄存器 ISP CMD 用于选择 EEPROM 的模式 基于单片机的 MODBUS 通讯器设计 20 ISP IAP 命令触发寄存器 ISP TRIG 操作时的命令触发寄存器 在 ISPEN ISP CONTR 7 1 时 对 ISP TRIG 先写入 5Ah 好 在写入 A5h ISP IAP 命令才会生效 ISP IAP 命令寄存器ISP CONTR 用于配置ISP IAP STC内部EEPROM地址如图4 3所示 图4 3 STC内部EEPROM部分地址 4 4 液晶显示模块液晶显示模块 本系统为了方便现场观察数据和调试 加上了液晶显示 这里液晶采用 4 3 寸 TFT 触摸屏 通过取字幕软件可以提取汉字 字母 图形的编码 然后通过彩屏显示 本 系统主要用液晶实时显示线圈状态和寄存器的值 TFT 驱动模块的操作主要分为两种 一是对控制寄存器的地址写入 二是对数据 的读写操作 A0 控制线的高低电平状态来区别当前的总线操作是对控制寄存器的地址 写入还是对所指向的寄存器进行数据操作 当 A0 为低电平时 表示当前的总线操作是 对控制寄存器的地址进行操作 当 A0 为高电平时 表示为对数据写入 读出操作 如 图 4 4 所示 基于单片机的 MODBUS 通讯器设计 21 数据写入 A0 1 RD 1 WE 0 CS 0 高半字写入 D15 D8 WE 1 CS 1 CS 0 低半字节写入 D7 D0 WE 1 CS 1 结束 数据读取 A0 1 RD 0 WE 1 CS 0 高半字读取 D15 D8 RD 1 CS 1 CS 0 低半字节读取 D7 D0 RD 1 CS 1 结束 图 4 4 液晶读写流程图 TFT 驱动模块内部有控制寄存器 用户在使用 TFT 驱动模块之前以及对其进行操 作过程当中 需要对一些寄存器进行写操作以完成对 LCD 的初始化 或者是完成某些 基于单片机的 MODBUS 通讯器设计 22 功能的设置 如当前显存操作地址设置等 对控制寄存器进行操作前 需要先对控制寄存器地址进行写入操作 以指明接下 去的数据操作是针对哪一个寄存器的 操作的步骤如下 1 在 A0 为低电平的状态下 写入一个字节的数据 该字节为寄存器地址 2 在 A0 为高电平的状态下 写入两个字节数据 第一字节为高八位 第二字节 为低八位 如要读出指定寄存器的数据 则需要连续三次读操作方能完成一次读出操 作 第一个字节为无效数据 第二字节为高八位 第三字节为低八位 TFT 驱动模块的控制寄存器当中 最常被调用的是寄存器除了对显存操作的 0 x02 寄存器外 还有当前显存地址的寄存器 display RAM bus address counter AC 一共由 两个的寄存器组成 分别存放有 Y Address 和 X Adderss 表示当前对显存数据的读写 操作是针对于该地址所指向的显存单元 而每一个显存单元在前面已经用图示意过 每个单元有 16 位 最高的 5 位为 R 红 的分量 最低的 5 位为 B 蓝 的分量 中 间 6 位为 G 绿 分量 如图 4 5 所示 图4 5显存单元示意图 基于单片机的 MODBUS 通讯器设计 23 第第 5 章章 系统调试系统调试 5 1 硬件调试硬件调试 5 1 1 主机电路板调试主机电路板调试 根据主机电路原理图焊接最小系统及 JTAG 调试接口 下载测试程序 发现 CPU 不能正常连接电脑编译器 经过仔细检查发现将 JTAG 接口 TDI 引脚接入到 STM32 端 口 PA12 上 正确接法应接到 PA15 端口上 此错误导致编译器不能连接 CPU 下载程 序调试 更正此错误后芯片连接正常 JTAG 更正处如图 5 1 所示 图 5 1 JTAG 更改的实物图 系统能够正常下载后 将电路板焊接完整 主机板整体调试 TFT 触摸屏显示一张 完整的图片 发现 Lm7805 发热严重 烫手 仔细查看原因 是由于主机系统加入了 4 3 寸

温馨提示

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

最新文档

评论

0/150

提交评论