51系列单片机双机并行互连的实现方法
接口中采用了5根控制信号线,其中CHK/ACK控制信号线,其中CHK/ACK控制信号线的功能可以复用。8位端口可以是P0、P1或其它8位I/O口。
在无主从双向并行通信接口中,由于单片机A与单片机B没有主从关系而处在平等位置,所以单片机B与单片机A的数据接收发送流程完全相同。这里只说明单片机A的数据接收发送流程。
3.1 数据发送流程
下面给出单片机A的数据发送流程:
(1)检查CHKREQ,判断单片机B是否提出了数据传送申请;
(2)如果单片机B提出了申请,则转a继续等待;否则,单片机A提出申请,将REQ置为有效;
(3)再次检查CHKREQ,判断单片机B是否同时提出了申请;
(4)如果单片机B提出了申请,则发生冲突;清除REQ并延时;然后执行(1);
(5)将数据送8位端口,设定STB有效;
(6)检查CHK,等待单片机B将数据取走;
(7)检查单片机A的数据是否全部送完,如没有则转执行(5);
(8)撤销REQ信号,释放8位端口;
(9)数据发送完成,退出流程。
3.2 数据接收流程
单片机A的数据接收流程如下:
(1)进入中断服务流程;
(2)从8位端口读取数据;
(3)设置ACK信号有效,表示数据已成功读取;
(4)退出中断服务流程。
4 三种并行接口方式的特性分析
本文介绍的三种并行通信接口连接方式能够适用于不同的要求。下面分别对采用三种通信接口工作方式的数据通信响应时间进行分析。假设单片机的工作时钟频率为24MHz,8位端口为P0口。系统中每一个单片机只有一个中断源。在单个中断源情况下的中断响应时间为3~8μs。在单向并行通信接口工作方式下,数据只从单片机A向单片机B传送,假设接收方单片机B中断接收。个字节的传送过程将包括数据发送端口、通知接收方、等待接收方的已接收应答等三个部分。其程序的一般写法为:
MOV P0,#DATA
CLR STB
JB CHK,$
如各条指令的执行时间分别为1μs、1μs、3~8μs。那么,这种方式下,一个字节的传送时间在10μs左右,最短可到5μs,因此数据的数传率较高。
在主从并行通信接口方式下,数据传送包括接收和发送两个方向,由于数据传送均在主机控制下进行,且数据的接收和发送两个方向的时间大体相等。根据其数据传送流程,主机发送数据的程序如下:
CLR DIR
CLR STB
MOV P0,#DATA
SETB ACK
JB CHK,$
由于该程序前4条指令的执行时间均为1μs,最后一条指令的执行时间为等待从机的响应时间为3~8μs,这种方式下一个字节的传送时间在12μs左右,最短可到7μs,可见仍有效高的数传率。
在无主从并行通信接口方式下,文中只讨论了主动向对方发送数据的方式,而没有讨论主动从对方读取数据的方式,这是因为通过简单的接口协议可以使对方主动发送数据,从而达到读取数据的目的。根据图3和其数据发送流程可知,在没有8位数据端口使用冲突的情况下,其数据传送的基本步骤与主从方式数据传送的步骤基本相同,但需要对8位端口的使用进行声明确认的撤销,这需要执行至少4条指令,时间约需4μs,因此,这种试上单字节数据的传送时间在11~18μs。当遇上8位数据端口使用有冲突时,则数据传送的时间还会受8位数据端口被占时间的影响,因而变得不确定。
5 结束语
由于MCS51系列单片机已衍生出了许多规格和型号的产品,且使用起来方便灵活,应用相当广泛,因此讨论它们的一般应用是非常有意义的。MCS51系列单片机的直接并行互连具有一定的实用价值,能简化许多应用系统的硬件设计。在许多的应用系统中,完全可以把MCS51系列单片机当作普通的可编程器件来使用。本文介绍的单向并行通信接口中的接收方单片机,主从并行通信接口中的从机都是这样使用的。
- MCS-51系列单片机的结构(12-02)
- MCS-51系列单片机的指令系统的指令中操作数的描述符号(11-29)
- 51系列单片机12M晶振与9600波特率漫谈(11-26)
- 学习51系列单片机个人经验(11-26)
- AVR相比51系列单片机的优势特征(11-22)
- 51系列单片机的系统时钟如何产生(11-20)