由此,我们确立了应用节点层的概念。由嵌入式系统软件框架确定应用节点的接口规范,应用开发人员开发并设计各类应用节点,而各类应用节点根据具体的调度控制算法不同,完成不同的具体实现。嵌入式系统软件架构下应用节点层的类图如图2所示。
3.2硬件接口多样化问题的解决。
由于嵌入式系统中涉及的硬件接口多种多样,为了与核心调度算法逻辑进行隔离,结合设计模式,使用Factory模式完成各类硬件接口类的创建。
Factory模式由3部分组成:
①工厂类角色:含有一定的商业逻辑和判断逻辑;②抽象类产品角色:一般是具体产品继承的父类或者实现的接口;③具体产品角色:工厂类所创建的对象就是此角色的实例。
Factory模式的类图如图3所示。
参照使用Factory模式,确立了节点管理类,在节点管理中完成了对各种硬件接口的抽象,并根据不同硬件接口,提供硬件接口的生成操作,即对不同的硬件接口进行具体实现。其类图如图4所示。
3.3数据传输协议多样化问题的解决。
数据传输多样化问题的本质同系统核心调度控制算法的多样性一样,仍然使用Birdge模式来解决这一问题,对数据传输解析协议进行了抽象,此处不再赘述。
3.4软件模块通信的松耦合性问题的解决。
为了使各个软件模块在通信过程中具有松耦合性,参照Observer模式,设计了节点通信层,各个软件模块的消息通信通过节点通信层完成传递,避免了相互之间的耦合。
Observer模式的组成部分包括:
①抽象目标角色:目标角色知道它的观察者,可以有任意多个观察者观察同一个目标,并且提供注册和删除观察者对象的接口;②抽象观察者角色:为那些在目标发生改变时需要获得通知的对象定义一个更新接口:
③具体目标角色:将有关状态存入各个具体观察者角色对象,当它的状态发生改变时,向它的各个观察者发出通知;④具体观察者角色:存储有关状态,这些状态应与目标的状态保持一致。
Observer模式的类图如图5所示。
参照使用Observer模式,确立了节点通信层,各个应用节点通过在节点通信层进行消息的注册,完成对应消息的获取和发送,从而解决了应用节点之间的通信耦合性问题。
综上所述,考虑到嵌入式控制系统的特点,确立了系统的软件架构。该软件架构如图6所示。
其中软件框架的层次划分及功能描述如下:
①虚拟操作系统层完成对底层操作系统的封装,以屏蔽上层应用对于底层操作系统的依赖;②节点管理层完成各种节点的创建、维护和管理;③节点通信层完成上层各个应用节点之间通信的封装和功能实现;④应用节点层为上层应用提供接口规范,以明确统一上层应用节点的接口规范。
结语。
通过建立统一的嵌入式软件架构,并借用成熟的软件设计模式,能够加大软件复用程度、提高开发研制效率、降低研发成本,是嵌入式软件开发的发展趋势。
参考文献:
[1]Erich Gamma,Richard Helm,Ralph Johnson,et al.DesignPatterns:Elements of Reusable Object-Oriented Software[M].San Antonio:Pearson Education,2000.
[2]郭峰。深入浅出设计模式[M].北京:中国铁道出版社,2013.