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

网友投稿 336 2022-11-13

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

0引言

1 系统总体架构

2 系统硬件设计

2.1 STM32 核心电路设计

2.2 CAN 总线接口设计

2.3 RS485 总线设计

2.4 RS232 通信接口设计

2.5 GPIO 端口设计

2.6 GPS/BD 模块设计

ATK-1218-BD 模块同外部设备通信接口采用 UART(串口)方式,输出的 GPS/ 北斗定位数据采用 NMKA0183 协议[13],控制协议为 SkyTraq。因此使用前,需采用 SKyTraq 提供的 GNSS_Viewer 软件对该模块的更新速率、串口波特率等参数进行配置。该模块与单片机连接方式如图 7 所示。

2.7 电源电路设计

3 系统软件设计

3.1 程序设计分析

系统程序启动时先进行系统化,配置好各总线端口的波特率以及中断优先级,初始化 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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:记一次云计算测试实验-openstack-icehouse-安装nova
下一篇:Java Swing编写一个简单的计算器软件
相关文章

 发表评论

暂时没有评论,来抢沙发吧~