浅谈物联网嵌入式系统的常用的外部存储器【拜托了,物联网!】

举报
o0龙龙0o 发表于 2021/09/27 20:51:36 2021/09/27
【摘要】 IoT 常用的物联网芯片一般内存都比较有限,那如何存储经常因为断网需要存储的数据的的呢,这时候就需要外部存储了。

0、前沿

IoT 常用的物联网芯片一般内存都比较有限,那如何存储经常因为断网需要存储的数据的的呢,这时候就需要外部存储了。

1、外部存储器

常见MCU的存储器可以分为RAM—存储需要计算的数据和程序,ROM芯片内部用于保存的启动程序或整个程序代码,FLASH芯片的内置外部存储器;今天这里要说的是另一个常用来的操作的外部存储器——EEPROM

EEPROM和FLASH有什么分别呢


FLASH EEPROM
写单位 byte byte
擦单位

byte

寿命 1万次 100万次以上
常见大小 大于10MB 小于512KB
写入时间
成本

因为两者之间的差别,所以大多数时候我们经常需要外挂EERPOM来暂存数据,不用经常写的代码保存在FLASH中 

2、常见EERPOM芯片

单独的 EEPROM 组件,其通信口通常可分为串行(serial)与并行(parallel)两类。除电源线外,串行通信口只使用1~4只接线来传递信号,所需接脚较并行式少,通常用来存储资料。运行用的程序则通常放在并行式的 EEPROM 中,以利访问。

1️⃣Microwire 通信口(4线):型号为以 93 开头的系列。例:93C46
2️⃣I2C 通信口(2线):型号为以 24 开头的系列。例:24LC02
3️⃣SPI 通信口(3线):型号为以 25 开头的系列。例:25LC08
4️⃣UNI/O通信口(1线):由 Microchip 公司出品,型号为以 11 开头的系列。
5️⃣1-Wire 通信口(1线):由 Dallas / Maxim 公司出品

这里面最常用的就是I2C总线的24系列芯片 。

3、IIC总线

I²C(Inter-Integrated Circuit)字面上的意思是集成电路之间,它其实是I²C Bus简称,所以中文应该叫集成电路总线。I²C的正确读法为“I平方C”("I-squared-C"),而“I二C”("I-two-C")则是另一种错误但被广泛使用的读法。

其物理拓扑如下图:

I²C只使用两条双向漏极开路(Open Drain)线,其中一条线为传输数据的串行资料线(SDA),另一条线是启动或停止传输以及发送时钟序列的串行时脉(SCL)线,这两条线上都有上拉电阻。I²C允许相当大的工作电压范围,但典型的电压准位为+3.3V或+5v。

软件实现:

一开始,主节点处于主节点发送模式,发送起始位(START),跟着发送希望与之通信的从节点的7bit位地址,最后再发送一个bit读写位,该数据位表示主节点想要与从节点进行读(1)还是写(0)操作。
如果从节点在总线上,它将以ACK字符比特位应答(低有效)该地址。主节点收到应答后,根据它发送的读写位,处于发送模式或者接收模式,从节点则处于对应的相反模式(接收或发送)。

4、LiteOS 使用EERPOM

LiteOS官方没有iic的通用驱动,一般是调用bsp的驱动去完成。如使用STM32,就可以直接代用HAL 的IIC驱动进行EERPOM的读写。启动LiteOS在Driver层实现EERPM-I2C的通用驱动在,这样换芯片就更容易移植了。


【拜托了,物联网!】有奖征文火热进行中:https://bbs.huaweicloud.com/blogs/296704

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。