历史上的今天
今天是:2025年02月27日(星期四)
2018年02月27日 | 多单片机处理系统并行通信分析
2018-02-27 来源:eefocus
对于系统较大,实时性强,功能多,存储量大,扩展能力要求强的工业控制系统,可采用多个单片机,组成一个多微处理器系统,使之具有并行处理功能。并行工作的各微处理器之间的信息交换,可采用串行通信方式,亦可用并行通信方式。但对于实时性强,并且信息交换量大的系统,只有采用并行通信方式,才能满足系统功能的要求。本节就实际应用的一些体会,着重介绍模块式结构的多单片机通信。
一、通用并行接口8255A简介
Intel 8255A是一种通用并行接口电路,可用编程的方法选择其逻辑功能。该芯片可以和51系列单片机直接接口。8255A有3个8位的并行口:口A、口B和口C。有3种工作方式可供选择:方式0为基本输入/输出方式;方式1为选通输入/输出方式;方式2为双向选通输入/输出方式(仅适用于口A)。
51系列单片机8031组成的多单片机处理系统之间的并行通信,就是采用8255A的口A的工作方式2实现的。
1. 8255A工作方式2的主要功能
①口A为一个8位的双向总线端口,且具有I/O功能。
②口B为一个8位的输入/输出口,口B0~2为一个3位的输入/输出口,可工作于方式O或方式1。
③口C为一个5位的控制端口。
控制口功能如下:
●INTR( PC3) 中断请求信号线,高电平有效。
●OBF的反相(PC7)输出缓冲器满/空状态标志线。OBF=O,表示CPU已将数据写入端口,
输出口数据有效;当数据被外设取走后,OBF=1。
●IBF(PCs)输入寄存器满/空状态标志线。IBF=1,表示外设已将数据打人端口锁存
器,但CPU尚未读取;当CPU读取端口数据时,IBF=O。
●ACK的反相(PC6) 外设响应输入信号线。当ACK上出现由外设送来的负脉冲时,表示外设
已将端口数据取走。
●STB的反相( PC4) 外设选通输入信号线。在STB信号的下降沿计时,外设将端口数据线上
的信息打入端口寄存器。
2. 8255A工作方式2方式控制字的设定
8255A方式控制字格式如图1- 51所示。

若允许方式2并行通信中断,则可置位PC6(允许输出中断)和置位PC4(允许输入中断),即对8255A的PCO执行位操作置位。
二、多单片机处理系统并行通信的硬件接口
多单片机处理系统并行通信的硬件接口逻辑原理图如图1- 52所示。图中8031(I)子系统与8031(Ⅱ)子系统间的直接并行通信,是由8255A( I)来完成的;同理8031(Ⅱ)与8031(Ⅲ)又可通过8255(Ⅱ)实现直接并行通信。这样就构成了一个并行通信系统。

8255A(I)PC口的5条控制线完成双向并行通信的逻辑控制。8031(I)通过判别P17端口状态,判定8031(I)CPU输出缓冲器有无有效数据送入端口(8031(Ⅱ)输入数据时);通过判定Pl16端口状态,判定8031(I)CPU输入缓冲器空否(8031(I)输出数据时)。8031(Ⅱ)的读/写控制逻辑与地址译码线组合,作为其响应输入线( ACK)和选通输入线(STB),由8031(Ⅱ)控制选通。
三、多单片机处理系统并行通信的软件设计
这种模块式多微处理器系统,软件设计是相互独立、互不干扰的,并且只需要一套通信软件,即“中断驱动软件”和“状态驱动软件”,便可实现整个系统的并行通信,使用起来很方便。
在图1- 52所示系统中,8031(I)与8031(Ⅱ)构成一对直接并行通信子系统。在这样接口的一对子系统中,须有一对通信软件,即在8031(I)子系统中应设计一个“中断驱动软件”,实现数据传输,包括输入和输出;而对8031(Ⅱ)子系统,应设计一个“状态驱动软件”,实现数据传输。
1.中断驱动软件的设计
该软件是驻留在与8255A直接接口的子系统中的通信软件,由通信主程序、通信附服务程序以及数据输入子程序和数据输出子程序组成。流程图分别示于图1- 53~图1- 56。


2.状态驱动输入/输出软件的设计
状态驱动输入/输出软件是驻留在需要从8255A的端口接收输出状态,并根据接收状态进行输入/输出信息的子系统中的(如8031(工)与8031(Ⅱ)这对直接并行通信的子系统中的8031(Ⅱ))。它是一种简单的状态驱动软件。状态驱动输入程序流程如图1- 57所示;状态驱动输出程序流程如图1- 58所示。


同理,8031(Ⅱ)与8031(Ⅲ)这一对直接并行通信的子系统也可采用这套通信软件。只要将“中断驱动软件”装入8031(Ⅱ),再将“状态驱动软件”装入8031(Ⅲ)即可。对于不同的信息,在各子系统中有其相应的数据缓冲区,互相独立,这样3个子系统间便可实现并行通信。对于有更多子系统的并行处理系统,亦是如此。
这种多单片机系统并行通信的接口方法,简便易行,接口及编程均易实现,特别适用于工业控制系统。实验表明,这种方法可以提高系统的处理效率,提高实时性,为各子系统的编程及调试带来了很大的方便,进一步提高了系统的可靠性、灵活性及可扩展性,开发潜力很大。随着单片机工业控制系统在各方面的应用不断深入,具有并行处理功能的模块式多微处理器系统将日益得到发展,这也是由单片机本身所具有的特点所决定的。
上一篇:单片机红外线遥控系统分析
史海拾趣
|
问题如下: 1. PC 能和该设备直接用网线点对点连接吗? 怎么设置两者的IP.? 2. 在VS2008下开发了一个WinCE程序,运行在模拟器中,能否实验第一个问题,我安装了Vir ...… 查看全部问答> |
|
摘要:本文介绍了在单片机的键盘上实现“一键多用”的方法和技巧。并给出了程序流程图和单片机的汇编语言程序。 关键词:单片机 键盘 I/O接口 键盘是实现人机对话的重要窗口。在许多由MCS-51系列单片机组成的“嵌入式” ...… 查看全部问答> |
|
我现在要在Qtopia里面加入RIL层, 以实现类似WM里的RIL功能. Qtopia里的Qatchat类似于RIL Driver, 它把相关module的一些request code转换成AT Command, 然后通过Modem Device发送给网络端. 现在我要做的主要是RIL Proxy这块. 有相关经验的朋友吗 ...… 查看全部问答> |
|
Platform Manager server failed??这是什么原因? 我的程序在:pocket pc 上可以运行 但是选择:standardsdk 总是报错: Platform Manager server failed 为什么不可以啊? Transpor配置好了 Startup怎么配置啊? … 查看全部问答> |
|
mini2440 + 3.5"LCD 套餐+h3c s2108 mini2440 + 3.5\"LCD 套餐:全新,详细资料见友善之臂官网介绍,售价400元。h3c s2108 九成新,售价400元。不包邮(北京的可当面交易),有意者联系:13426484543… 查看全部问答> |
|
我们用的是STM32F101x4,客户返回来维修的机子很多是单片机短路的,特别是电源脚和34脚对地短路。我们做老化试验时,只是开机充放电,老化一段时间后,有一台机子莫名其妙的单片机也坏了。 对于STM32单片机的测试应该重点测试什么呢?什么最容易引 ...… 查看全部问答> |
|
分享一份我们自己做的L293D电机驱动模块资料,希望多多捧场哈! 顺便打个小广告哈,新开小店,微麦电子(研究生科创团队):电子模块销售、项目承接、产品定制! 微麦电子://shop109927709.taobao.com … 查看全部问答> |
|
有下面的资料UART就ok了。P20.P21.是EUSCI的输出端口。 还要知道5969的时钟结构 然后参考例程。例程在CCS下的library下可以找到 实际使用只需要修改EUSCI的时钟源,以及采样参数,TI提供了在线计算,地址: http://software-dl.ti.com/ms ...… 查看全部问答> |




