百度手环开源硬件项目

为了繁荣可穿戴设备的生态,推动市场的发展,促进产业链上下游和相关领域的合作,百度决定开放和开源智能手环方案。用户可以基于此方案快速打造一个时尚潮流的智能运动手环或类似可穿戴设备,达到以极低成本快速进入市场之目的。

硬件原理

百度智能手环基于Nordic公司nRF51822芯片开发,芯片集成BLE蓝牙4.0协议。使用LIS3DH作为加速度传感器,进行运动和睡眠监测。由于硬件部分的原理比较简单,在大学实验室稍微做过系统的人应该参考该IC的datasheet都可以搞个公版出来,这里就不贴出来了。

支持外设

  • 蓝牙射频电路;
  • 使用SPI接口的G-sensor;
  • 使用I2C接口的线性马达驱动电路;
  • 使用I2C接口的LED点阵驱动,与线性马达共用总线;
  • 使用GPIO的按键输入;
  • 使用GPIO的LED灯;
  • 使用GPIO的普通马达驱动电路;
  • 外部复位电路。

ROM部分

智能手环有两种工作模式:正常模式和升级模式。

正常模式下,手环提供产品定义中的所有功能; 升级模式下,手环等待手机端把要升级的ROM通过蓝牙发过来,然后进行升级。空中升级模式(Over–‐the–‐Air)给手环的bug修复、产品优化提供了实现的途径,这也是智能设备必备的功能。

1.正常模式

智能手环从软件结构上分为应用层、中间件、硬件抽象层,如图所示:

其中闹钟、时间、提醒、计步、睡眠等用户可以直接接触的功能属于应用层。中间件为应用层提供支撑,从底层获取数据和事件,然后进行处理分发给不同的应用模块。

硬件抽象层包含了底层硬件的驱动和暴露给中间件的调用接口,抽象层的目的硬件设备可以比较容易的更换厂家和型号,只要传递给上层的数据格式不变即可。

蓝牙部分硬件抽象层封装在Nordic提供的softdevice中,在此之上,我们使用了两个标准profile:Battery profile来传递电池信息给手机客户端,Device info profile传递设备信息给客户端;其他自定义的数据,如步数、睡眠信息,我们按照数据通信私有协议组帧后,通过串口协议发送给手机客户端,手机客户端再依据数据通信私有协议进行解析。

2. 空中模式(OTA模式)

 

升级过程如下图所示:要了解OTA模式需要知道ROM的内存分布,如下图所示,我们使用256KB Flash的51822芯片,分为四个区。

进入OTA后,系统运行在DFU BootLoader中,它从手机端收到新的ROM放在Swap区,接收完毕、校验成功后,将新的ROM从Swap区复制到Application 区,然后重新启动进入Application。

OTA的工程单独提供,编译出来一个bootloader。其工作流程图如下,具体可以参看Nordic SDK的文档。

最后值得一提的是,虽然硬件及基本框架开源了,发烧友可以在公版基础上裁剪定制。但是软件算法部分还没有开源,需要自己去设计优化。

9

本文由作者 MarkShaw 发布在 TNEXT , 转载请联系service@tnext.org授权处理,获得授权后请保留文章的完整性并附上原文链接: https://tnext.org/300.html

Tags:

We will be happy to hear your thoughts

发表评论

error: Content is protected !
TNEXT