国家锂电池产品质量检验检测中心 邮政编码:277800
摘要:针对常用锂电池检测设备不具备变温控制的功能缺陷,提出一种基于以太网数据流解析,对升降温箱设备进行协同控制的系统方案。本文基于DM9000以太网控制器实现以太网通讯,采用STM32处理器进行UDP数据包解析。经过实际测试,能够准确分析网络数据,并可由RS485通讯控制外部变温设备。
关键词:锂电池检测、协同控温、DM9000
0引言
锂电池检测设备主要通过对充放电电流、电压的编程控制,实现对锂电池综合参数的测试,产品形态多是“PC+测试柜”。通过PC软件进行编程,控制测试柜进行指定电流、电压、循环和逻辑控制的操作。根据国家相关标准,有些测试环节需要对电池检测环境温度进行设定。常规的做法是,使用电池夹具连接好锂电池后,放入升降温箱内,单独设定温度曲线或在电池检测到某个环节时进行人工设定温度。该方式存在耗费人工、实时性差以及无法自动化的缺点,尽管有些新型检测设备提供控制外部设备的接口,但也存在灵活性不足和设备匹配困难的问题。
本文设计了一套“锂电池检测协同控温系统”,通过对电池检测系统网络通讯数据分析,获得设备运行状态,实现对升降温箱等设备的实时控制。
1系统原理
(1)锂电池检测设备的通讯过程。以某国产锂电池检测设备为例,检测设备启动后,PC首先向该设备下发编辑好的检测程序。设备运行中通过UDP协议与PC进行实时通讯,上报检测数据与设备状态等信息。通过对双方通讯数据包的解析,可以获取测试设备当前的运行状态。
(2)通讯数据解析原理。设备与PC通过UDP通讯,UDP是互联网OSI参考模型中一种无连接的传输层协议,报文由两个部分组成:首部+数据部分。首部包括:源端口号、目的端口号、UDP用户数据报的长度、校验和。通过对UDP数据包的捕获,可以分析UDP数据部分进而获取包括设备运行状态数据和电池测试数据等需要的信息。
(3)协同控制原理。本系统中,通过键盘操作设定在某运行状态下执行某操作指令,然后不间断解析收到的UDP数据,当检测到设备的运行状态与设定值一致时,即通过RS485向外部控温设备下发设置温度指令,实现协同控温的功能。
2硬件系统设计
整个系统主要有四个部分:一是控制部分采用STM32F103VET6作为主控制器;二是网络通讯部分采用DM9000CEP芯片实现网卡电路;三是控制通讯部分采用标准RS485通讯;四是其他辅助功能采用常规设计。
(1)控制部分设计
系统主控采用ST公司生产的基于ARMCortex-M3微处理器的STM32F103VET6微控制器,它是一款32位、低功耗、接口丰富、运行可靠、性价比高的单片机,其主要有以下特点:CPU主频高达72MHz,32位Cortex-M3内核,代码执行效率高,指令处理时间短;内置512K存储大小的FLASH以及64K的SRAM,通信接口丰富,包括三个SPI,五个USART、一个USB、两个I2C;拥有82个GPIO口,可配置为多种工作模式,使用灵活。广泛适用于电机驱动和控制、便携式设备、消费电子、计算机和计算机外围设备、通信和网络等领域。
采用STM32F103VET6作为主控制器,通过GPIO驱动4*5行列式按键,作为系统设置的输入;通过SPI接口驱动LCD屏作为系统的操作功能显示。
(2)网络接口部分设计
网络接口芯片采用DM9000[1],它是DAVICOM研发的一款高度集成、低功耗的10/100Mb/s以太网芯片[2]。它合成了MAC、PHY和MMU,内置AUTOMDI2X功能的10/100M PHY,芯片可以根据处理器情况提供8/16/32Bit三种不同的连接方式。实现以太网媒体介质访问层(MAC)和物理层(PHY)的功能。
DM9000和STM32采用16位连接,即DM9000的数据端口DB00~DB15与STM32的FSMC接口连接。DM9000的CMD引脚决定传输的是数据还是命令,CMD为高时,选择数据端口;CMD为低时,选择地址端口。
(3)外设控制部分设计
基于变温功能需要,驳接某国产型号的快速升降温箱,该温箱采用485 MODBUS通讯协议,电路采用基于MAX485芯片的经典UART-RS485设计方案,如图5所示,可实时控制温度、湿度。本系统支持连接多个同型号升降温箱设备,分别设置RS485通讯地址,实现不同电池检测通道分别控制温湿度。
(4)其他部分设计
系统通过USB接口与电脑进行通讯,实现电脑端指令操作和数据上传等功能,通过PL2303实现电路。
显示部分采用台湾奇美的CMI2.8寸液晶屏YT280S008,显示分辨率为240*RGB*320,该液晶屏采用ST7789V驱动,本系统采用SPI 4线接口进行驱动。
3系统软件设计
系统软件设计包括STM32主程序、DM9000驱动、MODBUS通讯以及LCD驱动等部分组成,整个程序采用Keil5 MDK进行开发。基于STM32CubeMX的STM32F407初始化程序设计可生成的初始化所有外设配置。
(1)STM32主程序设计
主程序主要包括:MCU、DM9000等核心功能初始化,循环检查按键状态、侦听DM9000在混杂模式下接收的MAC报文并与设置IP对比,解析UDP报文获取有效设备运行数据,刷新显示等操作。
(2)DM9000驱动设计
DM9000程序主要包括:初始化子程序、接受数据报子程序和发送数据报子程序[2]。
①初始化子程序
DM9000需要进行一些相关的设定才能正常工作,初始化子程序负责就完成相关的设定。初始化子程序包括软件重置、清除中断、设定相关的连接、设定MAC地址、设定广播地址、开启接受数据报的功能等。
②发送数据报子程序
发送数据报子程序的建议按照如下顺序进行:
1)将待发送数据报的长度写到TXPLL和TXPLH中;
2)将待发送数据报写到发送缓冲区中。首先设定操作的寄存器为MWCWD,DM9000自动将数据报存入发送缓冲区中;
3)开始发送数据报;
4)检查是否发送完成。
③接收数据报子程序
数据报的接收是通过中断处理,当有数据到达时,就产生中断信号,开始接收数据报。接收数据报子程序的建议按照如下顺序进行:
1)确认数据报是否为正常的数据报;
2)若是正常的数据报,设定操作的寄存器为MRCMDX,读取数据报的信息和长度;
3)读取DM9000的接收缓冲区中的数据报。首先设定操作的寄存器为MRCMD,然后根据数据报的长度读取数据。
接收到的报文经过MAC、IP、UDP逐层解析,通过目的IP和源IP后地址过滤、通讯协议过滤,只提取带有设备运行参数的数据[3]。
(3)MODBUS通讯设计
MODBUS通讯协议是一种工业现场总线通讯协议,它定义的是一种设备控制器可以识别和使用的信息帧结构,独立于物理层介质,可以承载于多种网络类型中。MODBUS协议把通信参与者规定为“主站”(Master)和“从站”(Slave),数据和信息的通信遵从主/从模式,当它应用于标准MODBUS网络时,信息被直接传送。协议报文格式紧凑,而且具有良好的灵活性[4]。
本方案通讯协议基于标准MODBUS协议,RTU类型,采用RS485串行总线;通讯数据格式:8位数据位,1位停止位,无校验,波特率为19200。
报文格式为:设备地址(1个字节)、功能码(1个字节)、数据地址(2个字节)、数据值(不定字节)、CRC校验(2个字节)。
4测试结果
本系统首先进行了模拟环境测试,验证通过后进行系统连接测试。
(1)模拟测试环境。将两台电脑分别安装SSCOM网络数据调试软件,采用UDP通讯协议模式,分别测试发送的数据信息是否能够被本系统捕获和识别。实测显示能够准确识别特定的IP地址的UDP数据包。同时,经过1s定时发送测试,本系统可以不遗漏的捕获所有数据。
(2)系统应用测试。与锂电池检测设备和快速升降温箱连接后,进行了大量测试,结果显示,设定好运行参数后可以实现相应的变温功能,且运行稳定。通过向PC发送运行数据,可以看到监测运行情况稳定。
5结论
通过本文所做的工作,可以得到以下结论:
(1)采用了高性能的工业级以太网控制器DM9000,系统通讯快速可靠,具有很高的实时性。
(2)经测试,实现了电池检测设备运行监测、升降温试验箱和冷水机操作、状态显示等核心功能。
(3)该设计方案在硬件实现上简洁可靠,软件实现上可维护性好,可扩展性好,有利于系统的后续开发。
6参考文献
[1]台湾DAVICOM公司,DM9000中文手册[K],2012.
[2]乔有田,王俊,邵万灵,等.基于STM32的DM9000A网络接口裸机的应用研究[J].工业控制计算机,2020,33(8):41-42. DOI:10.3969/j.issn.1001-182X.2020.08.018.
[3]刘亚萍,甄国涌,刘东海.基于MSP430和DM9000的以太网接口设计[J].自动化与仪表,2010,25(7):17-20. DOI:10.3969/j.issn.1001-9944.2010.07.005.
[4]程杨,刘学平,占涛. 一种基于MODBUS协议的工业控制系统设计[J]. 机械设计与制造,2011(1):1-3. DOI:10.3969/j.issn.1001-3997.2011.01.001.