当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘 要:为解决实验室某些海洋观测类IO设备价格昂贵、体积较大、数量较少的问题,文中设计了一款IO设备模拟器。IO模拟器是一款模拟IO设备指令与相应响应的模块,系统以STM32F103为主控制器件,将Keil MDK-ARM作为软件平台, 通过学习实际IO设备的指令与响应,模拟出实际IO设备的通信协议。文中主要介绍了模拟器的硬件搭建及软件设计。经实验验证,该模拟器可在实验室的系统联合调试中代替实际设备,也可以解决实际设备数量不足的问题。

引 言

近年来,各国为各自利益逐渐加强了海洋研究,海洋观测方法日趋多样化,海洋观测平台成为研究海洋的重要途径 [1]。海洋观测平台由MCU 控制,外围接若干海洋设备终端,如采用温盐深仪传输海洋温度、盐度、压力;多普勒流速剖面仪传输海流流速、流向等数据。一个成功的海洋观测平台的开发需要首先经过实验室的联合调试。

若干个课题组协同工作时,经常共同使用有限个设备终端,或者存在订货周期过长、设备出海等问题,导致联合调试时因某些设备缺位而延长系统调试周期,而模拟器可以较好地解决这些问题。此模拟器无需深入了解设备的通信协议与响应数据格式,只需对实际设备实现一次操作,即可学习实际设备的通信协议,最终达到代替实际设备参与系统调试的目的。

1 总体设计

系统总体结构如图 1 所示。

基于STM32的IO设备模拟器设计

本文设计的模拟器由STM32F103 微处理器模块、供电模块、LED 灯指示模块、存储模块、串口模块、按键构成。 按键用于系统硬件复位,拨动开关选择系统工作模式,LED 灯指示系统的运行状态,存储模块用于存储系统数据,防止 掉电丢失。其工作方式分为两种,一种是学习实际设备的指令 与响应及实际设备收到指令与发出响应的时间间隔,学习数据 存入 FLASH ;另一种是模拟实际设备,在收到上位机指令后, 通过字符匹配 FLASH 中的指令,延长实际设备收到指令与发 出响应的时间间隔,回复与指令对应的响应。模拟器工作简图 如图 2 所示。

基于STM32的IO设备模拟器设计

2 硬件设计

2.1 存储模块

STM32F103 内核为 Cortex-M3,采用 ARM V7 构架,是 现今性价比最高的一款 ARM 微控制器,最高工作频率可达 72 MHz,该芯片具有 64 kB SRAM,512 kB FLASH,拥有快 速的中断处理 [3]。本设计使用了芯片的 USART1、USART3、 Timer3、Timer7 及 SPI 接口。

串行外围设备接口(Serial Peripheral Interface,SPI)是 一种全双工,高速、同步的通信总线,在芯片的管脚上只占 用四根线。本设计使用 STM32F103 自带的 SPI 来实现对外部 FLASH(W25Q128)的读写操作 [4]。如图 3 所示,W25Q128 是华邦公司推出的大容量 SPI FLASH 产品,容量为 128 Mb, 即 16 MB,可用于存储字库和其他用户数据,系统掉电后数 据不丢失,满足了本设计的数据存储要求。设置 SPI 为全双 工、主机模式、8 位帧格式传输,高位在前,具有 CRC 校 验功能 [5]。SPI 波特率预分频值为 256 分频,传输速度为36 MHz/256=140.625 kHz。

基于STM32的IO设备模拟器设计

2.2 串口通讯部分设计

仪器通讯通常采用串行通信和并行通信两种方式[6]。串行通信方式具有使用线路少、成本低的优点,在远程传输时, 避免了多条线路特性的不一致而被广泛采用 [7]。计算机和单片机都具有串行接口,可以完成上位机与模拟器、模拟器与实际设备之间的通讯任务。如图 4所示,模拟器串口1可以实现两种不同的通讯模式,通过跳线帽或者拨动开关选择相应的通信方式,即 RS232,RS485,理论上可实现不仅限于海洋仪器的模拟,具备较强的延伸性。

基于STM32的IO设备模拟器设计

此设计使用 SP3232 芯片作为 TTL 转 RS 232 芯片。数据 传输速率最高为 20 kb/s,最大距离为 15 m。可供两路串口共 同使用,接口为延伸通讯接口,可同时使用 DB-9 与三线制连 接法,两者均使用 RXD、TXD、GND 三条信号线,程序设 计中未使用握手信号,可直接发送和接收数据。RS 485 隶属 于 OSI 模型物理层电气特性的规定,为两线、半双工、多点 通信的标准。其电气特性和 RS 232 不一样,而是用缆线两端的电压差值来表示传递信号,通讯距离为 1 200 m[8]。本设计 使用 MAXIM 公司生产的 MAX3471,USART_RE 为发送使 能端,接 STM32 的 GPIOA_8,高电平发送数据,低电平接收 数据,接收和发送均由软件控制。串口 3 与串口 1 的电路图基 本相同,处于学习模式时与实际 IO 设备连接。

2.3 状态控制部分设计

系统运行状态由 STM32 的 GPIOE_3 的输入逻辑电平控 制,连接外部三脚拨动开关,通过判断该引脚的输入逻辑电 平来决定模拟器的工作方式,电平状态改变则系统工作状态 改变。运行状态指示灯(红色 LED 灯)连接引脚 GPIOB_5, 系统运行状态不同则指示灯闪烁运行方式改变。

2.4 供电设计

供电电路采用电平转换芯片 AMS1117-3.3,这是一个 5 V 转 3 V 稳压电源芯片,内部集成有过热保护与限流电路。通过 该芯片,可以实现对模拟器的 3.3 V 供电与 5 V 供电,同时也 可以使用 USB 供电,保证了模拟器在多供电环境的使用。供 电模块还具有供电状态指示灯(蓝色 LED 灯)。

3 系统软件设计

(1)程序初始化:初始化包括串口初始化,定时器初始化, W25Q128 初始化。程序中加入了看门狗,可防止系统因外界 环境的干扰而出现程序跑飞的现象 [9]。为保证模拟器正常稳定 地工作,程序采用轮询方式确定是否改变模拟器的工作状态。

(2) 定 时 器 在串口通信中的 软件 设 计:USART1 和 USART3 采用中断接收字符方式共同使用 Timer7,通过判断 接收到的两个字符间的时间差来断定是否为连续的数据 [10]。 Timer7 是 STM32F103 自带的两个基本定时器之一,定时器中 断优先级为 0,高于串口优先级,采用由下至上的计数方式, 10 ms 进入一次定时器中断,定时器中断中串口接收标记设 置为接收完成,两个字节接收时间间隔小于 10 ms 即认为这 两个字节属于同一字符串,通过定时器来判断接收的字节是 否属于同一次数据,避免两次数据间的干扰。将 USART1 和 USART3 接嵌入式模块。Timer3 是通用定时器,在本设计中 用来记录 USART1 开始透传数据至 USART3 到 USART3 收 到外部数据之间的时间间隔,即实际设备的响应时间,定时器 中断每隔 1 s 进入一次,在中断时间间隔执行自加操作,以一 定的格式将时间间隔写入 FLASH 保存,便于后续读取。

(3)为了保证上位机指令与设备响应正常匹配,W25Q128 中的数据存储格式如图 5 所示。

基于STM32的IO设备模拟器设计

模拟器模拟设备时析出有效数据,程序流程如图 6 所示。

基于STM32的IO设备模拟器设计

4 结 语

本设计以模拟美国 TELEDYN 分析仪表公司的多普勒流 速剖面仪(ADCP)以及 Sea-Bird 公司的 SBE39-IM 型温盐深 仪为例,实现了对这些实际仪器IO功能的模拟。通过实验检验, 成功实现了实验室环境下模拟器代替 ADCP 在定时卫星通信 系统中的作用以及代替 SBE39-IM 型温盐深仪在电磁耦合浮标 系统中的作用。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭