diff --git "a/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/Todo_hzh.txt" "b/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/Todo_hzh.txt" index e330247ea6dd71bdffb36ccab65c47337ecdeca2..2423c40846807dc37c2716d998118e15dc45f0fa 100644 --- "a/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/Todo_hzh.txt" +++ "b/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/Todo_hzh.txt" @@ -1,32 +1,64 @@ + + [2022年1月26日 周三] [09点37分] [任务描述] -1. 按照数据包的格式,分别在PC和NS3108上编写CJSON的打包和解析代码,并验证其可行性 [已完成][15点49分] +1. 按照数据包的格式,分别在PC和N32S033上编写CJSON的打包和解析代码,并验证其可行性 [已完成][15点49分] 2. 将数据包格式整理好 [已完成][16点09分] -3. 请教使用NS3108生成唯一识别码 +3. 请教使用N32S033生成唯一识别码 4. 时间节点外发 [已完成][15点54分] 5. 请假 [已完成][15点27分] 6. 将testUar3 merge到master上 [已完成][17点00分] 7. check了新分支testAlg和testFlash。分别用于验证算法接口和flash存储 [17点02分] - +8. 涉外文件的安全芯片名字重命名为N32S033 +[下一阶段任务] +[N32S033] +0. 之后要把整个message用JSON格式传递 +1. 获取N32S033的唯一SN1 +2. 调用ECDSA接口,生成公钥和密钥,并验证sign和verify的实现 +3. 调用ECDSA接口,对JSON格式的payload进行签名,在PC上对此进行解析和验证 +以上三步预计节后一周 +4. 调用flash接口存储SN1,并取出 +5. 调用flash接口存储数据,并取出 +6. 接收ESP32的mac地址作为SN2,调用flash接口存储SN2,并取出 +以上三步预计两天 +7. 设计SN1和SN2的绑定方式,防止设备伪造。并设计终端唯一SN码的生成和存储方式 +8. 将SN1和SN2作为元素生成终端的真正唯一SN码,并存储 +9. 将终端相互认证和唯一SN码加入联调 +以上三步预计一周 +[ESP] +1. 先尽快实现M2M的串口收发验证,要求: + i: 中断收发 + ii: 队列实现异步 + iii:发送之前获得发送许可,防止信息碰撞 +2. 整条message转换为JSON格式并验证打包和解析 +3. 在笔记本上按照yjc的说明搭建MQTT服务器和web服务器,并实现信息传输 +4. 不涉及N32S033的联调,公钥和密钥先人为设定,SN用SN2即esp32的mac地址 +以上四步春节完成 +5. 完成mac地址在efuse中的重映射 +以上一周 +6. 实现设计好的终端绑定方式 +以上一周 +7. 实现联调 +以上一周 [2022年1月25日 周二] [09点34分] [任务描述] 0. 额外任务:编写exe文件用于生成串口中断的测试指令 [16点13分] -1. 将cJSON移植到NS3108上 [已完成][17点02分] +1. 将cJSON移植到N32S033上 [已完成][17点02分] 2. 尝试将payload换成JSON格式 [已完成][17点03分] -3. 在NS3108上编写数据打包函数 [已验证,但是测试代码丢失] +3. 在N32S033上编写数据打包函数 [已验证,但是测试代码丢失] [反馈] [17点03分] 1. uart0的输入,每个byte必须为了两个bit,即0x01,已将测试文件修改 2. TestUart()好像还是会抢占线程?导致后面的TestCJson()无法执行 [17点14分] 已解决,TestUart()的嵌套程序中有while(1); [明日任务]简单记录一下明天的工作 0. 将数据包格式整理好上传 -1. 按照数据包的格式,分别在PC和NS3108上编写CJSON的打包和解析代码,并验证其可行性 +1. 按照数据包的格式,分别在PC和N32S033上编写CJSON的打包和解析代码,并验证其可行性 2. 申请将时间节点外发,存到material中 -3. 请教使用NS3108生成唯一识别码 +3. 请教使用N32S033生成唯一识别码 4. 着手设计终端唯一识别码 [思考] [10点46分] -1.移植CJson到NS3108上用以打包和解析需要上传和下发的数据 +1.移植CJson到N32S033上用以打包和解析需要上传和下发的数据 2.疑问是我需要对整个JSON去加密吗,如果需要,加密过程可以分为: i:从ESP接收一个JSON包,解析出来比如温湿度的数据(DATA)、时间戳(time stamp)和消息类型(tag),存放到结构体 ii:从flash读取设备的唯一识别码,存放到结构体 @@ -38,13 +70,13 @@ 3. ESP的工作 i: 利用温湿度传感器等采集数据,存放到结构体 ii:利用fntp或者网关获取时间戳,存放到结构体 - iii:利用结构体生成带数据、时间戳和消息类型的JSON格式数据包,发送到队列,由中继函数接收并发送给NS3108。在收到回馈之前函数挂起,不再发送,避免NS3108消息堵塞造成数据丢失 - iv:从NS3108接收到数据并解析,获得签名和公钥,通过mqtt协议发送给网关,并最终发送到服务器进行解密。 + iii:利用结构体生成带数据、时间戳和消息类型的JSON格式数据包,发送到队列,由中继函数接收并发送给N32S033。在收到回馈之前函数挂起,不再发送,避免N32S033消息堵塞造成数据丢失 + iv:从N32S033接收到数据并解析,获得签名和公钥,通过mqtt协议发送给网关,并最终发送到服务器进行解密。 v:发送心跳包 vi:对来自服务器的消息解析 [疑问] 这部分内容往后稍稍 -1. 如果ESP和NS3108是通过串口通信,如何保证数据的安全性 -2. 如何将ESP和NS3108绑定,并获取终端的唯一识别码 +1. 如果ESP和N32S033是通过串口通信,如何保证数据的安全性 +2. 如何将ESP和N32S033绑定,并获取终端的唯一识别码 3. 通过一个讨子论帖:https://www.esp32.com/viewtopic.php?t=1402#p6932,可以利用mac地址(可以修改),"MAC address efuse is writeable by default so can be changed (bits can be set from 0 to 1), but the command "espefuse.py write_protect_efuse MAC" can be used to write-protect this efuse over the serial port.Or you can burn the write protect bits of this efuse from firmware (consult the Technical Reference Manual for details of efuse bits.)" 4. 或者有所谓:Flash 64bits UniqueID(不可写)可用。但是并不好用。官方没有给出任何接口和文档,论坛上找到的方法操作难度未免太大。 5. 而所谓CHIP_ID 不能用于唯一标识 ESP8266EX,因为同一批次的芯片的chip_id 是相同的 @@ -61,15 +93,15 @@ 2. ESP8266的SDK开发 i: 验证了RTOS的任务调度、队列通讯和内存管理等接口 ii: 用多任务实现了GPIO, UART和wifi的调用 -3. 总的来说,由于对NS3108接口的陌生及测试用例的单调,导致串口的中断调用卡了很长时间,总体进度偏慢。但依旧在可以接收的范围内 +3. 总的来说,由于对N32S033接口的陌生及测试用例的单调,导致串口的中断调用卡了很长时间,总体进度偏慢。但依旧在可以接收的范围内 [本周任务] [09点59分] -1. 在NS3108上验证协议的语法基础 +1. 在N32S033上验证协议的语法基础 2. 初略制定数据包结构 3. 在ESP上实现M2M功能 [任务描述] 1. 设计终端通信协议及通信数据包结构 [已完成] -2. 在NS3108上验证协议的语法基础 [已完成] -3. 在NS3108上编写数据包解析函数 [已完成] +2. 在N32S033上验证协议的语法基础 [已完成] +3. 在N32S033上编写数据包解析函数 [已完成] [2022年1月21日 周五] [11点02分] @@ -94,21 +126,21 @@ 1. 代码完成了编译和烧写,可以回boot,掉电虽然电压不稳定但是无关大局。 2. 完成了ESP8266的RTOS移植,实现了8266在win10上开发的环境搭建和工具链接入。实现了联网和外设调用 [本周任务] [09点44分] -1. 搭建ESP8266和NS3108的简易终端 +1. 搭建ESP8266和N32S033的简易终端 周一: i:完成串口接收中断模型的搭建,验证串口收发 ii:实现两块ESP的串口通信 周二: i:在OFFICE桌面搭建ESP的sdk环境 - i:完成ESP和NS3108的串口通信 + i:完成ESP和N32S033的串口通信 ii:实现ESP和YJC本地MQTT服务器的连接 - 周三:实现ESP8266和NS3108简易终端和树莓派网关的通信 + 周三:实现ESP8266和N32S033简易终端和树莓派网关的通信 周四、周五 i:根据需求更改固件 ii:学习算法库用户手册,准备调用加密模块 [任务简述] [09点56分] -1. 完成NS3108的串口中断模型的搭建,验证串口收发 -2. 简单调用NS3108的外设 +1. 完成N32S033的串口中断模型的搭建,验证串口收发 +2. 简单调用N32S033的外设 [2022年1月14日 周五]