需要牢记的SPI总线知识
2016-07-20 11:04
344 查看
SPI总线
SPI是摩托罗拉公司定义的一种串行外围设备接口。SPI总线主要应用于EEPROM、FLASH、实时时钟、AD转换器、还有数字信号处理器和数字信号解码器之间。SPI是一种高速的、全双工的同步通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便。SPI一般使用4条线通信
1、 MISO ————— 主设备数据输入、从设备数据输出
2、 MOSI ————— 主设备数据输出、从设备数据输入
3、 SCLK ————— 时钟信号、由主设备产生
4、 NSS(CS) ————– 从设备片选信号,由主设备控制
通信方式
SPI是单主设备通信协议,这意味着总线中只有一个中心设备能发起通信,当SPI主设备想读/写从设备时,它要拉低从设备对应的CS线(CS是低电平有效的)。主机和从机都有一个串行移位寄存器,主机通过向它的SPI串行寄存器写入一个字节来发起一次传输。寄存器通过MOSI信号线将字节传送给从机,实现“写”的功能。从机也将自己的移位寄存器中的内容通过MISO信号线返回给主机,实现“读”的功能。这样,两个移位寄存器中的内容就被交换,外设的写操作和读操作是同步完成的。如果只进行写操作,主机只需忽略接收到的字节;反之。若主机要读取从机的一个字节,就必须发送一个空字节来引发从机的传输。
SPI有四种操作模式,模式0、模式1、模式2、模式3。它们的区别是定义了在时钟脉冲的哪条边沿转换输出信号,哪条边沿采样输入信号,还有时钟脉冲的稳定电平值(就是时钟信号无效时是高还是低)。每种模式都由参数时钟极CPOL和时钟期CPHA刻画。
SPI的主从设备必须使用想用的工作参数,SLCK,CPOL,CPHA,才能正常工作,如果有多个从设备,并且它使用了不同的工作参数,那么主设备必须在读写不同从设备间重新配置这些参数。
硬件SPI和软件模拟SPI的区别有哪些?
硬件SPI的效率要比软件模拟SPI高,写程序的时候只要把要发的数据写在寄存器里,硬件就会自动给你发了,软件模拟SPI则需要器实现时钟的拉高拉低,数据串行输出等等。硬件SPI必须要处理器支持才可以用,软件SPI就不需要特定的要求了,一般IO口就可用
相关文章推荐
- 第17周 啊哈算法 图的遍历算法-最少转机
- Python layer
- 关于rem这个单位
- Entity framewok 如何实现多条记录作为一条取出, for xml path如何实现
- Tmux 的常用命令详解
- UVA 579-Clock Hands
- listview和gridView混用,点击失效问题
- win10和ubuntu双系统启动
- JDK1.7和JDK1.8新特性
- vector 中 erase 用法注意事项
- Scrapy安装指南(不需要安装Visual Studio和Mingw)
- 导mysql数据,遇到 longtext 类型,navicat导出会出现乱码
- UVA 10879-Code Refactoring
- poj 1190 ROADS
- Weird Shader Problem On OpenGLES 3.0
- redis数据类型Hash的常用命令
- 逻辑地址 虚拟地址 基地址 物理地址
- 冷血格斗场 (map)
- tmux入门 : 3. 会话
- sql server判断表是否存在