您的位置 首页 汽车

软件架构-嵌入式微体系连载之五

嵌入式微系统架构是C#与CMSIS架构的复合体,如下图所示: 基于C#标准,分为应用层App与系统层System两层。采用两个大结构体AppStruct和SystemStr

  嵌入式微体系架构是C#与CMSIS架构的复合体,如下图所示:

  

 

  根据C#规范,分为运用层App与体系层System两层。选用两个大结构体AppStruct和SystemStruct把它们各自封装起来。

  

 

  Appstruct里封装了两个结构体:Data和Menu。两者都是运用层的数据类型。

  Data是运用层事务逻辑所触及的传感器、驱动器等全局变量、进程变量、存储参数、设置参数等数据,Data结构体相似数据库概念,仅仅嵌入式体系数据一般不大,用一个结构体完成即可。

  Menu是运用层需求的各种菜单显现页面,一个页面下能够加载多种控件,比方布景文字(BackText)、表(Chart)、标签(Label)和文本(TextBox)四种。现在版别msOS由于首要针对工控,支撑本地支撑是非字库屏,所以只需求这四种控件即可,菜单结构相对简略,往后需求支撑是非点阵屏乃至是彩屏,需求支撑的控件就更多了。

  AppStruct能够认为是运用层App的数据库,里边包含了事务逻辑的数据库和菜单界面显现的各个页面。根据这种结构体封装的优点在于把全局变量统一到数据库中办理,尤其是事务逻辑中的全局变量都放到Data区中统一办理,这充沛的利用了全局变量的运用便利性,又有用的防止全局变量满天飞,处理了长期以来引起极大争议的全局变量问题。

  运用层分为三块,除了数据库意思的AppStruct外,还有事务逻辑(Logic)及菜单界面(Menu),两者别离跟工业自动化控制体系的可编程控制器(PLC)和组态屏(HMI)对应。在工业自动化中,PLC内部有事务逻辑参数存储单元,HMI内部有菜单页面存储单元,现在等价于把PLC和HMI的存储单元合并在AppStruct中来办理。

  事务逻辑(Logic)呼应各种传感器过来的信息,经过给定的算法或操作流程,及时指挥驱动器作业,所以需求设定在较高优先级的使命中。菜单界面(Menu)显现事务逻辑处理进程中需求显现的各种参数,只需求满意眼睛的改写频率即可,所以改写速度相对较慢,一般放在最低优先级使命中处理。需求留意的是,菜单界面不包括按键部分,按键发生按键音讯,归入事务逻辑中,菜单界面仅仅显现各种参数,而不会去修正参数,这个确保了数据库只被事务逻辑一个使命修正,防止了一个数据一起被多个使命修正发生过错的问题。

  

 

  SystemStruct封装了整个底层体系,笼统成一个面向运用的接口芯片。

  Initialize为初始化函数,在体系运用前,必需求先初始化。

  Device结构体中封装了各类设备,比方LCD、ADC、USART、IO、Timer等。

  OS中封装了uC/OS-II的各种常用接口函数。

  Gui中封装了界面处理接口。

  AppStruct和SystemStruct都是一个自界说的结构体类型,需求用这两个类型界说一个目标。

  

 

  界说运用层结构体。

  界说体系层结构体。需求留意的是,由于选用结构体模仿类功用,System在界说的时分就指定了System的Initialize初始化函数,这样体系开端就能够运用System.Initialize功用,便于形式上的完美。

  一个System结构体,封装了整个体系层,中间件接口及设备接口,都在System中表现,等价于一个面向于运用层的处理器,App运转于体系层之上,App只需求调用System中的接口即可,简略、易用,这样规划做到了跟实践的芯片无关性,比较简单跨渠道,当需求替换芯片的时分,只需求确保System接口共同,运用层无需修正代码。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/117904.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部