伺服驱动器的双CAN监控系统设计

期刊: 环球科学 DOI: PDF下载

鲁国玺

杭州日鼎控制技术有限公司310000

摘要

当前伺服驱动器大都是以工控机为主机,而传统的控制方式大多是RS232通信方式,通信距离短,波特率低,抗干扰能力差。该系统采用STM32F407双CAN总线控制芯片,以CAN通信方式对执行器进行参数设置与监控,扩大了监控范围。针对伺服驱动器的特点,提出了一种基于CAN总线的通信方案。同时,为了方便现场监控,在没有PC机的条件下,还使用了数码管对机监控,从而扩大了监控的范围,提高了系统的可靠性。本系统采用AT24C02作为主存储单元,采用双存储区的设计思想,对数据进行存储。实际应用表明,所研制的执行器监控系统运行稳定,具有很好的参考价值。


关键词

伺服系统;监控设计;双CAN;AT24C02

正文


1CAN监控系统硬件设计

伺服驱动器CAN监控系统硬件组成以STM32F407为主要控制芯片,并以TJA1030 CAN总线的收发模块,完成对 CAN控制器 TTL电平到差分电平的变换;利用USB接口,实现CAN总线电平到 CAN总线差分电平的变换。设置5个键,修改参数序列和参数数据,并保存一个用于存储参数,5个键与STM32F407直接通过通用的IO接口连接。8段数码管分别由874LS595来驱动,而74LS595则可以极大地节约STM32F407 IO端口,它能把串行数据转换成平行数据,而STM32F407只用3个引脚就能控制5个数字管;五键联动,实现了对参数的设定与显示,即使在没有PC机的情况下,也能使使用者更容易地进行监测,从而极大地增强了监测的范围与可靠性。为了对硬盘进行断电保护,设置了内存芯片AT24C02。在STM32F407AT24C02的通讯中,利用IIC实现了两条信号线管脚 CLK DA线的通讯。

2CAN监控系统软件设计

伺服驱动器的双CAN监控系统软件模块包括:双CAN通讯模块、驱动参数存储模块AT24C02、按键模块和显示模块

2.1系统初始化

系统的初始化,主要是时钟的初始化,时钟的配置和频率的分配。对CAN进行初始化,主要包括两个CAN管脚的初始化,DMA缓存的组态,CAN通讯的中断组态,以及时钟与波特率的组态。对AT24C02进行初始化处理,其核心是对管脚进行初始化。按键引脚的初始化主要是将引脚设定成输入类型,数字管相关的3引脚的初始化则是将3个引脚设置成输出类型。参数初始化主要包括开机时的用户参数及工厂参数的读取。

 

2.2CAN通信模块软件设计

2.2.1CAN自定义协议设计

该系统利用CAN通讯实现对传统上位机监测的可靠兼容。CAN总线只指定了物理层,在应用层没有统一的规范,为了确保实时性,单帧的长度不宜过长;如果不这样做,整个系统的实时性就会大打折扣。为了确保实时性,使用了定制的通讯协议。该接收框信息是由计算机向STM32F407发出的。传输帧是由STM32F407向计算机发出的一条消息。

CAN总线传输协议框架采用短框架结构,以确保系统的实时性。CAN的发送帧总数为7个字节,并被放置在CanTxMsg结构中的数据阵列中,其中包含一个作为节点地址的1个字节,其地址范围可达0-255

2.2.2CAN自定义协议软件设计

CAN总线通信协议的软件设计,主要由CAN总线的接收和传输功能两部分组成。CAN传输功能的主要流程是:将所要传输的数据放入发送阵列u8Send中,Send[0]中放当前数据8位数据,Send[1]中放CRC校验的高8位,Send[2]接收到参数序号Receive,Send[3]放该参数的当前数据/2568位数据。Send[4]中放当前数据/1288位资料,Send[4]中放CRC校验,高8位的CRC校验码Send[4]放重组数据的CRC校验码低8位,CRC校验码。

10ms调用CAN的接收处理功能,并在接收处理功能中调用发送功能用于回复上位机的消息。CAN接收处理功能的处理过程是这样的:在收到数据的时候,先进行CRC检验,若经过了循环冗余校验,则表示该数据是正确的。接着,阅读第一个字节地址,看看它是不是本地节点的地址,若是,则按照不同的参数,读出内部参数的属性;通过对CAN总线进行读取和写入,并通过CAN通信功能向PC机发送数据。CAN总线数据采集关键点的确定:CAN总线参数属性的处理是通过在系统中创建一个参数组,每一个参数组都定义了一个结构体类描述参量。

2.3按键的软件设计

设置了5个键,这5个键的作用是:KEY1是存储键,用于存储数据,当KEY1被按下时,系统将当前的参数存入AT24C02KEY2为一个选择键,用于选择要被修改的目标是否为参数ID或参数的数据项目,如果原本是一个参数,则按KEY2键将其还原为参数ID;如果原为参数ID,按住KEY2就会选择数据。KEY3用于缩小被选择区域,KEY4用于增大被选择区域;根据KEY2的动作,具体降低的是一个参数ID,还是一个数据项。按下增大键KEY4后,参数的值将增大,取决于按下的时间长度,增大的程度也不一样,按下的时间更长;随着数字的增大,减少键盘后的数字也相应地减小,同时,可以调节与按下的时间有关的长度参数的减小的幅度,随着按压时间的延长,增大的幅度也增大。使用KEY5键进行监测方式的转换,目前的监测模式是LCD显示,若目前的监测模式是CAN模式,按住KEY5键可转换为CAN监测方式;按住5键进入LCD模式。

2.4AT24C02软件设计

AT24C02的存储空间分为两个部分,分别用于存储用户参数和设备参数。将生产过程中的参数与用户参数分别存储在不同的地址中。保存时,按照模式设定参数进行设定,储存方式参数设为0时,不储存参数。如果参数被设为1时,就会被保存为Userparameter。在模式设定为2时,将输出工厂的数值参数保存。设定方式2的理由是:在使用者错误的操作参数设定错误,造成驱动程序无法正常运行时,能够将输出值参数的数值调出来,使系统回归到正常工作状态,从而提高了系统的可靠性。同时,在每一次成功存储参数之后,在AT24C02的后面都会设置一个32比特的字节,在下一次读出参数时,读出0x6666,表示这一次的参数值是被准确保存的。

在系统再次开机时,都要读一些参数,这些数据有两种方式:0的时候读用户的参数,1的时候读的是工厂的参数。在正常情况下,上电之后,会先读取AT24C02中的用户参数,当读取不成功的时候,就会读取AT24C02的出厂参数。如果读取不成功,那么就会把默认的出厂参数表中的数字,分配到参数表中的参数上。

2.5数码管显示软件设计

在显示时分为10进位显示器,依据资料的正、负显示符号,正则不显示,负则显示;从分段代码中抽取出要显示的代码,可选取小数点的数字为dpNum。如果没有小数点,则会在-9999-99999之间显示,十进制的数据Data首先获得每一位数,每五次对其进行五次计算,再将其除以10,所得10的每一位都被放置在数组SdataTemp中,也就是SdataTemp中的十位数,再通过SdataTemp进行5次循环,并使用SdataTemp和点的段码,用于在对应的位置上同时显示数字和点,puts是上一次实际显示的段代码的阵列。

3实验结果及分析

通过试验,通过系统软硬件联调,实现了多台样机之间的CAN通讯功能;该系统能够很好地完成对驱动程序的控制,能够对存储在AT24C02中的用户参数及工厂参数进行可靠的读取,并能通过键盘、数码管对参数进行显示和修改。

参考文献

1]汪小芳,张军.基于LabVIEWCAN总线的负载敏感液压测控系统[J].机床与液压,2022504):6571

2]陈浩.基于CAN总线的商用车智能信号模拟器设计[J.自动化与仪表,20223710):77-8186


...


阅读全文