蓝牙OBD长时间数据保存实现方法技术

技术编号:14116027 阅读:123 留言:0更新日期:2016-12-07 18:29
本发明专利技术公开一种蓝牙OBD长时间数据保存实现方法,包括七个具体步骤实现,基于Cortex‑M3主控MCU、SPI总线硬件及存储芯片Flash,通过软件创建小型的数据库管理系统。数据库管理系统针对Flash内部存储不同数据信息的保存要求进行功能区域划分、数据擦除、更新、读写等操作。通过对Flash平衡写入处理、历史数据回滚机制,增加工况数据区保存数据量,减轻Flash擦写次数以达到延长Flash使用寿命,实现对蓝牙OBD长时间数据保存。本发明专利技术的软件程序高度集成模块化,可移植性好,有良好的拓展API接口,具备数据信息安全以及掉电保护功能,属于轻型数据库管理系统,更加节省代码和RAM空间。

【技术实现步骤摘要】

本专利技术涉及汽车诊断OBD嵌入式系统
,尤其涉及一种蓝牙OBD长时间数据保存实现方法
技术介绍
为了解决汽车尾气排放的环境污染,世界各大汽车制造厂家都生产符合国际标准 OBD-II 的汽车以减少汽车尾气排放。OBD-II 一套扩展的标准,最早是由美国的 SAE 组织开发,环境保护局采用,随后陆续推广到欧洲、亚洲、大洋洲等地区。现在中国也已经开始强制要求在中国国内生产的汽车必须符合国际标准 OBDII。国际标准 OBDII 支持下列功能:如果汽车存在故障,汽车仪表盘上的故障指示灯就必须点亮,提示客户汽车有故障,继续驾驶会 影响安全。蓝牙OBD是一款对汽车实现故障检测及动态数据实时监测的安全智能监测产品,采用无线蓝牙方式将诊断数据发送到Android系统手机上,适用于支持OBDII/EOBD协议车辆。产品技术先进,设计小巧、可长期插在车上使用,能让车主随时随地掌握车辆状况,是爱车一族的最佳选择。然而,现有的蓝牙OBD通常无法长时间进行数据保存,无法进行长时间存储记录以及更新OBD用户数据。
技术实现思路
针对上述技术中存在的不足之处,本专利技术提供一种的蓝牙OBD长时间数据保存实现方法,实现长时间存储记录以及更新OBD用户数据。为了达到上述目的,本专利技术一种蓝牙OBD长时间数据保存实现方法,包括以下具体步骤:步骤1,初始化Cortex-M3主控MCU的SPI总线硬件;步骤2,挂载应用在蓝牙OBD上的存储芯片Flash,初始化Flash信息及Flash操作驱动;步骤3,初始化数据库管理系统,数据库管理系统针对Flash内部存储不同数据信息的保存要求进行功能区域划分,且功能区域包括静态存储区、动态存储区、预留备份区和指针区;步骤4,数据库管理系统进行分配Flash块区域的起始地址及各功能区域大小;步骤5,数据库管理系统对静态存储区数据进行更新,且静态存储区包括IAP数据区、ISP数据区及非持续读写的参数区;步骤6,数据库管理系统对动态存储区的动态数据进行更新存储,且动态存储区为多个持续更新的工况数据区;步骤7,数据库管理系统对参数区数据更新保存及读取,且数据库管理系统对工况数据区更新保存及读取;步骤8,MCU收到IAP和ISP命令,响应后更新IAP数据区和ISP数据区的数据更新写入,在自动加载过程中,读取MCU内相应的固件块原始数据,对嵌入式设备开始升级操作。其中,所述步骤5包括步骤51和步骤52,所述步骤51为IAP数据区和ISP数据区的更新,且所述步骤52为参数区更新;所述步骤51具体为:步骤511,当IAP数据区和ISP数据区接收更新数据时,数据库管理系统通过API接口写入IAP数据区和ISP数据区;步骤512,数据库管理系统对IAP数据区和ISP数据区的数据进行校验;若校验不通过,则IAP数据区和ISP数据区的信息更新标志无效;若校验通过,则执行步骤513;步骤513,在IAP数据区和ISP数据区更新进程中,数据库管理系统操作API接口调用Flash写入驱动,刷新IAP数据区和ISP数据区,且更新升级标志。其中,所述步骤52的具体步骤如下:步骤521,数据库管理系统通过API接口调用Flash写驱动,将待更新数据写入预留备份区;步骤522,写入完成后API接口调用Flash读驱动读取新参数信息;步骤523,检验更新数据的完整与正确;若数据校验通过,数据库管理系统对比预留备份区参数与旧参数区数据,如果有变动,则擦除参数区数据,数据库管理系统再从预留备份区读取新数据写入参数区;如果无变动,则不擦写参数区;若数据校验不通过,则返回,重新进行参数读写。其中,所述步骤6的具体步骤如下:步骤61,数据库管理系统通过API接口调用Flash读驱动,工况数据区从指针区读取当前指针的位置;步骤62,当前指针的位置指向最后一次保存工况数据的写入节点;步骤63,检测写入节点的位置,如果当前写入节点不在工况数据区,工况数据区无效,则为空数据状态;如果当前写入节点在工况数据区,则判断写入指针是否是跨越扇区;如果工况数据区剩余不足写入数据,则将写入数据覆盖,搜索保存下一个工况数据区,且继续检测写入节点的位置;步骤64,如果判断写入指针是跨越扇区,则数据库管理系统调用Flash擦除驱动擦除新扇区后,执行步骤65;如果判断写入指针不是跨越扇区,则执行步骤65;步骤65,以64字节为单位将工况数据区的数据帧拆分并加以校验,在一帧数据保存完整时,数据库管理系统通过API接口调用Flash写驱动,将当前写指针与读指针保存到指针区中,再将当前写入节点写入读写指针区。其中,所述步骤3中,所述功能区域还包括开放为调试人员进行读写测试的调试区和用于数据存储的用户数据区。其中,所述步骤3中,所述指针区包括指针存放区和掉电备份区,所述指针存放区存储当前读写指针,且所述掉电备份区保存上一次存储数据的完整。其中,所述IAP数据区包括IAP固件版本、IAP固件大小、IAP固件硬件型号、IAP固件数据、IAP固件加密和IAP固件校验;所述ISP数据区包括ISP固件版本、ISP固件大小、ISP固件硬件型号、ISP固件数据、ISP固件加密和ISP固件校验;所述参数区包括出厂序列号、蓝牙默认名称、告警开关和告警阀值;所述工况数据区包括里程、油耗、RTC时间、综合数据、警情信息、快照和OBD数据。其中,所述步骤2中,所述Flash信息包括芯片类型、芯片空间大小、页大小、扇区大小和扇区数量;所述Flash操作驱动包括Flash在SPI总线的装载与卸载、Flash制造商ID识别、Flash擦除、Flash连续多字节读写及Flash睡眠与唤醒;且所述步骤3中,数据库管理系统管理的内容包括提供Flash块区域擦除、读写功能管理函数API、Flash地址读写校验、数据校验以及封装、IAP数据区和ISP数据区升级程序信息管理、参数信息保存更新管理、工况信息记录保存读取管理、调试区信息读写管理及预留备份区读写管理。其中,所述API接口的函数包括Flash初始化、Flash信息查询、Flash芯片擦除、功能区域大小擦除、Flash读函数、Flash写函数、Flash掉电及唤醒。其中,所述OBD数据的记录方式为回滚式记录。本专利技术的有益效果是:与现有技术相比,本专利技术的蓝牙OBD长时间数据保存实现方法,基于Cortex-M3主控MCU、SPI总线硬件及存储芯片Flash,通过软件创建小型的数据库管理系统。数据库管理系统针对Flash内部存储不同数据信息的保存要求进行功能区域划分、数据擦除、更新、读写等操作。通过对Flash平衡写入处理、历史数据回滚机制,增加工况数据区保存数据量,减轻Flash擦写次数以达到延长Flash使用寿命,实现对蓝牙OBD长时间数据保存。本专利技术的软件程序高度集成模块化,可移植性好,有良好的拓展API接口,具备数据信息安全以及掉电保护功能,属于轻型数据库管理系统,比FATFS更加节省代码和RAM空间。附图说明图1为本专利技术蓝牙OBD长时间数据保存实现方法的流程图;图2为本专利技术步骤S51的流程图;图3为本专利技术步骤S52的流程图;图4为本专利技术步骤S6的流程图;图5为本专利技术功能区域的第一方框示意图;图6为本专利技术功能区域的第二方框示意图。具体实施方式为了更清楚地本文档来自技高网...
蓝牙OBD长时间数据保存实现方法

【技术保护点】
一种蓝牙OBD长时间数据保存实现方法,其特征在于,包括以下具体步骤:步骤1,初始化Cortex‑M3主控MCU的SPI总线硬件;步骤2,挂载应用在蓝牙OBD上的存储芯片Flash,初始化Flash信息及Flash操作驱动;步骤3,初始化数据库管理系统,数据库管理系统针对Flash内部存储不同数据信息的保存要求进行功能区域划分,且功能区域包括静态存储区、动态存储区、预留备份区和指针区;步骤4,数据库管理系统进行分配Flash块区域的起始地址及各功能区域大小;步骤5,数据库管理系统对静态存储区数据进行更新,且静态存储区包括IAP数据区、ISP数据区及非持续读写的参数区;步骤6,数据库管理系统对动态存储区的动态数据进行更新存储,且动态存储区为多个持续更新的工况数据区;步骤7,数据库管理系统对参数区数据更新保存及读取,且数据库管理系统对工况数据区更新保存及读取;步骤8,MCU收到IAP和ISP命令,响应后更新IAP数据区和ISP数据区的数据更新写入,在自动加载过程中,读取MCU内相应的固件块原始数据,对嵌入式设备开始升级操作。

【技术特征摘要】
1.一种蓝牙OBD长时间数据保存实现方法,其特征在于,包括以下具体步骤:步骤1,初始化Cortex-M3主控MCU的SPI总线硬件;步骤2,挂载应用在蓝牙OBD上的存储芯片Flash,初始化Flash信息及Flash操作驱动;步骤3,初始化数据库管理系统,数据库管理系统针对Flash内部存储不同数据信息的保存要求进行功能区域划分,且功能区域包括静态存储区、动态存储区、预留备份区和指针区;步骤4,数据库管理系统进行分配Flash块区域的起始地址及各功能区域大小;步骤5,数据库管理系统对静态存储区数据进行更新,且静态存储区包括IAP数据区、ISP数据区及非持续读写的参数区;步骤6,数据库管理系统对动态存储区的动态数据进行更新存储,且动态存储区为多个持续更新的工况数据区;步骤7,数据库管理系统对参数区数据更新保存及读取,且数据库管理系统对工况数据区更新保存及读取;步骤8,MCU收到IAP和ISP命令,响应后更新IAP数据区和ISP数据区的数据更新写入,在自动加载过程中,读取MCU内相应的固件块原始数据,对嵌入式设备开始升级操作。2.根据权利要求1所述的蓝牙OBD长时间数据保存实现方法,其特征在于,所述步骤5包括步骤51和步骤52,所述步骤51为IAP数据区和ISP数据区的更新,且所述步骤52为参数区更新;所述步骤51具体为:步骤511,当IAP数据区和ISP数据区接收更新数据时,数据库管理系统通过API接口写入IAP数据区和ISP数据区;步骤512,数据库管理系统对IAP数据区和ISP数据区的数据进行校验;若校验不通过,则IAP数据区和ISP数据区的信息更新标志无效;若校验通过,则执行步骤513;步骤513,在IAP数据区和ISP数据区更新进程中,数据库管理系统操作API接口调用Flash写入驱动,刷新IAP数据区和ISP数据区,且更新升级标志。3.根据权利要求2所述的蓝牙OBD长时间数据保存实现方法,其特征在于,所述步骤52的具体步骤如下:步骤521,数据库管理系统通过API接口调用Flash写驱动,将待更新数据写入预留备份区;步骤522,写入完成后API接口调用Flash读驱动读取新参数信息;步骤523,检验更新数据的完整与正确;若数据校验通过,数据库管理系统对比预留备份区参数与旧参数区数据,如果有变动,则擦除参数区数据,数据库管理系统再从预留备份区读取新数据写入参数区;如果无变动,则不擦写参数区;若数据校验不通过,则返回,重新进行参数读写。4.根据权利要求1所述的蓝牙OBD长时间数据保存实现方法,其特征在于,所述步骤6的具体步骤如下:步骤61,数据库管理系统通过API接口调用Flash读驱动,工况数据区从指针区读取当前指针的位置;步骤62,当前指针的位置指向最后一次保存工况数据的写入节点;步...

【专利技术属性】
技术研发人员:罗建平黄胜艺元光七
申请(专利权)人:深圳市航天无线通信技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1