物联网技术跨度 --- 设备端

物联网主要的技术难题在于,跨度。所谓隔行如隔山,一旦涉及多个技术领域势必难题重重。

我个人2014年开始工作,就一直处在其中。属于设备端研发人员。

先说说跨度范围,然后看坑。

  设备--网络--服务器--网络--用户

一、设备:

  1)硬件:

    外壳:

      外壳设计问题:自己设计(需要3D绘图的技术人员)  或者   外包合作(沟通问题)。  外壳demo一般是CNC(数控机床)雕刻尼龙材料,然后表面处理。

      外壳生产问题:典型代表,塑料注塑。 开模费用高(几万到几十万),后期生产成本低(一两块钱一个)。  开模周期长,45天出模具,修修补补2个月最快。修改模具设计等于重开。

      代工问题: 纯商业问题,不描述。

    电路: 

      原理图,PCB打样,验证。  你需要专业的 硬件设计人员。  

      电源问题:电源问题单独博客说明。单片机硬件目录下(如果没有说明还没写   哈哈)。

      通讯方式:无线(你需要无线方面的合作资源,射频用的工具太贵,不太可能自己弄。频谱仪/网络分析仪 一套大概50万元)。

      PCB相关:周期长,有修改 最快一周出结果。慢的无上限。

      PCB 验证、认证:可靠性,抗干扰能力等能不能符合使用环境?。 认证方面:CCC,高低温,静电,雷击等一系列都是烧钱的,时间也长 一个月搞不下来。(医疗行业是最难过认证的)。

      生产: 物料采购,物料管理  --  物料种类超多。 目前(2018年),刚经历了电容超级涨价,电阻涨价,芯片涨价。物料成本压力重重。

          批量生产基本是代工,自己做流水线太贵,成本大概是100万元。 品控,不能一颗老鼠屎坏一屯子粮食,具体实施时如何定义标准?

    组装:

      烧写硬件固件,PCB综测,装进外壳。 老化测试。 

      包装成型,仓管,销售  略。

    成本:

      这是限制软件的超级高压锅。FLASH ,RAM ,计算能力 等 直接对软件构成暴击伤害。   老板习惯的问题是,最小能压缩到多少?

    其他:

      跨工种头疼事:外壳设计跟PCB设计“打架”。外壳要美观,PCB 要形状、射频开口(如果有)。

      合作方超多,人际关系,合作方式。商务头疼。

      这里只讨论单片机作为主控的情况,如果是linux还有其他的坑。

  2)软件:

    设备内的软件运行在廉价的机器上,这里只讨论MCU 单片机范围。如果你是跑Linux的,请跳过此坑。

    运行环境:鉴于单片机这个Flash(硬盘)RAM(内存条)容量按照k计算。  (按照字节计算的基本不考虑。虽然可以做  但是不在本文讨论范围内。)

    开发语言:c语言,高端一点c++ ,但是 限于资源   C++的 STL库几乎不可用。

    插一句:单片机软件开发,90%在写驱动代码,10%时间在写业务逻辑。

    系统:

        有些开源的可以自行移植。   系统种类很多   抢占式OS (ucos,freertos等)  ,协作式OS  (新生命smartos),其他  (前后台,事件驱动型OS  contiki)

        选择困难症,而且需要学习成本。  很多干脆没有OS 以节省资源开销(单片机级别的嵌入式中系统开销是大头,Flash和RAM占用相当可观)

    驱动:

        嵌入式中开发 中的重头戏,不同的硬件平台IO驱动完全不同,没有统一规范。 能到达目的为上。

    人才:

        就目前掌握的情况来看,80%的单片机工程师没有软件分层思想,写的代码  今天他跟上帝知道是干什么,一周后就只有上帝知道了。

        if     else if    else if   else   是主要代码结构。  一副官方给的 OK 的代码  在他们手上就会变成渣。 为了目的  随处改。有看到过一个函数有8000行的。

        不会使用版本管理软件,做版本纯粹靠资源管理器。 这个给管理提供了一定的难度,没有办法做到代码审核,bug 跟踪。 

        没有统一的命名规范,没有统一的备注习惯,甚至有的tab对齐都搞不好。 不知道文本编码问题,乱码问题时有发生。 

    网络:

        这里只讨论硬件直接入网的形式。    lora  sigfox   2.4g  433  315  等 这种另立博客。

        以太网:有各种库,lwip    uip   uctcp/ip  等软件协议栈,有的是单片机有网络MAC PHY的   使用 MII 接口,有的是外置MAC PHY的。  SPI口偏多。 也有硬件协议栈芯片。SPI 口占多数;  

        wifi: 基本都是 wifi芯片咯,esp8266   RTL8211 串口AT指令集。  

        GPRS/4G LTE:  SIM800C  SIM868   AIR208S 等。4G模块没有关注型号。  串口AT指令集。  

        NBIOT :BC95   AIR395  UC666   串口AT 指令集。

        全是驱动的活!!

    通讯数据:

        限于FLASH  RAM 的需求,单片机这边工程师100%希望是二进制。   http 一定是不希望的,太复杂,在单片机上处理完全就是找虐待。

        跟服务器开发工程师的妥协就是  JSON  。  

        虽然说 CoAp 也是很不错的,但是目前还没发现谁在用。

九环

2018.5.20