多单片机协同工作方法研究及应用*
2012-11-04王新辉王梓全马凌云
王新辉,王梓全,刘 辉,马凌云
(长沙大学电子与通信工程系,湖南长沙 410003)
多单片机协同工作方法研究及应用*
王新辉,王梓全,刘 辉,马凌云
(长沙大学电子与通信工程系,湖南长沙 410003)
介绍了多单片机协同工作方法及系统,该工作系统由一个单片机主机、多个单片机客机、一个计数器、一个译码器和一个数据选择器组成.单片机主机上的4个IO端口作为控制端口,该4个IO端口分别是计数器复位端口,计数脉冲输出端口、响应信号反馈端口和使能端口.每一个单片机客机都有一个功能执行单元,该功能执行单元用于由译码器输出的输出选通信号触发而执行本单片机客机中的预设程序以实现预设的功能.采用较少且廉价的外围芯片,使用很少的单片机IO端口线就解决了多单片机阵列的协同工作的应用技术障碍问题,充分发挥了单片机价格低廉,性价比极高,具有很广的应用前景.
多单片机;协同工作;主机;客机
单片机具有价格低廉,应用方便可靠的优点,应用十分广泛和普及,但单片机作为一个单机来说,由于其IO端口线有限,使得其应用受到了限制,随着应用领域的不断扩大,有时单个单片机的控制就显得力不从心了,因此在一些较大的系统中要应用单片机的话,需要用到多个单片机构成单片机阵列来参与控制,并且往往要求这些单片机协同工作.例如,在LED大屏幕显示装置中就需要使用多个单片机,为确保LED大屏幕显示装置画面的统一完整,各单片机必须能够协同工作.
1 多单片机协同工作方法
目前,实现单片机协同工作方式可以借助于使用单片机的串行口进行通信组成一个单片机网络系统工作,这种方式存在以下缺陷[1-4]:(1)不能灵活地选用单片机的IO口线,只能固定使用单片机的串行端口线;(2)主客单片机的串行口都要被占用,系统不能通过串行口与上位机(PC机)或者其它装置进行通信;(3)软件设计复杂度较高.
另一种方式是将单片机通过2根IO端口线直接相联,这种方式的主要问题是单片机扩大的数量受到限制,仍然只适合于需要单片机的IO端口控制线还不太多的应用,而且还要以失去主单片机的IO端口线和控制功能为代价.
要解决上述问题,需要寻找一种仅占用单片机的IO端口线资源很少、能够避开单片机特定的IO端口线、即IO端口线可以是任选的、外围芯片十分廉价、客机数量又不受限制的方案.为此提出了多单片机协同工作方法.在需要使用多个单片机协同工作时,可以设定一个单片机为呼叫单片机(简称主机),其他单片机为被呼叫单片机(简称客机),它们之间的关系为主─—客关系,当主机发现系统中需要客机协助完成某项的工作时,呼叫客机,使客机及时完成该工作.它们各自有相对的独立性,有单独的任务要完成,但又需要协同工作,它们的空间位置比较近,传输的信息量并不大,只传送命令及执行命令的情况,不传送数据,这一点不同于主─从式通信,因而它类似于人类社会领导与成员之间的关系.
1.1 多单片机协同工作方法的信号定义与连接
如图1所示,多单片机协同工作系统由一个单片机主机U0、多个单片机客机U1~Un、一个二进制计数器IC1、一个二进制译码器IC2和一个数据选择器IC3组成;其基本思想是任选单片机主机的4个IO端口作为控制端口,分别定义为IOX0~IOX3,见表一所示单片机主机端口定义所示,每个单片机客机只要安排任意2个IO端口,分别定义为IOX0~IOX1,见表1所示单片机客机端口[5]定义所示.
图1 多单片机协同工作方法硬件组成
表1 单片机阵列各IO端口线定义
主机输出的计数器复位端口(IOX0)与计数器的复位端(RST)相接,计数脉冲输出端口(IOX1)与计数器的时钟信号输入端(CLK)相接;
主机输入客机响应信号反馈端口(IOX2)与数据选择器的输出端(Z)相接;
主机输出的使能端口(IOX3)接译码器的使能端(EN)和数据选择器的选通端(G).
计数器的数据输出端(Q0~Qm)与译码器的数据输入端(A0~Am)以及数据选择器的通道选择数据输入端(A0~Am)对应一一连接;
数据选择器的多个输入通道(D1-Dn)分别与多个单片机客机的响应IO端口一一连接;
客机从其IOX0端口输入主机的呼叫信号,将响应信号从其IOX1输出.其中IOX0连接到负责对主机输出的客机地址进行译码的译码器的一个输出端,IOX1则连接到负责将客机响应信号传送回主机的数据选择器输入端上.从而形成了主机与客机之间协同工作所需的信息沟通路径与主机进行通信.
在这种方法中,对主、客单片机IO引脚无特定要求,因此可以留出主、客机单片机的特定引脚给系统使用.比如串行口及中断口都可以供系统的其他功能使用.
1.2 多单片机协同工作过程
采用前述的多单片机协同工作系统的硬件连接方法,单片机主机的工作步骤为:
步骤1:二进制计数器清零,置数据选择器使能端有效,置译码器使能端无效;
步骤2:发送要呼叫的单片机客机的编号到计数器;
步骤3:根据响应信号反馈端口(IOX2)的状态判断被呼叫的单片机客机是否空闲,如果空闲,则进入下一步,否则返回步骤3;
步骤4:置数据选择器使能端无效,置译码器使能有效,使得译码器输出单片机客机选通信号;
步骤5:延时,然后计数器清零;
步骤6:置数据选择器使能端有效,置译码器使能端无效,呼叫操作结束;
单片机客机的工作步骤为:
步骤A:复位响应端口状态,表示空闲可响应呼叫;
步骤B:查询选通IO端口的状态,判断是否有呼叫,如果有呼叫则进入下一步,否则返回步骤B;
步骤C:置相应端口状态为有效,表示响应呼叫;
步骤D:启动功能执行单元,完成呼叫所规定的操作;
步骤E:复位响应端口状态,表示空闲可响应呼叫,并返回步骤B.
2 多单片机协同工作软件流程
2.1 主机呼叫
当主机在发现系统有呼叫某一客机的需要时,就会起动如图2(a)所示的操作流程,主机程序可以子程序的形式编写.
2.2 客机响应
每一个单片机客机都有一个功能执行单元,该功能执行单元用于由译码器输出的输出选通信号触发而执行本单片机从机中的预设程序以实现预设的功能.
在客机程序中,查询主机的呼叫信号,按如图2(b)所示的流程进行响应.如果在系统中,客机不需要使用外部中断,可以选择IOX0=P3.2(P3.3),而将客机响应安排为中断服务程序,可避免客机进行查询,可使响应过程更为及时快速.
3 结语
多个单片机协同工作方法采用很好地克服了在单个单片机IO线数量不够,需要多个单片机协同工作应用场合遇到的协调技术障碍.将本技术应用于某一行线数为96、列线数为1280的单色LED显示屏广告显示系统中,使用了10片单片机89S52,并仅另外加入了二进制译码器为74LS138D芯片,二进制计数器4024BP芯片,数据选择器采用74LS251D芯片.由于本技术的使用,可以使单片机进行协同工作,有较多单片机的资源可以利用,较容易地实现了文字和图片画面的左移、右移、上移、上移、逐行消失、逐列消失、闪烁等功能.实践表明可行.
图2 多单片机协同工作软件流程
[1]叶佩.MCS-51单片机的多机通信方式研究[J].科协论坛,2009,(12):58 -59.
[2]忽晓伟,吴海燕,周晓平.单片机系统中多处理器协同工作的研究[J].科技信息,2011,(12):46.
[3]王富东,邵光庆.单片机多串口通迅技术及其应用[J].仪器仪表学报,2002,(z1):262 -264.
[4]徐新华.多单片机的联合工作[J].科技创新导报,2008,(21):14.
[5]李朝青.单片机原理及接口技术[M].北京:北京航空航天大学出版社,1999.
TP273
A
1008-4681(2012)02-0026-03
2011-12-15
王新辉(1964-),男,湖南双峰人,长沙大学电子与通信工程系教授,硕士.研究方向:单片机控制、传感检测技术.
(作者本人校对)