【精选】使用MCU的GPIO模拟SPI使用MCU的GPIO模拟SPI.pdf

【精选】使用MCU的GPIO模拟SPI使用MCU的GPIO模拟SPI.pdf

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【精选】使用MCU的GPIO模拟SPI使用MCU的GPIO模拟SPI

GPIO 模拟SPI 协议的实现 一 SPI 协议概括 SPI 是英语Serial Peripheral interface 的缩写,顾名思义 就是串行外围设备接口。是Motorola 首先在其MC68HCXX 系列处理器 上定义的。SPI 接口主要应用在 EEPROM FLASH,实时时钟 AD 转 换器 还有数字信号处理器和数字信号解码器之间。SPI,是一种高 速的 全双工 同步的通信总线 并且在芯片的管脚上只占用四根线 节约了芯片的管脚 同时为PCB 的布局上节省空间 提供方便 正是 出于这种简单易用的特性 现在越来越多的芯片集成了这种通信协 议 比如AT91RM9200. SPI 的通信原理很简单 它以主从方式工作 这种模式通常有一 个主设备和一个或多个从设备 需要至少4 根线 事实上3 根也可以 (单向传输时)。也是所有基于SPI 的设备共有的 它们是SDI (数 据输入) SDO (数据输出) SCK (时钟) CS (片选)。 (1)SDO – 主设备数据输出 从设备数据输入 (2)SDI – 主设备数据输入 从设备数据输出 (3)SCLK – 时钟信号 由主设备产生 (4)CS – 从设备使能信号 由主设备控制 其中CS 是控制芯片是否被选中的 也就是说只有片选信号为预 先规定的使能信号时 (高电位或低电位) 对此芯片的操作才有效。 这就允许在同一总线上连接多个SPI 设备成为可能。 接下来就负责通讯的3 根线了。通讯是通过数据交换完成的,这 里先要知道SPI 是串行通讯协议 也就是说数据是一位一位的传输 的。这就是SCK 时钟线存在的原因 由SCK 提供时钟脉冲 SDI SDO 则基于此脉冲完成数据传输。数据输出通过SDO 线,数据在时钟上升 沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。完成一位数 据传输 输入也使用同样原理。这样,在至少8 次时钟信号的改变(上 沿和下沿为一次),就可以完成8 位数据的传输。 要注意的是 SCK 信号线只由主设备控制 从设备不能控制信号 线。同样 在一个基于SPI 的设备中 至少有一个主控设备。这样传 输的特点:这样的传输方式有一个优点 与 通的串行通讯不同 通的串行通讯一次连续传送至少8 位数据 而SPI 允许数据一位一位 的传送 甚至允许暂停 因为SCK 时钟线由主控设备控制 当没有时 钟跳变时 从设备不采集或传送数据。也就是说 主设备通过对SCK 时钟线的控制可以完成对通讯的控制。SPI 还是一个数据交换协议: 因为SPI 的数据输入和输出线独立 所以允许同时完成数据的输入和 输出。不同的SPI 设备的实现方式不尽相同 主要是数据改变和采集 的时间不同 在时钟信号上沿或下沿采集有不同定义 具体请参考相 关器件的文档。 在点对点的通信中 SPI 接口不需要进行寻址操作 且为全双工 通信 显得简单高效。在多个从设备的系统中 每个从设备需要独立 的使能信号 硬件上比I2C 系统要稍微复杂一些。 最后 SPI 接口的一个缺点:没有指定的流控制 没有应答机制 确认是否接收到数据。 AT91RM9200 的SPI 接口主要由4 个引脚构成:SPICLK、MOSI、MISO 及 /SS,其中SPICLK 是整个SPI 总线的公用时钟 MOSI、MISO 作 为主机 从机的输入输出的标志 MOSI 是主机的输出 从机的输入 MISO 是主机的输入 从机的输出。/SS 是从机的标志管脚,在互相 通信的两个SPI 总线的器件 /SS 管脚的电平低的是从机 相反/SS 管脚的电平高的是主机。在一个SPI 通信系统中 必须有主机。SPI 总线可以配置成单主单从 单主多从 互为主从。 SPI 的片选可以扩充选择16 个外设,这时PCS 输出=NPCS,说NPCS0~3 接4-16 译码器,这个译码器是需要外接4-16 译码器 译码器的输入 为NPCS0~3 输出用于16 个外设的选择。 详细的SPI 规范可参考SPI 协议。 二 GPIO 模拟SPI 的实现 下面将结合本人项目中的经验来详细描述如何用GPIO 来模拟 SPI 协议 项目中要求实现一块LCD 为ssd1815br1 的驱动 它与BB 的通信 使用SPI 协议

您可能关注的文档

文档评论(0)

pfenejiarz + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档