有一个很明显的发展趋势:将复杂的问题分为若干个较小、较简单且更加明确的问题,并针对具体的任务运用合适的工具。即使是最为普通的嵌入式系统也适用于这一原则,它可以缩短设计周期,提高系统的灵活性和可维护性。关键在于采用一种通用的通信策略。
主控制器和从控制器
最基本的原理就是:用主控制器进行集中决策,再交由从控制器分别执行。在最为复杂的系统中,这种方法必不可少,并能够自动执行。比如,手机中的主处理器用于决定屏幕的显示内容以及外设(如LCD显示控制器或无线电收发器)需要完成的工作,而不会直接控制显示的各个像素或是无线电的编/解码。主控制器将告知显示器需要显示什么信息,并由显示器来决定如何显示;同样,主控制器向收发器提供需要编码的音频信号,而收发器则提供解码后的信号。
在其他嵌入式系统中,任务的划分或许不那么明显,但基本思想都是相同的。如果一个中央主控制器能够与远程从设备以及本地设备进行通信,那么整个系统中就可以有统一的控制。另外,为了使一个分布式系统获得成功,需要对接口作明确的定义。
虽然微控制器有许多标准的通信方法,但在主/从嵌入式系统中,最常用的是RS23 2串行接口、SPI和I2C。采用这些通信接口的从设备包括较低级的ADC、DAC、串行EEPROM、各类数字I/O,以及较高级的电压排序和监控器件以及闭环风扇控制器等。
采用I2C I/O扩展器件的面板控制器
本文在一个控制设备面板的系统中采用了该方法,面板由按钮、开关和LED组成。在该面板系统中,主控制器是负责管理该系统的主处理器,如嵌入式的Windows或Linux计算机;从控制器为I2C总线连接I/O扩展器。
通过让主处理器在上电时对I/O扩展器进行配置,按钮/开关检测输入和LED状态输出将被传至主处理器。任何一个具有I2C总线的处理器都可以是主控制器,它对设备进行软件配置,并可以方便地改变按钮和LED的配置。
而且,由于所有的控制功能都由主控制器完成,因此系统中的硬件部分很简单,而且易于改变。但这种简单的方法也有缺点,当希望增加一个用于调节LED亮度的环境光传感器时,增加的工作负担将全部由主控制器来承担,它要保证所有的从控制器能够适应设计变化,并正常工作。但其实主控器只需要知道按钮的状态,并控制LED的接通和关断。
将分而治之的概念推广到所有的通信总线
本文所讨论和说明的概念可适用于任何的总线类型,需要做的是定义满足各种不同需要的协议,以最大限度地缩短无线、便携系统中的传输时间,或是在苛刻的工业环境中实现完善的检错/纠错。
主控制器可以被称为集线器,从控制器可以被看作一个节点并具有预定的响应时间,但是,分而治之的思想仍然适用:把普通、重复的测量和低级控制分配给级别最低的点,而将重要的工作留给系统控制器来完成。另外,在各种情况下都必须建立功能强大、精确定义的接口,以便为下一级的设计留出一定的自由度,在不影响较高级设备的情况下方便地改变设计方案。 |