当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]浅谈嵌入式软件系统设计中的正交性

1  小波漫谈

  小波变换是20世纪最辉煌的科学成就之一,已经广泛应用于信号处理、图像分析、非线性科学、地球科学、音乐雷达、CT成像、地震勘探、天体识别、量子场论、机械故障诊断、分形等科技领域。

  20世纪初,哈尔(Alfred Haar)对在函数空间中寻找一个与傅里叶类似的基非常感兴趣。1909年他最早发现和使用了小波,后来这被命名为哈尔小波(Haar wavelets)。20世纪 70年代,当时在法国石油公司工作的地球物理学家 Jean Morlet提出了小波变换 WT(Wavelet Transform)的概念。 进入 20世纪 80年代,法国科学家 Y.Meyer和他的同事开始研究系统的小波分析方法。1985年,Daubechies提出“正交小波基”,并构造具有紧支撑的光滑小波,以及随后 Mallat提出的多分辨分析及快速小波变换,将小波研究推向高潮。小波分析己经成为目前发展最快和最引入注目的学科之一,几乎涉及信息领域的所有学科。

  为何“正交小波基”与多分辨分析的提出成为小波分析发展史中的重大突破成就?主要原因之一是:变换系数没有冗余,能够将信号分解成互不影响的正交子信号,这样就可以根据需求方便地对所需特征的子信号进行分析,从而很好地反映信号的细节。

嵌入式软件系统设计的正交性

  其实,在软件系统设计领域同样或多或少存在“正交”的思想。一个常被引用的模式是Smalltalk编程语言(Krasner和 Pope,1988)的模型视图控制器(ModelViewController)框架。该模式强制性地将软件系统的输入、处理和输出分开,形成数据模型、视图、控制器三大模块,如图1所示。图中“数据模型”包括程序的设计部分,“视图”表示用户界面,“控制器”定义用户和视图的交互方式。

按此在新窗口浏览图片
图1  模型视图控制器框架

  其中每部分都是一个独立的对象,每个对象有自己处理数据的规则。这种功能的分离恰巧促成各个模块的正交性、减少它们之间的冗余,因此也使该框架成为应用最为广泛的模式之一。

2.1  设计正交嵌入式软件系统

  毫无疑问,正交的思想使得系统设计更加清晰和方便。那么如何才能更好地使嵌入式软件系统具有“正交性”呢?

(1)  设计具有正交性的系统体系结构

  进行系统设计首先要进行系统的体系结构设计。系统的宏观设计同样也体现正交性思想,如图2所示。

按此在新窗口浏览图片
图2  系统体系结构

  其中,底层驱动与RTOS是唯一与系统硬件相联系的模块,直接负责与硬件打交道,对硬件进行管理与控制,并为其上层模块提供所需的驱动支持;调度程序在RTOS支持下,根据系统需求对不同的任务模块进行实时调度与管理,确保所有任务能顺利、均衡地执行;最上层的任务模块具有不同的功能,以满足用户需求,它们各自独立、正交、不存在冗余,同时提供相应数据接口,以便与其他模块通信,形成有机整体。

  整个系统体系结构同样体现了正交思想,各个层的不同模块负责相互独立、正交的任务。从垂直角度看上去,该体系结构同正交小波一样,可以用多尺度空间思想表示,如图3所示。越核心的地方,功能轮廓越粗略;越到外层,越体现细节、越贴近用户需求。

按此在新窗口浏览图片
图3  多尺度嵌入式软件体系结构

(2)  保持模块间的松耦合

  划分软件模块时很重要的一个原则是:尽可能地保证各模块间的松耦合和模块内部的高聚合。这实际上就实现了系统的正交化,减少了模块间的冗余与关联。理想的系统结构呈树状,如图4所示。

按此在新窗口浏览图片
图4  嵌入式系统的理想树状结构

  整个系统呈树状结构,模块间的连接只能存在上下级之间的调用关系,不能有同级模块之间的横向关系,即不能出现网状结构或交叉调用关系。

  如图4所示,通过调用I2C总线读写子模块可以实现I2C一主多从通信子模块以及RTC和EEPROM的读写子模块,但是这些子模块之间彼此不能互相调用。所以,当系统对EEPROM没有需求时,可以方便地将EEPROM读写子模块移除,而不会影响到其他模块。

(3)  保持任务间的松耦合

  嵌入式系统中常常会用到RTOS,根据系统需求确定不同的任务以及任务执行的频率或次序。在满足需求的前提下,尽可能地保证每个任务有固定的执行周期,因为这样可以让任务按照既定频率执行,减少任务间的通信和调用,同时也增强了系统的可预见性。

  例如,系统SPI通信解析任务(即ProcSPI任务)的执行频率为10 Hz,为了保证通信正常,需要一个任务实时检测SPI通信是否出现故障(即FaultSPI任务)。为说明简便,假设SPI通信故障的唯一来源是数据解析时校验不通过,并且当出错概率超过50%时即可判定SPI通信故障。图5所示为FaultSPI任务被调用的2种方式。

  图中,MCscheduler为系统调度程序,能以固定频率调用不同的任务。图5(a)表明每次解析SPI数据时,都直接触发FaultSPI 任务。显然,根据需求,该方式做了许多无用的判断。图5(b)表明FaultSPI任务由系统调度程序以1 Hz的频率调用。该任务只需要确定SPI数据有5次以上校验错误,即可判断SPI通信故障。这种方式消除了2个任务的直接调用关系,即保持了任务间的松耦合。

(4)  合并同类项

  以模块或文件为单位,每个模块或文件面向独立的设备或需求,每个模块又由许多子模块构成,这些子模块尽可能负责独立、单一的任务或功能。如 GetTime()、SetTime()、GetFault()、PushFault()等,这些子模块可能会调用相同的函数或方法,也可能会使用同一个属性变量,如果将这些子模块归在一起,封装成一个文件,那么这些被调用的函数、方法或变量就不需要“extern”声明(C语言中),因此对于其他文件是隐藏的、不可见的,增加了系统的安全性;另外,当不需要该功能或设备时,可以方便地将该文件从项目中移除,而不会影响到其他模块的工作。

(5)  避免编写相似函数

  功能相似的函数往往很难保持正交性,所以应该避免相似函数的出现,或者将其统一成一个函数。比如,一个系统存在着多种通信方式,而在通信过程中,常常需要开发者确定自己的通信协议以及校验方式;如果每一种通信方式都编写自己的校验函数,则增加代码量的同时,也使得系统通信校验函数过于零散;在设计时,可以考虑统一系统中的通信校验方式,编写一个校验函数,以支持各类通信的校验。这样既能使系统简洁,同时也便于维护。

2.2  正交嵌入式系统的好处

  正交思想几乎触及到自然科学的各个领域,利用该思想来进行嵌入式软件系统设计同样存在诸多优点。

按此在新窗口浏览图片
图5  FaultSPI任务调用方式

(1)   方便单元测试

  在整个软件开发周期中,软件的测试工作占据着相当重要的比例,甚至会超过整个周期的50%。倘若等到所有代码都编写完成之后才开始测试工作,那么,软件系统不同层面以及各个任务模块中的众多Bug,常常会使程序员无法理清思路,从而不能判断问题的根源。所以在进行系统集成测试之前,应该将各个模块的Bug减少到最低,这也就需要在编写各个模块时,进行有效的单元测试。而保证单元测试顺利有效进行的前提是,该模块有很高的独立性,这也正是正交性解决的问题。图6所示为嵌入式软件系统的测试流程。

按此在新窗口浏览图片
图6  嵌入式软件系统测试流程

(2)  更易于维护

  常常有软件系统维护的人员发现了系统存在的问题,却不敢轻易改动,特别是系统底层部分。原因很简单:系统一直运行良好,没有出错,而且由于没有完整的文档说明,担心改动之后会出现新的问题。这种忧虑折射出的是:程序员对眼前软件系统是否具备较好正交性的疑虑。所以一个具有较好正交性的嵌入式软件系统,能够让软件维护人员更快、更顺利地接手,提高维护效率的同时保证很高的正确性。

(3)  便于移植

  硬件的更新速度相当之快,要降低产品升级成本、加快升级速度,必须让软件系统具备很好的可移植性,特别是嵌入式软件系统中与硬件没有直接关联的应用层部分。一个正交嵌入式系统正好从垂直方向保证了系统各层之间的独立性,很好地将应用层与物理层分离开来。

(4)  便于协同开发

  DSP与ARM较传统MCU的优势之一,是使用了流水线技术,使指令能并行执行。对于软件,同样希望能并行协同开发。正交嵌入式系统各个模块相互独立,只要定义好各模块的接口,软件开发人员并不需要等待其他模块完成就能开展工作。图7所示为正交嵌入式软件系统的开发模式。

  正交的嵌入式软件系统,能够非常方便地将系统分为互不干扰的独立模块。每个软件开发人员或开发团队负责不同的模块,并行地开展工作。开发人员在开发过程中能够互相沟通(如图7中虚线箭头所示),甚至可以随时协助同伴攻克难题。

按此在新窗口浏览图片
图7  正交软件系统开发模式

3  小结

  在众多研究领域,人们很早就开始借助正交性思想来帮助解决种种问题。从欧氏空间线性变换到经典力学中物体受力分析,从傅里叶变换到信号处理,从小波分析到地震勘探、量子场论、信号处理(包括图像和语音)、机械故障诊断以及JPEG2000标准的制定。这些都是借助正交性思想,将对象分成多个相对独立的部分,进而对各部分单独进行研究,从而化繁为简。在嵌入式软件设计中,也存在类似的思想,正交的嵌入式软件系统能够降低系统各模块间的依赖性,从而使系统更易于维护、方便测试,也更加容易实现系统的移植。从软件开发过程的角度来看,正交性思想还能够帮助研发团队并行作业、协同开发,减少了等待时间,大大提高开发效率,因此该思想值得软件设计人员探讨和利用。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

助力科研与检测新突破 上海2024年5月15日 /美通社/ -- 全球知名的科学仪器和服务提供商珀金埃尔默公司今日在上海举办了主题为"创新不止,探索无界"的新品发布会,集中展示了其在分析仪器领域的最...

关键字: 质谱仪 BSP DSC 气相色谱

上海2024年5月16日 /美通社/ -- 2024年5月10日至5月13日,富士胶片(中国)投资有限公司携旗下影像产品创新力作亮相北京P&E 2024。在数码相机展览区域,全新制定的集团使命"为世界绽...

关键字: 富士 数码相机 影像 BSP

贝克曼库尔特目前已成为MeMed Key免疫分析平台和MeMed BV检测技术的授权经销商 在原有合作的基础上,继续开发适用于贝克曼库尔特免疫分析仪的MeMed BV检测 加州布瑞亚和以色列海法2024年5月16日...

关键字: BSP IO 检测技术 免疫分析仪

英国英泰力能的燃料电池是可产业化的产品解决方案 英国首个专为乘用车市场开发的燃料电池系统 在 157kW 功率下,此燃料电池比乘用车的其他发动机更为强大 &...

关键字: ENERGY INTELLIGENT 氢燃料电池 BSP

深爱人才,共赴"芯"程 深圳2024年5月15日 /美通社/ -- 5月11日,深圳国资国企"博士人才荟"半导体与集成电路产业专场活动在深圳市重投天科半导体有限公司(简...

关键字: 半导体 集成电路产业 BSP 人工智能

武汉2024年5月15日 /美通社/ -- 北京时间4月26日-5月4日,2024 VEX 机器人世界锦标赛于美国得克萨斯州达拉斯市举办。本届 VEX 世锦赛为期九天,设有 VIQRC 小学组/初中组、V5RC 初中组/...

关键字: 机器人 BSP RC POWERED

上海2024年5月15日 /美通社/ -- 由生成式人工智能(AI)驱动的临床阶段生物医药科技公司英矽智能宣布,与复星医药(600196.SH;02196.HK)合作开发的潜在"全球首创"候选药物IS...

关键字: ISM BSP PC 人工智能

上海2024年5月13日 /美通社/ -- 5月8日,浦东新区国资委组织陆家嘴集团等9家区属企业与立邦中国召开合作交流会,旨在贯彻落实浦东新区区委、区政府工作要求,进一步放大进博会溢出带动效应,持续扩大区属企业与进博会重...

关键字: BSP 数字化 自动化立体仓库 智慧园区

上海2024年5月13日 /美通社/ -- 在数字化时代,高效的税务管理和ERP系统成为企业发展的关键。为了满足这一需求商应信息科技与Exact Software 易科软件就金四全电票税系统与ERP系统集成及商务合作建立...

关键字: AC 软件 BSP 数字化

北京2024年5月13日 /美通社/ -- 5月11日,鲲鹏昇腾开发者大会2024期间,华为举办"昇思AI框架及大模型技术论坛",软通动力数字基础设施与集成事业部总经理谢睿受邀出席、软通动力...

关键字: AI 模型 BSP 精度
关闭
关闭