面向无线传感网络的构件化开发方法

时间:2012-10-22来源:网络

由图2 可以看出,系统集成构件起到一个桥梁作用,使开发者简化了开发工作。但是,系统集成构件在调用硬件抽象构件实现自身功能的时候出现重复调用问题。并且构件CC2420SpiC 在不同的层(系统集成层和硬件抽象层)都有使用,这本身使得系统集成层和物

理抽象层关系变得模糊和复杂,加大开发者开发难度。

根据构件化系统编程可知,调用构件的接口需要实现提供接口构件中的event 事件。如果多个构件重复使用同一个构件的同一个接口,每个使用该接口的构件都需要将该接口中的event 事件执行一次。系统集成构件同时调用相同的硬件抽象层构件中的接口命令时,完成命令的signal 事件会通知每个使用该接口的构件。这就导致了构件化系统下编程常见问题:扇出(fan-out)。系统为了解决这一问题不得不将构件性质改为generic 类型。而这会引入新的构件调用模式。所有这些使得系统集成构件对硬件抽象层构件的调用变得比实际要复杂,代码的执行效率大大降低。

2 直接调用底层构件方法描述

对系统集成构件的研究发现,应用层构件在调用系统集成构件时最终调用了硬件抽象层构件,只是系统集成构件将硬件抽象层构件重新整合到某个大的集成构件中,方便用户查找接口。实际上,由于嵌入式软件和硬件结合性高、硬件资源有限等特点,为了使得软件系统性能达到最高,嵌入式软件开发者在开发之前对硬件已经非常熟悉。在这种情况下没有必要在硬件抽象层之上硬性加上系统抽象层。对开发者而言,直接调用底层硬件抽象层构件会更直观、简单。

具体实现方法如图3 所示,在构件操作上对没有引入新功能的构件在配线构件配线时候可以跨过整个系统集成构件,而不会影响系统功能,并可以简化开发过程,提高运行效率。以下将这一方法简称为直接调用法。

图3 构件简化过程

图3 中构件1 和构件2 不是提供最底层功能的构件,它们将底层构件3、构件4 和构件5 进行重新整合,最终使用的是构件3、构件4 和构件5 的功能。所以,通过改进后的方案中,让应用构件直接调用构件3、构件4 和构件5,让构件1 和构件2 的功能交给应用构件去完成,这样提高了代码的执行效率和开发效率。实际上,结合构件化系统可知,图3 的简化过程解决了扇出问题,应用构件只要调用了一个硬件抽象层构件,就可以在应用构件内任何需要的地方去调用硬件抽象构件所提供的接口中命令。配线构件在配线时也变的简单,没有系统集成构件中多个硬件抽象层构件的重复配线操作。

对构件化系统以及底层硬件抽象构件和各具体芯片研究分析可知,系统集成构件都是起到上述作用,同时又引入新的问题。若开发人员对硬件抽象构件熟悉,就完全可以跨过系统集成构件而直接使用硬件抽象层提供的构件。这样就简化了原方案中系统集成构件之间繁杂的调用关系,更重要的是可以大大提高系统的运行效率,还以CC2420 系统集成构件为例,其改进后的构件调用方案如图4 所示:

图4 改进方案中构件间关系

1 2 3

关键词: 开发 方法 构件 网络 无线 传感 面向

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版