基于STM32F407的畜牧车配料称重仪表的设计

2019-07-11 07:09刘泽玲周智荣
自动化与仪表 2019年6期
关键词:配料校验仪表

刘泽玲,周智荣,张 伟

(中航电测仪器股份有限公司,西安710100)

在畜牧养殖行业,常需要对多种饲料按科学的比例进行配料,而在大型牧场,若采用传统的人工称量配料,会耗费大量的时间。近年来,随着畜牧养殖业的发展,为了提高养殖效能,许多畜牧养殖场对精准车载配料系统的需求越来越多[1],将配料称重显示仪配备在饲养车上,可以在饲养车辆行进过程中边配料边喂养,从而节省很多时间,为此要求配料称重仪表具有高的可靠性和高的配料精度。在此,选用ARM 单片机STM32F407,设计了一款能够在饲养车行进中输出精准重量的车载配料称重显示仪。

1 车载配料称重显示仪硬件设计

STM32F407 单片机是ST 公司基于ARM Cortex M4 内核的微控制器,主频可达168 MHz;片内集成了先进的外设,其可配置的GPIO 多达114 个,通讯接口有15 种:I2C,SPI,串行接口、CAN 接口、外存接口等,内部的Flash 存储器可用于非易失性数据存储[2]。故在此选用STM32F407 作为控制核心,用于接收来自内置信号采集模块或外置数字传感器的数据,检测仪表按键组的状态,实现各种参数的设置、工作模式的设置、多界面的切换等,并驱动5位数码管显示。

该仪表结构框图如图1所示。STM32F407 通过CAN 总线接收重量数据,通过按键组接收用户的操作信号,其片内Flash 用于存储仪表参数,LED 数码管用于重量显示及状态提示,声光提醒模块用于配料提醒及故障提醒,485 接口用于驱动点阵式LED大显示屏,USART 接口可用于程序升级,WiFi 模块可用于与管理平台通讯。

图1 仪表结构框图Fig.1 Instrument structure block diagram

仪表内置的信号采集模块,用于采集处理模拟传感器的信号,其结构框图如图2所示,包含信号调理电路、A/D 转换电路、MCU 处理及CAN 接口电路。信号调理电路将模拟传感器的mV 级信号进行调理放大,A/D 转换电路将调理放大后的信号转换为数字信号,并将转换结果输出给采集模块MCU进行处理,该MCU 将此数字值转换成重量值,通过CAN 接口传输给STM32F407。

图2 信号采集模块结构框图Fig.2 Structure block diagram of signal acquisition module

若仪表外采用数字传感器,则不需要信号采集模块的处理,STM32F407 通过CAN 接口接收数据即可。CAN 收发器的电路原理如图3所示。

图3 CAN 收发器的电路原理Fig.3 Circuit schematic of CAN transceiver

电源调理模块用于给仪表内各模块及元器件供电。

采用GPIO 端口接收来自按键组的用户操作信号。按键组含有1 个电源开关键、5 个功能键。其中电源开关键可实现仪表的一键开关机;功能键可单独使用,也可组合使用,用于仪表参数设置、标定、称重模式设置、多界面的切换及各流程的状态切换等。

采用GPIO 端口输出开关量信号,驱动声光提醒模块,用于在配料过程中,配料重量接近设置范围时给配料人员提供声音提示或灯光提醒。当仪表出现故障时,STM32F407 也会驱动声光报警。

STM32F407 通过SPI 接口控制LED 显示驱动芯片,驱动LED 数码管显示,用于显示称重模式下的重量,同时在各界面的流程控制中进行相应状态提示。

仪表的485 接口电路用于STM32F407 与点阵式LED 大显示屏的通讯。通过大显示屏显示相关信息。

USART 接口用于ISP 程序升级。

WiFi 模块可用于将重量上传至系统管理平台,管理平台也可向仪表发送广播信息等。当仪表检测到故障时,可将故障码通过WiFi 发送至平台。

2 软件设计

2.1 总体流程

总体流程如图4所示。仪表在上电对各外设初始化后,读出Flash 内的参数,并使能一键开关机电路的电源驱动,通过CAN 接口读取采集模块的关键参数,然后进入主界面称重界面,显示重量/超载等信息。同时,开启定时器中断、CAN 中断,在定时器中断中每250 ms 发送1 次读取采集模块重量的CAN 指令,在CAN 中断中接收来自采集模块的数据。开启各按键端口的外部中断,在外部中断中对按下的功能键进行消抖,消抖后对按键标志置1,此时STM32F407 结合功能键的状态执行功能操作或状态切换,并进行各状态下的显示;若检测到开关机键长按下,则断电关机;若未检测到开关机键按下,则在各界面一直循环下去。

在称重界面下,模式0 或模式1 时,结合Flash存储的参数对重量修正,将重量/超载等信息进行显示,并结合功能键执行相应的功能操作或状态切换,也可由功能键进入设置界面。

图4 总体流程Fig.4 Total flow chart

在设置界面下,可进入多参数设置、满程目标值设置、标定、修正设定、超载门限设定、工作模式设定、称重单位设定等二级界面。首先进入菜单选择界面,此时结合按键可进行二级界面的选择;在各二级界面下,可结合功能键执行相应的状态切换,也可由功能键退出设置界面,进入称重界面。同时,在各界面流程控制中,驱动数码管进行实时状态显示。

2.2 CAN 接口编程

由于CAN 总线具有可靠性高、功能完善、成本较低等诸多优点,目前已广泛应用于汽车工业、工业控制等领域[3]。考虑到其具有可靠的错误检测和出错处理功能,在此采用CAN 接口实现STM32F407与采集模块的数据传输,波特率采用500 kb/s。

CAN2 接口发送1 帧数据的程序代码如下:

另外,在数据帧中均增加了校验数据,接收方收到数据帧进行解析时按照约定的格式计算校验值,若该校验结果与数据帧中的校验数据一致,则做出相应的回复或处理,否则不予处理。

数据帧中的数据约定格式见表1,其中含有帧头、帧尾、数据、校验等信息。

2.3 流程控制操作错误保护

在各一级界面、二级界面的流程控制中,各状态的切换以输入条件和当前状态为依据,输入条件主要是各功能键的状态,另外在不同界面中还包括其他对应条件。

具体工作过程为:判断当前外界输入条件是否满足当前界面、当前状态下的输入条件,若满足则状态转换为下一状态;否则停留在当前状态。

表1 编帧格式Tab.1 Frame format

2.4 参数存储保护

为防止Flash 内部的参数丢失,采用备份的方式,将数据分别存储于2 个不同的扇区。

在对参数进行存储时,首先对待存储数据进行CRC16 校验,将数据和校验值存入后,再将数据读出进行CRC16 校验,将计算所得校验值与读出的校验值进行比对。若相等,说明存储正确,否则将再次存储原始参数,重复以上步骤;重复存储3 次仍不能正确存储,则显示“Err”提示。

在每次读取时,先读出存储扇区的数据进行CRC16 校验,若计算所得校验值与读出的校验值相等,说明参数正确;否则参数错误,则将备份扇区的数据读出进行判断,若参数正确则采用该备份数据,并将该数据再次存储;若参数仍错误,则采用程序中预先定义的数组[4]中的出厂默认参数。

3 测试试验

3.1 采集精度测试

该仪表在正式使用前分别接模拟传感器、比率校准器进行全面的精度测试,试验结果见表2。在常温下,信号源为模拟传感器时,系统综合精度为2.2×10-4;在-30~70 ℃温度范围内,系统综合精度为5×10-4,完全可满足牧场配料的精度要求。

表2 精度测试结果Tab.2 Accuracy test results

3.2 振动试验

在振动试验机上,采用表3所列的振动频率、功率谱密度和加速度进行32 h 的振动试验,其振动频谱如图5所示。振动停止后,仪表仍能正常工作,表明振动对仪表性能无明显影响。

表3 振动频率和能量谱密度Tab.3 Vibration frequency and energy spectral density

图5 振动频谱Fig.5 Vibration frequency

4 结语

采用单片机STM32F407 实现仪表的多界面流程控制和CAN 通讯采集,不仅具有较高的可靠性,而且编程采用标准C 语言,便于程序的修改与优化。所设计的畜牧车配料称重仪表具有可靠性高、可操作性强、配料精度高等优点。该设备操作方便,实现了人机对话,目前已在河南某牧场中投入使用。经试验证明:该仪表工作稳定,可以满足牧场配料控制的要求。

猜你喜欢
配料校验仪表
丢失的配料
通过优化配料方案来提高熟料质量及降低配料成本
使用Excel朗读功能校验工作表中的数据
浙江中控自动化仪表有限公司
浙江中控自动化仪表有限公司
特殊的配料
Task 2
智能电能表的现场快速校验方法探讨
电子式互感器校验方式研究
奔驰E260车行驶过程中仪表灯熄灭