0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何实现多CPU的单片机系统的应用设计

电子设计 来源:单片机与嵌入式系统应用 作者:周建勇,何为民 2021-03-24 13:52 次阅读

随着人们生活水平的提高和科学技术的发展,安全防范的问题引起了越来越多的关注。人们在承受现代文明所带来的高效率、快节奏压力的同时,都希望能拥有一个安全、舒适的家庭环境。因此,越来越多的安防产品应运而生,尤其是蓬勃发展的现代化社区物业管理,通过监控网络把家庭和社区值班室紧密地联系起来,给人们的生活带来了极大的方便。但是,有些社区监控网络并不能完全履行其职责,存在一定的安全隐患。主要原因是目前大多数的监控节点都是采用1个CPU完成所有的功能,包括扫描各传输器模块状态、信息处理、数据显示、报警、与上位机通信等等。这无疑给此CPU带来了很大的压力:一旦出现故障,使得此单片机不能正常工作,则该监控节点将完全瘫痪,报警信息将得不到有效的处理。另外,在一些实时性要求较高的多任务系统中,单CPU结构也将显得力不从心。那么,能否找到一种既简单又经济的解决办法,把目前服务器中较为流行的多CPU并行处理的设计思想融入到社区监控网络中来呢?答案是肯定的。随着单片机技术的发展,单片机的价格在不断下降,其价格甚至比一些常用的接口芯片还要低,这就使多CPU的单片机系统的成本大大降低。此外,由于采用多CPU的设计思想,将使系统在并行处理和实时采集数据方面具有明显的优势,能极大地提高系统的稳定性和可靠性。尤其是对一些功能稍微复杂一点的系统,多CPU系统设计方法将更能显示出它的优越性。那么,如何实现多CPU的单片机系统设计呢?本文将在这方面进行一些有益的探索。

一、多CPU系统的设计原理

顾名思义,多CPU系统就是在1个系统中含有多个CPU。每个CPU独立地处理1个或少量的事务,然后通信某种方法,控制数据的合理流动,以完成设计要求的系统。其典型结构如图1所示。

从图1中可以看到,多CPU系统中一个非常重要的问题,是如何解决好各CPU之间数据的合理流动问题,以下是几种常用的方法。

1.利用双口RAM实现CPU之间的通信

双口RAM是一种高速的并行传输芯片,是实现CPU之间通信的一种简便有效的方法。常用的CMOS双口RAM有IDT7132、IDT7142等型号。IDT7132和6116类似,都是CMOS静态RAM,存储容量均为2KB。不同点在于IDT7132有两套I/O口,并有一套竞争裁决电路。因此,IDT7132内部的2KB存储器可以通过左右两边的任一组I/O口进行全异步的存储器读写操作,能方便地实现CPU之间的数据交换。采用双口RAM实现多CPU系统的示意图如图2所示。

利用这种方法可以实现数据的高速传输。CPU对IDT7132的读写时间小于120ns,通常为几十ns。当工作电源为+5V时,其读写的最大功耗为325mW,而在维持工作时最大功耗仅为5mW。另外,由于双口RAM是一种通用芯片,因此,它在选择与CPU接口时具有较大的灵活性。不过这种方法也会增加电路设计的难度和成本。

2.利用共享内存的方法实现CPU之间的通信

这种方法与前面的方法类似。所不同的是,前一种方法是利用双口RAM的一套竞争裁决电路实现对RAM的访问,而这里是利用不同的时序实现共享内存的。LON网络中的Neuron节点芯片设计都是采用这种方法的,其典型结构如图3所示。

在Neuron芯片中,每个CPU最小周期等于3个系统周期;每个系统时钟周期等于2个输入钟周期;3个CPU的最小周期分别间隔1个系统钟周期。这样,每个CPU在1个指令周期内部能访问存储区和ALU一次。系统对3个CPU采用了管道技术,在不影响性能的情况下降低硬件的需求。3个CPU可并行工作,不会造成耗时中断和上下文切换。

利用这种方法也能够实现CPU之间数据的高速传输,但是,它必须制成专用芯片,把CPU和RAM等元件封装在一起。因此,这种方法比较适合于特定的工业场合。

3.利用总线的方法实现CPU之间的通信

随着总线技术的发展,使得多主多从的单片机系统设计变得越来越简单。设计者只须通过接口芯片就可以将CPU挂到总线上去,实现CPU之间的通信,其典型的结构如图4所示。

这种方法具有结构简单、设计灵活、经济实惠的特点。在系统数据量不大,速度要求不是很高的情况下,应该是一种很好的选择方法。值得一提的是,在这种方法中,I2C总线以其结构简单、设计灵活、易于扩展和开发周期短的特点,越来越受到设计者的青睐。尤其目前很多单片机都带有I2C接口,不用接口芯片就中以把CPU直接挂到总线上,使得电路设计更加简单、经济。本文的多CPU系统也是基于I2C总线的一种安防系统。

二、基于多CPU下的社区安防系统的设计方法

1.系统的拓扑结构

系统的拓扑图如图5所示。该系统实际上是一个3级分布式测控系统。第1级由1台安装在社会值班室的PC机组成,是整个系统的核心部分。它主要负责向各家庭数据终端(HDT)发出各种命令,接收返回信息,并进行数据库管理和报表统计等工作。第2级由安装在各家庭的家庭数据终端组成,相当于1个监控节点。它主要负责接收PC机发来的命令和向PC机发送各检测模块的检测信息,并进行显示、报警、存储等信息的处理。第3级由安装在家庭各房间的各种模块组成,包括烟感、红外等报警模块,水表、电表等数字模块和家电控制的控制模块。它主要负责检测和控制各控制对象的状态。

2.家庭数据终端(HDT)的功能

家庭数据终端是安装在家庭内部的1个监控节点,主要执行以下任务:(1)接收PC机发来的命令;(2)信息显示;(3)键盘扫描;(4)声光报警;(5)生成家庭状态字节,并向PC机发送各种状态信息;(6)报警信息储存,即“黑匣子”功能;(7)扫描各传感器模块状态。另外,HDT还应个有可添加扩展模块的功能。这些功能当然可以用1个CPU实现,但将给CPU带来较大的工作量,降低了系统的安全性和可靠性。因此,我们采用多CPU的思想进行系统的设计。

根据HDT的功能特点,将任务分成3个部分,分别由3个CPU来完成。各CPU之间采用I2C总线进行通信,其结构如图6所示。CPU-1专门用于与PC机的通信,包括:(1)接收PC机发来的命令,并传送给其他CPU;(2)生成家庭状态字节,向PC机返回信息;(3)进行声光报警。CPU-2专门用于与第3级各模块的通信,包括:(1)扫描各传感器模块的报警状态,并及时通知其他CPU;(2)接收其他CPU传送过来的命令,对有关控制对象进行操作;(3)向AT24C64中存储报警记录,包括报警类型和报警时间,实现“黑匣子”功能。CPU-3专门用于信息显示和键盘扫描,包括:(1)接收PCF8583的数据,显示时间;(2)接收CPU-2传送来的信息,显示报警类型或故障位置;(3)扫描键盘,并向其他CPU发送命令,完成布防、撤防、修改密码等操作功能。在3个CPU之间,采用I2C总线进行连接;CPU选用Philips公司生产的P87LPC76X芯片。P87LPC76X芯片是一种20脚封装的单片机,适合于许多要求高集成、低成本的场合,具有较高的性能价格比,是Philips小型封装系列中的一员。它在提供很多新特征的同时,提供了I2C总线的通信接口。另外,它还提供了3个寄存器和中断控制位以实现对I2C总线的操作,因此,可以很容易地利用它的I2C接口实现多CPU的设计思想。

结束语

随着单片机技术的迅速发展,封装小、功能强、价格低的单片机越来越多地被开发出来。单片机所执行的功能也会越来越专一,越来越简单。这将为多CPU系统的设计提供一个坚实的基础,也必然会提高系统的安全性和可靠性。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6002

    文章

    43984

    浏览量

    620934
  • 存储器
    +关注

    关注

    38

    文章

    7152

    浏览量

    162016
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10453

    浏览量

    206586
收藏 人收藏

    评论

    相关推荐

    串口单片机选型

    请大家帮下忙,最近想要设计系统,由于各个子单片机模块都已经做好,现在需要一个主控单片机与各个子模块通信,借口是232串口,串口需要5个,不知道有没有这样的串口
    发表于 09-23 16:03

    单片机冗余控制

    本帖最后由 yuexinlong 于 2015-8-5 14:33 编辑 各位大神。小弟最近需要做一套单片机冗余控制系统,最后锁定在三取二冗余控制,
    发表于 08-04 12:58

    51单片机通信问题

    求教各位大哥,我想用几块51单片机实现一对通信,一个主机多个从,但是有一个问题,单片机连接的时候主机TXD接从
    发表于 02-29 17:28

    CPU单片机区别在哪?

    CPU单片机区别在哪?单片机定义 单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整
    发表于 06-06 17:22

    基于51单片机通信的设计+源代码

    单片机作为智能控制单元越来越多地用到复杂系统中的底层部分,进而对各个单元之间的通信提出更高的要求。通过设置单片机的串口可以方便
    发表于 03-10 21:49

    单片机系统

    1.单片机系统 采用单片机系统实现运动控制,成本较低,但开发难度较大,周期长。这种方案适应于产品批量较大、控制
    发表于 09-07 07:31

    怎么实现基于单片机的的智能晾衣系统设计?

    怎么实现基于单片机的的智能晾衣系统设计?
    发表于 11-08 09:07

    如何实现单片机加热炉参数检测和PID炉温系统的设计?

    如何实现单片机加热炉参数检测和PID炉温系统的设计?
    发表于 01-27 06:02

    如何使用nRF24L01实现单片机通信

    模仿百科融创小车通信,使用nRF24L01实现单片机通信开发平台51单片机、艾姆克科技EasySTC8_V2.0系统板(不同型号
    发表于 02-16 07:11

    如何去实现一种基于单片机RS485的通信液晶控制系统设计呢

    如何去实现一种基于单片机RS485的通信液晶控制系统设计呢?
    发表于 02-16 06:35

    单片机CPU未出现前电路是如何实现功能的?

    感觉现在做个什么东西都会涉及到一个器件:处理器,无论是单片机还是CPU这种,数据采集、通信,逻辑判断,驱动控制都需要有个处理器来完成。 那在单片机CPU出来之前,电路是如何
    发表于 11-06 06:52

    单片机如何实现通讯 ?

    单片机如何实现通讯
    发表于 11-10 07:51

    基于主/从结构的多CPU系统的研究与实现

    本文较为详细地介绍基于多CPU单片机嵌入式系统系统设计思想,提出了在多CPU 情况下的基于任务机制的
    发表于 06-20 09:52 14次下载

    CPU单片机系统设计在社区安防系统中的应用

    摘要:本文较为详细地介绍基于多CPU单片机系统设计思想,并给出它在社区安全防范系统中的应用。关键词:多CPU安全防范
    发表于 08-08 17:25 24次下载

    基于单片机CPU构成的复杂系统应用研究

    介绍了单片机CPU构成复杂系统的电路以及该系统的几种应用实例。    关键词:单片机,双
    发表于 05-06 20:44 559次阅读
    基于<b class='flag-5'>单片机</b>双<b class='flag-5'>CPU</b>构成的复杂<b class='flag-5'>系统</b>应用研究