双CPU通信在自动制花机的应用

来源 :城市建设理论研究 | 被引量 : 0次 | 上传用户:wangrong2000
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要自动制花机系统控制线路复杂,传统单片机I/O口不能满足要求,本文介绍一种新颖的方法来实现51系列单片机双CPU系统,不但硬件和软件的实现都比较简单,数据传输速度快,而且不涉及高成本特殊器件。
  关键字 单片机;双CPU
  Abstract:Automatic system to spend machine system control circuit complexity, the traditional single-chip I / O port can not meet the requirements, this article describes a novel method to achieve the 51 series single-chip dual-CPU system, not only the realization of hardware and software are relatively simple, fast data transfer speeds.and do not involve the high cost of special devices.Keyword microcontroller; dual-CPU
  中图分类号:S972.7+6文献标识码:A文章编号:
  引言
   传统单片机的I/O口数量有限,若要实现复杂系统控制则会出现不够用的情况,采用GAL等器件也是一种不错的扩展I/O口的方法,但GAL器件功耗比较大,使用过程中经常会出现故障。另外,我们可采用双CPU来解决该类问题。
  一 实现双处理器的方法
   1.使用双口RAM。这种方法方便地实现了CPU之间的通信,在选择CPU接口时具有较大的灵活性;但这种方法会增加电路设计的难度和成本。
   2.利用I/O口进行并行通信。这种方法既要用I/O口传送数据,又要用I/O口来进行传送的控制,因此占用较多的I/O口;而且控制过程涉及进行通信的两个CPU,软件设计比较复杂。
   3.利用串口进行通信。使用UART或I2C总线来联系CPU也是常用的方法。这种方法实现简单,只是传输速度较慢。
   4.共享内存。共享内存实际上又有两种不同实现。第一种如LON网络的Neuron节点芯片,利用不同时序实现共享内存。这种方法必须制成专用芯片,把CPU和RAM封装在一起,一般情况下实现困难。第二种如96系列单片机,使用HOLD线先挂起其中一单片机的总线,以使用其内存。这种方法简单而且传输速度快,在具有HOLD功能的CPU系统中经常使用这种方法实现双CPU。
  二 使用共享内存法实现双CPU通信
   由于51单片机没有HOLD功能,一般不能使用共享内存法实现双CPU通信。这里介绍一种方法,使一般51单片机能够用共享内存实现双CPU通信。该方法电路简单,软硬件实现容易;数据传输速度快,而且占用系统资源少(不使用I/O口传递数据,而用一部分地址空间作为数据传送的媒体),能充分发挥双CPU的作用。下面具体介绍这种方法。
   2.1 基本设计方案
   首先,甲机划出一部分片外RAM的地址空间作为数据传输的专门通道(一般可用高端地址空间);同时,把这个地址空间映射到接收数据的乙机端的相同大小片外RAM地址空间(乙机端可以直接访问到)。两边需要传递数据时,甲机就直接向这个地址读写数据。读写数据之前,两边要先联络,做好数据传输前的准备。
   甲机负责制花机的机械动作及信号控制,乙机负责显示控制。
   两边数据线要用开关门电路隔开,可以用三态门。地址线也按照设计者的安排,甲机端经过开关门电路直接映射到乙机端特定片外RAM地址。因为甲机要在乙机这边读写数据,所以甲机对片外RAM的读写选通信号也要经过开关接到乙机读写端。发送数据前,要打开这些开关门电路。这样,甲机就可以在乙机的片外RAM中读写数据了。
   最后,还有一个重要工作。两边的CPU有自己独立的工作,彼此独立地在自己的数据线和地址线运行程序,要共用乙机的RAM来实现通信就必须在传送通信数据期间让乙机交出总线控制权,而51单片机又不具备96单片机的HOLD功能,怎样才能让乙机交出总线控制权?这里要用其它方法。51系列单片机本身有ID工作方式(空闲状态),ID方式可以用中断唤醒。我们可以利用ID工作方式让乙机暂停工作,从而让甲机CPU在乙机这边存取数据。
  2.2 具体实现方法
  
  图1 双机通信原理图
   图1是两个51单片机组成的双机系统。我们把左边甲机的普通片外RAM地址寻址空间分为0000H~7FFFH和8000H~0FFFFH两个不同的区域。其中,0000H~7FFFH可作为普通片外RAM空间,8000H~0FFFFH可作为数据传输通道。在这里,我们把8000H~803FH的片外RAM寻址空间映射到右端乙机的0000H~003FH的地址空间。(其实甲机8000H以上的任意地址都会映射到相应的乙机0000H ~003FH空间。这里为简单起见,只用甲机的最高位地址线直接线选,并约定甲机的通信数据都往8000H~803FH中写。)因此,甲机端的低六位地址线通过74ALS373接到乙机端的低六位地址线。同时,读写控制线也接过来。两边的数据线通过74ALS245接起来以进行双向数据传输。不传数据时,乙机的P1.7为高电平,74ALS373处于高阻态,74ALS245也因为没有被甲机的地址线选通而呈高阻态,两边的CPU可以在自己的空间运行程序,保持相对独立。甲单片机P1.0接到乙机的INT0脚,可通知乙单片机做传输数据的相应处理,同时可以通过中断来唤醒处于ID状态的乙机。传数据时,乙机的P1.7为低电平,打开74ALS373,同时乙机的P1.7还接到甲机的INT0口,以通知甲机可以开始送数或取数。甲机最高位地址线A15作为数据选通信号,使甲机端可以读写乙机端0000H~003FH地址空间RAM中的数据。数据传送方向由乙机的P1.6脚进行控制。
   甲机要把数据传到乙机时,先通过P1.0输出一个下降沿脉冲到乙机的INT0口通知乙单片机,乙机中断服务程序判断是甲机要送数据过来,用指令
   MOV DPTR, #003FH
   MOV A, #0FFH
   MOVX @DPTR 0FFH
   把地址线置为003FH,P0口置为FFH。乙机把地址线置为003FH后,进入ID状态,地址线会保持这种状态,甲机就可以控制乙机的低六位地址线;同时乙机的高十位地址线保持为"0",这样就确保了甲机的数据映射到乙机的0000H~003FH的地址空间。乙机向数据線上写FFH,是保证把P0口都置“1”,进入ID工作方式后,P0口(即数据线)也会保持这种状态,以保证甲机端数据顺利写入。然后,乙机P1.6脚输出高电平,置数据传送方向为甲机到乙机。最后,乙机在P1.7脚发一个下降沿脉冲,以中断通知甲机可以送数据,同时保持低电平,打开74ALS373,再执行
   ORL PCON.0,#00000001B
   进入ID状态。甲机的INT0中断服务程序把数据从8000H~803FH送过来。送完后,通过甲机P1.0再给乙单片机的INT0端发一个下降沿脉冲唤醒乙机,乙机INT0中断服务程序判断数据已经传送完,进行接收数据处理。
   同理,乙机要送数据到甲机时,先把数据写到0000H~003FH,最后是向003FH写FFH,以完成正确置位地址线和数据线。还要把P1.6脚置为低电平,控制数据从乙机传向甲机。再在乙机P1.7发下降沿脉冲触发甲机INT0中断,同时P1.7保持低电平,打开三态门,然后进入ID状态。甲机INT0中断服务程序判断乙机要送数据过来,并且已经做好准备,就把数据从8000H~803FH取过来(当然,803FH中数据无效)。取完后,甲机再通过P1.0给乙单片机的INT0端发一个"1"下降沿脉冲唤醒乙机,让乙机继续运行程序。
   乙机的INT0中断服务程序要处理几个不同事务,有几个分支。如果是乙机向甲机传数据,乙机INT0不用做实质工作,退出中断继续运行主程序即可;如果是甲机向乙机传数据,在传数据之前,乙机INT0要为传数据做好准备,并置乙机为ID状态。传数据之后,乙机INT0处理数据。这里要设置数据传送方向和数据传送状态两个标志,用以引导程序正确运行。甲机的INT0根据传数据方向标志传数据或读数据即可。
  结束语
   该方法在实际应用得到了较好效果。节省了外部器件的使用。
  
  参考资料:
  [1]《8051单片机实践教程》 徐爱钧电子工业出版社2005
  [2]《单片机原理及接口技术》李朝青北京航空航天大学出版社 2005
其他文献
摘要: 本文对建筑电气安装工程中的质量问题进行了分析,提出了施工中的预防措施,供大家参考。  关键词:建筑电气;安装工程;质量问题  Abstract:Quality problems in the construction of electrical installation works and preventive measures in the construction, for your
摘要:根据现代园林工程施工存在的问题,结合本人多年的工作经验,对园林施工管理的思路和对策作了探讨。提出了一些个人的观点。以供同行参考。  关键词:园林工程;现状;管理;对策  Abstract:According to the problems of modern landscape construction, combined with my years of work experience,
城市路灯和景观灯是展示城市面貌的公共设施,其管理措施的好坏直接影响着城市的形象,本文在分析了我国城市路灯和景观灯管理现状的基础上,讨论了提高城市路灯和景观灯管理水平的
摘要:本文对中国企业实施印度EPC项目安全管理方面进行了分析和总结,以供借鉴。  关键词:印度 ;安全; 管理 ;项目  Abstract: In this paper, the Chinese enterprises to implement the safety management of EPC projects in India were analyzed and summarized f
摘要:本文论述了新形势下如何加强水权管理,合理配置水资源,提出制定相关政策法规等具体措施,供大家参考。  关键词:水权管理; 节水社会; 可持续发展  Abstract:This article discusses how to strengthen the management of water rights under the new circumstances, a reasonable a
摘要:文章阐述了办公建筑电气设计中节能的原则和方法,从变压器容量的选择、功率因数补偿、供配电系统及导线的选型、建筑照明的节能等方面,结合办公建筑电气设计中的特点,介绍建筑电气设计中节能的原则和方法,并对建筑电气节能的几种方法做了详细的说明。  关键字:电气节能;变压器损耗;功率因数;照明节能  Abstract:The article discusses the principles and me
[摘要] 针对本公司电机采用自耦变压器启动过程中频繁烧毁的故障处理,根据启动实际情况,笔者对产生故障的原因进行分析,并简单介绍电气控制方面的解决方法。  关键词 自耦变压器 ;时间继电器 ;启动过程  Abstract:Motor frequently burnt Troubleshooting autotransformer start against the Company, accordin
【摘要】:建筑工程的质量管理是建筑工程管理的核心,本文针对建筑工程质量控制的影响,接下来分析了建筑质量管理各个阶段影响质量的因素,分析了存在的问题,最后提出了如何解决建筑工程质量问题[1]。  【关键词】建筑工程;工程质量;质量控制  Abstract:Construction quality management is the core of the construction project m
【摘要】人类一生中绝大部分的时间都是在房屋中度过的,日常生活、工作、购物甚至是娱乐,都离不开对房屋的使用。房屋在建设中不可避免会消耗大量的能源和资源,随着经济的迅速发展,房屋的建设也处在飞速上升的阶段,从我国的房价便可看出,我国建筑行业消耗的能源资源越来越多。环保节能是各行各业都在践行的原则,房屋建设中的环保节能对于减少能源资源的消耗以及降低建设中有害物质的危害都起到了很大的作用。  【关键词】环
摘要:本文简述了建筑外墙渗漏的类型,分析了外墙渗漏的原因,详细地阐述了外墙渗漏的防治措施,以解决建筑外墙渗漏的问题,全面提升建筑物的质量  关键词:建筑工程;外墙渗漏;预防措施  Abstract: This paper briefly describes the type of exterior walls leaking, analyzes the exterior wall leakage