完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近在做一个单片机系统,系统根据外部条件触发故障,然后将故障发生时的时间和故障类型保存在EEPROM中,上位机端可以通过命令读取历史的故障信息,关于存储信息有没有好的方法,以前没有做过关于这方面,在网上搜也没有搜到,目前一点头绪都没有,求大神给个思路!!
|
|
相关推荐
15个回答
|
|
感觉打开了新思路
|
|
|
|
讨论下,思路大概是:
1、程序正常运行-外部触发-启动故障信息记录-操作E2PROM-将信息写入E2PROM; 上位机读取的顺序是:发送一个指令给单片机,告诉它我要读故障信息;单片机收到后,读取E2PROM,读取故障信息,再通过通信接口给上位机。 楼主没头绪,可以一步步来。 1、E2PROM的驱动做好了吗,能正常读写E2PROM吗,这是首先要实现的。 2、E2PROM搞定了,处理故障触发。外部什么条件输入,会触发故障,建议用标志位来做,在循环中查询这个标志位,一旦置位,就去写故障信息。 3、上位机与单片机的通信接口定了吗?是RS232/485/USB/RJ45/无线?选择一种通信接口,然后就是搞定这个通信接口的驱动,对上位机能正常收发数据。 4、制定通信协议。上位机发什么指令给单片机,单片机会认为这是要读故障信息呢;再具体点,故障信息很多条,上位机发送什么指令表明是读哪一条故障信息;单片机每发一次故障信息,上位机是否要进行确认反馈,以提高可靠性。这就是所谓的通信协议,也要先制定好。 做完以上,大概就能出来了。 |
|
|
|
hello_mcu 发表于 2017-8-16 06:44 目前EEPROM驱动OK、通信接口OK、通信协议OK。 主要是存储的结构,还有存储的方式,故障信息存储形式故障码+时间,当上位机接入后,通过上位机的读取命令可以读到EEPROM中存储的最近100条数据,因为EEPROM毕竟容量小,如果一直存会很快就满了,所以只存最近的100条。 但是这样就会有个问题,存储的时候,使用固定大小的EEPROM空间该怎样实现一个先进先出的结构,还是说在系统上电的时候做一个数据结构存储故障信息,在系统下电的时候,将这个结构直接存入EEPROM,在下次上电时在读取出来。 目前我的两种思路(不知道是不是正确): 1.在出现故障时,将标志位置位,存贮时间+故障码,记录存储单元的首地址和结束地址,通过地址确定存入数据条数,如果超出就将下条数据存入首地址,类似一个循环队列 2.在系统中做这样一个结构,在系统上电运行中存储,下电写入EEPROM,上电是读出 不知道对不对,水平有点渣,还望多多指正,谢谢 还有就是有没有一些常用的存储和读取历史数据的方法或结构,推荐参考下 |
|
|
|
10.01 发表于 2017-8-16 09:43 恩,后来我回复完了,也觉得不在于驱动、通信了,应该就是存储结构和数据结构的设计问题。 存储结构都是按照实际应用来设计的。 1、我感觉第一条思路好。就是存时间+故障代码。每个故障代码对应的故障详情可以在上位机中查询。E2PROM只能保存100条,那每到90条或者95条,可以由单片机设备主动上送一条命令,请求上位机读取故障信息。全部读完后,全部清掉,接着写后续的故障信息。 或者就每天都主动读一回故障信息,也不用考虑结束地址、第多少条了,这样更简单点。 这是我的理解,因为不知道楼主是不是单片机设备具体什么功能,所以根据感觉讨论下。 |
|
|
|
儿科的知识了哦,
|
|
|
|
i2c的接口eeprom吗?
|
|
|
|
实时存储即可啊,
|
|
|
|
没有那么复杂的啊,
|
|
|
|
|
|
|
|
循环存储啊,很简单的
|
|
|
|
搞几个记录序号的变量即可
|
|
|
|
简单到不能再简单了
|
|
|
|
侬说是不是这样啊
|
|
|
|
兄弟,加油啊,自己好好搞
|
|
|
|
多总结,多分析即可,
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
7 浏览 0 评论
26 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
13 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
644 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1000 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11770 浏览 31 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 10:15 , Processed in 0.868769 second(s), Total 70, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号