51系列单片机双机并行互连的实现方法
由于MCS51系列单片机具有性能稳定、工作可靠、价格低廉等特点,因此其应用相当广泛。一个MCS51系列的单片机(如Atmel89cxx)内部包含有RAM、FLASH ROM、两个或者三个16位的定时器/计数器、一个通用异步串行通信控制器(UART)等多种资源。但即便如此,在一些相对复杂的单片机应用系统中,仅仅一个单片机资源还是不够的,因此而常常需要扩充I/O接口、定时器/计数器、串行通信接口、RAM、ROM等。采用通用的标准器件进行扩充是通常的做法,但将单片机本身作为一个通用的扩充器件来使用,也不失为一个好的方法。在这种情况下,一个系统中就使用了两个或两个以上的单片机,而单片机之间就要通过互连来进行数据通信。MCS51系列的单片机(以下简称单片机)都带有串口,利用串口进行互连通信极为方便,其各种连接方式在许多书籍和资料上都有介绍,在此不再重述。但如果系统要求扩充的资源是对外连接的串口,或对相互之间的数据传送有一定的速度要求,则单片机的串口就不能用作系统内两单片机的通信接口了。所幸的是,单片机的并行端口也能相互连接来进行数据通信。根据单片机端口内部结构的特点,这些端口的端口线可以直接相连,从而使两单片机之间并行通信接口的实现不用另外的硬件电路设备。基于这种情况,设计时,可根据不同的使用要求,来采用不同的并行连接方法。下面介绍在两个单片机之间进行三种并行通信接口的实现方法。
1 单向并行通信接口的实现
在应用中,如果只需一个单片机向另一个单片机传送数据,则可以采用单向并行通信接口方式,这种方式较为简单。图1所示为单向并行通信接口的组成方法。图中,单片机A为数据发送方,单片机B为数据接收方,8位端口可以是P0~3的任何一个。数据传送的流程是:单片机A将数据送到端口后,通过STB信号中断单片机B,单片机B进入中断并从端口读取数据,读完后,利用BUSY信号进行应答,单片机A在检查到端口线CHK上的应答信号后,就可以发送下一个数据了。以上是采用中断方式进行数据传送的具体方法。当然,单片机B也可以采用查询方式接收数据。利用单向并行通信接口方法的优点是可以充分利用单片机的资源来扩充整个系统的串行通信接口、并行接口、定时器等部件。
2 主从并行通信接口的实现
主从并行通信接口的特点是两单片机之间能够通过并行通信接口将数据发送到对方,但这种方法必须有一个单片机处在主机状态,另一个单片机处在从机状态。图2为主从并行通信接口原理图。单片机A是主机,单片机B是从机,该接口使用了一个8位端口(如P0或P1)和4根控制信号线。
在主从工作方式下,该接口的工作方式有主机发送从机接收和主机接收从机发送等两种情况。
2.1 主机发送从机接收方式的主机工作流程
主发从收方式的工作流程如下:
(1)主机设置数据传送方法控制位DIR为0,以表示主机有数据发送到从机;
(2)主机在STB端口产生一个负脉冲,以使从机进入中断,并准备接收数据;
(3)主机将数据送8位数据端口,再设定ACK信号表示数据有效;
(4)主机检查CHK端口,等待从机从8位端口取走数据;
(5)数据发送完成返回。
2.2 主机接收从机发送时的主机工作流程
主机接收从机发送方式时的工作流程如下:
(1)主机设置数据传送方向控制位DIR为1,以表示主机将从从机读取数据;
(2)主机在STB端口产生一个负脉冲,以使从机进入中断,并准备发送数据;
(3)主机查询CHK端口,等待从机将数据送到8位端口上;
(4)主机从8位端口上读取数据,再设定ACK信号以表示数据已被读取;
(5)数据接收完成返回。
2.3 从机工作流程
在主从并行通信接口工作方式下,无论从机是接收数据还是发送数据,都是在中断(也可以是查询方式)方式下进行的,从机的工作流程如下:
(1)进入中断服务程序;
(2)检查数据传送的方向;
(3)如果DIR为0,则等待CHK信号有效,再从8位端读取数据,读完后设定ACK信号有效;
(4)如果DIR为1,从机将数据送到8位端上,再设定ACK为有效,并等待主机取走数据(即CHK信号有效);
(5)退出中断服务程序。
3 无主从双向并行通信接口的实现
无主从双向并行通信接口的特点是两个单片机处在平等的地位,两个单片机均可随时提出申请,向对方发送数据,当然也可通过简单的接口协议从对方读取数据。这种情况下,就有可能出现两个单片机同时提出使用8位端口的申请而发生冲突,从而影响双方数据的传送。要解决这个问题,就要求每一方必须在数据传送之前进行检查,以判断8位端口是否被对方所使用,从而避免冲突的发生。图3是无从双向并行通信接口的原理图。该
- MCS-51系列单片机的结构(12-02)
- MCS-51系列单片机的指令系统的指令中操作数的描述符号(11-29)
- 51系列单片机12M晶振与9600波特率漫谈(11-26)
- 学习51系列单片机个人经验(11-26)
- AVR相比51系列单片机的优势特征(11-22)
- 51系列单片机的系统时钟如何产生(11-20)