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

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

3天内不再提示

采用通信接口方式实现主/从嵌入式系统的应用设计

电子设计 来源:电子设计应用 作者:Jon Pearson 2020-07-07 07:58 次阅读

其中有一个很明显的发展趋势:将复杂的问题分为若干个较小、较简单且更加明确的问题,并针对具体的任务运用合适的工具。即使是最为普通的嵌入式系统也适用于这一原则,它可以缩短设计周期,提高系统的灵活性和可维护性。关键在于采用一种通用的通信策略。

控制器和从控制器

最基本的原理就是:用主控制器进行集中决策,再交由从控制器分别执行。在最为复杂的系统中,这种方法必不可少,并能够自动执行。比如,手机中的主处理器用于决定屏幕的显示内容以及外设(如LCD显示控制器或无线电收发器)需要完成的工作,而不会直接控制显示的各个像素或是无线电的编/解码。主控制器将告知显示器需要显示什么信息,并由显示器来决定如何显示;同样,主控制器向收发器提供需要编码的音频信号,而收发器则提供解码后的信号。

在其他嵌入式系统中,任务的划分或许不那么明显,但基本思想都是相同的。如果一个中央主控制器能够与远程从设备以及本地设备进行通信,那么整个系统中就可以有统一的控制。另外,为了使一个分布式系统获得成功,需要对接口作明确的定义。

虽然微控制器有许多标准的通信方法,但在主/从嵌入式系统中,最常用的是RS23 2串行接口、SPI和I2C。采用这些通信接口的从设备包括较低级的ADCDAC、串行EEPROM、各类数字I/O,以及较高级的电压排序和监控器件以及闭环风扇控制器等。

将任务分而治之

在目前嵌入式市场的从器件以及可被用作主控制器或定制从控制器的微控制器中,比较流行的通信方法是I2C。这主要是由于I2C价格较低,只需双线/引脚和两个上拉电阻器即可构成,并且简单易用。就分布式嵌入系统而言,I2C(400kHz)往往是最佳选择。

将任务分而治之的关键在于:简单的问题要比复杂的问题更加容易解决。此外,将器件彼此分开可以减少它们之间的耦合,并提高系统的可靠性。如果能够正确地分配功能、定义接口,就可以避免普遍存在的一些故障。最后,如果能够很好地利用自己的经验,则在划分任务的过程中就将能产生许多可重用的设计,从而使得工程师在设计下一个项目时不用从头开始。

实现任务的分而治之需要依靠一根通信总线,在有些情况下,总线会影响到某些主控制器/从控制器的特性。在本文中使用I2C作为总线,是因为支持该总线的器件比较普遍,而且测试和调试I2C所需的外部工具价格较低或比较容易创建。

这种主控制器/从控制器的原理在任何嵌入式设计中都是以相同的方法来处理的。首先,确定需要集中做出那些决策,并将它们分配给主控制器;然后把具体操作分配给从控制器去执行。关键在于如何进行任务的划分。一种高效的策略是:不要让主控制器因为任何事情而去等待某个从控制器;如果从控制器需要主控制器提供某些信息,它必须先呼叫主控制器。在有些情况下,这种方法还需要一根中断线,以使从控制器能够呼叫主控制器。

采用I2C I/O扩展器件的面板控制器

本文在一个控制设备面板的系统中采用了该方法,面板由按钮、开关和LED组成。在该面板系统中,主控制器是负责管理该系统的主处理器,如嵌入式的Windows或Linux计算机;从控制器为I2C总线连接I/O扩展器。

通过让主处理器在上电时对I/O扩展器进行配置,按钮/开关检测输入和LED状态输出将被传至主处理器。任何一个具有I2C总线的处理器都可以是主控制器,它对设备进行软件配置,并可以方便地改变按钮和LED的配置。

这种简单的系统如图1所示。图中蓝色的圆圈代表按钮输入,红色和绿色形状代表LED。在设计中使用了两个小的I2C I/O扩展器,是为了实现智能设计的模块化,把输入子系统的变化与输出子系统分隔开。当在主控制器中进行决策时,可使某一特定功能的变化不影响到其他的功能。

采用通信接口方式实现主/从嵌入式系统的应用设计

而且,由于所有的控制功能都由主控制器完成,因此系统中的硬件部分很简单,而且易于改变。但这种简单的方法也有缺点,当希望增加一个用于调节LED亮度的环境光传感器时,增加的工作负担将全部由主控制器来承担,它要保证所有的从控制器能够适应设计变化,并正常工作。但其实主控器只需要知道按钮的状态,并控制LED的接通和关断。

设计定制的I2C从控制器件

在图1的系统中,所有的逻辑信息都存储在主控制器中,一切变化都要通过主控制器完成。作为替代方案,可以定义一个面板接口,并将所有的细节问题交给一个分布式的从控制器系统来处理,这样可减少主处理器的负担,如图2所示。

采用定制从器件的面板系统

图2 采用定制从器件的面板系统

设计定制器件时应采用定义了稳定协议和接口且经过验证的I2C从控制器实现方案,最常用的协议是目前大多数I2C从控制器件所采用的、基于寄存器的协议。相关概要信息如下:

对于I2C,所有的事务处理均由主控制器启动;

每个从器件都具有一个I2C 7位地址(最低有效位表明事务处理是“读”还是“写”);

每个从器件都具有一个内部地址寄存器,用于存储一个指向包含了数据、命令或状态信息的内部表指针;

每个从器件均定义了其寄存器的地址及其功能,指明它们是只读型的还是读/写型的;

一个写处理事务由一个具有I2C器件7位地址和写操作位的字节以及一个位于其后的、用于设定内部地址寄存器的字节组成,如果在处理事务中有更多的字节,则它们将被写入以新设定的内部地址为起点的从器件;

一个读处理事务由一个具有I2C器件7位地址和读操作位的字节以及一个位于其后的主控制器组成,该主控制器用于记录从器件的字节数,并在结束时提供停止信号。由此可见,I2C从控制器与双端口RAM很相似,非常易于使用。

接下来要选择可编程器件,赛普拉斯公司推出的微控制器件PSoC拥有处理大多数I2C从控制器所需的全部功能,并提供了一种易用的工具,从而简化了增加I2C从控制器的工作,只需“拖、放、选择地址”即可。

首先,定义一个按钮输入的从器件,创建一个具有3个地址引脚和7个按钮输入的器件,并通过配置使之接受一个靠近5V直流系统电源的常开开关。按钮状态将在一个由I2C主控制器进行存取的单字节中提供。

其次,定义用于控制LED的从器件,创建一个具有2个地址引脚并能够以10mA的电流来驱动8个LED(分为4红4绿)的器件。定义被称为“Command”的单字节用于执行I2C的命令输入,以控制LED。该字节的4个低位用于控制红光LED,而4个高位则负责控制绿光LED。

接下来,还可以更加细致地定义定制I2C主控制器/从控制器的接口,进一步实现从控制级的客户化设计。如果想把系统主控制器从一个轮询器件变为一个接收报警信号的中断器件时,则可以给按钮输入设备增加一根输出线。这些改动能够进一步地把主系统处理器与低级设备相隔离,并提供了在不影响主系统的情况下继续改善子系统的更大灵活性。

将分而治之的概念推广到所有的通信总线

本文所讨论和说明的概念可适用于任何的总线类型,需要做的是定义满足各种不同需要的协议,以最大限度地缩短无线、便携系统中的传输时间,或是在苛刻的工业环境中实现完善的检错/纠错。

主控制器可以被称为集线器,从控制器可以被看作一个节点并具有预定的响应时间,但是,分而治之的思想仍然适用:把普通、重复的测量和低级控制分配给级别最低的点,而将重要的工作留给系统控制器来完成。另外,在各种情况下都必须建立功能强大、精确定义的接口,以便为下一级的设计留出一定的自由度,在不影响较高级设备的情况下方便地改变设计方案。


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

    关注

    68

    文章

    18261

    浏览量

    222116
  • 嵌入式
    +关注

    关注

    4981

    文章

    18274

    浏览量

    288362
  • I2C总线
    +关注

    关注

    8

    文章

    356

    浏览量

    60403
收藏 人收藏

    评论

    相关推荐

    物联网嵌入式系统

    到物理对象中,实现物理对象的智能化。 基础上的嵌入式应用系统嵌入到物理对象中,给物理对象完整的物联界面。与物理参数相联的是前向通道的传感器接口
    发表于 11-27 16:09

    嵌入式通信

    系统应用的操作系统软件, 它是嵌入式系统( 包括硬、软件系统) 极为重要的组成部分, 通常包括与硬件相关的底层驱动软件、
    发表于 09-19 12:26

    嵌入式通信

    与硬件相关的底层驱动软件、系统内核、设备驱动接口通信协议、图形界面。标准化浏览器 Browser 等。  目前, 嵌入式操作系统的品种较多
    发表于 07-05 10:01

    采用nios和μClinux实现嵌入式系统设计

    外设接口。 基于sopc的嵌入式系统主要由1片核心芯片sopc和片外器件,以及一些相关的接口设备组成。本文所要实现的转换器
    发表于 04-18 07:00

    采用构件技术实现嵌入式系统复用软件设计

    的思想,将整个嵌入式实时多任务操作系统设计成一个系统级的软件构件库。这样不但实现嵌入式操作系统
    发表于 05-07 07:00

    采用嵌入式系统实现手机编程开发平台

    了移动终端、嵌入式系统、数字信号处理以及通信协议设置等多项技术。手机编程开发平台是集合了通信技术、嵌入式技术、电子技术、软件工程、操作
    发表于 07-22 06:13

    嵌入式系统通信有什么需求?

    嵌入式系统之间的通信通常有两种方式:并行通信和串行通信。并行
    发表于 08-09 08:00

    嵌入式系统与远程监控主机的网络通信怎么实现

    针对传统远程通信方式嵌入式监控系统中的低速、传输距离短、布线复杂等问题,提出了一种基于ZigBee与μIP协议栈的嵌入式网络监控
    发表于 08-28 07:35

    嵌入式系统通信过程是什么样的?

    嵌入式系统之间的通信通常有两种方式:并行通信和串行通信。并行
    发表于 11-07 06:28

    嵌入式Socket通信怎么实现

    。本文给出一种适合于中/低端应用的通信平台设计方案,它可支持Ethernet网络之间的数据传输,并且具有RS232、RS485、 USB等接口。文中围绕嵌入式uClinux环境设计了基于嵌入式
    发表于 11-11 06:57

    嵌入式操作系统USB双向通信怎么实现

    USB作为一种串行通信总线,采用主从通信方式设备只能被动响应来自主设备的请求,不能主动发起
    发表于 03-19 07:35

    嵌入式系统产品有哪些

      嵌入式系统产品有哪些  随身携带的mp3、语言复读机、手du机、PDA到家庭之中的智能电视、智能冰箱、机顶盒再到工业dao生存、娱乐中的机器人,无不采用
    发表于 06-22 08:50

    嵌入式系统中主机串行通信接口不足怎么解决?

    嵌入式系统中主机串行通信接口不足怎么解决?
    发表于 05-28 06:37

    嵌入式系统接口测试

    楼宇对讲系统DH-T90,测试环境描述、测试用例筛选、回归策略选择等一系列方法步骤,较系统的说明一种制定智能楼宇对讲系统接口测试的规划策略
    发表于 10-27 08:41

    为什么要配置Linux系统嵌入式设备的串口通信

    我们查看这些数据,那么问题来了,当我们可以让一个设备串口使用UART的方式输出数据,这个设备和一个搭载Linux系统嵌入式设备通信的时候
    发表于 12-16 07:24