单片机原理及接口技术第10章-串行扩展技术课件

上传人:29 文档编号:241694552 上传时间:2024-07-16 格式:PPT 页数:72 大小:1.12MB
返回 下载 相关 举报
单片机原理及接口技术第10章-串行扩展技术课件_第1页
第1页 / 共72页
单片机原理及接口技术第10章-串行扩展技术课件_第2页
第2页 / 共72页
单片机原理及接口技术第10章-串行扩展技术课件_第3页
第3页 / 共72页
点击查看更多>>
资源描述
第第1010章章 单片机系统的串行单片机系统的串行 扩展技术扩展技术1第10章 单片机系统的串行 内容概要内容概要 单片机系统除并行扩展外,串行扩展技术也已得到广泛应用。与并行单片机系统除并行扩展外,串行扩展技术也已得到广泛应用。与并行扩展相比,串行接口器件与单片机相连需要的扩展相比,串行接口器件与单片机相连需要的I/O口线很少(仅需口线很少(仅需14条),条),极大地简化了器件间的连接,进而提高了可靠性;串行接口器件体积小,极大地简化了器件间的连接,进而提高了可靠性;串行接口器件体积小,占用电路板的空间小,减少了电路板空间和成本。占用电路板的空间小,减少了电路板空间和成本。常见的串行扩展总线接口有单总线(常见的串行扩展总线接口有单总线(1-Wire)、)、SPI串行外设接口以串行外设接口以及及I2C(Inter Interface Circuit)串行总线接口,本章介绍这几种串行扩展)串行总线接口,本章介绍这几种串行扩展接口总线的工作原理及特点以及如何进行系统串行扩展的典型设计。接口总线的工作原理及特点以及如何进行系统串行扩展的典型设计。2内容概要210.1 10.1 单总线串行扩展单总线串行扩展 单单总总线线也也称称1-Wire bus,由由美美国国DALLAS公公司司推推出出的的外外围围串串行行扩扩展展总总线线。它它只只有有一一条条数数据据输输入入/输输出出线线DQ,总总线线上上的的所所有有器器件件都都挂挂在在DQ上上,电电源源也也通通过过这这条条信信号号线线供供给给,这这种种只只使使用用一一条条信信号号线线的的串串行行扩扩展展技技术术,称称为为单单总总线线技术。技术。单单总总线线系系统统中中配配置置的的各各种种器器件件,由由DALLAS公公司司提提供供的的专专用用芯芯片片实实现现。每每个个芯芯片片都都有有64位位ROM,厂厂家家对对每每一一芯芯片片都都用用激激光光烧烧写写编编码码,其其中中存存有有16位位十十进进制制编编码码序序列列号号,它它是是器器件件的的地地址址编编号号,确确保保它它挂挂在在总总线线上上后后,可可唯唯一一地地被被确确定定。除除了了器器件件的的地地址址编编码码外外,芯芯片片内内还还包包含含收收发发控控制制和和电电源源存存储储电电路路,如如图图10-1所所示示。这这些些芯芯片片的的耗耗电电量量都都很很小小(空空闲闲时时几几W,工工作作时时几几mW),工作时从总线上馈送电能到大电容中就可以工作,故一般不需另加电源。工作时从总线上馈送电能到大电容中就可以工作,故一般不需另加电源。310.1 单总线串行扩展34图图10-1 单总线芯片的内部结构示意图4图10-1 单总线芯片的内部结构示意图10.1.1 单总线系统的典型应用单总线系统的典型应用-DS18B20的温度测量系统的温度测量系统 单总线应用典型案例是采用单总线温度传感器单总线应用典型案例是采用单总线温度传感器DS18B20的温度测的温度测量系统。量系统。1.单总线温度传感器单总线温度传感器DS18B20简介简介 美国美国DALLAS公司推出的单总线接口的数字温度传感器,温度测量公司推出的单总线接口的数字温度传感器,温度测量范围为范围为55+128,在,在-10+85范围内,测量精度可达范围内,测量精度可达0.5。DS18B20体积小、功耗低,现场温度的测量直接通过体积小、功耗低,现场温度的测量直接通过“单总线单总线”以数字以数字方式传输,大大提高了系统的抗干扰性。非常适合于恶劣环境的现场温方式传输,大大提高了系统的抗干扰性。非常适合于恶劣环境的现场温度测量,也可用于各种狭小空间内设备的测温,如环境控制、过程监测、度测量,也可用于各种狭小空间内设备的测温,如环境控制、过程监测、测温类消费电子产品以及多点温度测控系统等。由于测温类消费电子产品以及多点温度测控系统等。由于DS18B20可直接将可直接将温度转化成数字信号传送给单片机处理,因而可省去传统的信号放大、温度转化成数字信号传送给单片机处理,因而可省去传统的信号放大、A/D转换等外围电路。转换等外围电路。510.1.1 单总线系统的典型应用-DS18B20的温度测量图图10-2所所示示为为单单片片机机与与多多个个带带有有单单总总线线接接口口的的数数字字温温度度传传感感器器DS18B20芯芯片片的的分分布布式式温温度度监监测测系系统统,图图中中多多个个DS18B20都都挂挂在在单单片片机机的的1根根I/O口口线线(即即DQ线线)上上。单单片片机机对对每每个个DS18B20通通过过总总线线DQ寻寻址址。DQ为为漏漏极极开开路路,须须加加上上拉拉电电阻阻。DS18B20的的一一种种封封装装形形式式如如图图10-2所所示示。除除DS18B20外外,在在该该数数字字温温度度传传感感器器系系列列中中还还有有DS1820、DS18S20、DS1822等其他型号产品,工作原理与特性基本相同。等其他型号产品,工作原理与特性基本相同。图10-2所示为单片机与多个带有单总线接口的数字温度传感器D图图10-2 单总线构成的分布式温度监测系统单总线构成的分布式温度监测系统图10-2 单总线构成的分布式温度监测系统片内有片内有9个字节的高速暂存器个字节的高速暂存器RAM单元,单元,9个字节的具体内容如下:个字节的具体内容如下:8第第1字节和第字节和第2字节是在单片机发给字节是在单片机发给DS18B20温度转换命令发布后,经温度转换命令发布后,经转换所得的温度值,以两字节补码形式存放其中。一般情况下,用户转换所得的温度值,以两字节补码形式存放其中。一般情况下,用户多使用第多使用第1字节和第字节和第2字节。单片机通过单总线可读得该数据,读取时字节。单片机通过单总线可读得该数据,读取时低位在前,高位在后。第低位在前,高位在后。第3、4字节分别是由软件写入用户报警的上下字节分别是由软件写入用户报警的上下限值限值TH和和TL。第。第5字节为配置寄存器,可对其更改字节为配置寄存器,可对其更改DS18B20的测温分的测温分辨率,高速暂存器的第辨率,高速暂存器的第6、7、8字节未用,为全字节未用,为全1。第。第9字节是前面所字节是前面所有有8个字节的个字节的CRC码,用来保证正确通信。片内还有码,用来保证正确通信。片内还有1个个E2PROM为为TH、TL以及配置寄存器的映像。以及配置寄存器的映像。片内有9个字节的高速暂存器RAM单元,9个字节的具体内容如下配置寄存器(第配置寄存器(第5字节)各位的定义如下:字节)各位的定义如下:9 其中,最高位其中,最高位TM出厂时已被写入出厂时已被写入0,用户不能改变;低,用户不能改变;低5位都为位都为1;R1和和R0用来设置分辨率。用来设置分辨率。表表10-1列出了列出了R1、R0与分辨率和转换时间的关系。用户与分辨率和转换时间的关系。用户可通过修改可通过修改R1、R0位的编码,获得合适的分辨率。位的编码,获得合适的分辨率。配置寄存器(第5字节)各位的定义如下:9 其中,最高位TM出 由由表表10-1可看出,可看出,DS18B20的转换时间与分辨率有关。当设定分辨的转换时间与分辨率有关。当设定分辨率为率为9位时,转换时间为位时,转换时间为93.75ms;当设定分辨率为;当设定分辨率为12位时,转换位时,转换时间为时间为750ms。表表10-2列出了列出了DS18B20温度转换后所得到的温度转换后所得到的16位转换结果的典型值。位转换结果的典型值。10 由表10-1可看出,DS18B20的转换时间与分辨率下面介绍温度转换的计算方法。下面介绍温度转换的计算方法。当当DS18B20采集的采集的温度为温度为+125时,输出为时,输出为07D0H,则:,则:实际温度实际温度=(07D0H)/16=(0163+7162+13161+0160)/16=125当当DS18B20采集的采集的温度为温度为-55时,输出为时,输出为FC90H,由于是补码,则先将,由于是补码,则先将11位数据取反加位数据取反加1得得0370H,注意符号位不变,也不参加运算,则:,注意符号位不变,也不参加运算,则:实际温度实际温度=(0370H)/16=(0163+3162+7161+0160)/16=55注意,负号则需要对采集的温度的结果数据进行判断后,再予以显示。注意,负号则需要对采集的温度的结果数据进行判断后,再予以显示。2.DS18B20的工作时序的工作时序 DS18B20对工作时序要求严格,延时时间需准确,否则容易出错。工作对工作时序要求严格,延时时间需准确,否则容易出错。工作时序包括初始化时序、写时序和读时序。时序包括初始化时序、写时序和读时序。11下面介绍温度转换的计算方法。11(1)初始化时序)初始化时序,单片机将数据线,单片机将数据线DQ电平拉低电平拉低480960s后释放,等后释放,等待待1560s,单总线器件即可输出一持续,单总线器件即可输出一持续60240s的低电平,单片机的低电平,单片机收到此应答后即可进行操作。收到此应答后即可进行操作。(2)写时序,)写时序,当单片机将数据线当单片机将数据线DQ电平从高拉到低时,产生写时序,电平从高拉到低时,产生写时序,有写有写“0”和写和写“1”两种时序。写时序开始后,两种时序。写时序开始后,DS18B20在在1560s期间从数据线上采样。如果采样到低电平,则向期间从数据线上采样。如果采样到低电平,则向DS18B20写的是写的是“0”;如果采样到高电平,则向;如果采样到高电平,则向DS18B20写的是写的是“1”。这两个独立的时序。这两个独立的时序间至少需要拉高总线电平间至少需要拉高总线电平1s的时间。的时间。(3)读时序)读时序,当单片机从,当单片机从DS18B20读取数据时,产生读时序。此时单读取数据时,产生读时序。此时单片机将数据线片机将数据线DQ的电平从高拉到低使读时序被初始化。如果在此后的的电平从高拉到低使读时序被初始化。如果在此后的15s内,单片机在数据线上内,单片机在数据线上 12(1)初始化时序,单片机将数据线DQ电平拉低480960采样到低电平,则从采样到低电平,则从DS18B20读的是读的是“0”;如果在此后的;如果在此后的15s内,单片机内,单片机在数据线上采样到高电平,则从在数据线上采样到高电平,则从DS18B20读的是读的是“1”。3.DS18B20的命令的命令 DS18B20片内都有唯一的片内都有唯一的64位光刻位光刻ROM编码,出厂时已刻好。它是编码,出厂时已刻好。它是DS18B20的地址序列码,目的是使每个的地址序列码,目的是使每个DS18B20的地址都不相同,这样就的地址都不相同,这样就可实现在一根总线上挂接多个可实现在一根总线上挂接多个DS18B20的目的。的目的。64位光刻位光刻ROM的各位定义的各位定义如下:如下:13 单片机写入单片机写入DS18B20的所有命令均为的所有命令均为8位长,对位长,对ROM操作的命令见操作的命令见表表10-3。采样到低电平,则从DS18B20读的是“0”;如果在此后的114 下面介绍表下面介绍表10-3中命令的用法。当主机需要对多个单总线上的某一中命令的用法。当主机需要对多个单总线上的某一DS18B20进行操作时,首先应将主机逐个与进行操作时,首先应将主机逐个与DS18B20挂接,读出其序列号挂接,读出其序列号(命令代码为(命令代码为33H);然后再将所有的);然后再将所有的DS18B20挂接到总线上,单片机发出挂接到总线上,单片机发出匹配匹配ROM命令(命令(55H),紧接着主机提供的),紧接着主机提供的64位序列号之后的操作就是针对位序列号之后的操作就是针对该该DS18B20的。的。14 下面介绍表10-3中命令的用法。当主机需要对多如果主机只对一个如果主机只对一个DS18B20进行操作,就不需要读取进行操作,就不需要读取ROM编码以及匹配编码以及匹配ROM编码,只要使用跳过读编码,只要使用跳过读ROM序列号(序列号(CCH)命令,就可按)命令,就可按表表10-4执行执行如下温度转换和读取命令。如下温度转换和读取命令。15如果主机只对一个DS18B20进行操作,就不需要读取ROM编 10.1.2 单总线单总线DS18B20温度测量系统的设计温度测量系统的设计 【例例10-1】利用利用DS18B20和和LED数码管实现单总线温度测量系统,数码管实现单总线温度测量系统,原理仿真电路如原理仿真电路如图图10-3所示。所示。DS18B20的测量范围是的测量范围是55128。本例。本例由于只接有两只数码管,所以显示的数值为由于只接有两只数码管,所以显示的数值为0099。读者通过本例应掌。读者通过本例应掌握握DS18B20的特性以及单片机的特性以及单片机I/O实现单总线协议的方法。实现单总线协议的方法。在在Proteus环境下进行虚拟仿真时,用手动调整环境下进行虚拟仿真时,用手动调整DS18B20的温度值,即的温度值,即用鼠标单击用鼠标单击DS18B20图标上的图标上的“”“”或或“”“”来改变温度,注意手动调来改变温度,注意手动调节温度的同时,节温度的同时,LED数码管上会显示出与数码管上会显示出与DS18B20窗口相同的窗口相同的2位温度位温度数值,表示测量结果正确。数值,表示测量结果正确。16 10.1.2 单总线DS18B20温度测量系统的设计16图图10-3 单总线单总线DS18B20温度测量与显示系统温度测量与显示系统图10-3 单总线DS18B20温度测量与显示系统图图10-3 74LS47为为BCD-7段译码器段译码器/驱动器驱动器,用于将单片机,用于将单片机P0口输出的欲口输出的欲显示的显示的BCD码转化成相应的数字显示的段码,并直接驱动码转化成相应的数字显示的段码,并直接驱动LED数码管显示。数码管显示。电路中的两个三极管用于两个数码管的位控端的选通和驱动。电路中的两个三极管用于两个数码管的位控端的选通和驱动。参考程序如下。参考程序如下。18图10-3 74LS47为BCD-7段译码器/驱动器,用于将1919202021212222单片机原理及接口技术第10章-串行扩展技术课件单片机原理及接口技术第10章-串行扩展技术课件单片机原理及接口技术第10章-串行扩展技术课件单片机原理及接口技术第10章-串行扩展技术课件10.2 SPI总线串行扩展总线串行扩展 SPI(Serial Periperal Interface,串行外设接口)是,串行外设接口)是Motorola公司公司推出的一种同步串行外设接口推出的一种同步串行外设接口,允许单片机与多厂家的带有标准,允许单片机与多厂家的带有标准SPI接口接口的外围器件直接连接。所谓同步,就是串行口每发送、接收一位数据都的外围器件直接连接。所谓同步,就是串行口每发送、接收一位数据都伴随有一个同步时钟脉冲来控制。伴随有一个同步时钟脉冲来控制。SPI外围串行扩展结构如外围串行扩展结构如图图10-4所示。所示。SPI使用使用4条线:串行时钟条线:串行时钟SCK,主器件输入,主器件输入/从器件输出数据线从器件输出数据线MISO,主器件输出,主器件输出/从器件输入数据线从器件输入数据线MOSI和从器件选择线和从器件选择线CS*。2710.2 SPI总线串行扩展27图图10-4 SPI外围串行扩展结构图外围串行扩展结构图图10-4 SPI外围串行扩展结构图 典型的典型的SPI系统是单主器件系统,从器件通常是外围器件,如存储器、系统是单主器件系统,从器件通常是外围器件,如存储器、I/O接口、接口、A/D、D/A、键盘、日历、键盘、日历/时钟和显示驱动等。单片机使用时钟和显示驱动等。单片机使用SPI扩扩展多个外围器件时,展多个外围器件时,SPI无法通过地址线译码选择,故外围器件都有片选无法通过地址线译码选择,故外围器件都有片选端。在扩展单个端。在扩展单个SPI器件时,外围器件的片选端可以接地或通过器件时,外围器件的片选端可以接地或通过I/O口控制;口控制;在扩展多个在扩展多个SPI器件时,单片机应分别通过器件时,单片机应分别通过I/O口线来分时选通外围器件。口线来分时选通外围器件。在在SPI串行扩展系统中,如果某一从器件只作输入(如键盘)或只作输出串行扩展系统中,如果某一从器件只作输入(如键盘)或只作输出(如显示器)时,可省去一条数据输出(如显示器)时,可省去一条数据输出(MISO)线或一条数据输入)线或一条数据输入(MOSI)线,从而构成双线系统(接地)。)线,从而构成双线系统(接地)。SPI系统中单片机对从器件的选通需控制其系统中单片机对从器件的选通需控制其CS*端,由于省去了地址字端,由于省去了地址字节,数据传送软件十分简单。但在扩展器件较多时,需要控制较多的从器节,数据传送软件十分简单。但在扩展器件较多时,需要控制较多的从器件端,连线较多。件端,连线较多。29 典型的SPI系统是单主器件系统,从器件通常是外围器 在在SPI串串行行扩扩展展系系统统中中,作作为为主主器器件件的的单单片片机机在在启启动动一一次次传传送送时时,便便产产生生8个个时时钟钟,传传送送给给外外围围器器件件作作为为同同步步时时钟钟,控控制制数数据据的的输输入入和和输输出出。数数据据的的传传送送格格式式是是高高位位(MSB)在在前前,低低位位(LSB)在在后后,如如图图10-5所所示示。数数据据线线上上输输出出数数据据的的变变化化以以及及输输入入数数据据时时的的采采样样,都都取取决决于于SCK。但但对对于于不不同同的的外外围围芯芯片片,有有的的可可能能是是SCK的的上上升升沿沿起起作作用用,有有的的可可能能是是SCK的的下下降沿起作用。降沿起作用。SPI有较高的数据传输速度,最高可达有较高的数据传输速度,最高可达1.05Mbit/s。30图图10-5 SPI数据传送格式数据传送格式 在SPI串行扩展系统中,作为主器件的单片机在启动一次传送 目前世界各大公司为用户提供了一系列具有目前世界各大公司为用户提供了一系列具有SPI接口的单片机和外围接接口的单片机和外围接口芯片,例如口芯片,例如Motorola公司存储器公司存储器MC2814、显示驱动器、显示驱动器MC14499和和MC14489等各种芯片;美国等各种芯片;美国TI公司的公司的8位串行位串行A/D转换器转换器TLC549、10位串行位串行A/D转换器转换器TLC1549、12位串行位串行A/D转换器转换器TLC2543等。等。SPI外围串行扩展系统的从器件要具有外围串行扩展系统的从器件要具有SPI接口。主器件是单片机。接口。主器件是单片机。AT89S51单片机不带有单片机不带有SPI接口,可采用软件与接口,可采用软件与I/O口结合来模拟口结合来模拟SPI的接口的接口时序。在时序。在SPI总线系统扩展的应用设计中,扩展串行总线系统扩展的应用设计中,扩展串行D/A转换器转换器和串行和串行A/D转转换器换器应用较多,应用较多,AT89S51单片机与带有单片机与带有SPI串行接口的串行接口的12位位A/D转换器转换器TLC2543的扩展设计案例将在的扩展设计案例将在11.7节介绍。节介绍。31 目前世界各大公司为用户提供了一系列具有SPI接口的10.3 I2C总线的串行扩展总线的串行扩展 I2C(Inter Interface Circuit)全称为芯片间总线,是应用广泛的芯)全称为芯片间总线,是应用广泛的芯片间串行扩展总线。目前世界上采用的片间串行扩展总线。目前世界上采用的I2C总线有两个规范,分别由荷兰总线有两个规范,分别由荷兰飞利浦公司和日本索尼公司提出,现在多采用飞利浦公司的飞利浦公司和日本索尼公司提出,现在多采用飞利浦公司的I2C总线技术总线技术规范,它已成为电子行业认可的总线标准。采用规范,它已成为电子行业认可的总线标准。采用I2C技术的单片机以及外技术的单片机以及外围器件种类很多,目前已广泛用于各类电子产品、家用电器及通信设备围器件种类很多,目前已广泛用于各类电子产品、家用电器及通信设备中。中。10.3.1 I2C串行总线系统的基本结构串行总线系统的基本结构 I2C串行总线只有两条信号线,一条是数据线串行总线只有两条信号线,一条是数据线SDA,另一条是时钟线,另一条是时钟线SCL。SDA和和SCL是双向的,是双向的,I2C总线上各器件的数据线都接到总线上各器件的数据线都接到SDA线线上,各器件的时钟线均接到上,各器件的时钟线均接到SCL线上。线上。I2C总线系统的基本结构如总线系统的基本结构如图图10-6所示。所示。3210.3 I2C总线的串行扩展3233图图10-6 I2C串行总线系统的基本结构串行总线系统的基本结构33图10-6 I2C串行总线系统的基本结构 带带有有I2C总总线线接接口口的的主主器器件件可可直直接接与与具具有有I2C总总线线接接口口的的各各种种从从器器件件(如如存存储储器器、I/O芯芯片片、A/D或或D/A转转换换器器、键键盘盘、显显示示器器、日日历历/时时钟钟芯芯片片)连连接接。由由于于I2C总总线线采采用用纯纯软软件件的的寻寻址址方方法法,无无需需片片选选线线的的连连接接,这这样样就就大大大大简简化化了了总总线线数数量量。I2C串串行行总总线线的的运运行行由由主主器器件件控控制制。主主器器件件是是指指启启动动数数据据的的发发送送(发发出出起起始始信信号号)、发发出出时时钟钟信信号号、传传送送结结束束时时发发出出终终止止信信号号的的器器件件,通通常常由由单单片片机机来来担担当当。从从器器件件可可以以是是存存储储器器、LED或或LCD驱驱动动器器、A/D或或D/A转转换换器、时钟器、时钟/日历器件等,从器件必须带有日历器件等,从器件必须带有I2C串行总线接口。串行总线接口。当当I2C总总线线空空闲闲时时,SDA和和SCL两两条条线线均均为为高高电电平平。由由于于连连接接到到总总线线上上器器件件的的输输出出级级必必须须是是漏漏级级或或集集电电极极开开路路的的,只只要要有有一一个个器器件件任任意意时时刻刻输输出出低低电电平平,都都将将使使总总线线上上的的信信号号变变低低,即即各各器器件件的的SDA及及SCL都都是是“线线与与”的的关关系系。由由于于各各器器件件输输出出端端为为漏漏级级开开路路,故故必必须须通通过过上上拉拉电电阻阻接接正正电电源源(图图10-6中中的的两个电阻),以保证两个电阻),以保证SDA和和SCL在空闲时被上拉为高电平。在空闲时被上拉为高电平。34 带有I2C总线接口的主器件可直接与具有I2C总线接口的各 SCL线上的时钟信号对线上的时钟信号对SDA线上的各器件间的数据传输起同步控制作用。线上的各器件间的数据传输起同步控制作用。SDA线上的数据起始、终止及数据的有效性均要根据线上的数据起始、终止及数据的有效性均要根据SCL线上的时钟信号来线上的时钟信号来判断。判断。在标准的在标准的I2C普通模式下,数据的传输速率为普通模式下,数据的传输速率为100kbit/s,高速模式下可达,高速模式下可达400kbit/s。总线上扩展的器件数量不是由电流负载决定的,而是由电容负载。总线上扩展的器件数量不是由电流负载决定的,而是由电容负载确定的。确定的。I2C总线上的每个器件的接口处都有一定的等效电容,器件越多,电总线上的每个器件的接口处都有一定的等效电容,器件越多,电容值就越大,就会造成信号传输的延迟。总线上允许的器件数以器件的电容量容值就越大,就会造成信号传输的延迟。总线上允许的器件数以器件的电容量不超过不超过400pF(通过驱动扩展可达(通过驱动扩展可达4000pF)为宜,据此可计算出总线长度及)为宜,据此可计算出总线长度及连接器件的数量。每个连到连接器件的数量。每个连到I2C总线上的器件都有一个唯一的地址,扩展器件总线上的器件都有一个唯一的地址,扩展器件数目的多少也要受器件地址数目的限制。数目的多少也要受器件地址数目的限制。35 SCL线上的时钟信号对SDA线上的各器件间的数据传输 I2C总线应用系统允许多主器件,但是在实际应用中,经常遇到的是以单总线应用系统允许多主器件,但是在实际应用中,经常遇到的是以单一单片机为主器件,其他外围接口器件为从器件的情况。一单片机为主器件,其他外围接口器件为从器件的情况。10.3.2 I2C总线的数据传送规定总线的数据传送规定1数据位的有效性规定数据位的有效性规定 I2C总线在进行数据传送时,每一数据位的传送都与时钟脉冲相对应。时总线在进行数据传送时,每一数据位的传送都与时钟脉冲相对应。时钟脉冲为高电平期间,数据线上的数据必须保持稳定,在钟脉冲为高电平期间,数据线上的数据必须保持稳定,在I2C总线上,只有在总线上,只有在时钟线时钟线SCL为低电平期间,数据线为低电平期间,数据线SDA上的电平状态才允许变化,如上的电平状态才允许变化,如图图10-7所示。所示。36 I2C总线应用系统允许多主器件,但是在实际应用中图图10-7 数据位的有效性规定数据位的有效性规定 图10-7 数据位的有效性规定 2起始信号和终止信号起始信号和终止信号 根据根据I2C总线协议,总线上数据信号的传送由起始信号(总线协议,总线上数据信号的传送由起始信号(S)开始、由)开始、由终止信号(终止信号(P)结束。起始信号和终止信号都由主器件发出,在起始信号产)结束。起始信号和终止信号都由主器件发出,在起始信号产生后,总线就处于占用状态;在终止信号产生后,总线就处于空闲状态。下生后,总线就处于占用状态;在终止信号产生后,总线就处于空闲状态。下面结合面结合图图10-8介绍有关起始信号和终止信号的规定。介绍有关起始信号和终止信号的规定。38图10-8 起始信号和起始信号和终止信号止信号 2起始信号和终止信号38图10-8 起始信号和(1)起始信号)起始信号S。在。在SCL线为高高电平期平期间,SDA线由高由高电平向低平向低电平的平的变化表示起始信号,只有在起始信号以后,其他命令才有效。化表示起始信号,只有在起始信号以后,其他命令才有效。(2)终止信号止信号P。在。在SCL线为高高电平期平期间,SDA线由低由低电平向高平向高电平的平的变化表化表示示终止信号。随着止信号。随着终止信号的出止信号的出现,所有外部操作都,所有外部操作都结束。束。3I2C总线上数据上数据传送的送的应答答 I2C总线进行数据行数据传送送时,首先要由主器件,首先要由主器件对从器件从器件进行行寻址,址,发出出寻址址字字节,而,而传送的数据字送的数据字节数没有限制,但是每字数没有限制,但是每字节必必须为8位。数据位。数据传送送时,先先传送最高位(送最高位(MSB),如),如图10-9所示。所示。I2C总线在在传送每送每1字字节数据后都数据后都必必须有接收数据方有接收数据方发出的出的应答信号答信号A,应答信号在第答信号在第9个个时钟位上出位上出现,与,与应答信号答信号对应的的时钟信号由主器件信号由主器件产生,生,这时发送方必送方必须在在这一一时钟位上使位上使SDA线处于高于高电平状平状态,以便接收方在,以便接收方在这一位上送出低一位上送出低电平的平的应答信号答信号A。(1)起始信号S。在SCL线为高电平期间,SDA线由高电平向图10-9 I2C总线上的上的应答信号答信号图10-9 I2C总线上的应答信号 由于某种原因接收方不对主器件寻址信号应答时,例如接收方正在进由于某种原因接收方不对主器件寻址信号应答时,例如接收方正在进行其他处理而无法接收总线上的数据时,必须释放总线,将数据线行其他处理而无法接收总线上的数据时,必须释放总线,将数据线SDA置为置为高电平,而由主器件产生一个终止信号以结束总线的数据传送。当主器件接高电平,而由主器件产生一个终止信号以结束总线的数据传送。当主器件接收来自从器件的数据时,接收的最后一个数据字节后,必须给从器件发送一收来自从器件的数据时,接收的最后一个数据字节后,必须给从器件发送一个非应答信号(),使从机释放数据总线,以便主器件发送一个终止信号,个非应答信号(),使从机释放数据总线,以便主器件发送一个终止信号,从而结束数据的传送。从而结束数据的传送。4寻址字节寻址字节 上面已经介绍,上面已经介绍,I2C总线系统中主器件完成与从器件的数据传输(读总线系统中主器件完成与从器件的数据传输(读或写),首先要由主器件对从器件寻址,并确定数据的传输方向(读或写),或写),首先要由主器件对从器件寻址,并确定数据的传输方向(读或写),这是由主器件发出的寻址字节来控制的。寻址字节格式如下:这是由主器件发出的寻址字节来控制的。寻址字节格式如下:41 由于某种原因接收方不对主器件寻址信号应答时,例如寻址字节包含了寻址字节包含了7位从器件地址和位从器件地址和1位数据传输方向(读或写)控制位。位数据传输方向(读或写)控制位。7位从器件地址为位从器件地址为“DA3、DA2、DA1、DA0”和和“A2、A1、A0”,其中,其中“DA3、DA2、DA1、DA0”为器件固有的类型号编码,出厂时就已经给定。为器件固有的类型号编码,出厂时就已经给定。“A2、A1、A0”为引脚地址,由器件引脚为引脚地址,由器件引脚A2、A1、A0在电路中接高电平或接地决在电路中接高电平或接地决定(见后面的图定(见后面的图10-11)。寻址字节的最低位为数据方向位()。寻址字节的最低位为数据方向位(R/),规定了),规定了总线上的主器件(单片机)与从器件的数据传送方向。总线上的主器件(单片机)与从器件的数据传送方向。R/=1,表示主器件接,表示主器件接收(读)。收(读)。R/=0,表示主器件发送(写)。,表示主器件发送(写)。5I2C总线上的数据帧格式总线上的数据帧格式 I2C总线上传送的信号即包括数据信号,也包括地址信号。总线上传送的信号即包括数据信号,也包括地址信号。寻址字节包含了7位从器件地址和1位数据传输方向(读或写)控制I2C总线规定,在起始信号后必须传送一个寻址字节,即总线规定,在起始信号后必须传送一个寻址字节,即7位从器件的地址,位从器件的地址,1位数据传送的方向位(位数据传送的方向位(R/),用),用“0”表示主器件发送数据(),表示主器件发送数据(),“1”表表示主器件接收数据(示主器件接收数据(R)。每次数据传送总是由主器件产生的终止信号结束。)。每次数据传送总是由主器件产生的终止信号结束。但是,若主器件希望继续占用总线进行新的数据传送,则可以不产生终止信但是,若主器件希望继续占用总线进行新的数据传送,则可以不产生终止信号,马上再次发出起始信号对另一从器件发寻址字节。因此,在总线一次数号,马上再次发出起始信号对另一从器件发寻址字节。因此,在总线一次数据传送过程中,通常有以下几种组合方式:据传送过程中,通常有以下几种组合方式:(1)主器件向从器件发送)主器件向从器件发送n字节数据的写操作,数据传送方向在整个传送过字节数据的写操作,数据传送方向在整个传送过程中不变,数据传送的格式如下:程中不变,数据传送的格式如下:I2C总线规定,在起始信号后必须传送一个寻址字节,即7位从器44其中:字其中:字节1字字节n为主机写入从器件的主机写入从器件的n字字节的数据。格式中阴影部分的数据。格式中阴影部分表示主器件向从器件表示主器件向从器件发送数据,无阴影部分表示从器件向主器件送数据,无阴影部分表示从器件向主器件发送,以下送,以下同。上述格式中的同。上述格式中的寻址字址字节中的中的7位位为“从器件地址从器件地址”,紧接其后的接其后的“1”为读,“0”为写。写。(2)主器件接收来自从器件的)主器件接收来自从器件的n字字节的的读操作。除第操作。除第1个个寻址字址字节由主器由主器件件发出,出,n字字节都由从器件都由从器件发送,主器件接收,数据送,主器件接收,数据传送的格式如下:送的格式如下:其中:字其中:字节1字字节n为从器件被从器件被读出的出的n字字节数据。主器件数据。主器件发送送终止信止信号前号前应发送非送非应答信号,向从器件表明答信号,向从器件表明读操作要操作要结束。束。44其中:字节1字节n为主机写入从器件的n字节的数据。格式 (3)主器件的读、写操作。在一次数据传送过程中,主器件先发送)主器件的读、写操作。在一次数据传送过程中,主器件先发送1字节数据,然后再接收字节数据,然后再接收1字节数据,此时起始信号和从器件地址都被重新字节数据,此时起始信号和从器件地址都被重新产生一次,但两次读写的方向位正好相反。数据传送的格式如下:产生一次,但两次读写的方向位正好相反。数据传送的格式如下:45 格式中的格式中的“Sr”表示重新表示重新产生的起始信号,生的起始信号,“从器件地址从器件地址r”表示重新表示重新产生的生的从器件地址。从器件地址。由上可由上可见,无,无论哪种方式,起始信号、哪种方式,起始信号、终止信号和从器件地址(止信号和从器件地址(寻址字址字节中的高中的高7位)均由主器件位)均由主器件发送,数据字送,数据字节的的传送方向送方向则由主器件由主器件发出的出的寻址字址字节的最低位的最低位规定,每个字定,每个字节的的传送都必送都必须有有应答位(答位(A或)相随。或)相随。(3)主器件的读、写操作。在一次数据传送过程中,主器件6数据传送的时序数据传送的时序 I2C总线上每传送一位数据都与一个时钟脉冲相对应,传送的每一帧总线上每传送一位数据都与一个时钟脉冲相对应,传送的每一帧数据均为一字节。但启动数据均为一字节。但启动I2C总线后传送的字节数没有限制,只要求每传总线后传送的字节数没有限制,只要求每传送一个字节后,对方回答一个应答位。在时钟线为高电平期间,数据线送一个字节后,对方回答一个应答位。在时钟线为高电平期间,数据线的状态就是要传送的数据。数据线上数据的改变必须在时钟线为低电平的状态就是要传送的数据。数据线上数据的改变必须在时钟线为低电平期间完成。在数据传输期间,只要时钟线为高电平,数据线都必须稳定,期间完成。在数据传输期间,只要时钟线为高电平,数据线都必须稳定,否则数据线上的任何变化都当作起始或终止信号。否则数据线上的任何变化都当作起始或终止信号。I2C总线数据传送必须遵循的数据传送格式见总线数据传送必须遵循的数据传送格式见图图10-10。图。图10-10所示所示为一次完整的数据传送应答时序。根据总线规范,起始信号表明一次数为一次完整的数据传送应答时序。根据总线规范,起始信号表明一次数据传送的开始,其后为寻址字节。在寻址字节后是按指定读、写的数据据传送的开始,其后为寻址字节。在寻址字节后是按指定读、写的数据字节与应答位。在数据传送完成后主器件都必字节与应答位。在数据传送完成后主器件都必须发送终止信号。在起始须发送终止信号。在起始与终止信号之间传输的数据字节数由主器件(单片机)决定,没有字节与终止信号之间传输的数据字节数由主器件(单片机)决定,没有字节数限制。数限制。466数据传送的时序46图10-10 I2C总线一次完整的数据一次完整的数据传送送应答答时序序图10-10 I2C总线一次完整的数据传送应答时序10.3.3 AT89S51的的I2C总线系统扩展总线系统扩展 目前,许多公司都推出带有目前,许多公司都推出带有I2C总线接口的单片机及各种外围扩展器件,总线接口的单片机及各种外围扩展器件,常见的有常见的有ATMEL公司的公司的AT24Cxx系列存储器、系列存储器、PHILIPS公司的公司的PCF8553(时(时钟钟/日历且带有日历且带有2568 RAM)和)和PCF8570(2568 RAM)、)、MAXIM公司的公司的MAX117/118(A/D转换器)和转换器)和MAX517/518/519(D/A转换器)等。转换器)等。主器件通常由带有主器件通常由带有I2C总线接口的单片机来担当。从器件必须带有总线接口的单片机来担当。从器件必须带有I2C总线接口。总线接口。AT89S51单片机没有单片机没有I2C接口,可利用并行接口,可利用并行I/O口线结合软件来模口线结合软件来模拟拟I2C总线时序。因此,在许多的应用中,都将总线时序。因此,在许多的应用中,都将I2C总线的模拟传送作为常规总线的模拟传送作为常规的设计方法。的设计方法。图图10-11所示为所示为AT89S51单片机与具有单片机与具有I2C总线器件的扩展接口电路。总线器件的扩展接口电路。图中,图中,AT24C02为为E2PROM芯片,芯片,PCF8570为静态为静态2568 RAM,4810.3.3 AT89S51的I2C总线系统扩展48图10-11 AT89S51单片机片机扩展展I2C总线器件的接口器件的接口电路路图10-11 AT89S51 单片机扩展I2C总线器件PCF8574为为8位位I/O接口,接口,SAA1064为为4位位LED驱动器。虽然各种器件的原理驱动器。虽然各种器件的原理和功能有很大的差异,但它们与和功能有很大的差异,但它们与AT89S51单片机的连接是相同的。单片机的连接是相同的。10.3.4 I2C总线数据传送的模拟总线数据传送的模拟 使用使用I2C总线进行单片机系统扩展时,多为单主器件结构,这样总线数据总线进行单片机系统扩展时,多为单主器件结构,这样总线数据的传送控制比较简单,没有总线的竞争与同步,只存在单片机对的传送控制比较简单,没有总线的竞争与同步,只存在单片机对I2C总线上各总线上各从器件的读、写操作。由于从器件的读、写操作。由于AT89S51单片机没有单片机没有I2C接口,通常采用接口,通常采用I/O口线口线结合软件来实现结合软件来实现I2C总线的数据传送的信号模拟。总线的数据传送的信号模拟。1典型信号模拟典型信号模拟 为了保证数据传送的可靠性,标准为了保证数据传送的可靠性,标准I2C总线的数据传送有严格的时序要求。总线的数据传送有严格的时序要求。I2C总线的起始信号、终止信号、应答总线的起始信号、终止信号、应答/数据数据“0”及非应答及非应答/数据数据“1”的模拟的模拟时序如图时序如图10-12图图10-15所示。所示。50PCF8574为8位I/O接口,SAA1064为4位LED驱对于于发送送应答位、非答位、非应答位来答位来说,与,与发送数据送数据“0”和和“1”的信号定的信号定时要求要求完全相同。只需要完全相同。只需要满足在足在时钟线SCL高高电平大于平大于4s期期间,SDA线上有确定上有确定的的电平状平状态即可。即可。2典型信号及字典型信号及字节收收发的模的模拟子程序子程序设主器件采用主器件采用AT89S51单片机,晶振片机,晶振频率率为12MHz(即机器周期(即机器周期为1s),),对常用的几个典型信号的波形模常用的几个典型信号的波形模拟如下。如下。(1)起始信号)起始信号S。对于一个新的起始信号,要求起始前于一个新的起始信号,要求起始前总线的空的空闲时间大于大于4.7s,而,而对于一个重复的起始信号,要求建立于一个重复的起始信号,要求建立时间也也须大于大于4.7s。图10-12所示的起始信号的所示的起始信号的时序波形在序波形在SCL高高电平期平期间SDA发生生负跳跳变,该时序波形适用于数据模序波形适用于数据模拟传送中任何情况下的起始操作。起始信号到第送中任何情况下的起始操作。起始信号到第1个个时钟脉冲的脉冲的时间间隔隔应大于大于4.0s。对于发送应答位、非应答位来说,与发送数据“0”和“1”的信号52图10-12 起始信号起始信号S的模的模拟时序序产生生图10-12所示的起始信号所示的起始信号S的子程序如下:的子程序如下:52图10-12 起始信号S的模拟时序产生图10-1253上述的延上述的延时4.7s和延和延时4s的子程序分的子程序分别如下:如下:(2)终止信号止信号P。对于于终止信号,要保止信号,要保证有大于有大于4.7s的信号建立的信号建立时间。终止信号止信号结束束时,要,要释放放总线,使,使SDA、SCL维持在高持在高电平,在大于平,在大于4.7s后才可以后才可以进行第行第1次起始操作。在次起始操作。在单主器件系主器件系统中,中,为防止非正常防止非正常传送,送,终止信号后止信号后SCL可以可以设置在低置在低电平。平。53上述的延时4.7s和延时4s的子程序分别如下:(2)在在SCL高电平期间高电平期间SDA发生正跳变。终止信号发生正跳变。终止信号P的时序波形如的时序波形如图图10-13所示。所示。54图图10-13 终止信号终止信号P的模拟时序的模拟时序产生产生图图10-13所示的终止信号所示的终止信号P的子程序如下:的子程序如下:在SCL高电平期间SDA发生正跳变。终止信号P的时序波形如图 (3)发送应答位/数据“0”。在SDA低电平期间SCL发生一个正脉冲,时序波形如图10-14所示。55图10-14 应答位答位/数据数据“0”的模的模拟时序序产生生图10-14所示的所示的发送送应答位答位/数据数据“0”的子程序如下:的子程序如下:(3)发送应答位/数据“0”。在SDA低电平期间SCL(4)发发送送非非应应答答位位/数数据据“1”。在在SDA高高电电平平期期间间SCL发发生生一一个个正正脉脉冲冲,时序波形如图时序波形如图10-15所示。所示。56图10-15 非非应答位答位/数据数据“1”的模的模拟时序序产生生图10-15所示的所示的发送非送非应答位答位/数据数据“1”的子程序如下:的子程序如下:(4)发送非应答位/数据“1”。在SDA高电平期间SCL发生10.3.5 利用利用I2C总线扩展总线扩展E2PROM AT24C02的的IC卡设计卡设计IC卡是由通用存储器芯片封装而成,由于其结构和功能简单,成本低、卡是由通用存储器芯片封装而成,由于其结构和功能简单,成本低、使用方便,已得到广泛应用。目前用于使用方便,已得到广泛应用。目前用于IC卡的通用存储器芯片多为卡的通用存储器芯片多为E2PROM,且采用,且采用I2C总线接口,典型器件为总线接口,典型器件为ATMEL公司的公司的I2C接口的接口的AT24Cxx系列。该系列具有系列。该系列具有AT24C01/02/04/08/16等型号,它们的封装形等型号,它们的封装形式、引脚功能及内部结构类似,只是容量不同,分别为式、引脚功能及内部结构类似,只是容量不同,分别为128B/256B/512B/1KB/2KB。下面以下面以AT24C02为例,介绍单片机如何通过为例,介绍单片机如何通过I2C总线对总线对AT24C02/进行读进行读写。写。1AT24C02芯片简介芯片简介(1)封装与引脚)封装与引脚AT24C02的封装形式有双列直插(的封装形式有双列直插(DIP)8脚式和贴片脚式和贴片8脚式两种,无脚式两种,无5710.3.5 利用I2C总线扩展E2PROM AT24C0论何种封装,其引脚功能都是一样的。论何种封装,其引脚功能都是一样的。AT24C02的的DIP形式引脚如形式引脚如图图10-16所所示。示。58图10-16 AT24C02的的DIP引脚引脚 AT24C02的引脚功能的引脚功能见表表10-5。论何种封装,其引脚功能都是一样的。AT24C02的DIP形式59(2)存)存储单元的元的寻址址 AT24C02的存的存储容量容量为256B,分,分为32页,每,每页8B。对片内片内单元元访问操操作,先作,先发寻址字址字节对芯片芯片寻址,然后再址,然后再进行片内子地址行片内子地址寻址。址。59(2)存储单元的寻址 芯片寻址芯片寻址。AT24C02芯片地址固定为芯片地址固定为1010,它是,它是I2C总线器件的特征编码,总线器件的特征编码,其寻址字节的格式为其寻址字节的格式为1010 A2A1A0 R/。A2A1A0引脚接高、低电平后得到确引脚接高、低电平后得到确定的定的3位编码,与位编码,与1010形成形成7位编码,即为该器件的地址码。由于位编码,即为该器件的地址码。由于A2A1A0共共有有8种组合,故系统最多可外接种组合,故系统最多可外接8片片AT24C02,R/是对芯片的读是对芯片的读/写控制位。写控制位。片内子地址寻址片内子地址寻址。在确定了。在确定了AT24C02芯片的芯片的7位地址码后,片内的存储空位地址码后,片内的存储空间可再用间可再用1字节的地址码进行寻址,寻址范围为字节的地址码进行寻址,寻址范围为00HFFH,可对片内的,可对片内的256个单元进行读个单元进行读/写操作。写操作。(3)写操作)写操作AT24C02有两种写入方式,即字节写入方式与页写入方式。有两种写入方式,即字节写入方式与页写入方式。60 芯片寻址。AT24C02芯片地址固定为1010,它是I2 字节写入方式。字节写入方式。主器件(单片机)先发送启动信号和主器件(单片机)先发送启动信号和1字节的寻址字字节的寻址字节,从器件节,从器件AT24C02发出应答信号后,单片机再发送发出应答信号后,单片机再发送1字节的存储单元字节的存储单元子地址(子地址(AT24C02芯片内部单元的地址码),单片机收到芯片内部单元的地址码),单片机收到AT24C02应答应答后,再发送后,再发送8位数据和位数据和1位终止信号。位终止信号。页写入方式。页写入方式。单片机先发送启动信号和单片机先发送启动信号和1字节的寻址字节,再发送字节的寻址字节,再发送1字字节的存储器起始单元地址,上述几个字节都得到节的存储器起始单元地址,上述几个字节都得到AT24C02的应答后,就的应答后,就可以发送最多可以发送最多1页的数据,并顺序存放在已指定的起始地址开始的相继单页的数据,并顺序存放在已指定的起始地址开始的相继单元中,最后以终止信号结束。元中,最后以终止信号结束。(4)读操作)读操作 AT24C02的读操作也有两种方式,即指定地址读方式和指定地址连续的读操作也有两种方式,即指定地址读方式和指定地址连续读方式。读方式。61 字节写入方式。主器件(单片机)先发送启动信号和1字节的寻 指定地址读方式。指定地址读方式。单片机发送启动信号后,先发送含有单片机发送启动信号后,先发送含有AT24C02地地址的写操作控制字,址的写操作控制字,AT24C02应答后,单片机再发送应答后,单片机再发送1字节的指定单元的字节的指定单元的地址,地址,AT24C02应答后再发送应答后再发送1个含有个含有AT24C02地址的读操作控制字,此地址的读操作控制字,此时如果时如果AT24C02做出应答,被访问单元的数据就会按做出应答,被访问单元的数据就会按SCL信号同步出现在信号同步出现在SDA线上,供单片机读取。线上,供单片机读取。指定地址连续读方式指定地址连续读方式。指定地址连续读方式是单片机收到每个字节。指定地址连续读方式是单片机收到每个字节数据后要做出应答,只有数据后要做出应答,只有AT24C02检测到应答信号后,其内部的地址寄存检测到应答信号后,其内部的地址寄存器就自动加器就自动加1指向下一个单元,并顺序将指向单元的数据送到指向下一个单元,并顺序将指向单元的数据送到SDA线上。线上。当需要结束读操作时,单片机接收到数据后,在需要应答的时刻发送一个当需要结束读操作时,单片机接收到数据后,在需要应答的时刻发送一个非应答信号,接着再发送一个终止信号即可。非应答信号,接着再发送一个终止信号即可。62 指定地址读方式。单片机发送启动信号后,先发送含有AT24【例例10-2】单片机通过单片机通过I2C串行总线扩展串行总线扩展1片片AT24C02,实现单片机对存,实现单片机对存储器储器AT24C02的读、写操作,接口电路见的读、写操作,接口电路见图图10-17。图中按键图中按键K1作为外部中断作为外部中断0的中断源,当按下的中断源,当按下K1时,向外部中断时,向外部中断0发出请求,将单片机内部发出请求,将单片机内部RAM 55H58H单元中的数据经单元中的数据经I2C总线写入总线写入24C02中,当最后一个数据写入完成时,把结束标志中,当最后一个数据写入完成时,把结束标志C3H送送P2口由口由LED0LED7控制控制LED3LED6灯亮,其余灭。灯亮,其余灭。图中按键图中按键K2作为外部中断作为外部中断1的中断源,当按下的中断源,当按下K2时,向外部中断时,向外部中断1发出请求,单片机通过发出请求,单片机通过I2C总线将所写入总线将所写入AT24C02中的数据,读到单片中的数据,读到单片机内部机内部RAM 60H63H单元中,并将最
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!