欢迎来到天天文库
浏览记录
ID:58883900
大小:373.00 KB
页数:42页
时间:2020-09-30
《I2C总线与SPI总线技术教程ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、总线技术I2C与SPI接口《小型智能电子产品设计与制作》总线总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。总线分类按照传输数据的方式划分,可以分为串行总线和并行总线。串行总线中,二进制数据逐位通过1根数据线发送到目的器件;并行总线的数据线通常超过2根。常见的串行总线有SPI、I2C、USB及RS232等。按照时钟信号是否独立,可以分为同步总线和异步总线。同步总线的时钟信号独立于数据,而异
2、步总线的时钟信号是从数据中提取出来的。SPI、I2C是同步串行总线,RS232采用异步串行总线。SCSI、ATA、PCI、IEEE1394总线技术指标总线的工作频率:以MHZ为单位,工作频率越高,总线工作速度越快,总线带宽越宽。总线的位宽:总线能同时传送的二进制数据的位数总线的带宽=总线的工作频率*总线的位宽/8注意:波特率是指数据信号对载波的调制速率,它用单位时间内载波调制状态改变的次数来表示,其单位是波特(Baud)。波特率与比特率(数字信号的传输速率bit/s)的关系是比特率=波特率X单个调制状态对应的二进制位数。。
3、异步通信字符格式:规定有起始位、数据位、奇偶校验位、停止位等(RS232485)数据传送方向概念单工方式:只允许数据按照一个固定的方向传送半双工方式:每次只能有一个站发送,另一个站接收全双工方式:允许通信双方同时进行发送和接收串行与并行总线对比与并行扩展总线相比,串行扩展总线能够最大程度发挥最小系统的资源功能、简化连接线路,缩小电路板面积、扩展性好,可简化系统设计。串行总线的缺点是数据吞吐容量小,信号传输较慢。但随着CPU芯片工作频率的提高,以及串行总线的功能增强,这些缺点将逐步淡化。SPI、I2C、1-Wire、RS2
4、32是目前单片机应用系统中最常用的几个串行总线接口。I2C总线I2C总线I2C(InterIntegratedCircuit)常译为内部集成电路总线,或集成电路间总线,它是由Philips公司推出的芯片间串行传输总线。使用2线实现数据通信。1根串行数据线(SDA)1根串行时钟线(SCL)I2C总线的基本特性1硬件结构上具有相同的硬件接口界面R:4.7K-5.1K-20k(DATASHEET)I2C总线的基本特性2在单主系统中,每个I2C接口芯片具有唯一的器件地址,各从器件之间互不干扰,相互之间不能进行通信。MCU与I2C器
5、件之间的通信是通过独一无二的器件地址来实现的。如果两个或更多主机同时初始化数据传输,可以通过冲突检测和仲裁防止数据被破坏。任何器件通过I2C总线与MCU进行数据传送的方式基本一样,决定了I2C总线软件编写的一致性。数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。I2C总线信息传送当I2C总线没有进行信息传送时,数据线(SDA)和时钟线(SCL)都为高电平(上拉)开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。结束信号:SCL为高电平
6、时,SDA由低电平向高电平跳变,结束传送数据。开始信号和结束信号之间传送的是信息,信息的字节数没有限制,但每个字节必须为8位,高位在前,低位在后。数据线SDA上每一位信息状态的改变只能发生在时钟线SCL为低电平的期间,因为SCL高电平的期间SDA状态的改变已经被用来表示开始信号和结束信号。每个字节后面必须接收一个应答信号(ACK),ACK是从控制器在接收到8位数据后向主控制器发出的特定的低电平脉冲,用以表示已收到数据。主控制器接收到应答信号(ACK)后,可根据实际情况作出是否继续传递信号的判断。若未收到ACK,则判断为从控
7、制器出现故障。读写操作主控制器每次传送的信息的第一个字节必须是器件地址码,第二个字节为器件单元地址,用于实现选择所操作的器件的内部单元,从第三个字节开始为传送的数据。其中器件地址码格式如下:D7D6D5D4D3D2D1D0器件类型码片选R/WI2C读写操作范例/*电平模拟函数和基本读写函数voidIIC_Start(void);voidIIC_Stop(void);voidSEND_0(void);voidSEND_1(void);bitCheck_Acknowledge(void);voidWrite_Byte(ucha
8、rb);bitWrite_N_Bytes(uchar*buffer,ucharn);bitRead_N_Bytes(ucharSlaveAdr,ucharn,uchar*buffer);ucharRead_Byte(void);*/sbitSCL=P1^6;sbitSDA=P1^7;voidDELAY(
此文档下载收益归作者所有