首页 理论教育 下位机子系统:建模与控制补偿的解决方案

下位机子系统:建模与控制补偿的解决方案

时间:2023-11-09 理论教育 版权反馈
【摘要】:下位机子系统分为测试用单片机系统及控制用单片机系统。控制用单片机安装在驱动控制电路板上,控制用单片机独立于上位机系统,配合面板按键工作。有效时,系统将会减速直到停止,同时将保持零速度状态直到该位变高和新的速度命令被接收为止。当引脚和标志位为高时,表明系统正处于梯度式移动状态。应当注意标志位清零的那一刻并不表明电动机已停止工作。主处理器通过一根8位的数据总线与HCTL1100进行通信。

下位机子系统:建模与控制补偿的解决方案

下位机子系统分为测试用单片机系统及控制用单片机系统。测试用单片机主要完成发生测试用PWM波,切换控制模式;控制用单片机主要完成与上位机的串口通信,对HCTL1100运动芯片的读写操作以及对驱动电路的操作。在系统设计中测试用单片机用89c52(51内核)单片机,用PLM51语言进行编程。测试用单片机安装在驱动测试电路板上,测试用单片机独立于上位机系统,配合面板按键工作。当进行测试实验时,用该单片机发生测试用PWM波,进而驱动电动机,用以监测电动机工作正常与否。当进行控制算法实验时,用以切换控制模式,保证控制通信电路板发生的控制用PWM波正确进入驱动系统。

控制用单片机的编程采用C51语言在u Vision2环境下进行下位机开发,用89s52(51内核)实现。控制用单片机安装在驱动控制电路板上,控制用单片机独立于上位机系统,配合面板按键工作。当进行控制实验时,用该单片机发生控制用PWM波,进而驱动电动机。当进行控制算法实验时,保证控制通信电路板发生的控制用PWM波正确进入驱动系统。控制用单片机程序模块由HCTL-1100操作模块和通信模块组成。

1.HCTL-1100操作模块

HCTL-1100是美国Agilent公司生产的高性能通用运动控制系列芯片,它内部集成了数字滤波器换向器等可编程器件,因而可以使系统用最少的元件来实现运动控制,这样不仅减轻了上位主机的控制负担,同时还具有很大的灵活性。HCTL-1100是一个通用的电动机控制芯片,用于控制直流有刷、直流无刷以及步进电动机。HCTL-1100接收来自主控制器的命令和增量式编码器的反馈脉冲,采用8位地址/数据总线接口与主机相连。HCTL-1100内部包含了一个可编程数字控制器,64个8位寄存器,其功能的实现是通过对寄存器和控制器的操作完成的。控制用单片机最主要的工作就是对HCTL1100进行读写操作,读写操作以严格按照时序进行。HCTL1100的内部功能框图如图8-3所示[2-3]。

978-7-111-43243-2-Chapter08-3.jpg

图8-3 HCTL1100的内部功能图

(1)HCTL-1100的引脚功能

HCTL-1100具有40-PDIP和44-PLCC两种封装形式,如图8-4分别为这两种封装形式的引脚排列图。HCTL-1100运动控制芯片各主要引脚的功能说明如下:

同步引脚(SYNC):该引脚只在INIT/IDLE模式下有效。可用来同步两个或多个芯片。将多个芯片的SYNC端连在一起来接收上位机的命令可实现同步控制。

限位引脚(LIMIT):用于输入紧急限位标志,低电平有效。当该脚有效时,器件将进入INIT/IDLE模式,清除电机额定值并切断电动机电源,同时清除三个控制模式标志。当由INIT/IDLE模式重新进入控制模式后,这些标志可自动恢复原值。不用时应将该脚连到VDD,否则会引起触发而使系统进入错误的紧急状态。

978-7-111-43243-2-Chapter08-4.jpg

图8-4 HCTL1100的引脚功能

停止引脚(STOP):该停止标志仅适用于积分速度模式,低电平有效。有效时,系统将会减速直到停止,同时将保持零速度状态直到该位变高和新的速度命令被接收为止。不用时也应将该端连到VDD。

编码器输入引脚(CHA,CHB,INDEX):这三个引脚可用于接收增量式编码器的TTL电平输出。其中通道A和B所接收的信号将被编码成24位位置计数器信号,并从换向器输出。

电动机额定值端口(MC0-MC7):八位电动机额定值端口由寄存器R08H组成,该寄存器的数据将直接传到外部引脚MC0-MC7。其中MC7是最高有效位,R08H可读可写,写入时通常为INIT/IDLE状态。

脉宽调制(PWM)输出端口(PLUSE,SIGN):PWM端口由PULSE和SIGN引脚组成。该端口输出的电动机额定值为带有正负极性的脉宽调制信号。

梯度式引脚(PROF):该引脚与内部状态寄存器的软件标志位4相连,也可由标志寄存器(R00H)的位0表示。当引脚和标志位为高时,表明系统正处于梯度式移动状态。移动结束后,控制器将对该标志位清零。应当注意标志位清零的那一刻并不表明电动机已停止工作。因此,它只是命令描述的完成而不是实际操作的完成。如果电动机在移动中发生延迟而不能跟上命令所要求的物理移动,则标志位将在移动完成前被清零。

初始化/空闲引脚(INIT):该引脚的状态用于表明HCTL-1100正处于初始化/空闲状态,它应与内部状态寄存器的位5相连,也可由标志寄存器(R00H)的位1表示。

换向器引脚(PHA~PHD):这些引脚用于驱动无刷或步进电动机。使用时可以对这四个引脚进行编程,以用于驱动多相电动机的每个线圈。

(2)HCTL-1100的内部寄存器

HCTL-1100的工作过程由内部的64个八位寄存器控制,其中35个寄存器用于进行初始化或命令字的写入等操作,剩余的29个作为临时寄存器,但这些寄存器不能直接使用。可用的35个寄存器可分为一般控制、输出、滤波器和换向器四类。一般控制寄存器又包括标志寄存器(R00H)、可编程计数器(R05H)、状态寄存器(R07H)、采样定时寄存器(R0FH)、读实际位置和预置实际位置寄存器等。而输出寄存器(包括禁止极性转换,8位电动机额定值和脉宽调制额定值输出)则包括电动机额定值寄存器(R08H)和脉宽调制额定值寄存器(R09H)两种。HCTL-1100的内部寄存器的功能框图如图8-5所示。

978-7-111-43243-2-Chapter08-5.jpg

图8-5 HCTL-1100的内部寄存器

(3)HCTL-1100的I/O操作

HCTL1100可视为主处理器的一个8位寄存器或外部RAM,可进行读写操作。这些寄存器中的数据控制HCTL1100的操作。主处理器通过一根8位的数据总线与HCTL1100进行通信。4根I/O控制线ALE,CS,OE,R/W完成数据传输。任意I/O操作都以ALE信号中断为起点,然后从外部总线读取信号到地址锁存器。ALE置高或CS置低都将停止数据采样到地址锁存。在ALE置高后,CS置低将从外部总线采样数据到数据锁存器。CS置高后,将停止数据采样并进入内部同步进程。在进行写操作时,数据锁存其中的数据被写入到指定的地址。在进行读操作时,指定地址的数据写入到一个内部输出锁存器中。OE选通后,该所存其中的数据传送到外部总线。OE信号和内部输出锁存使得I/O灵活操作并且消除了读操作时的总线冲突。重要的在于,主机可以在HCTL1100的一个采样时间内完成更多的I/O操作。每个I/O操作都可以中断HCTL1100一个时钟周期的内部编码。尽管对每个采样时间的I/O操作都分配了额外的时间,但是减少该值对于输入采样时间寄存器的值可以进行简化。对HCTL1100的核心操作,即对HCTL1100内部寄存器进行读写操作,因此频繁调用读写子程序。在读写子程序的编写过程中应严格按照I/O时序表,对HCTL1100进行控制。HCTL1100提供了三组不同的时间顺序结构,在此我们可以选用任意一组时序结构进行编程,在该实验系统的读写子程序的编制中时序采用ALE与CS交迭的方式。(www.xing528.com)

(4)HCTL-1100的控制模式

HCTL-1100有三种设置路径和四种控制模式供用户选择。三种设置路径包括复位、初始化/空闲和排列对齐。四种控制模式分别为:位置控制、比例速度控制、梯形速度控制和积分速度控制。可以利用HCTL-1100提供的不同控制模式对关节电动机进行控制从而规划机械手臂的运动轨迹。本文用到的位置模式其流程如图8-6所示。

978-7-111-43243-2-Chapter08-6.jpg

图8-6 位置控制模式流程图

2.与上位机串口通信模块

基于该系统的验证试验和算法实验都由控制用单片机和上位机协调控制完成。上位机发送命令通过串行通信到达控制用单片机,然后由单片机向控制芯片HCTL1100发送读写寄存器指令。电动机运动时运动信号由HCTL1100采集后进行处理,或自身完成运算再次发送指令,或经串行通信把电动机的运动信号上传给上位机,由上位机进行处理后再次发送指令,完成操作。以下分别就内置算法实验和外置算法实验加以说明。

(1)内置算法实验编程

内置算法实验通过上位机发送设定值,经串行通信传给单片机,然后单片机把设定值写入运动控制芯片HCTL1100内部的寄存器,HCTL1100接收设定值后由PWM口输出命令控制电动机运动。电动机运动时其运动信号由HCTL1100采集后进行处理,由于运动控制芯片HCTL1100本身内置了四种控制模式,可以通过这些内置算法完成对电动机的控制。在此需要解决的问题主要集中在串行数据的正确传输,设定值的设定和判定以及上位机界面操作上。每次从上位机界面输入的设定值经转换后由上位机发送给串口COM1,单片机接收该数据。每组数据由六个8位数组成,其定义如下:

1)第一个数为FF为识别码,确保数据的正确传输。

2)第二个数为数据判定位,用以对每组数据进行识别,8位的具体定义为7—5位为通道识别位,用选择六个自由度某一通路进行操作,通道定义为:

978-7-111-43243-2-Chapter08-7.jpg

4—3位为模式选择位,用以选择HCTL1100内置四种控制模式的一种对电动机进行控制,对应关系为:

978-7-111-43243-2-Chapter08-8.jpg

2位为方向控制位,在位置控制模式下0定义为正向运动,1定义为反向运动。

1—0位为梯形轨迹控制模式的扩展位。

3)第三、四、五个数为实际传输的数据,即设定初值,第三个数定义为高位数据(MSB),第五个数定义为低位数据(LSB)。

4)第六个数为FF为识别码,确保数据的正确传输。上位机在确认数据传输正确后,加入24V直流电源,驱动电动机运动,完成目标设定。

(2)外置算法实验编程

外置算法实验利用HCTL1100的PWM寄存器,在HCTL1100的初始化空闲模式下直接对PWM寄存器进行操作。电动机的运动信号由HCTL1100采集后,经由串行通信返回给上位机,上位机自行编制算法对返回值进行处理,然后发送命令给PWM寄存器对电动机进行控制。编程工作集中在上位机算法的编制以及对数据收发。以下给出整体编程的流程图:上位机图形界面输入设定,经数据转换后直接向PWM寄存器输入数据,给出一定占空比控制电动机运动。电动机运动后,其运动信号返回后经上位机算法处理再次向PWM寄存器输入数据,对PWM波的占空比进行调整,实现对电动机的控制。上位机每次发送的数据为2个8位数,包含通道信息和PWM输入值;接收数据为2个8位数,返回电动机的运动信息。发送数据的定义如下。

1)第一个数为通道判别和数据识别,具体定义为:7—5位为通道识别位,用一般定选择六个自由度的某一通路进行操作,通道定义为:

978-7-111-43243-2-Chapter08-9.jpg

4位不用,3—0位为F即1111,确保数据的正确传输。

2)第二个数为PWM输入值,每个输出值对应一定占空比,其对应关系见HCTL1100芯片资料。

接收数据的定义如下:上位机每次接收3个数据,为电动机运动信号。第一个数为电动机运动的高位信息(MSB),第三个数为电动机运动的低位信息(LSB),第三个数为电动机运动的方向信息。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈