您的位置:首页 > 其它

试论推行硬件操作系统(HOS)的可能性及必要性

2017-03-07 23:41 120 查看
试论推行硬件操作系统(HOS)的可能性及必要性

呵呵又是一个新名词——“硬件操作系统(HOS)”。其最重要特征是提供一致的可编程嵌入式Shell。围绕这个Shell,HOS可以完成什么功能呢?首先它应该能够通过一致的命令格式,通过各种通信协议(如IIC,UART,SPI,single
line bus等),开关量采集,模拟量采集等方式访问管理传感器;其次可以定制和配置系统行为,比如定时访问传感器,将传感器数据上报,响应链路动态优化等;再次简单智能算法和决策控制的灵活配置执行。

好了,说了怎么多,首要的问题是传感器五花八门,接口各有不同,有可能做出一致的命令格式来管理它们吗?答案是肯定的。我在调研时罗列了很多传感器接口大概有这些类型:IIC、UART、SPI、single
line bus、0/1(开关量)、AD(模拟量)。对于接口采用协议类通信方式的(如IIC、UART、SPI、single
line bus),一般它们的通信过程可以用状态机完整描述,借助这个状态机,我们就可以编程实现相应的命令程序,用来管理这个传感器。而对于0/1型和AD型的传感器,它们的数据比较单纯,但是一般需要配合一些数据处理和加工的动作,这样才能得到上位机需要的、好用的数据结构。而对于这些处理和加工的动作,嵌入式Shell也是有能力实现的。这里以single
line bus的数据获取为例做一个说明。现在市面上的温湿度传感器多是这种通信方式。而现在市面上对这个通信方式的数据获取一般采用的是传统C51上的延时采样方式。这种方式极不科学,我采用的方式是利用有Capture-or-compare功能的Timer来高可靠性的获取数据。数据是获取到了,但是不同的传感器有不同的数据长度和格式,这个如何用统一的命令格式适配呢?其实只要我们了解过编译器设计就不难解决这个问题。比如对于温湿度传感器的访问命令可以设计成如下样式:

Ccp O_1ms I-30us40% I_80us20% I-80us20% |{I0=_50us-27us20%,I1=_50us-70us%20}|=40sum

对于这条命令解释如下,ccp
是命令名,表示capture-or-compare方式发送和采集信号;”O”表示主动发出信号,”I”表示接收信号;”_”表示低电平,”-“表示高电平;后面跟的是持续时间;字符串|{I0=_50us-27us20%,I1=_50us-70us%20}|=40定义了bit0和bit1的信号表示,同时知名信号0和1加起来一共40bits;sum表示求和校验。

到这里恶魔出现了!DS18B20也是单总线设计,但是它的总线定义却不方便用capture-or-compare的方法泡制。于是问题变得大大的复杂了,想要做一个简单的嵌入式Shell,提供一些命令看来是不够的,我们可能需要一个嵌入式的编程语言,它可以解释执行!这时我有点想放弃这个想法,而回归传统的方法即在上位机编程并烧录到下位机中。可是我反复考虑两种方法,还是觉得应该尝试采用嵌入式Shell语言解释器的方法。这样更符合物联网的应用场景——高度动态和可配置。

不知道大家了解过TI的zigbee方案没有,TI提供的z-stack方案中一个简单的Switch节点,编译完成后就有230KB还多,而我们知道那颗芯片最大flash也就256KB。而另一方面,在TI的TIMAC方案中采用beacon连接方式,编译完成后只有40多KB。所以我认为TIMAC有更大的、更好的前景。在这个方案中我们可以设计一个嵌入式Shell及解释器,把它控制在100KB~150KB。这样将使传感器节点的使用更加灵活有效,而且可以更好地与上层软硬件配合,形成高效系统。

到这里我再设想一下有了这个Shell和解释器后的应用场景吧。大家都知道Zigbee演进有另一个脉络——军事即战场环境识别与自组织。所以在最初我们可以把这些小传感器像春天播种一样撒在战场中,首先它们的行为是一样的,会感知战场环境并将数据上报,在军队的决策部门或“兵旗”系统中综合信息并生成决策同时将命令下达传感器节点,这时各传感器节点收到的命令或程序片段可能是各不相同的,于是它们的行为和功能也被动态地从新配置。这个动态过程会随着战场形势的变化不断的变化。所以我们可以看到,养兵千日,用兵一时。信息化条件下的战争,你的神经末梢失效了,或者差敌人一筹,可不就只能猴急没办法。当然zigbee的另一个主要脉络是民用的物联网,同样有以上场景的需求。所以我认为我们需要把这些底层的东西做扎实了,将来物联网、智能应用等才能建在这个基础上。

恩上一篇博文我还叫嚷着“断炊”,可是现在我好像有满满的“食粮”可以保我17年温饱。你们呢?需要我分给你们点儿吗?博文中不止一次提先成家后立业的话题了,有人说我啃老。你还真是小瞧我了,我的那么多创新设计一个也没用?真的一文不值吗?我这不是啃老,我这是啃大众、啃社会、啃国家,而成为现在这个状况的始作俑者是谁呢?你们应该好好地端正你们的价值观,深化思想认识,才有能力看清问题,解决问题。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息