mirror of
https://gitee.com/jiuyilian/embedded-framework.git
synced 2025-01-06 10:16:51 -05:00
Backup.
This commit is contained in:
parent
a1e14a3f27
commit
96ed848470
|
@ -66,39 +66,48 @@
|
|||
|
||||
  整机物理上电时,根据实际情况刷新设备的工作状态。
|
||||
|
||||
补充:
|
||||
如果掉电无法保存数据,首次物理上电向主控获取;
|
||||
默认开启喂狗;
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant CPU
|
||||
participant MCU
|
||||
MCU ->> MCU:物理上电
|
||||
MCU ->> MCU:串口初始化
|
||||
opt 检测到TEST拨档挡位
|
||||
alt 检测到TEST拨档挡位
|
||||
MCU ->> CPU:物理上电
|
||||
MCU ->> +CPU:发送启动模式:TEST启动
|
||||
CPU ->> CPU:TEST启动
|
||||
CPU -->> -MCU:回复OK
|
||||
CPU ->> +MCU:查询启动模式
|
||||
MCU -->> -CPU:回复TEST启动
|
||||
CPU ->> CPU:TEST启动
|
||||
loop 无操作
|
||||
CPU ->> +MCU:发送关机指令
|
||||
MCU -->> -CPU:回复OK
|
||||
CPU ->> MCU:发送关机指令
|
||||
MCU ->> CPU:物理断电
|
||||
end
|
||||
end
|
||||
opt 检测到ON拨档挡位
|
||||
else 检测到ON拨档挡位
|
||||
note over MCU:正常工作模式,PIR触发后可给主控上电
|
||||
MCU ->> CPU:物理上电
|
||||
CPU ->> +MCU:查询启动模式
|
||||
MCU -->> -CPU:回复ON启动
|
||||
CPU ->> CPU:ON启动
|
||||
CPU ->> MCU:发送关机指令
|
||||
MCU ->> CPU:物理断电
|
||||
end
|
||||
opt PIR触发中断
|
||||
MCU ->> CPU:物理上电
|
||||
MCU ->> +CPU:发送PIR触发启动
|
||||
CPU ->> CPU:PIR启动
|
||||
CPU -->> -MCU:回复OK
|
||||
CPU ->> +MCU:发送关机指令
|
||||
MCU -->> -CPU:回复OK
|
||||
CPU ->> MCU:发送关机指令
|
||||
MCU ->> CPU:物理断电
|
||||
end
|
||||
loop 默认开启喂狗
|
||||
opt 喂狗超时
|
||||
MCU ->> CPU:断电重启
|
||||
MCU ->> +CPU:发送启动模式:喂狗异常启动
|
||||
CPU ->> CPU:异常启动
|
||||
CPU -->> -MCU:回复OK
|
||||
CPU ->> MCU:发送关机指令
|
||||
MCU ->> CPU:物理断电
|
||||
end
|
||||
end
|
||||
MCU ->> MCU:休眠
|
||||
note over MCU:休眠后进入正常工作模式:当发生PIR触发时,<br>给CPU物理上电并发送PIR启动命令
|
||||
```
|
||||
|
@ -187,29 +196,28 @@ end
|
|||
|
||||
  外置MCU充当硬件狗,在系统异常时断电重启系统。喂狗逻辑和启动模式无关。
|
||||
|
||||
默认开启喂狗;
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant CPU
|
||||
participant MCU
|
||||
MCU ->> MCU:物理上电
|
||||
MCU ->> CPU:某种启动模式触发物理上电
|
||||
opt 主控开启喂狗
|
||||
CPU ->> +MCU:开启狗/设置喂狗周期
|
||||
MCU -->> -CPU:回复OK
|
||||
loop 主控喂狗
|
||||
loop 默认开启喂狗
|
||||
opt 设置喂狗周期
|
||||
note over CPU:主控选择性设置喂狗周期
|
||||
CPU ->> +MCU:开启狗/设置喂狗周期
|
||||
MCU -->> -CPU:回复OK
|
||||
end
|
||||
opt 主控喂狗
|
||||
note over MCU:喂狗不需要回复
|
||||
CPU ->> MCU:喂狗
|
||||
end
|
||||
loop MCU定时查狗
|
||||
alt 主控喂狗异常
|
||||
MCU ->> CPU:断电重启
|
||||
MCU ->> +CPU:发送启动模式:喂狗异常启动
|
||||
CPU ->> CPU:喂狗异常启动
|
||||
CPU -->> -MCU:回复OK
|
||||
CPU ->> MCU:断电关机
|
||||
end
|
||||
alt 主控喂狗异常
|
||||
MCU ->> CPU:断电重启
|
||||
MCU ->> +CPU:发送启动模式:喂狗异常启动
|
||||
CPU ->> CPU:喂狗异常启动
|
||||
CPU -->> -MCU:回复OK
|
||||
CPU ->> MCU:断电关机
|
||||
end
|
||||
end
|
||||
CPU ->> MCU:断电关机
|
||||
|
@ -218,14 +226,9 @@ MCU ->> MCU:休眠
|
|||
note over MCU:休眠后进入正常工作模式:当发生PIR触发时,<br>给CPU物理上电并发送PIR启动命令
|
||||
```
|
||||
|
||||
#### 1.3.3.3. 心跳
|
||||
#### 1.3.3.3. 超时异常启动
|
||||
|
||||
  CPU单次上电时间都是有限的,在主控未主动开启喂狗时,30s主动查询一次心跳,未回复则断电重启。此设计保证程序异常时电量不会一直消耗完。
|
||||
|
||||
**注意:** 整机上电之后如果从来未开启过喂狗功能,此功能不生效。避免调试版本不停重启。
|
||||
|
||||
取消心跳,默认开启喂狗。喂狗线程模拟主线程心跳;
|
||||
单次上电时间异常重启,总时间3min;
|
||||
  CPU单次上电时间都是有限的,在主控未正常发送关机指令时,3min后断电进行异常启动。
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
|
@ -233,37 +236,15 @@ participant CPU
|
|||
participant MCU
|
||||
MCU ->> MCU:物理上电
|
||||
MCU ->> CPU:某种启动模式触发物理上电
|
||||
opt 主控开启喂狗
|
||||
CPU ->> +MCU:开启狗/设置喂狗周期
|
||||
MCU -->> -CPU:回复OK
|
||||
MCU ->> MCU:激活心跳功能
|
||||
opt 主控未正常发送关机指令
|
||||
MCU ->> CPU:物理断电
|
||||
MCU ->> +CPU:发送启动模式:喂狗异常启动
|
||||
CPU ->> CPU:喂狗异常启动
|
||||
CPU -->> -MCU:回复OK
|
||||
end
|
||||
CPU ->> MCU:断电关机
|
||||
MCU ->> CPU:物理断电
|
||||
MCU ->> MCU:休眠
|
||||
note over MCU:只要CPU某次启动开启喂狗功能,下次启动心跳功能就会生效。
|
||||
|
||||
MCU ->> CPU:某种启动模式触发物理上电
|
||||
opt 心跳功能已经激活
|
||||
note over MCU:心跳功能在主控未开启喂狗时(异常)发挥作用。
|
||||
opt 主控未开启喂狗
|
||||
loop 30s主动查询一次心跳
|
||||
MCU ->> +CPU:发送心跳包
|
||||
alt 心跳回复
|
||||
CPU -->> -MCU:回复OK
|
||||
else 5s超时, 心跳未回复
|
||||
MCU ->> CPU:断电重启
|
||||
MCU ->> +CPU:发送启动模式:心跳异常启动
|
||||
CPU ->> CPU:心跳异常启动
|
||||
CPU -->> -MCU:回复OK
|
||||
CPU ->> MCU:断电关机
|
||||
end
|
||||
end
|
||||
end
|
||||
CPU ->> MCU:断电关机
|
||||
MCU ->> CPU:物理断电
|
||||
MCU ->> MCU:休眠
|
||||
end
|
||||
```
|
||||
|
||||
#### 1.3.3.4. PIR触发任务
|
||||
|
@ -331,8 +312,8 @@ MCU ->> MCU:物理上电
|
|||
MCU ->> CPU:某种启动模式触发物理上电
|
||||
opt 数据同步
|
||||
note over MCU:此处根据协议只做一个数据示例,其它协议雷同。
|
||||
CPU ->> +MCU:设置灵敏度
|
||||
MCU -->> -CPU:回复OK
|
||||
MCU ->> +CPU:获取灵敏度
|
||||
CPU -->> -MCU:回复数据
|
||||
end
|
||||
CPU ->> MCU:断电关机
|
||||
MCU ->> CPU:物理断电
|
||||
|
|
|
@ -129,8 +129,8 @@ unsigned short calculate_check_sum(const unsigned char* pData, unsigned short le
|
|||
| ---- | ---- | ---- | ---- | ---- | ---- |
|
||||
| 0x8101 | ask | - | - | 获取启动模式 | - |
|
||||
| 0x0101 | - | reply | Data[0]:启动模式<br>0x01:PIR启动 <br>0x02:TEST启动 <br>0x03:ON启动 <br>0x04:连拍启动 <br>0x05:PIR延时启动 <br>0x06:定时(间隔一定时间)启动 <br>0x07:关机 <br>0x08:低电关机 <br>0x09:异常启动 | 回复启动模式 | 异常启动数据:Data[1]<br>0x00:喂狗异常启动<br>0x01:超时异常启动 |
|
||||
| 0x8102 | ask | - | - | 断电关机 | - |
|
||||
| 0x8103 | ask | - | - | 喂狗 | - |
|
||||
| 0x8102 | ask | - | - | 断电关机 | 断电关机不用回复 |
|
||||
| 0x8103 | ask | - | - | 喂狗 | 喂狗不用回复 |
|
||||
| 0x8104 | ask | - | Data[2]:两字节的数字,单位s | 设置喂狗周期 | 0s代表关闭喂狗 修改为两个字节,单位s |
|
||||
| 0x0104 | - | reply | Data[0]:结果<br>0x01:成功<br>0x02:失败 | 设置喂狗周期回复 | - |
|
||||
| 0x8105 | ask | - | - | 关闭狗 | 取消 |
|
||||
|
@ -141,8 +141,8 @@ unsigned short calculate_check_sum(const unsigned char* pData, unsigned short le
|
|||
| 0x0107 | - | reply | Data[0]:结果<br>0x01:成功<br>0x02:失败 | 设置日期和时间回复 | - |
|
||||
| 0x8108 | ask | - | Data[0]:灵敏度<br>0-9 | 设置PIR灵敏度 | - |
|
||||
| 0x0108 | - | reply | Data[0]:结果<br>0x01:成功<br>0x02:失败 | 设置PIR灵敏度回复 | - |
|
||||
| 0x8109 | ask | - | Data[0]:Hour<br>0-23<br>Data[1]:Min<br>0-59<br>Data[2]:Sec<br>0-59 | 设置连拍间隔 | - |
|
||||
| 0x0109 | - | reply | Data[0]:结果<br>0x01:成功<br>0x02:失败 | 设置连拍间隔回复 | - |
|
||||
| 0x8109 | ask | - | Data[0]:连拍间隔,单位s | 设置连拍启动 | 设置连拍启动后会立即关机,一般连拍间隔较大时使用该功能,连拍间隔较小时Linux单次完成连拍。 |
|
||||
| 0x0109 | - | reply | Data[0]:结果<br>0x01:成功<br>0x02:失败 | 设置连拍启动回复 | - |
|
||||
| 0x810A | ask | - | Data[0]:控制模式<br>0-关闭红外灯<br>1-开启红外灯 | 红外灯控制 | 取消 |
|
||||
| 0x010A | - | reply | Data[0]:结果<br>0x01:成功<br>0x02:失败 | 红外灯控制回复 | 取消 |
|
||||
| 0x810B | ask | - | - | 获取光敏值 | 取消 |
|
||||
|
@ -152,9 +152,16 @@ unsigned short calculate_check_sum(const unsigned char* pData, unsigned short le
|
|||
| 0x4101 | - | ask | Data[0]:启动模式<br>0x01:PIR启动 <br>0x02:TEST启动 <br>0x03:ON启动 <br>0x04:连拍启动 <br>0x05:PIR延时启动 <br>0x06:定时(间隔一定时间)启动 <br>0x07:关机 <br>0x08:低电关机 <br>0x09:异常启动 | 发送启动模式 | 异常启动数据:Data[1]<br>0x00:喂狗异常启动<br>0x01:超时异常启动 |
|
||||
| 0xC102 | reply | - | - | 回复心跳包 | 取消 |
|
||||
| 0x4102 | - | ask | - | 发送心跳包 | 取消 |
|
||||
| 0xC106 | reply | - | Data[0]:Hour<br>0-23<br>Data[1]:Min<br>0-59<br>Data[2]:Sec<br>0-59 | 回复获取间隔启动时间 | - |
|
||||
| 0x4106 | - | ask | - | 获取间隔启动时间 | - |
|
||||
| 0xC107 | reply | - | Data[0]:Year<br>Data[1]:Mon<br>1-12<br>Data[2]:Day<br>0-31<br>Data[3]:Hour<br>0-23<br>Data[4]:Min<br>0-59<br>Data[5]:Sec<br>0-59 | 回复获取日期和时间 | - |
|
||||
| 0x4107 | - | ask | - | 获取日期和时间 | - |
|
||||
| 0xC108 | reply | - | Data[0]:灵敏度<br>0-9 | 回复获取PIR灵敏度 | - |
|
||||
| 0x4108 | - | ask | - | 获取PIR灵敏度 | - |
|
||||
|
||||
### 1.2.1. 名词解析
|
||||
|
||||
| 名词 | 解析 |
|
||||
| ---- | ---- |
|
||||
| 超时异常启动 | MCU给主控上电后(**非TEST启动**),不管主控是否正常喂狗,如果单次上电时长超过3min未关机,给主控断电重启一次。 |
|
||||
| 超时异常启动 | MCU给主控上电后(**非TEST启动**),不管主控是否正常喂狗,如果单次上电时长超过3min未关机,给主控断电重启一次。 |
|
||||
| 间隔启动时间 | 例如:60min/次。 |
|
Loading…
Reference in New Issue
Block a user