-
采用多单片机实现多电机系统的控制
在工业控制领域,
有时会遇到三个以
上的电机运动系统,
对于这种运动系统,
下面几种
情况完全存在:
?
几个电机同时运动
?
某几个电机在运动的过程中也需要启动其他电机运动
?
在电机运动的过程中还需要执行其
它操作,比如:
对
I/O
设备进行操作
,
进行串口
通讯等
< br>对于上面这些情况,
单一的单片机控制系统将无法胜任。
为了实现上述目的,
我们研制
了一套总线型的多单片机控制系统
。
1.
系统结构
原理框图见图
1
。
在图
1
中,
有一个
主控制模块和
若干
驱动模块
、
I/O
模块组成。
主控制模块通过总线来控制
< br>I/O
模块和驱动模块。从单片机与双端口
RAM
的数量则视电机
的数量而定,有几个电机就需几个从单片机与双端口<
/p>
RAM
。主单片机通过总线及双端口
RA
M
与从单片机进行通讯。总线上的信号有
D0~D7
、
A0~A7
、
WR
p>
、
RD
、
TRIG
及若干译
码电路产生的片选信号。单片机采用
< br>89C52
,其内部含有
8K
的
EEPROM
及
256
个字节的
RAM
;双端口
RA
M
采用
DALLAS
公司生产的
DS1609
,它有
256
< br>个字节的
RAM
单元,通
过总线
上的片选信号线可为每一片
DS1609
分配
< br>256
个字节的地址。当需要某电机运动时,
主单片机将
每个电机的运动信息写入相应的
驱
D0~D7
从
双端
电
<
/p>
动
单
电
片
口
机
路
机
A0~A7
地址
锁存器
主
单
总
片
线
p>
机
驱
译码
A8~A15
动
电路
从
驱
RD
双端
单
电
动<
/p>
片
电
口
机
WR
机
路
TRIG
TRIG
I/O
接
口
板
RS232
图
1
总线型的多单片机控制器原理框
DS1609
中,然后通过
TRIG
信号线(可用
89C52
P1
口的某位,通过总线驱动后连接至每
个从单
片机的外部中断输入脚)
发出一个负脉冲,
通知每个从单片机读
取各自的
DS1609
中
的信息,至此
,
主单片机与从单片机的通讯结束,
转而去执行其它任务,主单
片机并没有参
与电机的运动控制,
它只需下达命令给从单片机。
电机的运动控制由从单片机来完成。
从单
片机接收到
TRIG
信号后,进入中断服务程序,读取
p>
DS1609
中的信息。从单片机根据读取
的信息来判断电机是否需要运动,以及作何种运动,运动的速度、加速度、距离、方向等;
由于从单片机各自独立地控制电机运动,互不干涉,因此,每个电机的运动速度、加速度、
距离、方向均可以不同;由于主单片机是通过
TRIG
信
号线下达任务的,如果在电机运动
的时候将从单片机的外部中断屏蔽掉,
而在电机不运动的时候再将从单片机的外部中断置为
允许,这样,当主单片机的
TRIG
信号发出后,如果某个电机正在运动,则其对应的从
单
片机不会响应
TRIG
信号,
p>
而不运动的电机所对应的从单片机则会响应
TRIG
信号,
此从单
片机则会根据主单片机发来的信息作出相
应的反应,
从而实现了在某个
(或几个)
电机运动
的过程中还可以启动其它电机运动的目的。
另
外,主单片机与从单片机通过双端
口
RAM
芯片
DS1609
进行通信,这比使用串行端
口进行通信具有无可比拟的优越性。
采用串行的方式进行通信,
其信息交换速度受到串行通
信特点的限制,例如:当波特率为
9600
时,其传送一个
字节需要
833
微秒,而单片机与双
端
口
RAM
之间的信息交换是以并行方式进行的,当单片机的时钟
频率为
12MHz
时,单片
机向双端口
RAM
传送一个字节只需
2
微秒。根据需要也可采用其它类型的单片机,而且,
主、从单片机可以采用
不同类型的单片机,以便实现各种不同的控制功能。
由于主单
片机与从单片机通过双端口
RAM
芯片
DS1609
进行通信,所需时间很短,具
有实时效果,为实时
插补提供了一种途径;而且,
DS1609
还提供了
256
个字节的
RAM
,
这些存储单元可用来存放电机的运动数据,包括实时插补数据。可见,双端口
RAM
作为主
单片机与从单片机的通讯纽带,不仅
提高了通信效率,而且增强了控制系统功能。
2.1
主控制模块电路
主控制模块电路原理
图见图
2
。图中的数据总线驱动电路采用
74LS245
,是因为数据
通道
是双向的,
当
74LS245
的
1
脚为高电平时,数据方向为从左向右;当
7
4LS245
的
1
脚为低电平时,
p>
数据方向为从右向左。
因此,
当主单片机读
取
8000H~FFFFH
地址的数据时,
74LS245
的
1
脚为低电平,
数据方向为从右向左,这时,主单片机从总线读取数据;当向地
址
8000H~FFFFH
中写入数据时,
74LS245
p>
的
1
脚为高电平,数据方向为从左向右,这
时,
主单片机向总线写入数据。
<
/p>
对于译码电路,本人在实际应用中只控制了五个电机,因此采用
7
4LS138
译码器已足
够使用,
读者
也可采用
4
—
16
译码器或其它译码电路,
以便能满足更多电机系统的应用,
但
是无论采用何种译码电路,译码电路产生的译码信号所包含的地址范围不能小于
256
个字
节,因为双端口
< br>RAM
DS1609
有
p>
256
个字节。
另外,如果需要,
还
可自己扩展程序存
储器和数据存储器。
89C52
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
ALE
RD
WR
P1.0
P2.4
P2.5
P2.6
P2.7
RXD
TXD
3
4
7
8
13
14
17
18
11
1
2
5
6
9
12
15
16
19
2
4
6
8
11
13
15
17
1
19
2
3
4
5
6
7
8
9
1
19
2
4
6
1
19
18
16
14
12
9
7
3
5
A0
A1
A2
A3
A4
A5
A6
A7
74LS373
74LS244
74LS245
74LS244
15
14
13
12
11
10
9
7
18
17
16
15
14
13
12
11
D0
D1
D2
D3
D4
D5
D6
D7
总
线
18
16
14
RD
WR
TRIG
A12
A13
A14
1
2
3
4
5
6
A15
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
串行接
口电路
图
2
主控制模块电路原理图
74LS138
2.2
驱动模块电路
驱动模块电路原理图见
图
3
。驱动模块电路由
DS1609<
/p>
、
89C52
及驱动电路构成。
DS1609
具有两个各自独立的控制、
p>
地址和输入/输出引脚的端口,
它允许两个不同的
< br>计算机总线读/写存储器中的任意单元。双端口
RAM
芯
片
DS1609
为单
5V
电源供电,输
入、输出为
TTL
电平,其原理框图见图
4
。
-
-
-
-
-
-
-
-
-
上一篇:超温报警器电路的设计
下一篇:三角波发生器与RC串并联网络振荡电路