您的位置 » 首页 » 工业显示器 » 基于一种以STM32为核心电路的多源数据采集板卡设计

基于一种以STM32为核心电路的多源数据采集板卡设计

发表于4年前 | 作者: blog | 分类: 工业显示器 | 破蛋日:2020年03月17日 |

基于一种以STM32为核心电路的多源数据采集板卡设计

  在工业领域中应用较为广泛[1-3]。在许多场合,由于设备处理数据的形式不同,通信接口各有差异,因此各式各样的转换器出现了,但是市面上出现的很多转换器一般都只是两种总线数据格式之间的转换,难以适应端口总线],为此本文设计了一种多源数据采集板卡,其以F429 为核心,实现对多路 RS232、RS485、CAN 总线数据收发以及 G/BD 模块,满足了用户对采集多种不同通信接口设备数据以及时间地理信息显示的需求。

、2 路 CAN 总线 输出 GPIO 端口、板载 GPS/BD 模块以及电源电路组成。多源数据采集板卡硬件结构如图 1 所示。

STM32 作为多源数据采集板卡的控制核心,控制协调各路通信总线接口的数据收发,以及与上位机进行交互,实现上位机对设备终端数据的采集、显示与控制等功能;2 路 CAN 总线分别独立,并在板卡两侧各有 1 路接口,通信速率范围为 500 kb/s~1 Mb/s;2 路独立 RS485 总线 b/s 可配置,可挂载多个 RS485 总线通信的

x-M4 32 位的嵌入式RISC内核,工作频率高达 180 MHz,内置 2 MB 的 Flash 和 256 KB 的 S,丰富的增强I/O端口和联接到两条 APB 总线 位定时器,以及 3 个I2C和 SPI,4USARTs/4UARTs 和 2 个 CAN 通信接口[5]。其中板卡通信要求至少 7 个串口与 2 个 CAN 总线 V 低电压供电,支持睡眠、停机和待机 3 种省电模式,具有功耗低、实时性强等优点。核心电路结构如图 2 所示。核心电路主要包括 STM32F429 及其复位电路、晶振电路、BOOT 启动电路以及调试下载接口电路。其中复位电路采用 10 kΩ

上拉方式,当按键按下时,RESET 与地导通,产生低电平实现复位;为了让 STM32 得到更高的处理速度,晶振电路采用了 25 MHz 无源晶振;BOOT 电路决定了 STM32 以何种方式被启动,此处提供了用户闪存

器启动与从内嵌 SRAM 启动,默认为前者方式启动,可利用跳帽选择;调试下载接口则选用了 SWD 方式,其为 2 线串行通信,只需排针引出,节省空间。2.2 CAN 总线接口设计CAN 总线由于其高性能、高可靠性及独立的设计,而被广泛用于工业现场控制系统中[7-9]。由于 STM32 内部集成了 CAN 总线控制器,因此外部电路仅需 CAN 总线收发器即可实现通信。这里选用了 TD321SCAN 系列的 SMD 单路通用型 CAN 隔离收发模块,它是一款采用 IC 集成化技术,实现了电源隔离、信号隔离、CAN 收发和总线保护于一体的 CAN 总线 V DC 电气隔离,传输波特率范围为 5 kb/s~1 Mb/s;极大满足了工业级的指标要求。该模块+3.3 V 供电,与 STM32 之间接口无缝连接,具有功耗低的优点。此外,为了提高总线通信的可靠性,在该模块外添加了端口浪涌防护电路,当模块应用于较为恶劣的现场环境时,如高磁场干扰、大能量雷击等场合,可保护模块不被损坏。CAN 总线 总线设计

在该电路中,使用了 TD321S485H-A 系列的 SMD 单路高速 RS485 隔离收发模块(自动切换),其主要功能是将逻辑电平转换为 RS485 协议的差分电平,实现信号隔离。该模块+3.3 V 供电,传输波特率可达 500 kb/s,满足要求。同样,在模块外添加了端口

,SP00S12 是一款信号浪涌抑制器,可用于各种信号传输系统,抑制雷击、浪涌、过压等有害信号,对设备信号端口进行保护,尤为适合 CAN、RS-485等通信领域的浪涌防护。因此,选择 SP00S12 可有效保证 RS485 总线 通信接口设计

该接口电路采用了型号为 RSM232D 的双路隔离 RS-232 收发器,它支持 3.15 V~5.25 V 超宽压输入电源供电,波特率可达 235 kb/s。与普通的 RS232 芯片相比,它电磁抗干扰 EMS 极高,隔离耐压 2 500 V DC。由于该模块内部 TOUT/RIN 线没有 EDS 保护器件,当应用于环境比较恶劣的场合时,可能造成通信不稳定的情况。因此,在模块 TOUT/RIN 线端外加了

管、防雷管、屏蔽双绞线以及同一网络单点接大地等保护措施,有效保护了 RS232 总线 GPIO 端口设计

GPIO 端口分为 8 路输入、8 路输出端口,5~24 V 为逻辑高电压,0~5 V 为逻辑低电压。显然电平与MCU电平不匹配,需要电压转换芯片进行电平转换。考虑到端口的稳定性,端口采用了小体积的 TLP127光耦芯片,完成电压转换的同时,也实现了电气隔离。此外,TLP127 内部集成了耐高压达林顿管,输出端口可耐压值可达 300 V DC,同时,它最高可输出 150 mA 的

Ic 使它具有了较强的驱动和隔离能力。GPIO 输入输出端口隔离电路如图 6 所示。

2.6 GPS/BD 模块设计该模块主要实现对 GPS 定位信息进行获取,并传输到 STM32 中进行处理。市场主要有几款主流的 GPS/BD 模块[10],如 ATK-NEO-6M、ATK-1218-BD 等。经对比,ATK-1218-BD 模块在数据更新率、传输波特率、定位精度等性能上均要优于其他模块,因此选择该模块来提取地理位置信息。ATK-1218-BD 是一款高性能 GPS/ 北斗双模定位模块,其兼容+3.3 V/5 V

系统,定位精度 2.5 mCEP,数据更新速率 1~20 Hz、串口通信波特率 4 800~230 400 bps 可配置。另外,模块自带可充电后备

ATK-1218-BD 模块同外部设备通信接口采用 UART(串口)方式,输出的 GPS/ 北斗定位数据采用 NMKA0183 协议[13],控制协议为 SkyTraq。因此使用前,需采用 SKyTraq 提供的 GNSS_Viewer 软件对该模块的更新速率、串口波特率等参数进行配置。该模块与单片机连接方式如图 7 所示。2.7 电源电路设计根据各端口模块以及 MCU 的供电要求,需要将 12 V 工作电源转化为+3.3 V、+5 V、+24 V 隔离电源。为了提高电源的转换效率,降低热损耗,采用了一款内置

芯片 MP1584,输入超宽电压 4.5 V~48 V DC,最大电流输出可达 3 A,输出电压值可根据匹配电阻调整得到+3.3 V、+5 V 的电压,相应地输入输出滤波电容均采用MLCC电容可减少纹波干扰。+24 V 隔离电源主要应用于 GPIO 输出端,作为输出的参考电平,考虑到体积小、功耗等要求,选用 B1224_XT-2WR2 隔离芯片,该芯片可将 12 V 电压隔离升压至 24 V,且输入输出隔离电压达 1 500 V DC,效率达 84%,外围电路简单,仅需两个滤波电容即可。电源电路结构如图 8 所示。

该设计以KEILMDK5 为软件开发环境,操作系统为 Windows 7。核心处理器采用了 32 位 ARM Cortex-M4 内核的 STM32F429ZIT6 芯片,主频可达 180 MHz,只要程序结构良好,板卡全端口工作负荷下,依然能处于稳定的运行状态。3.2测试程序流程MCU 程序采用模块化结构设计,主要模块包括初始化模块、启动

模块、各通信协议中断模块、定时器中断处理模块和主程序模块。由于篇幅所限,下面主要对主程序部分程序进行分析,主程序流程图如图 9 所示。

系统程序启动时先进行系统化,配置好各总线端口的波特率以及中断优先级,初始化 GPIO 端口及 GPS/BD 模块并设置看门狗。接着初始化各类标志位,启动看门狗中断程序。由于在总线数据传输方面采用硬件握手方式,双向的数据传输依靠中断方式来判断数据的到来或响应信号的到来,保证了不同总线上的数据正常、透明、可靠传输。因此,此时各通信总线端口已进入中断读取数据状态。

当程序进入主循环后,首先获取 GPS/BD 模块的经纬度信息,采集 8 路 GPIO_In 口的电平状态,接着 RS485_1 与上位机进行三次应答,将每次应答获取的数据进行截取保存,并对数据判断,满足则 GPIO_Out0 输出固定频率脉冲。然后解析上位机传来的 CAN 指令,执行相应的程序,初次为健康查询即检查各端口通信是否正常,若正常则将 8 路 GPIO_In 端口状态、RS485_1 读取的数据、RS485_2 三次应答截取的数据、RS232 的数据以及 GPS/BD 模块获取的经纬度信息按约定要求解析放入 RS232_TXBUFF,并由电源同侧的两路 RS232 发送给上位机进行数据的处理与显示。运行期间,利用定时器中断不断执行喂狗任务,上位机可发送 CAN 指令停止喂狗进行复位。此外,若板卡由于不可控因素导致程序跑飞,此时无法喂狗,程序自动复位,有效地防止了板卡因程序崩溃而无法工作的现象。4 系统测试

4.1 指标测试本多源数据采集板卡的技术指标主要为工作电压、最大功耗、各总线通信波特率等。实测表明,板卡在测试技术要求范围内的配置下均能正常工作。指标测试结果如表 1 所示。

4.2 整体性能验证为了验证数据采集板卡的整体性能,将板卡各端口与工控机匹配端口相连接,模拟板卡通过多个端口采集多源传感器数据信息,进行汇总并输出,并通过 CAN 总线与上位机指令进行交互。通过上位机分析板卡的输出数据并界面显示,确定板卡各端口接收到的信息无误,板载 GPS/BD 数据正确,多端口收发无阻塞,无竞争,可持续运行并按约定逻辑响应上位机通过 CAN 总线端口发送的指令。此外,经 72 h 长时间持续工作测试,板卡一直处于正常稳定的工作状态。

本文设计了一种基于 STM32 的多源数据采集板卡,实现了 CAN、RS485、RS232 等多种接口的通信,且均电气隔离,使板卡减小干扰,通信更为可靠。板卡采用 STM32F429 芯片为控制核心,较强的数据处理能力,使板卡具有较好的性能;采用多种总线端口,可连接各种不同总线接口的传感器设备,具有良好的可扩展性;板载 GPS/BD 模块,记录时间地理信息,方便用户确定设备位置坐标;采用 DC-DC 隔离电源,电源转换效率高,热损耗小,具有功耗低的优点。此外,板卡采用铝框外壳固定,安装方便且抗振牢固。

1、睡眠模式(Cortex?-M3内核停止,所有外设包括Cortex-M3核心的外设,如NVIC、系….

我做过很多工业用压力采集产品,用过很多高分辨率的AD芯片,其中有两款值得推荐。一个是海芯科技出的HX711等24位A…

stm32的外设地址从0x4000 0000开始,可以看到在库文件中,是通过基于0x4000 000….

30、ARM处理器有两种状态:ARM状态和Thumb状态。 31、这张图说明了一切:Thumb2指令集做了一件很伟大的事…

1、 SYSCLK时钟源有三个:HSI RC、HSE OSC、PLL 2、 MCO[2:0]可以提供4源不同的时钟同步…

搞了很多年软硬件开发,从硬件到单片机到上位机都搞过,发些资料与网友分享 通信测试需要服务器回应,市面上很多调试…

这是改的以前的一款板子,原来是两层,由于尺寸要求只能做成四层,这大概算是自己的第2块四层板吧,还未打样,还需大家…

想要实现一个按下KEY0键使得舵机正转180度,松开停止;按下KEY1反转180度,松开停止的功能。 但我的结果是按下…

我写了如下一段线_Read(MAADR5)== macaddr[0]) { 语句1; } …

μClinux最大特点在于针对无MMU处理器设计,这对于没有MMU功能的STM32F103来说是合适….

TIM3的更新时间控制两个SPI的收发节奏,即定时器每产生一次更新事件,SPI1/SPI2这两个主从….

这里使用STM32F302_Nucleo板来实现之。使用STM32常规定时器中的高级定时器TIM1来….

第一种,将相关PWM输出的GPIO口的复用功能取消,对其进行GPIO的高低控制。这种方法简单可行,有….

当然。可以说STM32cubeIde已经将stm32CubeMx作为一个模块嵌入其开发环境中了。我们….

基于磁耦隔离和硬件零延时技术的RS485总线总线采用平衡式发送、差分式接收的数据收发器来驱动,各节点之间的通信是以一对双绞线作为传输介….

意法半导体增强STM32 *LoRaWAN®开发软件扩展包(I-CUBE-LRWAN)的功能,支持最….

由于CAN属于异步通讯,没有时钟信号线,连接在同一个总线网络中的各个节点会像串口异步通讯那样,节点间….

本设计分享的是国外开源作品,嵌入式板卡本杰明VESC电调板(四层板)设计,该STM32电调板VESC设计-直流….

CORE用来存放核心文件和启动文件, OBJ是用来存放编译过程文件以及hex文件, STM32F10….

意法半导体更新了STM32 *微控制器TouchGFX用户界面软件框架,新增功能能够让图形用户界面变….

STM32系列专为要求高性能、低成本、低功耗的嵌入式应用设计的ARM Cortex®-M0,M0+,….

对于我这种以前只接触过51和AVR单片机编程的小菜来说,现在开始学习STM32的编程,对于函数的功能….

文本标签:
本文地址:http://www.huapuxin.cn/blog/6278.html
除非注明,本站所有文章皆为原创,转载请以链接形式标明本文地址

马上分享给你的朋友吧~

评论已关闭!