嵌入式笔记:单片机篇

文章目录


此为准备嵌入式系统考试的口水笔记

硬件结构

硬件组成

AT89S51具有以下功能部件和特性
  1. 8位微处理器(CPU)
  2. 数据存储器(128BRAM)
  3. 程序存储器(4KB Flash ROM)
  4. 4个8位可编程并行I/O口
  5. 1个全双工异步串行口
  6. 2个可编程的16位定时器/计数器
  7. 1个看门狗定时器
  8. 中断系统具有5个中断源、5个中断向量
  9. 特殊功能寄存器(SFR)26个
  10. 低功耗节电模式有空闲模式和掉电模式,且具有掉电模式下的中断恢复模式
  11. 3个程序加密锁定位
与AT89C51相比,AT89S51有更突出的优点
  1. ISP(In System Program);
  2. 增加1个数据指针;
  3. 增加看门狗定时器;
  4. 增加断电标志;
  5. 增加掉电状态下的中断恢复模式。

引脚功能

排列方式

image-20201222084811560

分类

电源引脚:Vcc、Vss

(1)VCC(40脚):+5V电源。

(2)VSS(20脚):数字地。

时钟引脚:XTAL1、XTAL2。

(1)XTAL1(19脚):片内振荡器反相放大器和时钟发生器电路输入端。用片内振荡器时,该脚接外部石英晶体和微调电容。外接时钟源时,该脚接外部时钟振荡器的信号

(2)XTAL2(18脚):片内振荡器反相放大器的输出端。当使用片内振荡器,该脚连接外部石英晶体和微调电容。当使用外部时钟源时,本脚悬空

控制引脚:PSEN、ALE/PROG、EA/VPP、RST(RESET)

EA/VPP:控制访问程序存储器,EA=1先读取片内,EA=0只读取片外;VPP是第二功能,当对片内Flash进行编程是,VPP接入编程电压

ALE/PROG:地址锁存信号,将低8位地址锁存在片外的地址锁存器中,单片机正常运行时,ALE端一直有正脉冲信号输出,此频率为时钟振荡器频率fosc的1/6

PSEN:片外程序存储器的读选通信号,低电平有效

I/O口引脚:P0、P1、P2、P3,为4个8位I/O

这些I/O都可作为通用I/O口使用,输入时应先向端口输出锁存器写1

(1)P0口:8位,漏极开路的双向I/O口,低8位地址及数据总线

(2)P1口:8位,准双向I/O口,具有内部上拉电阻。

(3)P2口:8位,准双向I/O口,具有内部上拉电阻,高8位地址总线:输出高8位地址

(4)P3口:8位,准双向I/O口,具有内部上拉电阻(有第二功能)

P3口第二功能如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4C7r8RRl-1608701538054)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201222085621775.png)]

CPU

运算器
算术逻辑运算单元ALU

逻辑运算**:**与、或、异或、循环、求补及清零

算术运算:加、减、乘、除

位操作:如置“1”、清“0”、求补、测试转移、逻辑“与”、“或”等

累加器A

使用最频繁的寄存器,作用如下:

(1)ALU输入数据源之一,又是ALU运算结果存放单元。

(2)数据传送大多都通过累加器A,相当于数据的中转站。为解决“瓶颈堵塞”问题,AT89S51增加了一部分可以不经过累加器的传送指令。

程序状态字寄存器PSW
控制器

包括程序计数器(PC)、指令寄存器、指令译码器、定时及控制逻辑电路等

PC的基本工作方式有以下几种:

(1)CPU读指令时,PC的内容作为所取指令的地址,程序存储器按此地址输出指令字节,同时PC自动加1

(2)执行有条件转移或无条件转移指令时,程序计数器将被置入新的数值,从而使程序的流向发生变化。

(3)在执行子程序调用或中断调用,完成下列操作:

①保护PC的现行值(现场保护)

②将子程序入口地址或中断向量的地址送入PC

存储器

存储器的结构特点之一是将程序存储器和数据存储器分开(哈佛结构),并有各自的访问指令。

程序存储器:CPU运行时不能修改,断电后信息不变,用来存放程序和常数。

数据存储器:CPU运行时可以随时进行数据的写入和读出,掉电丢失。用来存放暂时性的输入/输出数据、运算的中间结果或者作为堆栈。

程序存储器

靠EA的电平来判断是读片外还是片内(EA=0只读片外)

特殊单元

image-20201222092531299

数据存储器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c2chFk3G-1608701538057)(https://gitee.com/jiang_liyong/cloudimage/raw/master/img/image-20201222092806268.png)]

工作区寄存器的选用由PSW的01决定,如下:

RS1RS0工作寄存器组
000组
011组
102组
113组
特殊功能寄存器(SFR)
堆栈指针SP

指示堆栈顶部在内部RAM块中的位置,堆栈是为子程序调用和中断操作而设,主要用来保护断点和现场

寄存器B

乘法,两乘数分别在A、B中,执行乘法指令后,乘积在BA中

除法,被除数取自A,除数取自B,商存放在A中,余数存B中。

AUXR寄存器、AUXR1寄存器

辅助寄存器

数据指针DPTR0和DPTR1

AUXR1的DPS位用于选择两个数据指针。当DPS=0时,选用DPTR0;当DPS=1时,选用DPTR1。

数据指针可作为一个16位寄存器来用,也可作为两个独立的8位寄存器DP0H(或DP1H)和DP0L(或DP1L)来用。

看门狗定时器WDT

14位计数器和看门狗定时器复位寄存器(WDTRST)。防止程序跑飞

并行I/O口

51单片机总共有P0、P1、P2、P3四个8位双向输入输出端口,每个端口都有锁存器、输出驱动器和输入缓冲器。

4个I/O端口都能作输入输出口用,其中P0和P2通常用于对外部存储器的访问。

驱动LED灯的时候需要用低电平驱动

时钟电路和时序

时钟频率直接影响单片机的速度,但是太快了存储器的速度跟不上,需要合理地选择。

内部时钟

内部有一个构成振荡器的高增益反向放大器,输入为XTAL1,输出为XTAL2。

image-20201222093744910

外部时钟

利于多片AT89S51的同步,一般为低于12MHz的方波

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5v3c1wO6-1608701538059)(https://gitee.com/jiang_liyong/cloudimage/raw/master/img/image-20201222093910905.png)]

时钟周期、机器周期和指令周期

各种指令时序与时钟周期相关。

1.时钟周期

若晶振频率为fosc,则时钟周期Tosc=1/fosc。如fosc=6MHz,Tosc=166.7ns。

2.机器周期

12个时钟周期为1个机器周期。

3.指令周期

和具体的指令有关,一般是机器周期的整数倍。

复位操作和复位电路

概念

将单片机系统置成特定初始状态的操作。复位后程序从头(0000H)开始重新执行

何时复位

•刚通电时——上电复位,进入初始状态

•重新启动时——回到初始状态、重新开始

•程序故障时——回到初始状态、重新开始

操作

复位脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就使AT89S51复位。

上电自动复位

上电自动复位是给电容C 充电加给RST引脚一个短的高电平信号,此信号随着VCC对电容C 的充电过程而逐渐回落,即RST引脚上的高电平持续时间取决于电容C 充电时间。为保证系统可靠复位,RST引脚上的高电平必须维持足够长的时间。

image-20201222094550951

按键复位

image-20201222094559439

专用的复位芯片MAX810复位

image-20201222094620966

指令系统

概述

分类

51系列单片机指令集含有111条指令

  1. 按指令所占字节数分类:单字节(49条);双字节(46条);3字节(16条)
  2. 按指令执行时间分类:单周期(64条);双周期(45条);4周期(2条)
  3. 按指令的功能分类:数据传送类(29条);算术运算类(24条);逻辑运算及移位类(24);控制转移类(17条);位操作类(17条)
格式

LOOP: MOV A,R0;将R0的内容送A

[标号:]操作码 [目的操作数] [,源操作数] [;注释]

方括符[ ]表示可选项

标号代表指令所在地址,1-8个字母/数字,“:”结尾

操作码就是指令功能助记符,指令实体

目的操作数

源操作数

注释,以 “ ; ” 开头

寻址方式

用何种方式寻找参与运算的操作数或操作数的真实地址。

立即寻址

指令直接给出一个操作数,它紧跟在操作码后,通常称它为立即数(8位或16位),需在操作数前面加上**‘#’**

例:

MOV A, #40H ;即将立即数40H送到A

直接寻址

指令直接给出操作数所在存储单元的地址,它紧跟在操作码后。

此方式是访问片内特殊功能寄存器(SFR)的唯一方式(80H ~ FFH),也可访问内部RAM的低128字节

例:

MOV A, 30H ; A ←(30H)

MOV 50H, 30H ;(50H)←((30H))

寄存器寻址

指令选定的寄存器内容就是实际操作数,寄存器可为:

R0~R7(由RS1、RS2两位的值选定工作寄存器区)

例:

MOV A, R0 ;A ←(R0)

寄存器间接寻址

操作数所指定的寄存器中存放的不是操作数本身,而是操作数的地址

例:

MOV A, @R0 ;A ← ((R0))

MOVX A, @DPTR ;A ← ((DPTR))

变址寻址

此种寻址方式以DPTR或PC作基址寄存器A作变址寄存器(存放8位无符号数),两者相加形成16位程序存储器地址作操作数地址。操作数地址=基地址+地址偏移量

例:

MOVC A, @A+DPTR

MOVC A, @A+PC

相对寻址

用于跳转指令。

PC为基地址,加上偏移量rel,所得结果为目标地址。

偏移量rel是一个8位有符号补码数,范围-128~+127。

所以转移范围应在当前PC指针的-128~+127之间某一程序存储器地址中。

位寻址

对位地址中的内容进行操作的寻址方式。可被寻址的位:

片内RAM的20H~2FH单元,位地址00H ~ 7FH;

SFR中12个能被8整除的字节地址,位地址80H以上。

例如:

MOV C,00H; 位地址00H的内容给C

SETB P1.0

指令系统介绍

太多了到时候遇到再查吧

汇编语言程序设计(待补)

概述

汇编语言

优点:效率高,占用存储空间小,运行速度快,能编写出最优化的程序

缺点:可读性差,离不开具体的硬件,是面向“硬件”的语言,通用性差

高级语言

不受具体“硬件”的限制

优点:通用性强,直观、易懂、易学,可读性好。

C语言程序设计(待补)

特点

中断

概念

中断是指由于某种随机事件的发生,处理器暂停现行程序的运行,转去执行另一程序,以处理发生的事件,处理完毕后又自动返回原来的程序继续运行。

引起中断的事件称为中断源

现行运行的程序称为主程序

随机事件的程序称为中断服务子程序

结构和控制

image-20201222112542087

中断源

每一个中断源都有相应的中断标志位(储存在TCON里面);

某一个中断源申请中断,相应中断标志位置1。

中断标志寄存器(TCON)

•IT0、IT1: 外部中断0、1触发方式选择位(1是请求中断);

•IE0、IE1:外部中断0、1请求标志位;

•TF0、TF1:定时器0、1溢出中断请求标志。

中断允许寄存器(IE)

EA是总开关,EA=0则所有的中断都禁止,其他的EX0、ET0、EX1、ET1、ES分别对应5个中断

中断优先级寄存器(IP)

外部中断0(INT0)>T0溢出中断>外部中断1(INT1)>T1溢出中断>串行口中断

最高响应原则:单片机同时接收到几个中断时,首先响应优先级别最高的中断请求;

低不断高原则:正在进行的中断过程不能被新的同级或低优先级的中断请求中断;

高级优先原则:正在进行的低优先级中断服务,能被高优先级请求所中断。

处理过程

image-20201222112504871

中断响应
满足条件(三个为1并且无同和高)

•中断源有中断请求

•此中断源的中断允许位为1

•单片机开中断(即EA=1)

•无同级或更高级中断正在被服务

中止情况

(1)单片机正在处理同级或更高优先级的中断。

(2)当前查询的机器周期不是所执行指令的最后一个机器周期。即在完成所执行指令完毕前,才能进行中断响应,从而保证指令在执行过程中不被打断。

(3)正在执行的指令是RET、RETI或是访问IE或IP寄存器的指令。只有在这些指令后面至少再执行一条指令时才能接受中断请求。

响应时间

•AT89S51单片机对外部中断请求的响应时间总是在3~8个机器周期之间

•外部中断的最短响应时间为3个机器周期。其中中断请求标志位查询占1个机器周期,而这个机器周期恰好处于指令的最后一个机器周期。在这个机器周期结束后,中断即被响应,CPU接着执行一条硬件子程序调用指令LCALL到中断服务程序入口,需要2个机器周期

•外部中断响应的最长时间为8个机器周期。在CPU进行中断标志查询时,刚好才开始执行RETI或访问IE或IP的指令,需执行完指令再继续执行一条指令后,才响应中断。

p.s. 如果还要判断中断子程序的处理时间就无法准确计时了。

中断处理

中断服务子程序一般包括两部分内容,一是保护和恢复现场,二是处理中断源的请求。

中断返回

中断返回是指中断服务完后,计算机返回到原来暂停的位置(即断点),继续执行原来的程序。

中断返回由专门的中断返回指令RETI来实现:把断点地址取出,送回到程序计数器PC中去。另外,它还通知中断系统已完成中断处理,将清除优先级状态触发器。

中断请求的撤销

单片机响应某中断请求后,在中断返回前,应该撤除该中断请求,否则将会引起另一次中断。

定时器0或1溢出:单片机在响应中断后,硬件清除了有关的中断请求标志TFO或TF1,即中断请求是自动撤除的

边沿触发的外部中断:单片机在响应中断后,也是由硬件自动清除有关的中断请求标志IE0或IE1。

低电平触发的外部中断:为防止单片机重复响应的问题,可以增加特殊的硬件电路清除。

串行口中断:单片机响应中断后,没有用硬件清除TI、RI,故这些中断不能自动撤除,而要靠软件来清除相应的标志。

外部中断源的系统设计

51只提供了两个外部中断,一般来说不够,需要拓展,除了IR0的优先级最高,其他中断的优先级取决于查询顺序

触发方式
低电平触发

在中断服务程序返回之前,外中断请求输入必须无效(即外部中断请求输入已由低电平变为高电平),否则会再次响应中断。本方式适合于外部中断以低电平输入且中断服务程序能清除外部中断请求源(即外中断输入电平又变为高电平)的情况。

下降沿触发

外部中断申请触发器能锁存外部中断输入线上的负跳变。即使不能响应,中断请求标志不丢失。相继连续两次采样,一个机器周期为高,下一个机器周期采样为低,则中断申请触发器置1,直到CPU响应此中断时,才清0。输入的负脉冲宽度至少保持12个时钟周期,才能被采样到。适合于以负脉冲形式输入的外部中断请求。

定时器与计数器

实现定时的方法

软件定时

软件延时不占用硬件资源,但占用了CPU时间,降低了CPU的利用率。例如延时程序。

采用时基电路定时

例如采用555电路,外接必要的元器件(电阻和电容),即可构成硬件定时电路。但在硬件连接好以后,定时值与定时范围不能由软件进行控制和修改,即不可编程,且定时时间容易漂移。

可编程定时器定时器

最方便的办法是利用单片机内部的定时器/计数器。完全靠硬件进行定时,不占用CPU时间。

结构和工作原理

定时器/计数器都是对脉冲信号进行计数
定时模式(定时器)—对单片机的时钟振荡信号经片内12分频的内部脉冲进行计数
计数模式(计数器)——对加在T0(P3.4)和T1(P3.5)两个引脚上的脉冲进行计数

控制

控制寄存器TCON

低四位是控制外部中断的,高四位用于控制定时器中断,如下:

TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。
TR1(TCON.6):T1起/停控制位。1:启动 0:停止
TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。
TR0(TCON.4):T0起/停控制位。1:启动 0:停止

工作方式寄存器(TMOD)字节地址89H

image-20201223104950862

GATE:门控位
GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时器/计数器工作;(即需要一个启动条件)
GATE=1时,要用软件使TR0或TR1为1,同时外部中断引脚也为高电平时,才能启动定时器/计数器工作,即需要两个启动条件。
C/T :定时/计数模式选择位
C/T =0为定时模式,对单片机的晶体振荡器12分频后的脉冲计数;
C/T =1为计数模式,对外部输入引脚T0(P3.4)或T1(P3.5)的外部脉冲进行计数。

工作方式

image-20201223105135891

方式0

方式0为13位计数,由TL0的低5位(高3位未用)和TH0的8位组成TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。

方式0采用13位计数是为了与早期的单片机兼容,计数初值的高8位和低5位的确定比较麻烦,所以在实际的应用中几乎不用这种方式。

方式1

方式1的计数位数是16位,由TL0(TL1)作为低8位、TH0(TH1)作为高8位,组成了16位加1计数器

方式0和方式1在计数溢出后,计数器需要人工重新装入计数器初值,这不仅影响定时精度,而且也给程序设计带来麻烦。方式2就是针对此问题而设置的。

方式2

在方式2下,当计数器计满255(FFH)溢出时,CPU自动把TH 的值装入TL中,TL从初值重新进行加1计数,周而复始,直到TR0=0才会停止。不需用户干预。因此特别适合于用作较精确的脉冲信号发生器。

方式3

方式3只适用于定时器/计数器T0,定时器T1方式3时相当于TR1=0,停止计数

串口

串行通信基础

串行与并行
串行

image-20201223124157202

并行

image-20201223124132542

理论上来说并行更快,但是现在时钟频率很高了,所以干扰会很大,并且成本比串行更高

异步和同步
异步

通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。

特点:不要求收发双方时钟严格一致,容易实现,但各帧之间有间隔,传输效率不高。

同步

通信的发送与接收设备使用发送方的时钟控制数据的发送和接收过程。

特点:有同步字符,帧间无间隔,设备传输效率较高,但实现的硬件设备比异步通信复杂。

通信传输方向
单工
半双工

对讲机,会有延迟

双工

打电话

通信速率与通信距离

波特率(Baud rate):每秒传送的位数

串行接口分类

串行接口通常分为两类:串行通信接口和串行扩展接口。

串行通信接口是指设备之间的互联接口,他们之间距离比较长,如PC机的COM口和USB口等。

串行扩展接口是指设备内部器件之间的互联接口,属于板级通信接口,常用的有SPI、I2C等

串行通信的接口标准

串行口的结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DTFPfT2h-1608701538066)(https://gitee.com/jiang_liyong/cloudimage/raw/master/img/image-20201223124232417.png)]

串行口的控制

串行控制寄存器SCON

image-20201223093600233

image-20201223093556470

电源控制寄存器PCON

image-20201223093606247

SMOD:波特率倍增位。
在串行接口方式1、方式2和方式3时:
当SMOD=1时,波特率提高一倍。

串行口的工作方式

方式0

方式0时,串行口可以实现串并转换,其波特率是固定的。

方式1

方式1可以实现双机间8位数据的异步通信,帧长度为10位。波特率是可调的。

方式2和3

方式2或方式3可以实现双机(或多机)间9位数据的异步通信,帧长度是11位。

方式2的波特率是固定的。方式3的波特率是可调的。

波特率计算

方式0的波特率 = fosc/12

方式2的波特率 =(2SMOD/64)· fosc

方式1的波特率 =(2SMOD/32)·(T1溢出率)

方式3的波特率 =(2SMOD/32)·(T1溢出率)

溢出率计算公式如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BfOCDNO6-1608701538068)(https://gitee.com/jiang_liyong/cloudimage/raw/master/img/image-20201223124258296.png)]

外部存储器扩展(待补)

串行扩展

种类及特点

(1)UART串行扩展接口(Universal Asynchronous Receiver/ Transmitter)

UART通用异步收发器。UART是用于控制计算机与串行设备的芯片,它提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。

UART接口是二线制,8051单片机的UART既能作通用异步接收和发送器,又能作同步移位寄存器。它可以实现8051单片机系统之间点对点的单机通信或多机通信,也可以实现扩展I/O口。

(2)I2C(Inter Integrated Circuit)串行扩展总线

I2C总线是Philip公司推出的芯片间串行传输总线。它用两根线实现了完善的同步数据传送,可以极为方便地构成多机系统和外围器件扩展系统。

I2C总线是二线制,采用器件地址的硬件设置方法,通过软件寻址完全避免了器件的片选线寻址方法,从而使硬件系统具有简单灵活的扩展方法。I2C总线简单,结构紧凑,易于实现模块化和标准化。

(3)SPI(Serial Peripheral Interface) 串行扩展接口

SPI总线是Motorola公司提出的一种同步串行外设接口。允许MCU与各种外围设备以同步串行方式进行通信。其外围设备种类繁多,从最简单的TTL移位寄存器到复杂的LCD显示驱动器、网络控制器等,可谓应有尽有。

SPI总线是三线制,可直接与多种标准外围器件直接接口,在SPI从设备较少而没有总线扩展能力的单片机系统中使用特别方便。

(4)Microware串行扩展接口

Microware总线是NS公司提出的串行同步双工通信接口,用于8位COP800系列单片机和16位HPC系列单片机。

Microware总线是三线制,由一根数据输出(SO)线、一根数据输入(SI)线和一根时钟(SK)线组成。

(5)单总线(1-wire)串行扩展总线

1-wire总线是Dallas公司研制开发的一种协议,用于便携式仪表和现场监控系统。

1-wire总线是利用一根线实现双向通信。每一个符合1-wire协议的从芯片都有一个唯一的地址,包括8位分类码、48位的序列号和8位CRC代码。主芯片对各个从芯片的寻找依据这64位的不同来进行。单总线节省I/O引脚资源、结构简单、成本低廉、便于总线扩展和维护。

(6)USB(Universal Serial BUS)串行扩展总线

​ USB总线是Compaq、Intel、Microsoft、NEC等公司联合制定的一种计算机串行通信协议。

​ USB比较于其他传统接口的一个优势是即插即用的实现,即插即用(Plug-and-Play)也称为热插拔(Hot Plugging)。数据传输速度快,扩展方便,使用USB Hub扩展,可以连接127个USB设备,连接的方式十分灵活

(7)CAN(Controller Area Network)串行扩展总线

​ CAN总线是德国Bosch公司最先提出的多主机局域网,是国际上应用最广泛的现场总线之一。最初,CAN被设计作为汽车环境中的微控制器通信,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。比如:发动机管理系统、变速箱控制器、仪表装备。

在由CAN 总线构成的单一网络中,理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制。CAN 可提供高达1Mbit/s的数据传输速率,这使实时控制变得非常容易。另外,硬件的错误检定特性也增强了CAN的抗电磁干扰能力。当信号传输距离达到10km时,CAN 仍可提供高达50Kbit/s的数据传输速率。

I²C总线基础

优点

总线仅由 2根信号线组成。
总线协议简单,协议容易实现。
支持的器件多:NXP 半导体最早提出I²C总线协议,目前包括半导体巨头德州仪器(TI) 、 美国国家半导体 (National Semi) 、 意法半导体 (ST) 、 美信半导体 (Maxim-IC)等都有大量器件带有I²C总线接口,这为应用工程师设计产品时选择合适的I²C器件提供了广阔的空间。

总线上可同时挂接多个器件:器件之间是靠不同的编址来区分的。
总线可裁减性好:可以随时新增或者删除器件。用软件可以很容易实现I²C总线的自检功能,能够及时发现总线上的变动 。
总线电气兼容性好:I²C总线规定器件之间以开漏 I/O 互联,这样,只要选取适当的上拉电阻就能轻易实现 3V/5V逻辑电平的兼容,而不需要额外的转换。
通信速率高:I²C总线标准传输速率为 100kbps(每秒 100k 位)。在快速模式下为400kbps。按照后来修订的版本,位速率可高达 3.4Mbps。
有一定的通信距离 :I²C总线通信距离有几米到十几米。通过降低传输速率等办法,通信距离可延长到数十米乃至数百米以上。

概念

发送器(Transmitter) :发送数据到总线的器件
接收器(Receiver) :从总线接收数据的器件
主机(Master) :初始化发送、产生时钟信号和终止发送的器件
从机(Slave) :被主机寻址的器件

传送速率

I²C总线的通信速率受主机控制,能快能慢。但是最高速率是有限制的, I²C总线上数据的传输速率在标准模式(Standard-mode)下为 100kbps(每秒 100k 位) ,在快速模式下为400kbps。按照后来修订的版本,位速率最高可达 3.4Mbps。

信号有效性

数据线 SDA 的电平状态必须在时钟线 SCL 处于高电平期间保持稳定不变。SDA 的电平状态只有在 SCL 处于低电平期间才允许改变。但是在I²C总线的起始和结束时例外。

开启与停止条件

起始条件:当 SCL 处于高电平期间时,SDA 从高电平向低电平跳变时产生起始条件。总线在起始条件产生后便处于忙的状态。起始条件常常简记为 S。 (通知总线上的各个设备,我开始使用了,请注意聆听)
停止条件:当 SCL 处于高电平期间时,SDA 从低电平向高电平跳变时产生停止条件。总线在停止条件产生后处于空闲状态。停止条件简记为 P

从机地址

I²C总线不需要额外的地址译码器和片选信号。多个具有I²C总线接口的器件都可以连接到同一条I²C总线上,它们之间通过器件地址来区分。必须保证同一条I²C总线上所有从机的地址都是唯一确定的。
一般从机地址由 7 位地址位和1位读写标志 R/W 组成,7位地址占据高 7 位,读写位在最后。读写位是 0,表示主机将要向从机写入数据;读写位是 1,则表示主机将要从从机读取数据

:发送数据到总线的器件
接收器(Receiver) :从总线接收数据的器件
主机(Master) :初始化发送、产生时钟信号和终止发送的器件
从机(Slave) :被主机寻址的器件

传送速率

I²C总线的通信速率受主机控制,能快能慢。但是最高速率是有限制的, I²C总线上数据的传输速率在标准模式(Standard-mode)下为 100kbps(每秒 100k 位) ,在快速模式下为400kbps。按照后来修订的版本,位速率最高可达 3.4Mbps。

信号有效性

数据线 SDA 的电平状态必须在时钟线 SCL 处于高电平期间保持稳定不变。SDA 的电平状态只有在 SCL 处于低电平期间才允许改变。但是在I²C总线的起始和结束时例外。

开启与停止条件

起始条件:当 SCL 处于高电平期间时,SDA 从高电平向低电平跳变时产生起始条件。总线在起始条件产生后便处于忙的状态。起始条件常常简记为 S。 (通知总线上的各个设备,我开始使用了,请注意聆听)
停止条件:当 SCL 处于高电平期间时,SDA 从低电平向高电平跳变时产生停止条件。总线在停止条件产生后处于空闲状态。停止条件简记为 P

从机地址

I²C总线不需要额外的地址译码器和片选信号。多个具有I²C总线接口的器件都可以连接到同一条I²C总线上,它们之间通过器件地址来区分。必须保证同一条I²C总线上所有从机的地址都是唯一确定的。
一般从机地址由 7 位地址位和1位读写标志 R/W 组成,7位地址占据高 7 位,读写位在最后。读写位是 0,表示主机将要向从机写入数据;读写位是 1,则表示主机将要从从机读取数据

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值