diff --git a/doc/design.md b/doc/design.md index 647d7a7..78bcc38 100644 --- a/doc/design.md +++ b/doc/design.md @@ -8,24 +8,23 @@ 1. 迷彩外观; 2. 抽屉式电池箱组; 3. 捆绑/相机支架安装方式; -4. 案件翻盖保护; -5. 可拓展4G模块; -6. 户外防水; +4. 可拓展4G模块; +5. 户外防水等级?; ## 1.3. 硬件设计 ### 1.3.1. 关键外设 -1. 摄像头; +1. 双摄像头; 2. PIR sensor; 3. IR leds; 4. 电池(箱体); -5. 单按键启动; -6. 按键:同步/复位/格式化; -7. SD card; -8. usb接口; -9. NFC(绑定APP); +5. 电源开关; +6. 复位按键:同步/复位/格式化; +7. 功能按键:拍摄/cpu通电启动/ +8. tf card; +9. usb接口; 10. 光感传感器:白天/黑夜; -11. 指示灯:设备状态/SD卡状态/电量/无线信号灯/账号状态; +11. 单色指示灯:设备状态(工作/WiFi连接/异常); ## 1.4. 软件设计 @@ -106,11 +105,11 @@ hal 2. 应用代码只有在main线程初始化时实例化实例模块即可; 3. 多态单例模块由两个库组成,一个是抽象接口库,一个是实例代码库,支持静态多态和动态多态; -### 1.4.2. 双核业务设计 +### 1.4.2. 产品业务功能设计    基于芯片大小核架构的启动设计。 -#### 1.4.2.1. 红外触发启动 +#### 1.4.2.1. 红外触发状态启动(正常工作快启)    红外触发启动作为产品正常工作时最经常最重要的启动状态。启动后快速抓拍/录像,快速关机。 @@ -122,21 +121,57 @@ participant MCU participant 小核 participant 大核 MCU ->> MCU:待机 -MCU ->> MCU:检测到PIR信号 -MCU ->> +小核:上电 - 小核 ->> 小核:抓拍 / 录像 - 小核 ->> 小核:保存到sd卡 -小核 -->> -MCU:关机 -MCU ->> 小核:断电 +opt PIR信号触发 + MCU ->> 小核:上电 + activate 小核 + 小核 ->> 小核:Sensor初始化 + 小核 --> 大核:Sensor初始化完成-100ms + activate 大核 + 大核 ->> 大核:内核快启抓拍(1P/3P)-200ms + 大核 ->> 大核:内核启动(文件系统/挂载sd卡)-?ms + 大核 ->> 大核:启动脚本启动APP-?ms + 大核 ->> 大核:保存到sd卡-?ms + 大核 ->> MCU:关机 + MCU ->> 小核:断电 + MCU ->> 大核:断电 + deactivate 小核 + deactivate 大核 +end ``` #### 1.4.2.2. 定时触发状态启动 -#### 1.4.2.3. 设置状态启动 +**定时触发状态启动时序图** -   特殊的启动状态,可以长时间通电完成其它功能,此时功耗较高。 +```mermaid +sequenceDiagram +participant MCU +participant 小核 +participant 大核 +MCU ->> MCU:物理上电 +opt 根据定时参数上电 + MCU ->> 小核:上电 + activate 小核 + 小核 ->> 小核:Sensor初始化 + 小核 --> 大核:Sensor初始化完成-100ms + activate 大核 + 大核 ->> 大核:内核快启抓拍(1P/3P)-200ms + 大核 ->> 大核:内核启动(文件系统/挂载sd卡)-?ms + 大核 ->> 大核:启动脚本启动APP-?ms + 大核 ->> 大核:保存到sd卡-?ms + 大核 ->> MCU:关机 + MCU ->> 小核:断电 + MCU ->> 大核:断电 + deactivate 小核 + deactivate 大核 +end +``` -1. 如果没有设置状态按键,在物理电源上电时,首先进入设置状态启动,5分钟后自动切换到工作状态。 +#### 1.4.2.3. 设置/调试状态启动 + +   特殊的启动状态,可以较长时间通电完成其它功能,期间可供用户完成相关调试和参数设置,此时功耗较高。超时进入工作模式。 + +1. 设置状态按键触发CPU上电,首先进入设置状态启动,5分钟后自动切换到工作状态。 **设置状态启动时序图** @@ -146,24 +181,32 @@ participant MCU participant 小核 participant 大核 MCU ->> MCU:物理上电 -MCU ->> 小核:上电 -小核 ->> 小核:? -小核 ->> 大核:设置状态启动 -大核 ->> 大核:设置状态任务 -大核 ->> MCU:关机 -MCU ->> 小核:断电 +opt 设置按键触发 + MCU ->> 小核:上电 + activate 小核 + MCU ->> 大核:上电 + activate 大核 + 小核 ->> 小核:Sensor初始化 + 小核 --> 大核:Sensor初始化完成-100ms + 大核 ->> 大核:内核启动(文件系统/挂载sd卡)-?ms + 大核 ->> 大核:启动脚本启动APP-?ms + alt WiFi链接 + 大核 ->> 大核:常通电待机 + else 无操作 + opt 超时 + 大核 ->> MCU:关机 + MCU ->> 小核:断电 + MCU ->> 大核:断电 + end + end + deactivate 小核 + deactivate 大核 +end ``` -**大核设置状态启动时序图** +#### 1.4.2.4. 厂测状态启动 -```mermaid -sequenceDiagram -participant 大核 -participant app -大核 ->> 大核:物理上电 -大核 ->> app:启动脚本启动app -大核 ->> 大核:断电 -``` +  生产测试状态触发:使用tf card配置文件触发生产测试状态; ### 1.4.3. 根据软件模块作用域分层