测试:摊上这种物联网架构,你怎么应付?

物联网神教 2020-04-26 11:34:36
某物联网系统,有一个中心机,多个终端机。终端机类型有甲,乙,丙,丁,戊共5种类型,将来还会添加其它类型中端(平均每月新增一种)。他们分别搭载A,B,C,D,E,F,G,H共8类传感器,将来也会增加传感器类型(半年会新增一种传感器)。另外客户数量多,分布全中国,但是不同客户采购终端机数量,最少的只有不到10件,最多的采购数量在1000件。

物联网芯片硬件自带帧打包功能,包括调制解调,频率选定,帧头,地址,校验。

其中终端机搭载传感器的如下

甲: 1*A
乙: 1*A + 1*B
丙: 2*B + 1*C + 1*D
丁: 2*D + 1*E + 1*F
戊: 2*F + 2*G + 2*H

各个传感器的精度如下
A - uint32
B - uint16
C - uint16
D - uint32
E - float32
F - float16
G - uint8
H - uint8

终端机与中心机的通信协议设计如下:
因为统计甲,乙,丙,丁,戊,累计的传感器A为1个,B为2个,C为1个,D为2个,E为1个,F为2个,G为2个,H为2个。因此采用统一的通信协议帧格式。

每个[]表示一个字节,uint32用 [i3] [i2] [i1] [i0]表示,uint16用[ih]和[il]表示,float32用[f3] [f2] [f1] [f0]表示,float16用[fh]和[fl]表示

[A i3] [A i2] [A i1] [A i0] [B1 ih] [B1 il] [B2 ih] [B2 il] [C ih] [C il] [D1 i3] [D1 i2] [D1 i1] [D1 i0] [D2 i3] [D2 i2] [D2 i1] [D2 i0] [e f3] [e f2] [e f1] [e f0] [f1 fh] [f1 fl] [f2 fh] [f2 fl] [g1 i ] [g2 i ] [h1 i ] [h2 i ]

一帧传感器数据,共30字节。不支持的传感器类型,对应数据填0。


问题:

1,这种通信协议存在什么缺陷?考虑到产品成本不能用OTA

2,如果你来维护这种系统,请分别站在老板,部门经理,单片机程序员,Web程序员的立场上,如何保证自己利益最大化?
...全文
158 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
物联网神教 2020-04-29
  • 打赏
  • 举报
回复
引用 5 楼 月月鸟, 的回复:
deviceType + (sensorType1 + dataType + dataLen + data) +(sensorType2 + dataType + dataLen + data)+。。。+(sensorTypeN + dataType + dataLen + data) 设备类型和传感器类型都可以按需分配,数据类型直接枚举出来对应的长度,再加数据,最后新产品出来直接更新客户端程序解析响应数据就行了,解析器都可以分包之后直接发送到对应的模块去操作,
正解
weixin_43964245 2020-04-29
  • 打赏
  • 举报
回复
deviceType + (sensorType1 + dataType + dataLen + data) +(sensorType2 + dataType + dataLen + data)+。。。+(sensorTypeN + dataType + dataLen + data) 设备类型和传感器类型都可以按需分配,数据类型直接枚举出来对应的长度,再加数据,最后新产品出来直接更新客户端程序解析响应数据就行了,解析器都可以分包之后直接发送到对应的模块去操作,
worldy 2020-04-27
  • 打赏
  • 举报
回复
引用 2 楼 物联网神教 的回复:
[quote=引用 1 楼 worldy 的回复:] 全部转为浮点数或int32处理
物联网芯片通常一帧长度受限的,全部转成浮点或int32不可取。[/quote] 想太多了,即使你支持100个设备,也就是400个字节 当然你也可以使用分组,将不同长度的传感器组成一组,加上控制字段,进行发送,但是,数据转换相同格式,还是必须的
物联网神教 2020-04-27
  • 打赏
  • 举报
回复
引用 3 楼 worldy 的回复:
[quote=引用 2 楼 物联网神教 的回复:] [quote=引用 1 楼 worldy 的回复:] 全部转为浮点数或int32处理
物联网芯片通常一帧长度受限的,全部转成浮点或int32不可取。[/quote] 想太多了,即使你支持100个设备,也就是400个字节 当然你也可以使用分组,将不同长度的传感器组成一组,加上控制字段,进行发送,但是,数据转换相同格式,还是必须的[/quote] 你没有找到这个的关键点。首先要能预测未来几年产品经理会提出哪些传感器的排列组合。在设计现有的通信协议时必须要能预测未来产品经理的想法。
物联网神教 2020-04-26
  • 打赏
  • 举报
回复
引用 1 楼 worldy 的回复:
全部转为浮点数或int32处理
物联网芯片通常一帧长度受限的,全部转成浮点或int32不可取。
worldy 2020-04-26
  • 打赏
  • 举报
回复
全部转为浮点数或int32处理

3,846

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 无线
社区管理员
  • 无线
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧