资产监测设备中关于ota升级串口应答帧处理(代码片段)

瑞奇Ricky 瑞奇Ricky     2023-01-07     304

关键词:

近期笔者的团队正在筹备对资产监测设备中的OTA升级串口应答帧处理。
关于该问题笔者首先需要介绍关于资产监测设备的基础知识,然后再通过代码阐述关于OTA升级串口应答帧处理方式。

资产监测设备简介:
资产监测设备是通过多种定位方式与传感技术,将设备所处的环境位置信息与状态信息采集,再通过通信模块与网络进行数据传递。用户只需要登录资产监测设备的云端后台,即可随时随地了解资产的信息。避免资产丢失与受损。资产监测设备被广泛应用于物流行业。

资产监测设备中关于OTA升级串口应答帧处理流程:

void UART_IRQHandler(void)

uint8_t recvData;
uint16_t u16Crc16;

if (HC32_GetUartErrStatus()) //获取串口异常标志位

HC32_ClrUartErrStatus(); //清除串口异常标志位

if (HC32_GetUartRCStatus()) //获取串口数据接收标志位

HC32_ClrUartRCStatus(); //清除串口数据接收标志位

   u32FrameRecvOverTime = 0;                                       //帧接收超时计数器,清零
   recvData = HC32_GetUartBuff();                                  //获取串口接收数据

switch(enFrameRecvStatus)

case FRAME_RECV_IDLE_STATUS : //当前处于空闲状态
if (recvData == FRAME_HEAD_L) //收到帧头第一个字节

u8FrameData[FRAME_HEAD_H_INDEX] = recvData; //保存数据
enFrameRecvStatus = FRAME_RECV_HEADER_STATUS; //帧接收进入下一状态: 空闲状态

break;
case FRAME_RECV_HEADER_STATUS : //当前处于接收帧头状态
if (recvData == FRAME_HEAD_H) //收到帧头第二个字节

u8FrameData[FRAME_HEAD_L_INDEX] = recvData; //保存数据
u32FrameDataIndex = FRAME_NUM_INDEX; //数组下标从帧头的下一位置开始计数
enFrameRecvStatus = FRAME_RECV_DATA_STATUS; //帧接收进入下一状态: 接收帧数据状态
else if (recvData == FRAME_HEAD_L) //收到帧头第一个字节

u8FrameData[FRAME_HEAD_H_INDEX] = recvData; //保存数据
enFrameRecvStatus = FRAME_RECV_HEADER_STATUS; //帧接收进入下一状态
else //数据错误

enFrameRecvStatus = FRAME_RECV_IDLE_STATUS; //帧接收恢复到初始状态: 空闲状态

break;
case FRAME_RECV_DATA_STATUS : //当前处于接收帧数据状态
u8FrameData[u32FrameDataIndex++] = recvData;
if (u32FrameDataIndex == (FRAME_NUM_INDEX+2)) //已经接收到数据帧序号及校验值

if ((u8FrameData[FRAME_NUM_INDEX] != (u8FrameData[FRAME_XORNUM_INDEX] ^ FRAME_NUM_XOR_BYTE))) //数据帧序号及校验值不匹配

enFrameRecvStatus = FRAME_RECV_IDLE_STATUS; //帧接收恢复到初始状态
return; //错误返回

else if (u32FrameDataIndex == (FRAME_LENGTH_INDEX+2)) //已经收到包长度数据

u32FrameSize = u8FrameData[FRAME_LENGTH_INDEX] + (u8FrameData[FRAME_LENGTH_INDEX + 1] << 8) + FRAME_SHELL_SIZE; //计算此帧的长度
if ((u32FrameSize < FRAME_MIN_SIZE) || (u32FrameSize > FRAME_MAX_SIZE)) //帧长度不在有效范围内

enFrameRecvStatus = FRAME_RECV_IDLE_STATUS; //帧接收恢复到初始状态
return; //错误返回

else if ((u32FrameDataIndex > (FRAME_LENGTH_INDEX+2)) && (u32FrameDataIndex == u32FrameSize)) //帧数据接收完毕

u16Crc16 = u8FrameData[u32FrameDataIndex-2] + (u8FrameData[u32FrameDataIndex-1]<<8);
if (Cal_CRC16(&u8FrameData[FRAME_PACKET_INDEX], (u32FrameSize-FRAME_SHELL_SIZE)) == u16Crc16) //如果CRC校验通过

enFrameRecvStatus = FRAME_RECV_PROC_STATUS; //帧接收进入下一状态: 帧处理状态
else //校验失败

enFrameRecvStatus = FRAME_RECV_IDLE_STATUS; //帧接收恢复到初始状态
return; //错误返回


break;
case FRAME_RECV_PROC_STATUS : //当前处于帧处理状态
break;


正在从事软件相关工作或学习的用户可参考以上文档,笔者希望能够帮助到大家!

资产监测设备中关于天线结构问题

近期笔者在处理的某个资产管理设备的项目中,遇到了天线结构的问题。FPC天线被广泛应用于无线通信设备。包括资产监测设备、环境监测设备、车辆跟踪设备等。针对该问题,笔者首先需要分析FPC天线在无线通信设备... 查看详情

资产监测设备中关于aes加密应用

...研究如何建立完善的软件知识培训系统,以满足后期资产监测设备的开发。资产监测设备简介:资产监测设备的主要作用是帮助实现资产监测,包括了资产的实时位置、资产的状态等信息。用户在使用资产监测设备后... 查看详情

资产监测设备中关于hall开环电流传感器介绍

例如资产监测设备是物联网在智慧物流发展方向的衍生产品之一,资产监测设备的主要作用是帮助用户监测资产,包括监测资产的实时位置、运动状态以及是否发生丢失等情况,用户通过云端监测和管理,最终达... 查看详情

资产监测设备中关于adc128s052简介

随着物联网的发展,人们越来越重视对于资产的监测。近期收到了国内某客户关于资产监测设备的询价,客户对于设备的功能与优势也缺乏清晰的认识。项目团队就此问题作出了以下方案。首先为客户介绍资产监测设备... 查看详情

资产监测设备中关于bq25890h简介

...了之前市面上的反馈,我们计划做一个系列的物联网资产监测方向的科普,希望能够帮助到感兴趣的用户。资产监测设备简介:资产监测设备是一款智能硬件终端,主要作用是监测资产在交付、运输、存储过程中... 查看详情

资产监测设备中关于adc128s052的时序要求

近期笔者的团队正在从事资产监测设备的开发,国内某个客户要求定制资产监测设备,采用低成本的方式进行监测,基于客户的需求,我们移除了GPS定位技术,采用了WiFi+BLE的方式。资产监测设备定义:... 查看详情

资产监测设备中关于移远模块file功能介绍

...其业务模式为代理商合作。笔者团队作为使用移远模块的资产监测设备开发团队之一,对移远的模块较为熟悉,移远的模块也在资产监测设备的使用过程中发挥了重要的作用。资产监测设备简介:资产监测设备是基于... 查看详情

技术科普资产监测技术中关于tea解密算法

近期笔者在资产监测设备的开发过程中,涉及到数据资源的加密与解密算法问题,资产监测设备的主要作用是实时监测资产的位置、运动轨迹、温湿度环境等数据,帮助企业对运输过程中或存储中的资产进行监测࿰... 查看详情

资产监测设备中关于供电不稳导致mcu重启问题

近期笔者在资产监测设备开发过程中,客户询问到关于供电不稳导致MCU重启的问题。由于该问题已经不是第一次出现。在此基础上,笔者将该问题整理成文档并分享给更多需要的人,希望对大家有所帮助。资产监测设... 查看详情

资产监测设备开发中关于cjson多次生成json字符串时死机问题

近期,笔者在开发资产监测设备的过程中,该设备应用了多项技术帮助货物实现精准定位、运动状态监测、环境温度湿度监测等。其中资产监测设备还添加了拆箱报警等功能,为用户保障资产的安全性提供解决方案。... 查看详情

资产监测设备中关于i2c接口的电平转换问题

随着社会的发展,无论是企业还是个人,拥有的资产越来越多。尤其是企业,在面对资产管理过程中,经常需要面对以下问题:资产在存储、运输和交付过程中需要经常出现资产丢失、损坏的情况。企业缺乏... 查看详情

资产监测技术中关于usim卡座在pcblayut设计中注意事项浅谈

近期笔者在资产监测设备的开发中,遇到了一系列问题。其中包括了关于如何优化设备的通信问题。资产监测设备主要应用于对运输中的货物进行监测,保障资产的实时监测。包括了货物的运输轨迹、运输状态等。例如... 查看详情

资产监测设备中关于uart转usb芯片ch340e引起的耗流问题分析

近期笔者在处理某个资产监测设备项目的开发过程中,客户提出了从UART转USB,芯片CH340E引起的耗流差异问题。该问题不仅适用于资产监测设备,追踪器类产品多数都是以电池供电的,其对功耗极其敏感,但有... 查看详情

环境监测技术中关于网络时间校准问题

...湿度、温度、光照等数据传递至云端后台,为用户的资产提供实时监测的功能。相关企业团队的核心人员研发了环境监测设备、资产跟踪设备、人员定位设备等,各个行业的用户提供资产监 查看详情

资产监测技术中关于gps定位工具中的pdop参数

近期笔者在开发资产监测设备技术过程中,遇到了客户询问的关于GPS定位的精度问题。资产监测设备主要采用了WIFI/GNSS/LBS的定位方式,该设备主要应用于贵重物品运输监测、集装箱货物运输跟踪,帮助用户实时全方... 查看详情

资产监测设备中关于移远模块的ftp功能介绍

...队主要开发物流运输相关的物联网技术,其中之一是资产监测技术。 查看详情

资产监测设备中关于bq25890h描述

上一节内容主要介绍了什么是BQ25890H,作为一款高度集成的5A开关模式电池充电管理和系统电源路径管理器件。其内容丰富,本篇主要阐述了具体的描述,帮助更多用户能够深入了解BQ25890H。BQ25890H集成了输入电流优化... 查看详情

技术科普资产监测设备中关于一种电平转换电路的使用说明

...:消费类、企业类、工业类等,专业为用户提供资产监测解决方案的通信公司,经过长期的市场调研,以为客户提供资产跟踪解决方案为目的,开 查看详情