SPI和IIC详解_第1页
SPI和IIC详解_第2页
SPI和IIC详解_第3页
SPI和IIC详解_第4页
SPI和IIC详解_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、串行总线扩展技术 SPI和I2C2013级电路与系统 ZACK1SPI总线SPI是英语 Serial Peripheral interface 的缩写,含义为串行外围设备接口。它是由 Motorola 公司开发的、用来在微控制器和外围设备芯片之间实现数据交换的低成本、易使用的接口。被广泛应用 于 EEPROM, FLASH,实时时钟,AD 转换器,还有数字信号处理器和数字信号解码器之间。与标准的USART串行接口不同,SPI 是一个同步协议同步协议接口,具有全双全双工通信工通信的特性。SPI总线上所有的传输都参照一个共同的时钟,这个同步时钟信号由主设备产生。接收数据的从设备使用时钟对串行比特流

2、的接收进行同步化。2SPI总线协议四条信号线:MISO(主机输入/从机输出)MOSI(主机输出/从机输入)SCLK(串行时钟)CS或SS (外设片选或从机选择)特点:全双工(输入/输出独立)同步(带有时钟线)物理结构简单灵活性强3SPI接口硬件原理SPI在硬件上可以看做是一个16位的环形移位寄存器,其中8位位于主设备中,另外8位位于从设备中。每一次读写操作都会使主设备和从设备中的8位数据完成一次互换!4SPI接口时序四种可选模式调整相位关系:CPOL用来决定SCK时钟信号空闲时的电平,CPOL0,空闲电平为低电平,CPOL1时,空闲电平为高电平。CPHA是用来决定采样时刻的,CPHA=0,在每

3、个周期的第一个时钟沿采样,CPHA1,在每个周期的第二个时钟沿采样。5SPI连接举例67SPI缺点:没有应答机制确认是否接收到数据例:MCU与LCD之间的单线模式通信由于缺少应答机制,MCU将一直无法确认LCD是否收到了数据8解决方案:增加应答线增加应答线可以使得该协议更加完善,但也增加了额外的硬件开销,且并不适用于接口已经固化的设备(例如前面提到的LCD,或者已经集成好的AD、FLASH等芯片),但在主机和从机都是MCU的情况下,增加一个引脚则并不是什么大问题。9抗干扰措施SPI采用的是单端非平衡单端非平衡的传输方式,传输的数据位的电压电平是以公公共地共地作为参考的。在这种传输方式中,对于已

4、进入信号中的干扰是无法消除和减弱的。且信号在传输过程中总会受到干扰,而且距离越长干扰越严重,以至于信号传输产生错误。解决方案采用平衡传输方案(例如:转换为LVDS模式传送)使用瞬时电压抑制器(TVS管)STM32的SPI接口3线全双工同步传输带或不带第三根双向数据线的双线单工同步传输8或或16位位传输帧格式选择主或从操作支持多主模式8个主模式波特率预分频系数(最大为fPCLK/2) 从模式频率(最大为fPCLK/2) 主模式和从模式的快速通信主模式和从模式下均可以由软件或硬件进行NSS管理:主/从操作模式的动态改变可编程的时钟极性和相位可编程的数据顺序可编程的数据顺序,MSB在前或LSB在前可

5、触发中断的专用发送和接收标志SPI总线忙状态标志支持可靠通信的硬件CRC 可触发中断的主模式故障、过载以及CRC错误标志支持支持DMA功能功能的1字节发送和接收缓冲器:产生发送和接受请求1011控制寄存器SPI_CR1BIDIMODEBIDIOERXONLY工作模式工作模式0X0全双工0X1单向只接收11X双向、发送10X双向、接收Attention:1)BIDIMODE为1时工作在单线双向单线双向模式,为0时工作在双线双向双线双向模式;2)BIDIOE只在单线模式单线模式下有用,RXONLY只在双线模式双线模式下有用。12控制寄存器SPI_CR1CRCEN: 硬件CRC检验使能CRCNEXT

6、: 下一个发送CRCDFF: 数据帧格式设置SSM: 软件从设备管理SSI: 内部从设备选择LSBFIRST: 发送帧格式 SPE: SPI使能BR2:0: 波特率控制MSTR: 主/从设置CPOL/CPHA: 时钟极性/相位 13控制寄存器SPI_CR214中断使能设置:TXEIE: 发送缓冲区空中断使能RXNEIE: 接收缓冲区非空中断使能ERRIE: 错误中断使能DMA使能设置:TXDMAEN: 发送DMA使能RXDMAEN: 接收DMA使能SSOE:SS输出使能。若设备处于多主设备模式,该位必须置为0,此时SS的功能可由通用I/O口来替代。15状态寄存器SPI_SRBSY: 忙标志OV

7、R: 溢出标志MODF: 模式错误CRCERR: CRC错误标志UDR: 下溢标志位CHSIDE: 声道TXE: 发送缓冲为空RXNE: 接收缓冲为空其中,标志位UDR和CHSIDE只在I2S音频协议下有意义,此处不做讨论。16数据寄存器(SPI_SR)CRC多项式寄存器(SPI_CRCPR)17接收CRC寄存器(SPI_RXCRCR)发送CRC寄存器(SPI_TXCRCR)18SPI中断中断响应函数 Void SPIx_IRQHandler(void) ;19SPI配置流程(1)配置引脚复用功能 i) 使能spi时钟; ii)设置引脚复用(2)设置工作模式 i) 主/从设置 ii) 数据格式

8、设置 iii)时钟极性/相位设置 iv)单线/双线模式、接收/输出模式 v) CRC设置 vi) 中断/DMA设置(3)使能SPI,开始工作20初始化函数21发送/接收函数测试外设:W25X16(16Mb FLASH)void SPI_Flash_Write(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite)void SPI_Flash_Read(u8* pBuffer,u32 ReadAddr,u16 NumByteToRead)22主函数23执行结果24I2C总线I2C(InterIntegrated Circuit)总线是由PHILIPS公司开发的

9、两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。I2C通过串行数据(SDA)线和串行时钟 (SCL)线在连接到总线的器件间传递信息。每个器件都有一个唯一的地址识别(无论是微控制器MCU、LCD 驱动器、存储器或键盘接口),而且都可以作为一个发送器或接收器(由器件的功能决定)。25I2C总线特点1、只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;2、每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主

10、机发送器或主机接收器;3、它是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏;4、串行的8 位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s;5、连接到相同总线的IC 数量只受到总线的最大电容400pF 限制。26I2C总线协议I2C的起始和停止条件/产生IIC起始信号void IIC_Start(void) SDA_OUT(); /sda线输出 IIC_SDA=1; IIC_SCL=1; delay_us(4); IIC_SDA=0; /START:when CLK i

11、s high,DATA change form high to low delay_us(4); IIC_SCL=0; /钳住I2C总线,准备发送或接收数据 /产生IIC停止信号void IIC_Stop(void) SDA_OUT(); /sda线输出 IIC_SCL=0; IIC_SDA=0; /STOP:when CLK is high DATA change form low to high delay_us(4); IIC_SCL=1; IIC_SDA=1; /发送I2C总线结束信号 delay_us(4);27I2C数据的有效传输条件I2C总线协议/发送一个字节数据void IIC

12、_Send_Byte(u8 txd) u8 t; SDA_OUT(); IIC_SCL=0; /拉低时钟开始数据传输 for(t=0;t7; txd=1; delay_us(2); IIC_SCL=1; delay_us(2); IIC_SCL=0; delay_us(2); u8 IIC_Read_Byte(unsigned char ack) /接收一个字节 unsigned char i,receive=0; SDA_IN(); /SDA设置为输入 for(i=0;i8;i+ ) IIC_SCL=0; delay_us(2); IIC_SCL=1; receive=1; if(READ_SDA) receive+; delay_us(1); if (!ack) IIC_NAck(); /发送nACK else IIC_Ack(); /发送ACK return receive;28I2C总线数据传输和应答I2C总线协议I2C应答机制:数据传输必须带响应,相关的响应时钟脉冲由主机产生。在响应的时钟脉冲期间发送器释放SDA 线(高)。在响应的时钟脉冲期间,接收器必须将SDA 线拉低,使它在这个时钟脉冲的高电平期间保持

温馨提示

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

评论

0/150

提交评论