利用ADuc841控制力矩电机的硬件设计
0赞一、 核心控制芯片简介
本系统我们选用ADI公司的ADuc841作为控制处理器;选用EPM7128作为逻辑控制器;码盘选用欧姆龙公司生产的光电码盘来采集电机实际转动的位置信息作为系统的反馈传感器。
1. ADuC841简介
在我们的系统中,为了实现相应的功能,并考虑到允许的空间范围,我们选用了一款ADI公司推出的高性能单片机ADuC841,其功能框图如图所示:

ADuC841的主要资源及功能如下:
单指令周期20MIPS 8052内核
6通道12位高速420kSpsADC
2个12位电压输出DAC
62KB片内闪速/电可擦除程序存储器
4KB片内闪速/电可擦除数据存储器
2304B片内数据RAM
高速ADC至RAM捕获模式DMA控制器
精确的2.5V参考电压
时间间隔计数器
USART串行接口I/O
与I2C兼容的串行接口和SPI串行接口
看门狗定时器
电源监视器
它可用于精确仪器和传感器控制、瞬间捕获系统、以及DAS和通信系统等。ADuc841自身集成了高性能的多通道的ADC模块,双通道的DAC,和一个20MHZ、8位的8051内核。ADuc841的时钟直接由外部的晶振倍频到20MHZ,
单周期核的特点:
1) 定时器操作:在标准的8052中,12个时钟周期等于一个机器周期,每一个机器周期定时器的值加一,而在ADuc841中一个机器周期等于一个时钟周期。
2) ALE:在标准的8052中ALE管脚在地六分之一个操作频率时输出;而在ADuc841中,前半个机器周期输出为高电平,后半个周期为低电平。在两个或多个机器周期操作指令时,ALE在第一个机器周期输出为高电平,在剩下的为低电平。
3) 外部存储器:ADuc841不支持外部程序存储器。当要访问外部RAM时,EWAIT寄存器需要编程到外部的机器周期,用MOVX命令。这是为了满足不同的外部RAM的速度。
4) 存储器:ADuc841包含4 个不同的存储器块:
62k字节的片内程序闪存;
4k字节的片内数据闪存;
256b通用RAM;
2k 的内部XRAM
2. 光电码盘信号处理逻辑芯片EPM7128
由于选用的是增量编码器,所以需要对编码器输出的脉冲进行计数,采用CPLD芯片,开发了相应的逻辑程序。
CPLD(Complex Programmable Logic Device)即为复杂可编程逻辑器件,是从EPLD改进而来的,采用EEPROM工艺制作,与EPLD相比,CPLD增加了内部连线,对逻辑宏单元和I/O单元也有重大的改进,它的性能更好,使用更方便。从结构上看,CPLD大都包含了三种结构:宏单元、可编程I/O单元和可编程内部连线。宏单元是CPLD器件的基本单元,宏单元内部主要包括“与或”阵列、触发器和多路选择其等电路,能独立地配置为组合或者时序工作方式。
Altera 公司的PLD器件具有高性能、高集成度和高性价比的优点。Altera器件的基本构造块是逻辑单元(LE),该部分选取MAX7000S 系列的EPM7128。
采用Verilog HDL语言完成逻辑运算的功能,Verilog HDL语言是在C语言的基础上发展起来的。从语法结构上看,Verilog HDL语言与C语言有许多相似之处,继承和借鉴了C语言的许多语法结构。
二. 硬件电路结构设计及工作过程:
1.主体框图
在我们设计的系统采用了ADuC841作为处理器,来完成所有的运算和控制过程,采用欧姆龙公司生产的光电码盘来采集电机实际转动的位置信息,然后根据系统要求运行的轨迹,生成控制器的指令曲线,将位置信息和指令信息作差,得到系统的偏差,利用PID控制策略,设计而行控制器,依据偏差值的大小来调节系统的控制量,对于输出的控制量在输出前加入饱和限制,当偏差超过一定的范围时,强制的将偏差拉为给定值,将控制量送入DAC,生成模拟量形式的控制量,进而送入模拟电路,控制对应的电机进行工作,电机依据给定的指令,按照对应的运动曲线进行运转,由于DAC输出的是0~5V的电压,为了使电机能够实现正反向的转动,我们将DAC的输出控制量和一个2.5V的基准源送到了一个假发电路中进行运算,使得输出的控制量是-2.5~2.5V的一个电压值,从而实现了电机的正反转的控制。系统的硬件框图如下图所示。

2.功放系统
功放部分主要用于接收D/A给出的脉冲指令信号,通过低通滤波后转变为模拟信号,该信号经过功率放大后用于驱动电机转动。D/A给出的脉冲指令信号经过一次电压跟随和一次低通滤波转换为模拟信号,通过实验观察,滤波后信号的纹波较小,完全能够满足对电机转动稳定性的要求,低通滤波的带宽根据系统带宽的要求而设计为300rad/s。
滤波后的信号经过一次电压跟随以增强带负载能力,该信号作为控制系统的输入信号控制电机的转动,由于D/A给出的信号为单极性输出,而为了电机能够获得正反两个方向的转动,要求将系统的参考基准设为2.5V,当控制信号低于2.5V时电机反转,高于2.5V时电机正转。
电机驱动电路的工作原理:单片机给出的D/A信号,经过低通滤波电路,比例放大及功率输出之后驱动电机。
>2.5V的一个电压值,从而实现了电机的正反转的控制。系统的硬件框图如下图所示。

该部分电路的功能是由DACO给出控制信号,经有源滤波后电压取反;DAC1给出一个偏置电压,其中DAC1是单片机给出的2.5V电压信号,2.5V接一电压跟随电路后,输出和控制信号的输出再经过一个反向求和电路,得到电机的真实控制信号即:控制器输出信号和基准作差,当控制器输出大于2.5V时电机正转,小于2.5V时电机反转;然后给到功放级输出来驱动电机。此处用达林顿管BD681和BD682是为了增加输出的驱动能力。
3. 系统上电延时部分电路设计
系统上电后,单片机自身有延时,由此导致的结果是数字电路的响应滞后于模拟电路部分,结果上电后电机有一个冲击转动,为了消除这个冲击,我们在设计时加入一个延时电路。此电路由一个时间继电器和三个普通继电器组成,时间继电器控制三个普通继电器。不通电时普通继电器的常闭节点闭合,使电机处于短路状态。当5V和12V供电都正常之后,时间继电器延时10秒(该时间可调),普通继电器常闭触点打开,使转台投入工作,与此同时时间继电器给单片机一个信号,单片机接到此信号后,控制系统开始工作,此后整个系统处于受控工作状态。
驱动电路的设计是为了满足正反旋转的要求而设计成互补功率输出形式,按照力矩指标要求及电机参数,系统中采用的达林顿管的最大输出电流为1A,为了防止达林顿管功耗过大而导致放热,设计时采用散热片为其散热,当达林顿管持续流过电流小于0.4A时温度升高的很小,完全可以满足系统在最大力矩输出时的要求,带宽指标为500kHz,完全可以满足系统要求。
4. 光电码盘信号处理逻辑
由于选用的是增量编码器,所以需要对编码器输出的脉冲进行计数,采用CPLD芯片,开发了相应的逻辑程序。
CPLD(Complex Programmable Logic Device)即为复杂可编程逻辑器件,是从EPLD改进而来的,采用EEPROM工艺制作,与EPLD相比,CPLD增加了内部连线,对逻辑宏单元和I/O单元也有重大的改进,它的性能更好,使用更方便。从结构上看,CPLD大都包含了三种结构:宏单元、可编程I/O单元和可编程内部连线。宏单元是CPLD器件的基本单元,宏单元内部主要包括“与或”阵列、触发器和多路选择其等电路,能独立地配置为组合或者时序工作方式。
Altera 公司的PLD器件具有高性能、高集成度和高性价比的优点。Altera器件的基本构造块是逻辑单元(LE),该部分选取MAX7000S 系列的EPM7128。
采用Verilog HDL语言完成逻辑运算的功能,Verilog HDL语言是在C语言的基础上发展起来的。从语法结构上看,Verilog HDL语言与C语言有许多相似之处,继承和借鉴了C语言的许多语法结构。
逻辑运算的主要功能是对光电编码器脉冲信号四倍频,并对四倍频后的脉冲进行加减计数,提高对电机转角的精确检测。由于采用增量式光电码盘,A、B两路脉冲信号输出相位相差90度,若A相超前B相90度为正转,则认为B超前A 90度时电机为反转。电机正转时进行加计数,反转时减计数,当单片机发出输出使能信号时,把计数值锁存到一个寄存器,并输出计数值。
