英语原文共 38 页,剩余内容已隐藏,支付完成后下载完整资料
摘要
本文提出了基于STM32和Modbus协议的高速公路隧道照明系统多通道数据采集器。 在硬件方面,STM32微控制器设计为主控制器,并分别选择BH1750传感器和DHT11传感器测量照度和温度湿度。在软件方面,测量的照度和温度湿度分别由I2C和单总线读取。STM32基于MODbus协议的RTU工作模式,成功地将收集到的数据传输到主机,实现了公路隧道环境参数的实时采集和上传。 此外,建议的数据采集器在隧道照明节能系统中工作了近两年。实验结果表明,所提出的多通道数据采集器能够准确感知隧道环境,并与上部计算机进行可靠通信,并能对隧道环境进行可靠检测。
关键词:公路隧道照明、数据采集器、STM32、Modbus协议、物联网技术。
- 最近介绍
公路建设蓬勃发展,受到广泛关注,极大地造福于人们的交通运输和生活。 隧道是高速公路的重要路段,因为隧道内部和外部之间存在亮度差异。一般来说,公路隧道分为七个区域,即阈值区 1、阈值区 2、过渡区 1、过渡区 2、内部区域、出口区 1 和退出区 2,如图 1 所示。为了创造良好的视觉环境,避免交通事故的发生,传统的公路隧道照明系统通常连续运行(每天24小时,一年365天)。然而,在这些照明系统中,能源浪费相当严重,因为所有隧道灯具总是打开,而不考虑交通量和日光的变化。 为了合理监控隧道照明系统,减少隧道照明系统。针对这一问题,对公路隧道照明测量系统的设计进行了大量研究。 程先生为长公路隧道设计了照明检测系统,实现了宽测量范围(2000-3000 lx)和快速采集速度(10倍/s)。 然而,该系统是一种车辆安装,主要用于一次性现场测试,因此不支持长期隧道监测。韩等人 利用面纱亮度法和L20方法对隧道阈值的适应进行了测量和分析。张等人开发了一种成像亮度计,可测量公路隧道的外部/内部亮度。试验结果表明,他们研制的仪表在实际操作上运行良好,但设计硬件结构没有详细给出。参照,研究了高压钠灯(HPS)和白色LED的发射频谱分布在基于中视视觉发光效率模型的基础上进行了研究,从而获得了更准确的公路隧道照明值。然而,该方法的有效性需要在实际工程应用中得到验证。 Ezzedine 和 zrelli 提出了基于光纤布拉格光栅传感器 (FBGS) 的无线结构健康监测系统架构,该系统测量了隧道、桥梁和隧道等民用结构的应变、温度和湿度变化。现在不是好时机。Kwong和Li讨论了隧道照明工程的设计(计算)和现场测量亮度之间的差异。他们发现,在隧道内使用实际的道路和表面反射率测量,为隧道修复工程进行有意义的计算机计算,是至关重要的。卡蒂尼和罗瓦蒂提出了一种基于摄像头的测量仪器,用于道路隧道照明。他们提出的系统旨在估计面纱亮度,因为它将被接近隧道的司机感知,从而可以估计隧道入口的最佳亮度水平,并提高驾驶员的安全。本文设计了基于STM32和Modbus协议高速公路隧道照明的多通道数据采集器,这是我们以前工作的一个子系统。在硬件方面,作为主控制器的STM32分别使用BH1750传感器和DHT11传感器测量照度和温度湿度。在软件方面,测量的照度和温度湿度分别由I2C和单总线读取。 根据modbus协议,所有收集的数据都成功传输到主机,实现了隧道环境参数的精确测量和实时上传。本文的其余部分按如下方式组织。第2节和第3部分分别介绍了所建系统的硬件和软件设计。第四节分析了实验结果。最后,第5节对论文进行了总结。
- 拟建系统的硬件设计
拟建多通道数据采集器的体系结构如图2所示。可以发现STM32通过I2C总线与BH1750传感器通信,获得实时照导,并通过获得实时温度和湿度的单个总线与DHT11传感器通信。然后,收集的数据写入 STM32 闪存。最后,根据Modbus协议,PC和ARM板等主机通过RS-485接口向STM32发送请求,以便读取存储在闪存寄存器中的数据。 请注意,由于每个区域都需要单个数据收集器,因此隧道中应总共部署 7 个数据收集器。为了区分它们,应为安装在不同区域中的数据收集器提供不同的地址代码。
-
- 电源模块
拟建的数据采集器主要在室外环境中工作,分布在隧道内外,应能承受复杂自然环境的影响。因此,应提供稳定的电源,以保证整个系统的正常运行。据调查,数据采集器的电源来源为中国交通部门提供的电压源,包括5V和12V直流(直流)。 但是,STM32 所需的电源为 3.3 V,其他一些芯片的电源为 5 V。因此,我们设计了两个直流电压转换电路:12 V 到 5 v 电压稳定电路和 2) 5 v 到 3.3 V 电压稳定电路。如图3所示,采用低功耗LM2596S-5V芯片设计12V至5V电压稳定电路。 LM2596 具有出色的线路和负载调节功能,输入电压范围可达 40 V,固定输出电压 5 V. LM2596 集成了频率补偿器和固定频率振荡器,使其待机仅减少到 80 zA 和功率转换转换80%.在图 3 所示的 DC-DC 降压电路中,LM2596 是一个降压开关稳压器,L1 是一个储能电感器,D3 是一个自由轮式二极管 (FWD)。在联网状态下,电流正常流动,而处于关闭状态时,L1 和 D3 形成环路,以保持电路持续通电。如图 4 所示,采用固定低降压线性稳压器 AMS1117 设计 5 v 到 3.3 V 电压稳定电路。AMS1117 具有电流限制、热保护和 0.2% 的典型负载调节功能,可实现固定的 3.3 V 输出电压,最大误差小于 1%。在图 4 中,C16 和 C17 是电源的输入滤波器电容器,可防止电源故障后电压反转。C15和C18是滤波器输出电容器,可抑制自激振荡,防止输出波形振荡。
-
- STM32 最小系统
如图 5 所示,STM32F103C8T6 微控制器被视为建议数据收集器的 CPU。作为 STM32F103xx 中密度性能系列的成员, STM32F103C8T6 集成了基于 ARM 的高性能 Cortex-M3 32 位 RISC 内核,以 72 MHz 频率运行,高速嵌入式存储器(64 KB 闪存和 20 KB SRAM 内部),8 MHz 工厂装饰的 RCSCillator,以及连接到两个的增强型 I/Os 和外围设备的广泛增强 此外,STM32F103C8T6 还提供 48 个引脚、两个 12 位 ADC、一个 7 通道 DMA 控制器、7 个计时器以及 9 个通信接口(包括 2 个 C 和 SI、3 个 USART、一个 USB 和一个 CAN)。在图 5 中,BOOT0(引脚 44)和 BOOT1(引脚 20)接地,这意味着在正常启动模式下,STM32 从闪存启动其嵌入式操作系统。D1 和 D2 分别是 STM32 和电源的 LED 指示灯。 电源滤波器电路由C3、C4、C9组成。Y1是一个无源晶体振荡器,具有两个20个pF电容器,而X1是一个带源的晶体振荡器,频率为8MHz。 2.3光度传感器精确模组光度是该数据采集系统的关键,意义重大。 用于公路隧道照明系统的行车安全节能。如图 6 所示,用于设计照照采集电路的数字环境光传感器 BH1750FVI。由于优势,如 1) 高分辨率和宽检测范围 (1-65535 lx), 2) 人眼样光谱责任, 3)光源依赖性小,红外影响小,使用BH1750FVI通过I C总线接口2.4温度和湿度传感器获取数字16位照照数据,除照度、温度和湿度外,方便使用BH1750FVI隧道内外也应测量和分析,以便对隧道进行结构健康监测。因此,我们使用流行的温度湿度传感器 DHT11 来设计温度和湿度采集电路,如图所示。 7. DHT11具有成本低、稳定性高、响应速度快、抗干扰能力强、精度测量高(温度0.2°C、湿度2%RH)等优点,适用于环境监测应用。在图7中,温度和湿度数据首先由DHT11收集,然后通过单总线从引脚2传输到STM32。2.5 接口转换模块建议的数据采集器基于Modbus协议与主机通信,该协议主要依靠RS-485接口。遗憾的是,它不属于 STM32 提供的九个通信接口。因此,必须设计接口转换电路。 如图所示。 8、我们使用一种称为ADM2483的分离RS-485收发器实现UART到RS-485接口转换电路。ADM2483 提供 500 kbps 数据速率,允许总线上多达 256 个收发器,因此适用于多点数据传输系统(隧道中的每个区域都可以被视为数据收集和传输点)。然而,由于RS-485总线应连接多个数据收集器,通信电缆铺设在一条长长的隧道上,因此容易受到雷雷和雷电等外部干扰。因此,有必要在STM32和ADM2483之间进行隔离,以减少信号失真和误差。幸运的是,ADM2483 集成了一个三通道隔离器,这大大降低了电路设计的复杂性。在图 8 中,ADM2483 的引脚 3 和 6 分别连接到 UART 的 RXD 和 TXD 引脚。虽然引脚 4 和引脚 5 是接收器和驱动器启用输入,分别用于控制 RS-485 的数据传输方向。例如,如果RS485_CON输入高级信号,DE(驱动程序)将启用,但 RE(接收器)将被禁用,即 ADM2483 处于数据传输模式。此外,还使用 F0505S-1W 芯片将该模块的电源与 STM32 和其他组件的电源隔离,避免不同模块之间的相互干扰。FB1 和 FB2 是用于抑制 RS-485 信号线上高频噪声和峰值干扰的磁珠,还能够吸收静电脉冲。2.6 JTAG调试模块为了方便调试拟建系统,设计了J-Link模拟器的接口电路,如图所示。 9. 基于此电路,STM32开发环境(如IAR和Keil5)可以使用J-Link下载方法实现单步调试、断点设置、分析程序等3.建议多通道数据采集器系统软件设计的软件设计主要包括:1)数据采集程序和闪存读写程序的设计,2)自由Modbus协议移植和3)主控制设计好时机。
3.1 数据采集程序和闪存写入程序设计
本部分,我们设计照度采集程序、温度湿度采集程序和闪存读写程序。3.1.1 基于电光采集的照明采集程序设计,如图 10 所示。首先,I初始化,包括I C GPIO配置(确定I C模式配置使用的GPIO端口(确定相关参数,如时钟线、C总线和BH1750FVI传感器,我们设计了STM32C模块的软件流程图C) 和寻址模式、通信速率等)。 然后,STM32 发送电源指令'0x01'以激励 BH1750FVI。 为了提高准确性和STM32 向 BH1750FVI 发送'0x11'测量,实现高分辨率照明的连续测量。等待 120 毫秒的测量时间后,可以读取 16 位照照值。最后,此 16 位数据转换为十进制数字,然后除以 1.2,以获得分辨率为 0.5 lx 的精确照度。
3.1.2 设计温度湿度采集方案 在本小节中,STM32 使用 I/O 端口通过单总线与 DHT11 传感器通信,从而获得温度和湿度。图 11 显示了温度湿度采集的软件流程图。根据 DHT11 数据表,在初始化 GPIO 后,STM32 将总线开低 20 毫秒以请求 DHT11,然后将其高开 30 zs 以等待 DHT11 的 reponse。如果 DHT11 响应请求,STM32 将继续读取 DHT11 的数据包,直到传输完成。完整的温度湿度数据包应该是一个 40 位数据消息,包括湿度数据的 8 位积分部分、湿度数据的 8 位小数部分、温度数据的 8 位积分部分、温度数据的 8 位小数部分和 8 位校验和。 接收此 40 位数据包后,STM32 将总线驱动高进入空闲状态,这意味着已完成一次温度湿度采集。 最后,将数据包的前四个 8 位数据添加到一起,以检查它是否等于最后一个 8 位校验和。如果相等,则收集的数据正确,并将保存。否则,它将被丢弃。3.1.3 设计闪存读写程序为了区分部署在不同区域中的数据收集器,必须在其闪存中存储 Modbus 地址或波特速率等设备信息。因此,我们在此小节中设计闪存读/写程序。正如我们在第 2.2 节中提到的,此数据收集器的 CPU 是 STM32F103C8T6 微控制器,其闪存大小为 64 KB,由 64 个 1 页 Kb 组成,如表 1 所示。图 12 显示了闪存读写程序的软件流程图。可以从图中找到。 12 如果它是读取操作,则将选择表 1 中的基本地址,并读取相应的页面。例如,如果我们选择基本地址'0x0800 0400- 0x0800 07FF',则第 1 页将被读取。 但是,如果是写入操作,应首先解锁闪存控制器。然后,清除标志并擦除所选页面。随后,新数据写入相应的基本地址。 最后,闪存控制器被锁定,以确保存储在闪存中的数据不会错误地更改。3.2.1 Modbus 协议 Modbus 是一种应用程序层消息传递协议,是工业通信领域的一个实际标准,自 1979 年以来已广泛应用于各种行业应用。一般来说,Modbus 协议有三种变体:1) Modbus-ASCII(美国信息交换标准代码)、2 种 Modbus-TCP(传输控制协议)和 3 种 Modbus-RTU(远程终端单元)。Modbus-ASCII 主要用于传输少量文本格式数据,而 Modbus-TCP 主要用于基于以太网的数据传输。与它们相比,Modbus-RTU更适合在现场传输大量的二进制工业数据。因此,我们采用Modbus-RTU实现隧道环境参数的实时采集和上传。如图 13 所示,Modbus-RTU 建立了一个消息结构,该结构包含四个字段:地址、函数代码、数据和 CRC(循环冗余检查)。前三个字段包含 Modbus 事务的必要信息,而第四个字段对应于旨在检测错误的 16 位 CRC 计算。3.2 移植 FreeModbus 协议堆栈 为了使该数据收集器成为与其他工业和商业 Modbus 仪器兼容的标准 Modbus 设备,我们将一般 FreeModbus 协议移植到我们提议的数据中现在不是好时机。主要移植步骤如下:
第1步:从'17'下载免费modbus-v1.6.zip。步骤 2:将'演示/BARE'和'modbus'中的 C 文件和头文件复制到相应的目录,如图 14 所示
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[237890],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。