首页 > 办事核心 > 澳门新濠天地讲堂 >

51单片机分析进修系统之 IIC总线进修篇

2016-10-11 13:44
分享到:
        大师好,经由以前的进修,咱们曾经对51单片机分析进修系统的使用方式及进修编制有所领会与熟悉,学会了使用无线遥控模块的根底学问,体味到了分析进修系统的易用性与易学性,这一期咱们将一路进修IIC总线的基来历根底理与使用实例。

        先看一下咱们将要使用的51单片机分析进修系统能完成哪些测验考试与产物斥地工作:别离有流水灯,数码管显示,液晶显示,按键开关,蜂鸣器吹打,继电器节制,IIC总线,SPI总线,PS/2测验考试,AD模数转换,光耦测验考试,串口通信,红外线遥控,无线遥控,温度传感,步进电机节制等等。

study board图1 51单片机分析进修系统

    上图是咱们将要使用的51单片机分析进修系统硬件平台,如图1所示,本期测验考试咱们用到了分析系统主机、板载的AT24C02芯片,分析系统其它功能模块道理与使用详见前几期《电子制造》杂志及后期连载教程引见。

    在良多电子设备中都有要随时存取数据作为汗青记实或标记位。今朝常用的存储器有24CXX系列和93CXX系列,前者是I2C总线布局,后者是SPI总线布局,本末节先引见I2C布局的EEPROM(24CXX)传染感动方式,在后面末节中再引见SPI布局的EEPROM(93CXX)使用方式。

I2C总线根底概念

    I2C总线,是INTERINTEGRATEDCIRCUITBUS的缩写,即“内部集成电路总线”。I2C总线是Philips公司推出的一种双向二线制总线。今朝Philips公司和其它集成电路制造商推出了良多基于I2C总线的外围器件。I2C总线包罗一条数据线(SDA)和一条时钟线(SCL)。和谈答应总线接入多个器件,并支撑多主工作。总线中的器件既能够作为主控器也能够作为被控器,既能够是发送器也能够是领受器。总线按照必然的通信和谈进行数据互换。在每次数据互换起头,作为主控器的器件需要经由总线互助获得主控权,并启动一次数据互换。系统中各个器件都具有独一的地址,各器件之间经由寻址确定命据领受方。

I2C总线的系统布局

    一个典型的I2C总线尺度的IC器件,其内部不只有I2C接口电路,又一次可将内部各单元电路划分成若干相对独立的模块,它只需二根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。CPU能够经由指令对各功能模块进行节制。。各类被节制电路均并联在这条总线上,但就像德律机一样只需拨通各自的号码才能工作,所以每个电路和模块都有独一的地址,在消息的传输过程中,I 2 C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或领受器)。CPU发出的节制信号分为地址码和节制量(数据)两部门,地址码用来选址,即接通需要节制的电路,确定节制的品种;节制量决定该调整的类别及需要调整的量。多么,各节制电路虽扔忠淮我在统一条总线上,却相互独立,互不相关。I2C总线接口电路如下图2所示。

sch

图2 I2C总线接口电路图

    I2C总线的器件分为主器件和从器件。主器件的功能是启动在总线上传送数据,并发生时钟脉冲,以答应与被寻址的器件进行数据传送。被寻址的器件,称为从器件。一般来讲,任何器件均能够成为从器件,只需微节制器才能称为主器件。主、从器件对偶出现,工作在领受仍是发送数据编制,由器件的功能和数据传送标的目的所决定。

    I2C总线答应连接多个微节制器,明显不能同时具有两个主器件,先节制总线的器件成为主器件,这便是总线互助。在互助过程中数据不会被粉碎、丢失。数据只能在主、从器件中传送,结束后,主、从器件将释放总线,退出主、从器件角色。

I2C总线接口特征

    保守的单片机串行接口的发送和领受一般都别离各用一条线,如MCS-51系列的TXD和RXD,而I2C总线则按照器件的功能经由软件法式使其工作于发送或领受编制。当某个器件向总线上发送消息时,它便是发送器(也叫主器件),而当其从总线上领受消息时,又成为领受器(也叫从器件)。主器件用于启动总线上传送数据并发生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件。I2C总线的节制完全由挂在总线上的主器件送出的地址和数据决定,在总线上,既没有核心计表情也没有优先级。

    总线上主和从(即发送和领受)的干系取决于此时数据传送的标的目的。SDA 和SCL 都是双向线路,都经由一个电流源或上拉电阻连接到电源端。连接总线器件的输出级必需是集电极或漏极开路,以具有线“与”功能,当总线空闲时,两根线都是高电平。I2C总线上数据的传输速度在尺度模式下可达100kbit/s 在快速模式下可达400kbit/s 在高速模式下可达3.4Mbit/s 连接到总线的接口数量只由总线电容是400pF 的限制决定。

I2C总线器件工作道理及时序

I2C总线的时钟信号

    在I2C总线上传送消息时的时钟同步信号是由挂接在SCL时钟线上的所有器件的逻辑“与”完成的。SCL线上由高电平到低电平的跳变将影响到这些器件,一旦某个器件的时钟信号变为低电平,将使SCL线上所有器件起头并庇护低电平期。此时,低电平周期短的器件的时钟由低至高的跳变并不影响SCL线的情况,这些器件将进入高电平等待的情况。

    当所有器件的时钟信号都变为高电日常普通,低电平期结束,SCL线被释放前去高电平,即所有的器件都同时起头它们的高电平期。其后,第一个结束高电平期的器件又将SCL线拉成低电平。多么就在SCL线上发生一个同步时钟。可见,时钟低电日常普通间由时钟低电平期最长的器件决定,而时钟高电日常普通间由时钟高电平期最短的器件决定。

I2C总线的传输和谈与数据传送

起始和遏制前提

在数据传送过程中,必需确认数据传送的起头和结束。在I2C总线技术规范中,起头和结束信号(也称启动和遏制信号)的定义如图3所示。

起头信号:当时钟总线SCL为高电日常普通,数据线SDA由高电平向低电平跳变,起头传送数据。

结束信号:当SCL线为高电日常普通,SDA线从低电平向高电平跳变,结束传送数据。

起头和结束信号都是由主器件发生。在起头信号当前,总线即被认为处于忙情况,其它器件不能再发生起头信号。主器件在结束信号以撤离撤离出主器件角色,颠末一段时间过,总线被认为是空闲的。

 

sch

图3超始和遏制信号图

数据格局

    I2C总线数据传送采用时钟脉冲逐位串行传送编制,在SCL的低电平期间,SDA线上高、低电平能变化,在高电平期间,SDA上数据必需庇护不变,以便领受器采样领受,时序如图4所示。

sch

图4 数据传送时序图

    I2C总线发送器送到SDA线上的每个字节必需为8位长,传送时高位在前,低位在后。与之对应,主器件在SCL线上发生8个脉冲;第9个脉冲低电平期间,发送器释放SDA线,领受器把SDA线拉低,以给出一个领受确认位;第9个脉冲高电平期间,发送器收到这个确认位然后起头下一字节的传送,下一个字节的第一个脉冲低电平期间领受器释放SDA。每个字节需要9个脉冲,每次传送的字节数是不受限制的。

    I2C总线的数据传送格局是在I2C总线起头信号后,送出的第一字节数据是用来选择从器件地址的,此中前7位为地址码,第8位为标的目的位(R/W)。标的目的位为“0”暗示发送,即主器件把消息写到所选择的从器件中;标的目的位为“1”暗示主器件将从从器件读消息。格局如下:

1

0

1

0

A2

A1

A0

R/W

注:前四斡忠淮翁定为1010。

    起头信号后,系统中的各个器件将本人的地址和主器件送到总线上的地址进行比力,若是与主器件发送到总线上的地址分歧,则该器件即被主器件寻址的器件,其领受消息仍是发送消息则由第8位(R/W)决定。发送完第一个字节后复兴头发数据信号。

响应

    数据传输必需带响应。相关的响应时钟脉冲由主机发生,当主器件发送完一字节的数据后,接着发出对应于SCL线上的一个时钟(ACK)承认位,此时钟内主器件释放SDA线,一字节传送结束,而从器件的响应信号将SDA线拉成低电平,使SDA在该时钟的高电平期间为不变的低电平。从器件的响应信号结束后,SDA线前去高电平,进入下一个传送周期。

    凡是被寻址的领受器在领遭到的每个字节后必需发生一个响应。当从机不能响应从机地址时,从机必需使数据线保持高电平,主机然后发生一个遏制前提终止传输或者发生反复起始前提起头新的传输。若是从机领受器响应了从机地址可是在传输了一段时间后不能领受更大都据字节,主机必需再一次终止传输。这个环境用从机在第一个字节后没有发生响应来暗示。从机使数据线保持高电平主机发生一个遏制或反复起始前提。完整的数据传送过程如图5所示。

sch

图5 完整的数据传送过程

    I2C总线又一次具有广播呼叫地址用于寻址总线上所有器件的功能。若一个器件不需要广播呼叫寻址中所供给的任何数据,则能够忽咯该地址不作响应。若是该器件需要广播呼叫寻址中按需供给的数据,则应对地址作出响应,其暗示为一个领受器。

24C系列存储器的软硬件设想实例

    IIC总线常用的芯片有24C01、24C02、24C04、24C08等,下面以今朝在单片机系统中常用的带I2C接口的EEPROM芯片AT24C02为例,引见I2C器件的根底使用,不合型号的24C芯片,只是容量大小不合,读写编制与基来历根底理几乎一样。

AT24C02简介

    AT24C02是美国ATMEL公司的低功耗CMOS串行EEPROM,它是内含256×8位存储空间,具有工作电压宽(2.5~5.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)等特点。AT24C02中带有片内寻址寄放器。每写入或读出一个数据字节后,该地址寄放器主动加1,以完成对下一个存储单元的操作。所有字节都以单一操作编制读取。为降低总的写入时间,一次操作可写入多达8字节的数据。图6为AT24C系列芯片的封装图。各引脚功能如下:

24c02

图6 24C系列芯片封装图

SCL:串行时钟。在该引脚的上升沿时,系统将数据输入到每个EEPROM器件,鄙人降沿时输出。

SDA:串行数据。该引脚为开漏极驱动,可双向传送数据。

A0、A1、A2:器件/页面寻址。为器件地址输入端。

WP:硬件写庇护。当该引脚为高电日常普通禁止写入,当为低电日常普通可一般读写数据。

VCC:电源。一般输入+5V电压。

VSS:接地。

法式功能

    本例的法式功能是把持单片机与24C02进行I2C通信,完成对某一地址内数据的读写校验操作。

    本法式先对地址0x01和0x02地址内写入数据0x55和0xAA,然后读此中一个地址内的数据,并在数码管上显示验证。本法式默认是读取0x02地址内的数据,读者也能够改变地址来读取其它空间内的数据。本测验考试进行前要先将测验考试板上功能选择开关调到24C**位置上,如图7所示,法式施行成果如图8所示。

 

study board图7

study board

图8 24C02测验考试演示图

硬件道理图

 

sch

图9 硬件道理图

法式流程图

 

sch

图10 法式流程图

    相信看到这里,你该当能够理解咱们是若何把持单片机来进行IIC总线的读写操作了,你也能够按照本人的需要来写芯片读写、存储的相关法式。由于篇幅有限,读者伴侣能够经由网站或电子@一下一路交换与进修。鄙人几期中,咱们将连续引见51单片机分析进修系统的其它功能道理与使用。