安卓板(物联网硬件)串口与单片机交互协议说明--预研中

上电后安卓板主动发送数据,间隔500ms,单片机收到数据,根据具体逻辑响应,单片机3秒内未收到有效数据,断电断阀。

设备号卡号设备状态出水量继电器组最大出水量(L)1L(脉冲或者时间)
4(byte)412222
       

最大出水量只对按量付费进行约束。

刷卡打水:

单片机端:电子水卡刷卡后,根据设备状态 填充卡号;

安卓版端:获取到卡号,查询卡状态,合法,组包卡号;

单片机端:获取到有效卡号,可以按键,更新出水量;

安卓端:判断出水量进行扣费;

单片机端:按键结算,更新出水量,卡号清零;

扫码打水:

安卓版端:获取设备号,查询状态,合法,组包卡号下发给单片机;

单片机端:获取到有效卡号,可以按键,更新出水量;

安卓端:判断出水量进行扣费;

单片机端:按键结算,更新出水量,卡号清零;

第二次改进:

1.寄存器读写指令详解

 寄存器(flash)变量存储器(内存)
容量256字节256字节
地址范围00-ff00-ff
单元大小一个单元一个字节一个单元一个字节
读写指令写0x80/读0x81写0x82/读0x83
功能单元功能已经定义好,用于硬件配置和控制操作,典型功能如单价,最大限额单元功能已经定义好,用于存储变量值,例如打水金额。

2.数据帧格式说明

3.寄存器一览表

寄存器地址定义R/W字节长度说明
0x00设备号R4设备号
0x04协议版本R1 
0x05设备类型R1 
0x06区域码R/W2 
0x08脉冲数/1lL水多少秒R/W2根据设备类型判断是时间型还是流量型
0x0a硬币器脉冲R/W2 
0x0c单次最大出水量(L)R/W1 
     
     
     
     
     
     
     
     
存储器地址定义R/W字节长度说明
0x00设备状态R1安卓板(后台)根据设备状态判断终端能否工作,终端写操作
0x01卡号R4终端写操作,安卓读操作
0x05出水量R2终端写操作,安卓读操作
0x07金额状态R/W1终端根据金额状态灌装以及结束
0x08继电器组R/W2 
0x0a投币金额R/W1终端写操作,安卓读操作
     

4.读写寄存器实例

寄存器读写指令 0x80、0x81
设备暂定有256Byte的寄存器,主要用于相关硬件控制操作,按照字节(Byte)寻址。
起始地址对于寄存器读写指令(0x80、0x81)是单字节,地址范围为0x00~0xff。
数据长度(N)以字节为单位 ,表示连续读寄存器单元个数。
支持顺序读写多个寄存器。

定义指令帧头指令长度指令起始地址数据内容校验和
长度(字节)211(0x80)111

数据内容即为要写入的数据。

举例:寄存器0x03和0x04单元连续写入0x00 、0x01
发送:0xA5 0x5A 0x06 0x80 0x03 0x00 0x01 0xxx 0xxx

返回:0xA5 0x5A 0x04 0x80 0x03 0xxx 0xxx

定义指令帧头指令长度指令起始地址数据内容校验和
长度(字节)211(0x81)111

数据内容为要读的寄存器长度,单位byte,

返回为具体的寄存器值。

举例:连续读取寄存器寄存器0x03和0x04单元
发送:0xA5 0x5A 0x05 0x81 0x03 0x02 0xxx 0xxx
返回:0xA5 0x5A 0x07 0x81 0x03 0x02 0x00 0x01 0xxx 0xxx

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值