接口/总线/驱动
0引言
在现代工业控制领域中,RS232、RS485、CAN 等总线接口在工业领域中应用较为广泛[1-3]。在许多场合,由于设备处理数据的形式不同,通信接口各有差异,因此各式各样数据采集的转换器出现了,但是市面上出现的很多转换器一般都只是两种总线数据格式之间的转换,难以适应端口总线繁杂的场合[4-6],为此本文设计了一种多源数据采集板卡,其以 STM32F429 为核心,实现对多路 RS232、RS485、CAN 总线数据收发以及 GPIO 接口配置功能,另外板载 GPS/BD 模块,满足了用户对采集多种不同通信接口设备数据以及时间地理信息显示的需求。
1 系统总体架构
多源数据采集板卡主要由 STM32 核心电路、2 路 CAN 总线接口、2 路 RS485 接口、4 路 RS232 接口、8 输入 /8 输出 GPIO 端口、板载 GPS/BD 模块以及电源电路组成。多源数据采集板卡硬件结构如图 1 所示。
STM32 作为多源数据采集板卡的控制核心,控制协调各路通信总线接口的数据收发,以及与上位机进行交互,实现上位机对设备终端数据的采集、显示与控制等功能;2 路 CAN 总线分别独立,并在板卡两侧各有 1 路接口,通信速率范围为 500 kb/s~1 Mb/s;2 路独立 RS485 总线,波特率 9 600 b/s 到 115 200 b/s 可配置,可挂载多个 RS485 总线通信的传感器模块,均分布在板卡左侧;4 路 RS232 接口,波特率 9 600 b/s 到 230 400 b/s 可调,左右两侧各 2 路独立接口;16 路 GPIO 端口,左侧 8 路输出,右侧为 8 路输入;GPS/BD 模块主要完成时间地理位置信息的采集,通信速率 9 600~115 200 b/s 可配置,数据更新频率 1~20 Hz 可配置;电源电路包括 12 V 转 5 V、12 V 转 3.3 V 以及 12 V 转 24 V 三部分。
2 系统硬件设计
2.1 STM32 核心电路设计
该部分选用了 STM32F429ZIT6 为微控制器,其使用高性能的 ARM Coetex-M4 32 位的嵌入式 RISC 内核,工作频率高达 180 MHz,内置 2 MB 的 Flash 和 256 KB 的 SRAM 存储器,丰富的增强 I/O 端口和联接到两条 APB 总线的外设;包含 2 个 12 位的 ADC,3 个通用 16 位定时器,以及 3 个 I2C 和 SPI,4USARTs/4 UARTs 和 2 个 CAN 通信接口[5]。其中板卡通信要求至少 7 个串口与 2 个 CAN 总线。此外,该芯片采用 1.7~3.6 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 总线收发模块,可实现 3 000 V DC 电气隔离,传输波特率范围为 5 kb/s~1 Mb/s;极大满足了工业级的指标要求。该模块+3.3 V 供电,与 STM32 之间接口无缝连接,具有功耗低的优点。此外,为了提高总线通信的可靠性,在该模块外添加了端口浪涌防护电路,当模块应用于较为恶劣的现场环境时,如高磁场干扰、大能量雷击等场合,可保护模块不被损坏。CAN 总线接口电路如图 3 所示。
2.3 RS485 总线设计
在该电路中,使用了 TD321S485H-A 系列的 SMD 单路高速 RS485 隔离收发模块(自动切换),其主要功能是将逻辑电平转换为 RS485 协议的差分电平,实现信号隔离。该模块+3.3 V 供电,传输波特率可达 500 kb/s,满足要求。同样,在模块外添加了端口保护电路,SP00S12 是一款信号浪涌抑制器,可用于各种信号传输系统,抑制雷击、浪涌、过压等有害信号,对设备信号端口进行保护,尤为适合 CAN、RS-485 等通信领域的浪涌防护。因此,选择 SP00S12 可有效保证 RS485 总线通信的可靠性。RS485 总线电路如图 4 所示。
2.4 RS232 通信接口设计
该接口电路采用了型号为 RSM232D 的双路隔离 RS-232 收发器,它支持 3.15 V~5.25 V 超宽压输入电源供电,波特率可达 235 kb/s。与普通的 RS232 芯片相比,它电磁抗干扰 EMS 极高,隔离耐压 2 500 V DC。由于该模块内部 TOUT/RIN 线没有 EDS 保护器件,当应用于环境比较恶劣的场合时,可能造成通信不稳定的情况。因此,在模块 TOUT/RIN 线端外加了 TVS 管、防雷管、屏蔽双绞线以及同一网络单点接大地等保护措施,有效保护了 RS232 总线端口。具体电路如图 5 所示。
2.5 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 可配置。另外,模块自带可充电后备电池,可以掉电保持星历数据[11-12]。
ATK-1218-BD 模块同外部设备通信接口采用 UART(串口)方式,输出的 GPS/ 北斗定位数据采用 NMKA0183 协议[13],控制协议为 SkyTraq。因此使用前,需采用 SKyTraq 提供的 GNSS_Viewer 软件对该模块的更新速率、串口波特率等参数进行配置。该模块与单片机连接方式如图 7 所示。
2.7 电源电路设计
根据各端口模块以及 MCU 的供电要求,需要将 12 V 工作电源转化为+3.3 V、+5 V、+24 V 隔离电源。为了提高电源的转换效率,降低热损耗,采用了一款内置集成电路高端高压功率 MOSFET 的降压型开关电源芯片 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 所示。
3 系统软件设计
3.1 程序设计分析
该设计以 KEIL MDK5 为软件开发环境,操作系统为 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 长时间持续工作测试,板卡一直处于正常稳定的工作状态。
5 结论
本文设计了一种基于 STM32 的多源数据采集板卡,实现了 CAN、RS485、RS232 等多种接口的通信,且均电气隔离,使板卡减小干扰,通信更为可靠。板卡采用 STM32F429 芯片为控制核心,较强的数据处理能力,使板卡具有较好的性能;采用多种总线端口,可连接各种不同总线接口的传感器设备,具有良好的可扩展性;板载 GPS/BD 模块,记录时间地理信息,方便用户确定设备位置坐标;采用 DC-DC 隔离电源,电源转换效率高,热损耗小,具有功耗低的优点。此外,板卡采用铝框外壳固定,安装方便且抗振牢固。
责任编辑;zl
全部0条评论
快来发表一下你的评论吧 !