历史上的今天
今天是:2025年03月22日(星期六)
2018年03月22日 | 基于控制芯片C8051F020的数字多电机控制平台设计
2018-03-22 来源:eefocus
步进电动机因具有转子惯量低、定位精度高、无累积误差等特点,非常适合用于开环位置控制系统中。直流电机是伺服控制中常用的电机。然而在实际系统中为满足不同的功能往往同时存在多个运动部件,常用的方法是一个独立的功能对应一个控制系统,这样虽然模块性很好,但是占用了大量的系统资源和空间,也在一定程度上降低了系统的可靠性。
如在某系统中存在4 个运动部件,分别为两台三相反应式步进电动机,一台直流电机和一台四相步进电动机的控制。本着提高系统集成度的想法,本文只用一个控制芯片C8051F020 就完成了以上4 台电机的驱动控制,电路简单,可靠性高。
1 总体设计
基于Cygnal 公司的MCU 控制芯片C8051F020的多电机控制系统平台,能根据控制指令完成对四台电机的控制。组成框图如图1 所示。

2 硬件设计
2. 1 主控芯片选择
美国Cygnal 公司生产的C8051F020 单片机使用CIP - 51 微控制器内核。与标准的8051 结构相比,它具有如下特点:
( 1) 指令执行速度有较大的提高,峰值速度达到25 MIPS;
( 2) 除了4 个标准的8051 的端口外,还具有4 个附加端口,共64 个通用I /O 端口;
( 3) 所有I /O 端口均可配置为漏极开路或推挽输出,进一步向低功耗应用发展;
( 4) 引入数字交叉开关,允许用户自行组合通用I /O 端口和所需的数字资源;
( 5) 具有两个串行UART 接口,5 个16 位通用定时器,5个比较捕捉模块;
( 6) 具有片内看门狗、片内温度传感器和片内VDD 监视器,使用时几乎无需外扩;
( 7) 可通过JTAG 接口实现软件在线调试功能。
C8051F020 单片机以其在执行速度、系统资源等方面的明显优势,成为本多电机控制系统非常理想的选择。
2. 2 通讯电路设计
根据与上位机的通讯协议,通讯接口采用标准双向差分RS - 422 串口通讯,工作电压为5 V,波特率为38 400 bit /s.C8051F020 系列MCU 内部有两个增强型全双工UART,通讯协议为RS - 232,工作电压也为5 V.因此选用了MAX490 器件,MAX490芯片可以很方便地将上位机的RS422 差分信号转为单片机的串口信号。具体电路如图2 所示。

2. 3 步进电动机驱动电路设计步进电动机的控制可采用串行控制,采用环形分配器来完成换相。也可以采用并行控制,由单片机完成步进电动机的换相,在系统资源够用的情况下,采用并行控制可以简化设计电路。本系统采用了并行控制,由软件控制单片机的I /O 端口输出按一定时序的PWM 波,来控制电机绕组通断电。
电机属于感性负载,电机绕组中的电流不能突变,电机由A 相换到B 相之后,若没有保护电路,A相绕组中的电流将保持相当长的时间,这样电机运行很不平稳。为了使电机运行平稳,在系统加入了保护措施,使绕组线圈中的电流迅速泻放,以利保护电机。图3 为电机一相的控制电路。

为了消除步进电动机的串扰,所有单片机输出信号均经光耦隔离。单片机输出信号为3. 3 V TTL电平,这对电机来说驱动力不够,因此采用场效应管经功率放大电路后,用来驱动电机。本系统步进电动机的驱动采用了单电压驱动方式,这种驱动电路的优点是线路简单,成本低,低频时响应较好; 缺点是存在共振,高频带载能力下降。系统要求的电机运转速度较低,不考虑高频带载能力,为解决共振问题,采用PWM 波对电机供电,通过改变电机的共振点来达到减小振动的目的。
2. 4 直流电机桥式驱动电路设计
直流电机是可以直接采用电源直接驱动的,设计直流电机驱动电路的主要目的就是对电机的转速和转向进行控制。在本系统中采用了桥式电路,如图4 所示。

这种桥式电路非常适合用来做数字控制,只需单片机按照一定的逻辑和时序控制开关管的开通关断,就能实现直流电机的正反转,也能调节电机绕组通电的占空比,从而达到改变电机转速的目的。
2. 5 场效应管选择
本系统中选用的功率元件为IR 公司生产的IRF840 功率MOSFET,其工作电压可达500 V,工作电流最高8 A,IRF840 MOSFET 功率管的驱动功率小,工作速度高,开关时间短,热稳定性好,抗干扰能力强,完全满足系统的设计要求。
2. 6 电源设计
电源设计过程中为防止各种电源之间互相干扰,尤其是模拟大电源对数字电路部分产生噪声影响,充分考虑了电源滤波的需求。在电路设计时,对供电电源做滤波处理,对控制信号做光电隔离处理。
对输入电源使用单独接插件和单独电源滤波器。对信号的输入和大功率的输出,也要分别使用接插件进行物理隔离。电机运转时最大瞬时电流可高达2A.为减少大功率输出对数字电路产生影响,在设计时,采取有效的抗干扰措施,如将大功率输出信号与数字信号采取有效光电隔离。
3 软件设计
系统的软件设计采用模块化程序设计。主程序主要完成的内容: 系统参数初始化、通讯指令解析、开启中断、进入子程序模块输出控制信号等。每个电机的不同动作均采用不同的子程序模块,维护方便。系统主程序流程图如图5 所示。

上电后,单片机程序初始化芯片的端口设置及变量初始赋值。当串口中断发生,接收上位机发来的命令消息和发送反馈消息给上位机。然后解析本次命令,按具体内容进入不同的运程序,来控制不同的电机动作。
4 结语
本文所述的控制方案,在一个系统中集成了四个电机的驱动控制电路,所有功率放大单元均采用场效应管自行搭建,在小功率步进电动机及直流电机驱动控制中有较强的通用性,最大驱动电流可达6A.可以不作任何的硬件改动,仅通过重写软件,就可以直接应用在其它系统中驱动直流或步进电动机
史海拾趣
|
见图,这是推挽放大器的前端,a,b点接下一级,请求解下a,b的电压,如果交流信号为小信号时可以用小信号的方法分析,但当图中的交流电压是比较大的信号若为5cos(wt),该怎么分析??… 查看全部问答> |
|
不服老不行了!之前只晓得咱自己用的NB可以根据自己的需求定制,没想到公司的商用台机也这么NB~~看,这就是公司定制的机器,商用台机也走定制的个性化路线了,拍张图来瞧瞧~~网管刚装好一台机子试用,ThinkCentre M系列,塔式机箱的,我就piapia的 ...… 查看全部问答> |
|
关于无线通信的编程有几个问题想请教一下,先说一下情况,嵌入式开发板带的winCE系统,有SIM卡,想通过上面的gprs模块无线上网。于是准备编写个简单的RAS程序。。。。。问题来了。 问题1 RAS程序中调用RasDial()拨号,但是这个函数里面几个参数都 ...… 查看全部问答> |
|
为什么workbench3.0 每次启动都显示 faild to connect to the wind river registry on host "l 而且左下角default(localhost)上边有一个红色的叉 tornado 已经卸载了 还是不行 服务里也没有tornado registry 每次启动都弹出窗口 显示 workbench faild to connect to the wind river registry on host \"localhost\"。 *********** 我是 ...… 查看全部问答> |
|
本人最近要做课程设计。想要参考一下ATM系统的源代码,用EVC++开发的。哪位大哥,大姐。有的话,共享一下。谢谢,一定高分送出,急急!!!!!… 查看全部问答> |
|
示例代码如下: ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV 50H,#16H ;设置RAM,0x50位置处数据 &nbs ...… 查看全部问答> |
|
在STM32的参考手册上,GPIO部分描述配置为输出的性能时,有这么一句:“A read access to the Output Data registe ...… 查看全部问答> |
|
STM32F20x的Flash的扇区最小是16K,怎么这么大 以前103的FLASH是1页2K,可以几十页做配置数据存储用,新来的数据先写到未用的FLASH页,再擦除老的数据,这样轮流使用可以大大提供FLASH的使用次数。 20x的Flash只有几个大扇区,有什么好办法来存数据吗?… 查看全部问答> |




