2019-12-23

串行是嵌入式过程中最常用的通信方式,除之前的I/O接口串行以外,还有I2C即串行总线。在嵌入式中,这种方式主要用于板级之间的硬件通信,即通信的成员基本都在板子内,而非作为工业总线。

同步半双工总线,

同步:有时钟线

半双工:能实现接收与发送,但同一时间内只能接收或发送。这种双引脚的方式,非常有利于节省资源。I2C通信过程中,并不是时钟线的某一点对应采样,今天主要就是介绍通信过程中的情况。

I2C在通信过程中主要是一主多从形式,也存在多主多从。

当两根总线都处于高电平,则通信的设备都处于空闲状态。所以两个通信总线都有上拉电阻,保证上电之初所有设备处于空闲状态。

I2C在嵌入式开发过程中非常常用,温湿度传感器、触摸屏等都可以挂在同一总线

传输协议:

起始:SCL高电平,SDA下降沿,

校验:

引入概念:握手

应答与非应答方式,

应答:主设备在I2C通信过程中占统治地位,所以可以使主设备发送数据,从设备应答,每发送完一帧都要进入空闲状态,即“主动释放”,以便进行应答,而非应答方式的通信则不需要拉低信号线。

非应答:从设备在硬件有问题或者不在线时,会产生非应答信号,从而主设备可以停止发送信号,另外,从向主发期间,主设备可以主动产生非应答信号,从而结束本次通信。

结束:SCL高电平,SDA上升沿



通信过程:

1.主设备产生下降沿,开始通信;

2.寻找通信目标的通信从设备:发送7位的从设备地址,加一位数据的传输方向(最低位0代表主向从发,1代表从向主发),

3.校验

4.结束信号




通信过程中,在时钟线的低电平进行数据线的电平变换,以避免通信期间出现结束信号,时钟线高电平期间锁存。




串行通信过程中,有两种数据构成:

LSB:低位在前

MSB:高位在前

I2C是采用高位在前的方式构成数据,所以发送数据时要从高位开始发送。即每一个数据的读取要与0x80然后向左移位

设备号(设备地址):

设备内地址:给出首地址或者从默认0地址开始存储后,每一个数据储存之后都会进行指针自走。



存储设备E2PROM/EEPROM:

存储分支:

刚有计算机模型时,尚未有集成电路,使用纸带进行存储,纸带打孔之后不能再改,称为只读存储器,即ROM

PROM可改的

EPROM可擦写的,开窗单片机,用光特性进行擦除

E2PROM可擦写,利用电特性进行擦写,例如一卡通里面的卡芯片都是使用E2PROM存储量小,造价高

ROM系列的存储皆是掉电不丢失,

随着半导体器件出现,有了可以改写的RAM随机性存储设备(读、写)

SRAM:静态随机性存储器,其实就是半导体硬件,写入数据后只要还上电,就一直不变,造价高

DRAM:动态随机性存储器,以电容的方式存储数据位,不能一直保持有效,需要定时刷新,即充电

SDRAM

DDR:最新的,目前台式机常用的内存

RAM存储掉电丢失,所以一般制作内存。



以上统称NORflash



块设备,都会有坏块和物理磨损,存储设备一般称为块设备,擦除过程以块为单位进行操作。



此外,还有NANflash,有坏块管理,稍微复杂一些。



端序:

多字节的数据类型存在端序概念,比如int型,32位存储,类似于高位在前和低位在前,不过是把字节之间进行排序,高位在低地址,叫做大端序,高位在高地址,叫做小端序,即看起来跟通常情况下相似,即为大端序。

端序问题一般在跨平台时产生,比如ARM一般是小端序,Interl一般大端序。



我们的机器上,片内有一个flash和一个SRAM

片外有一个SPIflash、一个SDRAM

底板上还有一个E2PROM








写:

起始

+控制字节(7位设备号+1位传输方向0)+应答(1位)

+从设备内地址(8位)+应答

+数据(8位)+应答(1位)

+数据+应答

结束信号


读:

起始

+控制字节(7位设备号+1位传输方向0)+应答(1位)

+从设备内地址(8位)+应答

(对同一个设备调整方向时,此时可以省略结束位)

+起始位

+控制字节(7位设备号+1位传输方向1)+应答

+从设备发送数据(8位)+主设备应答

+从设备发送数据+主设备应答

+主设备发送非应答信号

+结束信号





利用I2C实现芯片和E2PROM通信,

所需资源:

1.     设备号:1010000即0x50,所以握手时发送的是10100000即0xA0,若接收则发送0xA1

2.     怎么读:

3.      怎么写:

管脚:I2C1

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容

  • I^2C :内部集成总线(板级之间的内部相互通信) 同步半双工总线 只能在同一时间接收/发送(两条线节省硬件资源)...
    姜帆_e5bb阅读 115评论 0 0
  • 1.IIC(内部集成电路总线) 串行总线 板级之间硬件相互通信 是一种同步半双工总线 有一条时钟线(SDK);S...
    吴海燕_Jill阅读 149评论 0 0
  • I2C为内部集成总线(同步半双工,有时钟线,一个时间段内只能单向的接收或者发送) 双工两线上接两个上拉电阻(使两条...
    轻哨微风阅读 141评论 0 0
  • 2019-12-23 今天学习 I^2C :内部集成总线,用于板级之间的串行通信,同步半双工总线 传输协议: 起...
    13e6982014e1阅读 249评论 0 0
  • 总线 计算机的各个功能部件通过总线连接在一起构成完整的计算机系统,总线是多个系统功能部件之间进行数据传送的公共通路...
    罗蓁蓁阅读 4,756评论 0 10