毕业论文

打赏
当前位置: 毕业论文 > 自动化 >

基于8051单片机的I2C和SPI总线仿真(2)

时间:2018-04-12 22:54来源:毕业论文
I2C总线是PHILIPS公司推出的一种具备多主机系统所需的包括裁判和高低速设备同步等功能的高性能串行总线。它会使用两条线:串行数据线(SDA)和串行时


I2C总线是PHILIPS公司推出的一种具备多主机系统所需的包括裁判和高低速设备同步等功能的高性能串行总线。它会使用两条线:串行数据线(SDA)和串行时钟线(SCL),使连接到该总线上可访问的器件之间传送信息,属于多主控制总线。总线上的每个器件都有唯一的地址识别,而且都可以作为一个发送器或接收器。由于I2C总线的使用是可以简化电路,省掉了很多常规电路中的接口器件,提高产品的可靠性,这一点在许多领域尤其在目前使用的IC卡获得了广泛的应用。
有迹象表明SPI总线首次推出是在1979年,摩托罗拉公司将SPI总线集成在他们第一支改自68000微处理器的微控制器芯片上。SPI总线是微控制器四线的外部总线(相对于内部总线)。与I2C不同,SPI没有明文标准,只是一种事实标准,对通信操作的实现只作一般的抽象描述,芯片厂商与驱动开发者通过data sheets和application notes 沟通实现上的细节。
同步串行外设接口(SPI)是由摩托罗拉公司开发的双工全同步串行总线,该总线大量用在与EEPROM、ADC、FRAM和显示驱动器之类的慢速外设器件通信。
SPI(Serial Peripheral Interface)是一种串行串行同步通讯协议,由一个主设备和一个或多个从设备组成,主设备启动一个与从设备的同步通讯,从而完成数据的交换。SPI 接口由SDI(串行数据输入),SDO(串行数据输出),SCK(串行移位时钟),CS(从使能信号)四种信号构成,CS 决定了唯一的与主设备通信的从设备,如没有CS 信号,则只能存在一个从设备,主设备通过产生移位时钟来发起通讯。通讯时,数据由SDO 输出,SDI 输入,数据在时钟的上升或下降沿由SDO 输出,在紧接着的下降或上升沿由SDI 读入,这样经过8/16 次时钟的改变,完成8/16 位数据的传输。
现今,8051系列的单片机应用很广,但是它们基本都没有I2C总线接口。但是分析I2C总线的时序可知, I2C总线规定其时钟线(SCL线)和和数据线(SDA线)是各设备对应输出状态相“与”的结果,任一设备都可以用输出低电平的方法延长SCL低电平时间,迫使高速设备进入等待的状态,实现不同速度设备间的时钟同步。因此,即使时钟脉冲的高、低电平时间长短不一,也能实现数据的可靠传送,因此我们可以通过软件控制单片机的普通I/O口做I2C接口,实现I2C总线功能。

1.1.1    课题开发意义
(1)    I2C协议
I2C有一个很重要的概念,就是“主—从”。对于从设备来说,它是啥都不干的,更不会自动发送数据;而主设备,则是起到控制作用,一切都是从它开始。
除了GND以外,I2C有两根线,分别是SDA和SCL,所有的设备都是接到这两根线上。那么,这些设备如何知道数据是发送给它们呢?这就得依靠前面所说到的地址了。设备I2C的地址是固定的,比如0x50,0x60等等。因为只能有127个地址,地址冲突是很常见的,所以一般设备都会有一个地址选择PIN,比如拉高时候为0x50,接地为0x60。如果都不行,就只有换芯片了。
一.I2C总线的寻址
I2C总线协议有明确的规定:采用7位的寻址字节(寻址字节是起始信号后的第一个字节)。
(1)    寻址字节的位定义(如表1.1所示)
表1.1    i2c寻址字节定义
 
D7~D1位组成从机的地址。D0位是数据传送方向位,为“0”时表示主机向从机写数据,为“1”时表示主机由从机读数据。
主机发送地址时,总线上的每个从机都将这7位地址码与自己的地址进行比较,如果相同,则认为自己正被主机寻址,根据R/位将自己确定为发送器或接收器。 基于8051单片机的I2C和SPI总线仿真(2):http://www.youerw.com/zidonghua/lunwen_13089.html
------分隔线----------------------------
推荐内容