物联网,大数据时代,传感器和前端控制的数量倍增。如何快速地开发出前端设备是影响系统开发的关键瓶颈。

物联网设备大多数是基于小型SOC 实现,现在比较流行的是Cortex-M系列SOC。软件基于嵌入式程序设计。

长期以来,嵌入式系统的研发都是非常吃力和低效率的,一个成熟的嵌入式系统程序员需要多年工作经验。

我们发现身边的人(也包括我们自己)依然在使用Keil 编写STM32 的LwIP,SD卡文件系统这样低端,费劲的工作。如何降低嵌入式系统研发的研发门槛,提高生产效率,对物联网发展非常重要。


Arduino 的缺陷

Arduino以编程简单,硬件廉价迅速成为创客,教育领域广受欢迎的产品,一些工程师也使用它来搭建产品原型。但是arduino低端的MCU和硬件结构不适合专业产品和系统的开发。

主要是由于:

1.不能方便地连接扩展板。两边插针,加上扩展板后,扩展板无法安排I/O接线端子。

2. 8bit MCU的处理能力不够

   3.  网络接口比较弱,特别是没有工业控制中常用的以太网。如果自行添加网络接口板,其它I/O模块又难以连接。

4.   I/O接口不够丰富。

  比如高速PWM,脉冲计数,电机控制,SPI,UART,硬件ADC等等。

   5.  不支持SD 卡。

Ardunio的原始发明人也尝试让arduino走向高端专业应用,比如开发了基于Cortex-M系列的产品,最近的产品是基于STM32F469的 star offo。明显向Cortex-M靠拢。

Intel,ST等大公司也尝试开发高端的arduino,也没有成功,Intel的edison 也宣告失败了。

一个产品越成功,它背负的包袱也越大。Arduino先天就是低端Prototype的命,加上arduino的研发力量单薄,转向专业应用举步维艰。

我们的工作基础

我们一直在研究如何提高嵌入式软件的研发效率,过去的2年,我们开发了嵌入式模块-Biscuit Control的相关技术。但是并没有完成产品化。

  我们项目的问题是走了一条封闭式的技术路线,期望像PLC,倍福工业电脑那样,为所有的应用开发模块,并且自行编写软件。通过API来调用这些模块的功能。这样造成了工作量非常大。

嵌入式系统开发平台一定要将I/O 硬件的设计留给用户,或者是第三方开发者,这样才能具有硬件设计的灵活性。也是arduino大获成功的关键。

早先我们也尝试过使用NodeJS,将javascript作为系统的编程工具。但是后来发现,对于一个嵌入式硬件工程师来讲,学习javascript也是一个困难的事情。

于是我们调整饼干控制项目的方向,走一条开放的路线。

  1. 1.   我们只实现软件工具和核心板开发。

  2. 2.   方便用户开发产品为目标。

  3. 3.   网络连接,以太网菊花瓣连接方式。

  4. 4.   更丰富的I/O接口

  5. 5.   更强大的MCU

Cortex-M系列CPU,目前包括了M0,M0+,M1, M3,M4,M23,M33,M7八个处理器。

M4 增加了DSP扩展,和浮点运算单元。M7 的DSP能力比M4提高了2倍。

Biscuit 模块采用Cortex-M系列 SOC。