咨询电话
ENGLISH0755-88840386发布时间:2020-10-21 10:45:32 |来源:网络转载
在畜牧养殖行业常需要对多种饲料按科学的比例进行配料而在大型牧场若采用传统的人工称量配料会耗费大量的时间近年来随着畜牧养殖业的发展为了提高养殖效能许多畜牧养殖场对精准车载配料系统的需求越来越多[1]将配料称重显示仪配备在饲养车上可以在饲养车辆行进过程中边配料边喂养从而节省很多时间为此要求配料称重仪表具有高的可靠性和高的配料精度在此选用ARM单片机STM32F407设计了一款能够在饲养车行进中输出精准重量的车载配料称重显示仪。
1车载配料称重显示仪硬件设计
STM32F407单片机是ST公司基于ARMCor鄄texM4内核的微控制器主频可达168MHz片内集成了先进的外设其可配置的GPIO多达114个通讯接口有15种院I2CSPI串行接口CAN接口外存接口等内部的Flash存储器可用于非易失性数据存储[2]故在此选用STM32F407作为控制核心用于接收来自内置信号采集模块或外置数字传感器的数据检测仪表按键组的状态实现各种参数的设置工作模式的设置多界面的切换并驱动5位数码管显示。
该仪表结构框图如图1所示STM32F407通过CAN总线接收重量数据通过按键组接收用户的操作信号其片内Flash用于存储仪表参数LED数码管用于重量显示及状态提示声光提醒模块用于配料提醒及故障提醒485接口用于驱动点阵式LED大显示屏USART接口可用于程序升级WiFi模块可用于与管理平台通讯。
仪表内置的信号采集模块用于采集处理模拟传感器的信号其结构框图如图2所示包含信号调理电路AD转换电路MCU处理及CAN接口电路信号调理电路将模拟传感器的mV级信号进行调理放大AD转换电路将调理放大后的信号转换为数字信号并将转换结果输出给采集模块MCU进行处理该MCU将此数字值转换成重量值通过CAN接口传输给STM32F407。
若仪表外采用数字传感器则不需要信号采集模块的处理STM32F407通过CAN接口接收数据即可CAN收发器的电路原理如图3所示
电源调理模块用于给仪表内各模块及元器件供电采用GPIO端口接收来自按键组的用户操作信号按键组含有1个电源开关键5个功能键其中电源开关键可实现仪表的一键开关机功能键可单独使用也可组合使用用于仪表参数设置标定称重模式设置多界面的切换及各流程的状态切换等采用GPIO端口输出开关量信号驱动声光提醒模块用于在配料过程中配料重量接近设置范围时给配料人员提供声音提示或灯光提醒当仪表出现故障时STM32F407也会驱动声光报警。
STM32F407通过SPI接口控制LED显示驱动芯片驱动LED数码管显示用于显示称重模式下的重量同时在各界面的流程控制中进行相应状态提示。
仪表的485接口电路用于STM32F407与点阵式LED大显示屏的通讯通过大显示屏显示相关信息
USART接口用于ISP程序升级
WiFi模块可用于将重量上传至系统管理平台管理平台也可向仪表发送广播信息等当仪表检测到故障时可将故障码通过WiFi发送至平台。
2软件设计
2.1总体流程
总体流程如图4所示仪表在上电对各外设初始化后读出Flash内的参数并使能一键开关机电路的电源驱动通过CAN接口读取采集模块的关键参数然后进入主界面称重界面显示重量超载等信息同时开启定时器中断CAN中断在定时器中断中每250ms发送1次读取采集模块重量的CAN指令在CAN中断中接收来自采集模块的数据开启各按键端口的外部中断在外部中断中对按下的功能键进行消抖消抖后对按键标志置1此时STM32F407结合功能键的状态执行功能操作或状态切换并进行各状态下的显示若检测到开关机键长按下则断电关机若未检测到开关机键按下则在各界面一直循环下去。
在称重界面下模式0或模式1时结合Flash存储的参数对重量修正将重量超载等信息进行显示并结合功能键执行相应的功能操作或状态切换也可由功能键进入设置界面,在设置界面下可进入多参数设置满程目标值设置标定修正设定超载门限设定工作模式,设定称重单位设定等二级界面首先进入菜单选择界面此时结合按键可进行二级界面的选择在各二级界面下可结合功能键执行相应的状态切换也可由功能键退出设置界面进入称重界面同时在各界面流程控制中驱动数码管进行实时状态显示。
2.2CAN接口编程
由于CAN总线具有可靠性高功能完善成本较低等诸多优点目前已广泛应用于汽车工业工业控制等领域[3]考虑到其具有可靠的错误检测和出错处理功能在此采用CAN接口实现STM32F407与采集模块的数据传输波特率采用500kb/s
CAN2接口发送1帧数据的程序代码如下
另外在数据帧中均增加了校验数据接收方收到数据帧进行解析时按照约定的格式计算校验值若该校验结果与数据帧中的校验数据一致则做出相应的回复或处理否则不予处理。
数据帧中的数据约定格式见表1其中含有帧头帧尾数据校验等信息。
2.3流程控制操作错误保护
在各一级界面二级界面的流程控制中各状态的切换以输入条件和当前状态为依据输入条件主要是各功能键的状态另外在不同界面中还包括其他对应条件
具体工作过程为院判断当前外界输入条件是否满足当前界面当前状态下的输入条件若满足则状态转换为下一状态否则停留在当前状态。
2.4参数存储保护
为防止Flash内部的参数丢失采用备份的方式将数据分别存储于2个不同的扇区。
在对参数进行存储时首先对待存储数据进行CRC16校验将数据和校验值存入后再将数据读出进行CRC16校验将计算所得校验值与读出的校验值进行比对若相等说明存储正确否则将再次存储原始参数重复以上步骤重复存储3次仍不能正确存储则显示野Err冶提示。
在每次读取时先读出存储扇区的数据进行CRC16校验若计算所得校验值与读出的校验值相等说明参数正确否则参数错误则将备份扇区的数据读出进行判断若参数正确则采用该备份数据并将该数据再次存储若参数仍错误则采用程序中预先定义的数组[4]中的出厂默认参数。
3测试试验
3.1采集精度测试
该仪表在正式使用前分别接模拟传感器比率校准器进行全面的精度测试试验结果见表2在常温下信号源为模拟传感器时系统综合精度为2.2伊10-4在-30耀70益温度范围内系统综合精度为5伊10-4完全可满足牧场配料的精度要求。
3.2振动试验
在振动试验机上采用表3所列的振动频率功率谱密度和加速度进行32h的振动停止后仪表仍能正常工作表明振动对仪表性能无明显影响。
4结语
采用单片机STM32F407实现仪表的多界面流程控制和CAN通讯采集不仅具有较高的可靠性而且编程采用标准C语言便于程序的修改与优化所设计的畜牧车配料称重仪表具有可靠性高可操作性强配料精度高等优点该设备操作方便实现了人机对话目前已在河南某牧场中投入使用经试验证明院该仪表工作稳定可以满足牧场配料控制的要求。
文章来源于网络转载,侵删