原创 软件架构-嵌入式微系统连载之五

2014-7-8 11:43 903 12 13 分类: 采购与分销

嵌入式微系统架构是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接口一致,应用层无需修改代码。

文章评论1条评论)

登录后参与讨论

用户1311192 2014-8-1 11:13

我是理解做销售的,现在的我也是正在从技术到销售的转变,但是对销售的方式方法有些不同意见,电话可以打,但绝对不能盲目,往往别人正在忙一件事,不能分神,打过来不接是疑惑,接了是恼火还有意想不到的后果,所以保持一种安静的方式不断联络和提醒就够了,比如qq信息,邮件,短信等等。就像老朋友一样保持着,等待着,守候着。直到他需要你的那一天,那一天单子必然是你的。

用户1012514 2014-7-8 16:25

太技术了,没有亲身经历过,很难体会LZ这个菜单、这些功能的设置有何奥妙——希望能从你研发的思路来聊聊啊。

用户1730011 2014-6-4 16:08

呵呵,不知所云

用户908112 2014-5-29 16:40

新人,学习了

用户991578 2014-5-28 14:53

我和你情况差不多但是我们老板甚至连品牌或者是方向都没有定好。8个月内我联系上的有意向的去走访过的客户也有83家了,以前还觉得自己挺牛的,现在觉得木有意思了,明天辞职了。

用户1012514 2014-5-26 14:30

这个例子是想说,做乞丐也可以赚钱,但你要自甘为乞丐吗?言下之意就是没知名度又贵的品牌赚的钱是他人施舍的?

用户1759457 2014-5-25 23:46

其实方向很重要,其次了解自己产品和同类产品的优势和劣势。最后想告诉楼主那种品牌知名度很低的产品,产品还没价格优势的产品,千万别在这些上浪费时间,徒劳的。有人反驳说他们产品向我说的那么差没知名度又贵这么一无是处,还不是有钱赚到钱了。哥只想说一个真事,我们老家那边有个要饭的乞丐有次去银行存款被一个朋友爆料有几十万的存款。。。

用户973617 2014-5-22 12:10

等过段时间就好了,慢慢有自己的客户了

用户923802 2014-5-21 09:14

方法之一

用户579720 2014-5-20 16:55

工业品销售还好,起码产品有特定目标客户可以去focus;目前接的最多的不是地产销售,就是问你贷款不?还有保险业,这3行简直是见人杀人见佛杀佛。
“谢谢,不需要哈!”
相关推荐阅读
凤舞天 2019-01-20 20:07
运放的压摆率与增益带宽积,到底是怎么个关系?
今天在ADI上寻找一颗高速运放,但是看了ADI的运放列表,把我弄闷了,到底是选择压摆率高的还是增益带宽积大的。如下图:LT6275是40M增益带宽积,但是压摆率却到2.2K,非常高,相反LT6203X...
凤舞天 2019-01-13 12:53
雨滴慧目图像识别项目的产品定义过程详解!
需求来源:      俊知焊齿机的合金刀头上料机构,采用基恩士的光纤激光识别,对于一些对称性比较强的合金刀头,容易误判,所以高端的焊齿机采用价格昂贵的图像识别系...
凤舞天 2019-01-01 19:50
半导体空穴到底怎么导电的?
我们熟悉的半导体材料,常用的是P、N类型的,硅(SI)中掺杂元素硼(B),因为B三价,相对于SI的4价来说,缺少一颗电子,把这个缺失的部分叫做空穴,这类掺杂B的叫P型材料。对应的,掺杂了元素磷(P),...
凤舞天 2018-12-22 22:13
孩子的教育不应该只是学习,更应该是去挑战
大家会发现,很多优秀的知识分子,自己水平很高,但是自己的孩子却教不好,很多老师的孩子,小学成绩很好,初中也不错,但是到了高中,大学之后,很多走向平庸,这个似乎违背我们的认知。现在自己有小孩了,也面临知...
凤舞天 2018-12-01 11:34
MOS管应用概述(四):基本参数
mos管的基本参数,大家熟悉的必然是Ids电流,Ron导通电阻,Vgs的阈值电压,Cgs、Cgd、Cds这几项,然而在高速应用中,开关速度这个指标比较重要。上图四项指标,第一项是导通延时时间,第二项是...
凤舞天 2018-12-01 10:36
努力之前请先学会思考
公司这么多年下来,有一些人一直很努力,也很听话,让他做什么就做什么,然而一直以来他们很少自己主动做事,挑头做事,往往都是打个下手,听命令行事,一天无忧无虑,看看手机上上网,乐呵呵的,估计睡觉很容易睡着...
我要评论
1
12
关闭 站长推荐上一条 /2 下一条