6智能仪器的总线和通信技术_第1页
6智能仪器的总线和通信技术_第2页
6智能仪器的总线和通信技术_第3页
6智能仪器的总线和通信技术_第4页
6智能仪器的总线和通信技术_第5页
已阅读5页,还剩174页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,第六章智能仪器的总线和通信技术,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,2,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,从第一章介绍采用嵌入式微控制器组成单个智能仪器的结构图(图1.1)可看出,仪器内部的各主要功能部件是通过总线方式与仪器内部的CPU联系起来的。,高等教育出版社,普通高等教育“十一五”国家级规划教材,3,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,1.2.6中讨论的标准化模块仪器则常采用模板总线将仪器的各功能模块联系起来组成智能仪器。当采用仪器机箱方式时,一般采用VME、VXI、PXI总线等。,高等教育出版社,普通高等教育“十一五”国家级规划教材,4,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,第一章中还提到“多个智能仪器通过其通信接口可构成自动测试系统”是智能仪器的一个特点。在给智能仪器设计功能强大的通信接口的基础上,可根据测试任务的需要,选用不同的智能仪器,通过其通信接口组成自动测试系统完成不同测试任务。任务不同,选用的仪器不同;同一个仪器,可以用在不同的任务中。同时,随着生产过程的现代化,有些场合的测控任务越来越复杂,需多个仪器协同工作。具有通信或网络接口的智能仪器可方便地组成测控网络,在信息共享的基础上,协同完成比较复杂的测控任务任务。这样,就出现了以智能仪器为基础,现场总线和其他网络为纽带的企业网络系统(如下图所示)。,5,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,6,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,本章讨论与上述内容有关的智能仪器的总线和通信技术。本章中,概略地把总线看成是智能仪器中微控制器与外围芯片、电路板与电路板(标准模块与标准模块)、智能仪表与其他设备之间相互连接的桥梁与纽带。本章主要介绍串行总线和相关的通信技术。,高等教育出版社,普通高等教育“十一五”国家级规划教材,7,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,6.1串行外设接口总线SPI对于以单片机为主采用单板结构的智能仪器而言,起初常通过单片机的地址总线、数据总线和控制总线扩展ADC、DAC等构成仪器常用的外围器件,这是一种并行总线的方式。除此之外,还可采用I2C、SPI和1-Wire(单线)等串行总线来实现单片机与外扩功能器件的连接。采用串行总线的好处是:可大大减少总线的引脚数(从而减少外扩器件的封装尺寸)并提高连接时的可靠性。,8,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,本节介绍近年来广泛使用的串行外设接口总线(SerialPeripheralInterface,SPI)。6.1.1SPI概述SPI是Motorola公司推出的一种同步串行接口。Motorola公司生产的绝大多数MCU(微控制器)都配有SPI硬件接口,如68系列的MCU;C8051F系列和ARM系列嵌入式处理器一般已把SPI作为标配;许多DSP也配有SPI;同时,采用SPI的外围器件的种类也很多,如RAM、EEPROM、A/D和D/A转换器、实时时钟、LED/LCD驱动器以及无线电音响器件等(如第三章介绍的ADS1278)。,9,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,标准的SPI总线有4根信号线:主机输入/从机输出数据线MISO(MasterIn/SlaveOut);主机输出/从机输入数据线MOSI(MasterOut/SlaveIn);由主机控制的串行时钟线SCK(SerialClock);低电平有效的从机选择线(SlaveSelect)。,10,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,利用SPI构成系统的结构形式有多种。图6.1所示为一个MCU和一个或多个从I/O设备(包括从MCU)构成的应用系统。主机和哪台从机通信由主机通过各从机的选通线进行选择。SPI是全双工的,主机在发送的同时也在接收数据(为什么?);传送速率由主机编程决定;时钟极性和相位也是可选择的,具体约定由设计人员根据总线上各设备接口的功能决定。,11,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,图6.2所示为多个MCU互联成多主机系统(分布式系统)。,12,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,6.1.2SPI工作原理1、SPI主要组成部分SPI包括3个主要组成部分:移位寄存器;发送缓冲器;接收缓冲器。具体如图6.3所示。,13,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,接收缓冲器也与数据总线相连,接收到的数据可以从接收缓冲器读出。移位寄存器负责收发数据,有移入和移出两个端口,分别与收和发两条通信线路连接,通信双方的移位寄存器和移入移出端口构成一个环形结构(如图6.3中的虚线框)。,发送缓冲器与SPI内部数据总线相连,写入SPI的数据通过数据总线装入发送缓冲器,然后自动装入移位寄存器。,14,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,2、SPI半双工通信的操作过程(主机发数据)(1)主机CPU经过数据总线把欲发送的数据写入发送缓冲器A后即被自动装入移位寄存器A中。,(2)发送过程启动,主机送出时钟信号SCK,数据从寄存器A中一位一位地移入寄存器B内(同时寄存器B中的数据也一位一位移入移位寄存器A中,由于是半双工通信,被移入的数据可以不理睬)。(3)8个时钟脉冲后,时钟停顿,8位数据全部移入寄存器B中,随即被自动装入接收缓冲器B,并且将接收缓冲器B满标志位置位(一般地,还会引起SPI接收中断)。(4)从机CPU检测到该标志位(或响应中断)后,即读取接收缓冲器B中的数据,完成一个字节的单向通信过程。,15,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,3、SPI全双工通信过程(1)主机把欲发送数据写入发送缓冲器A中后即被自动装入移位寄存器A中;同时,从机把欲发送数据写入发送缓冲器B中,随即该数据被自动装入移位寄存器B中。,(2)主机启动发送过程,送出SCK,寄存器A中的数据经过MOSI按位移入移位寄存器B内;同时,移位寄存器B中的数据经过MISO引脚按位移入寄存器A内。(3)8个SCK后,时钟停顿,移位寄存器A中的8位数据全部移入移位寄存器B中,随即被自动装入接收缓冲器B,并且从机接收缓冲器B满标志位置位(一般还能引发中断);同理,移位寄存器B中的8位数据全部移入移位寄存器A中,并被自动装入接收缓冲器A,同时将主机接收缓冲器A满标志位置位(一般还能引发中断)。,16,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,(4)主机CPU检测到接收缓冲器A满标志位(或响应中断)后,就可以读取接收缓冲器A;同样地,从机CPU检测到接收缓冲器B满标志位(或响应中断)后,就可以读取接收缓冲器B,完成一个字节的互换通信过程。6.1.3SPI的工作方式通过初始化SPI,可以使其工作在主控方式或从动方式。1、主控方式该方式下,SPI在其SCK引脚上提供整个串行通信系统的时钟信号。数据从其MOSI引脚输出并在MISO引脚输入(主机输出,从机输入)。发送和接收的位速率由SPI波特率设置寄存器中的设置值决定,最高一般可达5Mbps(目前超过该速率的也很多)。,17,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,数据一旦写入,SPI的发送缓冲器就在SCK的控制下开始发送并接收数据。此时,数据按其预先设定的时钟节拍按位从MOSI引脚(有时又将其定义为SDO或DO等)输出(先发送最高位)。同时,接收移位寄存器按位将其MISO引脚(有时又将其定义为SDI或DI等)上的信号按同样的时钟节拍移入。当8个数据位操作结束后,数据发送完毕,接收到的数据立即装入接收数据缓冲器。同时,与SPI对应的中断标志位和缓冲器满标志位均置1,通知CPU读数据或继续发送下一个字节的数据。SPI的SCK有4种不同的时钟方式(在初始化时由时钟极性位和时钟相位位的4种不同组合确定),对应地,数据传送的时序图也略有不同,具体可参阅文献68或69。,18,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,2、从动方式该方式下,数据在时钟的控制下按位从MISO引脚输出且由MOSI引脚按位移入,即从机输出主机输入。同时SCK信号由外部SPI主设备提供。当主控制器的SCK有效时,写入到移位寄存器或发送缓冲器的数据通过MISO按位传送到网络,同时MOSI引脚上的数据由SCK采样并按位移入移位寄存器。同样地,当8个数据位操作结束时(接收数据的最后一位被锁定或发送数据的最后一位被移出后),与SPI对应的中断标志位和缓冲器满标志位均置1。当允许使用从控制器片选引脚时,该引脚低电平时允许通信操作。该引脚接高时,器件禁止工作,并且其串行输出引脚呈高阻状态。这就允许多个从属设备在网络中连接在一起(如图6.1所示),尽管同时只能选择一个从属设备。,19,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,思考:假设主机的移位寄存器A中已存入11001010,从机的移位寄存器B中已存入11110000,则分别写出主机发出4个SCK及8个SCK时主机移位寄存器A和从机移位寄存器B中的内容。,20,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,思考:假设主机的移位寄存器A中已存入11001010,从机的移位寄存器B中已存入11110000,则分别写出主机发出4个SCK及8个SCK时主机移位寄存器A和从机移位寄存器B中的内容。解答:当主机发出4个SCK时移位寄存器A和移位寄存器B中的内容分别为10101111及00001100;当主机发出8个SCK时移位寄存器A和移位寄存器B中的内容分别为11110000及11001010;,21,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,6.1.4MCS51系列单片机的SPI模拟早期的单片机(如MCS51系列单片机)不带SPI,而新型的高性能IO芯片等又常以SPI作为接口(如第3章介绍的ADS1274/8),此时可以通过采用单片机的I/O口辅以软件的方式来模拟SPI时序(软件SPI)。图6.4为采用SPI的接口芯片分别与带SPI和不带SPI的两种MCU的连接方式示意。,22,高等教育出版社,普通高等教育“十一五”国家级规划教材,对于在SCLK的上升沿输入(接收)数据和在下降沿输出(发送)数据的器件(接口芯片),用于模拟串行时钟输出SCLK的I/O口线(如图中的P1.1)的初始状态应设置为1,在接口芯片允许接收后,置为0(产生下降沿)。SCLK的下降沿,使接口芯片移位寄存器中的数据通过其SDO串行输出1位数据,MCS51单片机随后读取IO3(P1.3,用于模拟MCU的MISO(或主机SDI)线)的状态。此后,使MCS51系列单片机从P1.0(模拟MCU的MOSI(或主机SDO)线)输出1位数据(先为高位),然后再置P1.1为1(产生1个SCLK上升沿),将主机输出数据移入串行接口芯片的移位寄存器中。至此,模拟了1位数据输入/输出的过程。此过程循环8次,实现1次SPI总线传输8位数据的操作。,23,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,对于在SCLK的下降沿输入数据和上升沿输出数据的器件(接口芯片):串行时钟SCLK(P1.1)输出的初始状态置0,在接口芯片允许后,再置为1,产生上升沿,外围接口芯片的SDO输出1位数据,MCU读IO3(P1.3)的状态,接收l位数据。之后,IO0(P1.0)输出1位数据后,再置时钟(P1.1)为0,产生下降沿,使外围接口芯片通过其SDI接收1位数据(MCU发送1位数据),从而完成l位数据的传送。至此,模拟了1位数据输入/输出的过程。此过程循环8次,实现1次SPI总线传输8位数据的操作。,24,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,假设图6.4中右图所示的“不带SPI的MCU”为MCS51系列单片机而“接口芯片”为存储器X25F008(E2PROM)。图中:单片机的P1.0模拟MCU的SPI接口的数据输出端MOSI;P1.1模拟MCU的SPI接口的SCLK输出端;P1.2模拟MCU的SPI接口的从机选择端;P1.3模拟MCU的SPI接口的数据输入端MISO。下面介绍用MCS51单片机的汇编语言实现SPI串行输入、串行输出和串行输入/输出的3个子程序。,25,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,(1)MCU串行输入子程序SPIINMCU从X25F008(E2PROM)的SPISO(MISO)线上接收8位数据并放入寄存器R0中的子程序如下:SPIIN:SETBP1.1;使P1.1(时钟SCLK)输出为1CLRPl.2;从机选择端有效,选择从机MOVR1,#08H;置循环次数(8次传送1字节)SPIIN1:CLRPl.1;使P1.1(时钟SCLK)输出为0(产生下降沿)NOP;延时(使SCLK的频率不至于过高)NOPMOVC,P1.3;从机下降沿通过SPISO输出的1位信息送进位CRLCA;左移至累加器ACCSETBP1.1;使P1.1(时钟)为1,为再次产生下降沿作准备DJNZR1,SPIIN1;判断是否循环8次,8位数据未送完转SPIIN1MOVR0,A;8位数据传送完,数据存R0,完成1字节数据输入RET,26,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,(2)MCU串行输出子程序SPIOUTMCU将MCS51单片机R0寄存器中的内容通过X25F008的SPISI(MOSI)线输入到X25F008的程序如下:SPIOUT:SETBP1.1;使P1.1(时钟)输出为1CLRPl.2;选择从机MOVR1,#08H;置循环次数(8次传送1字节)MOVA,R0;要传送的8位数据从R0取入累加器ACCSPIOUT1:CLRPl.1;使P1.1(时钟)输出为0(为产生上升沿准备)NOP;延时(使SCLK的频率不至于过高)NOPRLCA;左移,累加器ACC最高位至进位位CMOVP1.0,C;进位位C输出至P1.0(即从机输入SPISI线)SETBP1.1;使P1.1(时钟)为1(产生上升沿,从机输入)DJNZR1,SPIOUT1;判是否循环8次,8位数据未送完转SPIOUT1RET;8位数据传送完,返回,27,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,(3)MCU串行输入/输出子程序SPIIO将51单片机R0寄存器的内容通过SPISI传送到X25F008,同时从X25F008的SPISO接收8位数据的程序如下:SPIIO:SETBP1.1;使P1.1(时钟)输出为1CLRPl.2;选择从机MOVR1,#08H;置循环次数,1个字节8位MOVA,R0;MCU要发送的8位数据送累加器ACCSPIIO1:CLRPl.1;使P1.1(时钟)为0(产生下降沿,接口输出数据)NOP;延时NOPMOVC,P1.3;从机SPISO输出的1位数据送至进位C(完成输入)RLCA;输入数据左移至ACC,输出数据最高位至CMOVP1.0,C;进位C送至SPISI引脚SETBP1.1;使P1.1(时钟)为1(产生上升沿)引脚状态输入至芯片;完成输出DJNZR1,SPIIO1;判断是否循环8次,8位数据未送完转SPIIO1RET,28,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,上面这些子程序也适用于在串行时钟的上升沿输入和下降沿输出的其他各种串行外围接口芯片(如A/D转换芯片、网络控制器芯片、LED显示驱动芯片等)。对于下降沿输入、上升沿输出的SPI外围接口芯片,只要改变P1.1的输出电平顺序(即先置P1.1为低电平,之后再次置P1.1为高电平,再置P1.1为低电平,),这些子程序也同样适用。,29,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,6.2内部集成(I2C)总线内部集成(InterIntegratedCircuit,I2C)总线是Philips公司首先推出的芯片间串行传输总线。I2C总线通过串行数据线SDA和串行时钟线SCL这两个信号线就可实现完善的半双工同步数据传输,可非常方便地用来将微控制器和外围器件连接起来构成一个系统。以Philips公司为主的许多半导体公司提供种类繁多的带有I2C硬件接口的单片机和通用外围器件,如RAM、EEPROM、NVRAM(Non-VolatileRandomAccessMemory)、I/O端口、ADC、DAC、日历/时钟、LED驱动器、LCD驱动器、温度传感器等。,30,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,另外,还开发了面向一些特殊应用系统中专用的配套I2C总线芯片,如无线电、无绳电话机、移动手机、电视机、音响系统、家庭影院等系统中的双音多频(DTMF)拨号器、语音合成器、数字调谐器、编码器、解码器、图像处理器、频率合成器等。,31,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,自1980年Philips公司首创I2C总线规范以来,经历了V1.0、V2.0和V2.1几个版本。I2C总线最初是按100kb/s速率设计的,被称作标准模式(S模式),用于低速通信(例如简单控制和状态信号检测等)。至1992年推出了升级版本,速率达400kb/s,被称作快速模式(F模式)。1999年又推出了高速模式(Hs模式),速率高达3.4Mb/s,可以用于开发大容量高速的串行RAM、EEPROM或FLASH存储器以及速度不断增加的其他应用(如图像显示的LCD驱动器的串行传输及高速数字IC与模拟器件之间的数据传输等)。,32,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,6.2.1I2C总线的特点I2C总线的串行通信的特点主要体现在如下几个方面:(1)总线上所有结点,其SDA和SCL引脚的输出驱动级电路都是一只集电极开路的三极管(或漏极开路的场效应管),通过接有上拉电阻的各SDA和各SCL都分别挂接到SDA和SCL两条信号线上,连接成线与逻辑关系。(2)系统中主控制器对于其他任何结点的寻址不再像SPI那样需要连接专用片选线的方法,而是采用纯软件的方法,从而使总线只需两根信号线。(软件寻址),33,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,(3)采用互控通信方式且控制信号种类多:在一次通信中,通信双方频繁交换控制信息和状态信息。信息不仅包括常规的时钟、数据、地址,还包括启动信号、停止信号、重启动信号、方向信号、应答信号等。(4)总线所挂接的所有外围器件一般均拥有一个专用的7位从器件地址码供主控制器寻址识别。总线兼容7位寻址和10位寻址两种模式。(5)所有采用I2C总线接口的外围器件,都具有自动应答功能,即具有产生应答信号的能力。,34,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等育“十一五”国家级规划教材,(6)总线具备时钟同步机制,可以方便地对挂接到同一总线上的、工作速度不同的各个器件进行同步控制。(7)对于片内有多个单元地址的I2C总线外围器件(如E2PROM),在对若干个相邻单元的数据(常被称为数据串或数据块)进行访问时,具有地址自动加1的逻辑功能,从而实现自动读/写多个字节的功能。(8)可方便地构成多主机系统。各主机间无优先级差别,也无中心主机,任一主器件结点都可以作为整个系统的主控制器。多机竞争总线时,时钟同步和总线仲裁由硬件自动完成。(9)挂接到总线上的各个结点可以使用各自独立的、电压值不同的电源供电,但必须共地。总线上各个结点可以热插拔。,35,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,(10)总线具有广播寻址能力,利用一个通用地址码能同时呼叫挂接到I2C总线上的所有被控器件。(11)总线中除可以挂接带有I2C总线硬件接口的单片外围器件外,还可以通过I2C总线并行扩展器(PCF8574)、I2C总线/并行协议转换器(PCD8584)或者软件模拟方式挂接不带I2C总线接口的单片机、微处理器或DSP。(12)I2C总线不仅可以广泛地用作电路板级连接各器件的总线,还可以通过I2C总线双向驱动器(82B715)进行不同系统之间的远程通信。,36,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,6.2.2I2C总线的基本工作原理1、I2C术语和概念在描述I2C总线时用到一些专用术语和概念,说明如下。(1)器件结点、主器件结点和外围器件结点I2C总线系统中,以共同挂接的I2C总线作为通信手段的每个器件(或组件),均构成I2C总线的一个器件结点(简称结点)。依据结点器件是否带有智能,可以将总线上的结点分为主器件结点和外围器件结点两种:可以对I2C总线实施主动控制功能的、内部带有CPU的智能结点,例如MCU、MPU和DSP等,称为主器件结点。不能对I2C总线实施主动控制功能的、内部不带CPU的非智能结点,例如ADC、DAC、RAM、EEPROM、RTC、LED或LCD驱动器等,称为外围器件结点。,37,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,(2)主控器和被控器在I2C总线系统工作过程中,当某一个主器件结点实施对总线的主动控制时,就把此时的这个主器件称作主控器。主控器只能由主器件结点胜任。在一次通信过程中,由主控器负责向总线上发送启动信号、同步时钟信号、被控器件地址码、重启动信号和停止信号等。在I2C总线系统工作过程中,被动受控的器件称作被控器。被控器既可以由主器件结点充当,也可以由外围器件结点充当。在一次通信过程中,被控器总是被主控器寻址、接收来自主控器的同步时钟,但是也可以向时钟线插入等待时间。,38,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,(3)发送器和接收器向I2C总线上发送信息(可以是地址字节或数据字节)的器件,称为发送器。它既可以由主控器,也可以由被控器充当。从I2C总线上接收信息(可以是地址字节或数据字节)并且向发送器反馈应答信号的器件为接收器。它既可以由主控器,也可以由被控器充当。,39,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,(4)总线冲突和总线仲裁I2C总线系统中,可同时挂接多个主器件结点,但在某一时刻只能有一个主控器管理总线。(当某一个主器件结点实施对总线的主动控制时,就把此时的这个主器件称作主控器)如果在系统中同时存在两个或两个以上的主器件结点企图控制总线,则形成总线冲突状态。由于I2C总线系统引入了时钟同步和总线仲裁机制,即使出现总线冲突也不会造成信息丢失。检测总线冲突的具体方法是:主控器在经过开漏管向SDA线发送高电平的同时,经过同相器采样SDA线上的电平,应该得到与自身发送相匹配的高电平;否则,就表明还有其他主器件也在驱动I2C总线。在发生总线冲突时,为避免信息丢失,就需要对总线的控制权进行裁决。,40,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,I2C总线主控权的仲裁有一套规约。总线被启动后多个主控器在每发送一个数据位时都要对自己的输出电平进行检测,只要检测的电平与自己发出的电平相同,就会继续占用总线。假设主控器A要发送的数据为“1”;主控器B要发送的数据为“0”,由于“线与”的结果使SDA上的电平为“0”,主控器A检测到与自身不相符的“0”电平,放弃对总线的控制权。由仲裁机制可以看出:总线控制遵循“低电平优先”的原则;主控器通过检测SDA上自身发送的电平来判断是否发生总线仲裁。即I2C总线的“总线仲裁”是靠器件自身接口的特殊结构实现的。裁决的结果只能允许其中一个主器件成为主控器,接管总线或者继续占用总线。(这套规约似曾相识?),41,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,(CAN总线CAN总线使用“载波监测,多主掌控/冲突避免”(CSMA/CA)的通信模式:当总线空闲呈隐性电平时,任一节点都可以向总线发送一个显性电平作为一个帧的开始。若有两个或以上的节点同时发送,就会产生竞争。CAN总线解决总线竞争的方法是按位对标识符进行仲裁:各发送节点在向总线发送电平的同时,也对总线上的电平进行读取,并与自身发送的电平进行比较,如果电平相同则继续发送下一位,不同则停止发送,退出总线竞争。剩余的节点则继续上述过程,直到总线上只剩下一个节点发送的电平。总线竞争结束,优先级最高的节点获得总线的使用权。),42,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,(5)时钟同步串行时钟信号线SCL上的时钟脉冲虽然是由主控器发送用于驱动被控器的,但是,当被控器希望降低时钟速率或者插入等待时间时,可以通过将SCL线上的电平拉低,并且保持一定的时长来达到这一目的。(“线与”)这样,主控器也能够接受被控器的时钟同步控制。实际上,时钟同步是由连接到SCL线上的所有器件进行线与实现的,只要有一个器件向SCL输出低电平,则SCL就是低电平;只有所有器件都向SCL输出高电平,SCL才会呈现高电平。由此可见,SCL线的低电平时间由时钟低电平期最长的器件决定,而SCL线的高电平时间由时钟高电平期最短的器件决定,这就形成了时钟的同步。,43,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,2、I2C总线的基本工作原理在I2C总线上进行数据传输过程中,主控器和被控器总是扮演两个相反的角色,并且在一次通信中一般不发生角色转换:主控器为发送器(称主控发送器),被控器为接收器(称被控接收器);主控器为接收器(称主控接收器),被控器为发送器(称被控发生器)。,44,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,在I2C总线的数据传输过程中,数据操作开始和结束过程中有两个特定的情况分别定义为“开始”条件和“停止”条件,记为“S”(START)和“P”(STOP)(均由主控器产生):,当SCL保持高,SDA由高变低时为“开始”条件,当SCL保持高,SDA由低变为高时为“停止”条件,45,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,SDA线上的数据在时钟高期间必须是稳定的,只有当SCL线上的时钟信号为低时,数据线上的高或低状态才可以改变。输出到SDA线上的每个字节必须是8位的,每次传输的字节数不受限制。,46,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,连续发送(接收)3字节的通信过程的信号时序如图6.6所示。图6.6(a)中各符号的含义如下:SSTART,“开始”条件;PSTOP,“停止”条件;SLASLA6SLA0,7位被控器地址;R/W数据方向位(读/写);AACK,确认信号(1位);NNACK,非确认信号。,在图6.6(c)中,从器件的地址高4位是固定的1010,后3位A2A1A0才是真正的从器件地址。,47,高等教育出版社,普通高等教育“十一五”国家级规划教材,(,结合图6.6说明在I2C总线上进行一次通信过程中的一些规律:(1)通信由主控制器发起,并且是以发送启动信号(START)和停止信号(STOP)来分别掌管总线和释放总线。(2)每次通信过程都以启动信号开始,以停止信号结束。(3)主控器在启动信号后面紧接着发送一个地址字节(其中包括7位被控器地址码SLA6SLA0和1位读/写控制位R/W)。读/写控制位R/W(亦称方向位)用于通知被控器数据传送的方向,0表示这次通信是由主控器向被控器写数据(W),1表示这次通信是主控器从被控器读数据(R)。(4)传送的数据字节数没有限制,可以只发送单字节的数据,也可以批量传输,每个数据字节在传送时都是高位(MSB)在前。,48,高等教育出版社,普通高等教育“十一五”国家级规划教材,(,(5)每传送一个地址字节或数据字节共需9个时钟脉冲,其中第18个时钟脉冲对应的是由发送器向接收器发送的信息,而第9个脉冲对应的是由接收器向发送器反馈的一个应答位ACK,即在第9个时钟周期时将SDA线拉低,表示其已收到一个8位数据。所有挂接到I2C总线上的被控器件都接收启动信号后的地址字节并且把接收到的7位地址码与自己的地址进行比较,若相符即为主控制器寻址的被控器,并在第9个时钟脉冲期间反馈应答信号(ACK)。(6)需注意的是,当主控器作为接收器时,在接收完最后一个字节后,不再发送确认信号ACK,即在最后一字节数据的第9个时钟周期时将SDA线拉为高,这在I2C总线中称之为非确认信号NACK。,49,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,(,(7)特别强调的是:任何时刻SDA上的数据只有在SCL“低”时才可以改变,否则I2C总线会将正常数据的改变误认为“开始”条件或“停止”条件(因为这两个条件的必要条件是SCL保持高)。,50,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,(,6.2.3I2C总线的数据传输方式I2C接口可以被配置为工作在主方式和/或从方式。在某一时刻,它将工作在这4种方式中的一种:主发送器、主接收器、从发送器或从接收器。下面以中断方式驱动的I2C总线为例说明这4种工作方式。,51,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,(,1、主发送器方式(从接收器)图6.7所示的是典型的主发送器时序。在SDA上发送串行数据,在SCL上输出串行时钟。I2C主发送器首先产生一个起始条件,然后发送含有目标从器件地址和数据方向位的第一个字节。此时,数据方向位(R/W)为逻辑0,表示这是一个“写”操作。I2C总线主发送器发送一个或多个字节的串行数据,并在每发送完一个字节后等待由从器件产生的确认信号(ACK)。最后,为了指示串行传输的结束,I2C总线产生一个停止条件。,被控器产生的信号,主控器产生的信号,图6.7典型的主发送器时序,52,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,(,2、主接收器方式(从发送器)典型的主接收器时序:I2C主接收器首先产生一个起始条件,然后发送含有目标从器件地址和数据方向位的第一个字节。此时,数据方向位(R/W)应为1,表是“读”操作。主接收器接收来自从器件的串行数据并在SCL上输出串行时钟。每收到一个字节,主接收器产生一个确认信号ACK,在接收完最后一个字节数据后,主接收器将产生一个非确认信号NACK。最后,为了指示串行传输的结束,产生一个停止条件。,被控器产生的信号,主控器产生的信号,当主控器作为接收器时,在接收完最后一个字节后,不再发送确认信号ACK,即在最后一字节数据的第9个时钟周期时将SDA线拉为高,这在I2C总线中称之为非确认信号NACK。,53,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,(,6.2.4MCS51系列单片机的I2C总线模拟对带有I2C总线硬件接口的单片机(如CYGNAL的C8051F0XX系列、PHILIPS的87LPC7XX系列、MICROCHIP的PIC6XX系列等)而言,单片机通过I2C总线与带有I2C总线硬件接口的器件的连接非常方便,如下图示(在SCL和SDA线上要接上拉电阻)。,按总线方式连接,54,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,(,在选定合适的I2C总线接口器件之后,主要是编写作为主器件的嵌入式处理器的数据传输程序。由于处理器芯片中内置了I2C总线控制器,I2C总线在主器件和从器件之间进行数据传输之前,必须根据要求设置处理器芯片中相应的I2C的有关功能寄存器,一般包括:I2C总线控制寄存器;I2C总线状态寄存器;I2C总线地址寄存器;I2C总线接收/发送数据移位寄存器等。,55,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,(,MCS-51单片机不带I2C接口,可用单片机I/O端口中的2个I/O口线模拟I2C总线的SCL和SDA,然后用软件来模拟I2C的总线操作。下面以不带I2C总线的MCS-51系列单片机扩展一片采用I2C总线接口的64K字节E2PROM芯片24C512为例,说明MCS-51系列单片机I2C总线的模拟。图6.9为AT89C2051与24C512通过I2C总线连接的接口电路。,56,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,图6.9AT89C2051与24C512的接口电路,57,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,与图6.9对应的应用程序如下(因24C512的存储容量为64KB,因此软件采用DPTR间接寻址)。SCLEQUP1.1;P1.1模拟SCLSDAEQUP1.0;P1.0模拟SDAFADDREQU0A0H;24C512控制字(为什么是0A0H?);*,58,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,;发启动信号START:SETBSDA;置SDA为高SETBSCLJNBSDA,START;等待稳定,起始条件锁定时间大于4usJNBSCL,START;等待稳定,起始条件建立时间大于4.7usCLRSDA;当SCL保持高,SDA由高变为低时,;为“开始”条件,发出START信号;(开始和停止条件由主控器产生);可对I2C总线实施主动控制功能的、内部带有CPU的智能结点,;例如MCU、MPU和DSP等,称为主器件结点。;当某一主器件结点对总线实施主动控制时,这个主器件称作主控器。CLRSCL;锁住总线,准备发数据;SCL为低时,数据线状态才可改变RET;*,59,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,;发停止信号STOP:CLRSDA;置SDA为低NOPNOPSETBSCL;发送结束条件的时钟信号为高NOPNOPSETBSDA;SCL保持高,SDA由低变为高时为“停止”条件,;结束总线(开始和停止条件由主控器产生)RET;*,60,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,;确认信号程序MACK:CLRSDA;已收到一个8位数据,第9个脉冲时置SDA为低NOPNOPSETBSCL;发应答信号时钟脉冲,SCL为高,SDA稳定不变;(SDA线上的数据在时钟高期间必须是稳定的,只有当SCL线上的时;钟信号为低时,数据线上的高或低状态才可以改变)NOPNOPCLRSCL;锁住总线RET;*;每传送一个地址字节或数据字节共需9个时钟脉冲,其中第18个时钟;脉冲对应的是由发送器向接收器发送的信息,;而第9个脉冲对应的是由接收器向发送器反馈的一个应答位ACK,;即在第9个时钟周期时将SDA线拉低,表示其已收到一个8位数据。,61,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,;非确认信号程序NMACK:SETBSDA;第9个脉冲时置SDA为高NOPNOPSETBSCL;发应答信号时钟脉冲,SCL为高,SDA稳定不变NOPNOPCLRSCL;锁住总线RET;*;当主控器作为接收器时,在接收完最后一个字节后,不再发送确认信号ACK,即在最后一字节数据的第9个时钟周期时将SDA线拉为高,这在I2C总线中称之为非确认信号NACK。,62,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,;检查确认位子程序CACKCACK:SETBSDA;置SDA为高,释放总线(线与,总线不受控制)NOPNOPSETBSCL;发出时钟脉冲,读入确认位(数据锁定,SDA线上;的数据在时钟高期间必须是稳定的,只有当SCL线;上的时钟信号为低时,数据线上的高或低状态才;可以改变)NOPNOPMOVC,SDA;确认位(ACK位)移入进位标记CCLRSCL;锁定时钟(线与,时钟为0)JCCAKC;判断确认位,为高,非ACK位,继续判断RET;为低即ACK位;*,63,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,;从24C512中移出8位数据程序,A读出的数据SHIN:PUSHB;保护寄存器BMOVB,#8;设置循环次数SHIN1:SETBSDA;置SDA为高,释放总线(线与)NOPNOPSETBSCL;发出时钟脉冲,读出一位数据(数据锁定)NOPNOPMOVC,SDA;数据移入进位标记RLCA;数据移入累加器ACLRSCL;锁定时钟(线与,时钟为0)DJNZB,SHIN1;8位数据没读完,跳转POPB;恢复寄存器BRET;*,64,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,;向24C512移入8位数据程序;A被写数据SHOUT:PUSHB;保护寄存器BSHOUT1:MOVB,#8;设置循环次数SHOUT2:RLCA;累加器最高位移入进位标记CMOVSDA,C;数据送出数据口线NOPNOPSETBSCL;发出时钟脉冲,写入一位数据(数据锁定)NOPNOPCLRSCL;锁定时钟(线与,时钟为0);SDA线上的数据在时钟高期间必须稳定,只有当时钟信号SCL为低时,;数据线上的高或低状态才可以改变。DJNZB,SHOUT2;8位数据未写完,跳转POPBRET;*,65,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,;向24C512写一字节数据(主发送器方式(从接收器));DPTR被写数据地址;A被写数据WR_BYTE:PUSHACC;保护被写数据LCALLSTART;调发出启动信号子程序MOVA,#FADDR;24C512控制字(内容开始时已定义)LCALLSHOUT;调前述向24C512移入8位数据子程序;写入24C512控制字(以下同)LCALLCACK;检查确认信号(以下同)MOVA,DPH;被写数据的高8位地址LCALLSHOUTLCALLCACKMOVA,DPL;被写数据的低8位地址LCALLSHOUTLCALLCACKPOPACC;恢复被写数据LCALLSHOUT;写入数据LCALLCACKLCALLSTOP;调发出停止信号子程序RET;*,66,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,;从24C512读一字节数据(主接收器方式(从发送器));DPTR被读数据的地址;A读出的数据RD_BYTE:LCALLSTART;调发出启动信号子程序MOVA,#FADDR;24C512控制字(从设备地址等字节)LCALLSHOUT;调前述向24C512移入8位数据子程序LCALLCACK;检查确认信号(以下同)MOVA,DPH;被读数据的高8位地址LCALLSHOUTLCALLCACKMOVA,DPL;被读数据的低8位地址LCALLSHOUTLCALLCACKLCALLSTART;重新输出启动信号,改变数据方向MOVA,#FADDR;24C512控制字SETBACC.0;设置数据方向为“读”LCALLSHOUTLCALLCACKLCALLSHIN;调从24C512中移出8位数据子程序LCALLNMACK;返回非确认信号LCALLSTOP;调发出停止信号子程序RET;*,67,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,(,6.3RS-232标准和RS-422/485标准来源:RS-232是美国电子工业协会(EIA,ElectronicIndustryAssociation)制定的串行数据通信的接口标准,原始编号全称是EIA-RS-232(简称232,RS232)。RS(Recommendedstandard)代表推荐标准,232是标识号。新版本是由美国电信工业协会(TIA,TelecommunicationsIndustryAssociation,由EIA所分出的一个组织)所发布的TIA-232-F。它同时也是美国国家标准ANSI/TIA-232-F-1997(R2002),此标准于2002年受到再确认。在1997年由TIA/EIA发布,当时的编号是TIA/EIA-232-F与ANSI/TIA/EIA-232-F-1997。,68,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,普通高等教育“十一五”国家级规划教材,(,在自动化测控系统中,RS-232标准是各仪器仪表间进行信息交换时使用最早、最广的一种串行通信标准。由于该标准协议简单、使用方便、成本低廉,因此一直沿用至今。RS-422/485标准由RS-232标准发展而来,它弥补了RS-232标准的主要不足。,69,智能仪器原理与设计-朱欣华、邹丽新、朱桂荣编著,高等教育出版社,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论