搜索
bottom↓
回复: 105

spi总线原理附图解

[复制链接]

出0入0汤圆

发表于 2007-10-25 15:40:56 | 显示全部楼层 |阅读模式
SPI是一个环形总线结构,由ss(cs)、SCK、MISO、MOSI构成,其时序其实很简单,主要是在SCK的控制下,两个双向移位寄存器进行数据交换。
      假设下面的8位寄存器装的是待发送的数据10101010,上升沿发送、下降沿接收、高位先发送。
      那么第一个上升沿来的时候 数据将会是MOSI=1;寄存器=0101010x。下降沿到来的时候,MISO上的电平将所存到寄存器中去,那么这时寄存器=0101010MISO,这样在8个时钟脉冲以后,两个寄存器的内容互相交换一次。这样就完成里一个SPI时序。
      例子:
  假设主机和从机初始化就绪:并且主机的sbuff=0xaa,从机的sbuff=0x55,下面将分步对spi的8个时钟周期的数据情况演示一遍:假设上升沿发送数据

脉冲 主机sbuff         从机sbuff         sdi         sdo
0         10101010         01010101         0         0
1上         0101010x         1010101x         0         1
1下         01010100         10101011         0         1
2上         1010100x         0101011x         1         0
2下         10101001         01010110         1         0
3上         0101001x         1010110x         0         1
3下         01010010         10101101         0         1
4上         1010010x         0101101x         1         0
4下         10100101         01011010         1         0
5上         0100101x         1011010x         0         1
5下         01001010         10110101         0         1
6上         1001010x         0110101x         1         0
6下         10010101         01101010         1         0
7上         0010101x         1101010x         0         1
7下         00101010         11010101         0         1
8上         0101010x         1010101x         1         0
8下         01010101         10101010         1         0

这样就完成了两个寄存器8位的交换,上面的上表示上升沿、下表示下降沿,MISO、MOSI相对于主机而言的。其中ss引脚作为主机的时候,从机可以把它拉底被动选为从机,作为从机的是时候,可以作为片选脚用。根据以上分析,一个完整的传送周期是16位,即两个字节,因为,首先主机要发送命令过去,然后从机根据主机的名准备数据,主机在下一个8位时钟周期才把数据读回来!!

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2007-10-25 15:42:29 | 显示全部楼层
        
原理图

出0入0汤圆

 楼主| 发表于 2007-10-25 16:31:03 | 显示全部楼层
        
原理图2

出0入0汤圆

发表于 2007-10-25 18:39:03 | 显示全部楼层
不错,很形像!

出0入0汤圆

发表于 2008-2-2 09:19:49 | 显示全部楼层
很好,继续努力

出0入0汤圆

发表于 2008-2-2 09:30:51 | 显示全部楼层
我是在研究SPI中,.多谢,,,,,,,,,

出0入0汤圆

发表于 2008-4-1 14:57:18 | 显示全部楼层
mark
有点不懂

出0入0汤圆

发表于 2008-4-1 15:18:35 | 显示全部楼层
mark

出0入0汤圆

发表于 2008-4-1 15:55:40 | 显示全部楼层
ding

出0入0汤圆

发表于 2008-4-1 18:48:06 | 显示全部楼层
收藏

出0入0汤圆

发表于 2008-4-1 19:27:30 | 显示全部楼层
记录!

出0入0汤圆

发表于 2008-4-1 21:37:47 | 显示全部楼层
简单,易懂,形象,嘿嘿

出0入0汤圆

发表于 2008-4-1 22:59:45 | 显示全部楼层
看懂了,理解了,就不用再记!

出0入0汤圆

发表于 2008-4-2 11:19:02 | 显示全部楼层

出0入0汤圆

发表于 2008-4-2 13:00:27 | 显示全部楼层
记号

出130入129汤圆

发表于 2008-4-3 10:13:37 | 显示全部楼层
慢慢理解

出0入0汤圆

发表于 2008-4-3 10:28:54 | 显示全部楼层
多谢了!!

出0入46汤圆

发表于 2008-4-3 11:57:55 | 显示全部楼层
学习!

出0入0汤圆

发表于 2008-4-3 22:54:43 | 显示全部楼层
记号!

出0入0汤圆

发表于 2008-4-22 00:45:52 | 显示全部楼层
很好 2个移位寄存器操作 嗯。。。谢谢楼主

出0入0汤圆

发表于 2008-4-22 11:26:20 | 显示全部楼层
不错

出0入0汤圆

发表于 2008-4-24 11:36:44 | 显示全部楼层
谢谢

出0入0汤圆

发表于 2008-5-6 15:21:08 | 显示全部楼层
先顶再说.

出0入0汤圆

发表于 2008-5-6 15:21:14 | 显示全部楼层
先顶再说.

出0入0汤圆

发表于 2009-3-12 14:08:35 | 显示全部楼层
精辟简洁,看书上的说明看了很久都不是很明白,书上说了十几页,都是该详的不详,该略的不略,太感谢楼主了。

出0入0汤圆

发表于 2009-3-12 14:38:21 | 显示全部楼层
笔记

出0入0汤圆

发表于 2009-3-13 10:07:20 | 显示全部楼层
做个记号,慢慢学。

出0入0汤圆

发表于 2009-3-19 11:42:18 | 显示全部楼层
这只是其中的一种模式,还有别的模式的

出0入0汤圆

发表于 2009-3-19 21:45:23 | 显示全部楼层
简单一点,就是循环左移和循环右移.

出0入0汤圆

发表于 2009-3-19 22:13:47 | 显示全部楼层
通俗易懂

出0入0汤圆

发表于 2009-3-19 23:16:24 | 显示全部楼层
建议慎用STC单片机的SPI功能

出0入0汤圆

发表于 2009-3-19 23:41:20 | 显示全部楼层
漫漫看,谢楼主

出0入0汤圆

发表于 2009-3-19 23:44:41 | 显示全部楼层
我是新手  应该怎么学呀 ?

出0入0汤圆

发表于 2009-3-20 00:00:43 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-3-20 16:27:55 | 显示全部楼层
呵呵……  太谢谢楼主了,好东西~!

出0入0汤圆

发表于 2009-5-1 00:51:26 | 显示全部楼层
to31楼朋友
请教STC的SPI有什么不好的,能说明好吗?我正想用STC的SPI功能,不好的我就考虑用模拟的办法来用。

出0入0汤圆

发表于 2009-5-1 00:59:20 | 显示全部楼层
我现在试汇编一程序用STC的SPI和SM16312通信驱动VFD屏,不知那位兄弟能提供一汇编的硬件SPI通信范例来学习。C语言的我不懂啊。

出0入0汤圆

发表于 2009-5-1 01:03:49 | 显示全部楼层
to36楼
我最近刚用过STC的SPI接口做双机通信,我想31楼说的慎用也不是说它不好吧
我用的是STC12C5A16AD,STC的SPI寄存器与普通的SPI寄存器不一样,至少我看过的Philip的和Atmel都是和它不一样的
不过STC官网上的STC12C5620AD系列的说明书中有对SPI的详细说明,并且有汇编的例程
我就是参照那个说明书中的程序实现双机通信的

出0入0汤圆

发表于 2009-5-1 09:14:20 | 显示全部楼层
SPI的相位如何设置?
主机相位如何设置?
从机相位如何设置?

出0入0汤圆

发表于 2009-5-1 11:15:34 | 显示全部楼层
相位和电平设置保持一致就没问题

出0入0汤圆

发表于 2009-5-1 20:57:01 | 显示全部楼层
好东西

出0入0汤圆

发表于 2009-6-21 14:01:36 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-7-19 13:18:14 | 显示全部楼层
清晰明了,谢谢lz!!

出0入0汤圆

发表于 2009-7-19 13:56:36 | 显示全部楼层
前送后补,轮圈转

出0入0汤圆

发表于 2009-7-19 14:32:55 | 显示全部楼层
标记,正好要做

出0入18汤圆

发表于 2009-7-19 14:33:48 | 显示全部楼层
不错!!!学习!!!

出0入0汤圆

发表于 2009-8-17 00:34:45 | 显示全部楼层
收藏

出0入0汤圆

发表于 2009-9-9 14:52:05 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-9-16 09:07:38 | 显示全部楼层
嗯。。学习了。!

出0入10汤圆

发表于 2009-9-16 09:13:59 | 显示全部楼层
MARK

出0入0汤圆

发表于 2009-9-20 14:21:43 | 显示全部楼层
m

出0入0汤圆

发表于 2009-11-19 21:45:48 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-11-19 21:50:41 | 显示全部楼层
jh

出0入0汤圆

发表于 2009-11-20 00:01:14 | 显示全部楼层
mark!

出0入0汤圆

发表于 2009-11-20 08:13:30 | 显示全部楼层
看帖是一种享受  顶贴是一种美德

出0入0汤圆

发表于 2009-11-20 08:29:34 | 显示全部楼层
hao de hen a

出0入0汤圆

发表于 2009-11-20 09:20:01 | 显示全部楼层
hao de hen a

出0入0汤圆

发表于 2009-11-26 10:52:49 | 显示全部楼层
收藏

出0入0汤圆

发表于 2009-12-2 20:40:54 | 显示全部楼层
不错,最近在搞SPI时序,

出0入0汤圆

发表于 2009-12-3 08:14:02 | 显示全部楼层
记号!!!!!!!!!!

出0入0汤圆

发表于 2009-12-3 09:16:37 | 显示全部楼层
清晰的解释!!!

出0入0汤圆

发表于 2009-12-3 10:29:07 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-9 22:43:57 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-1-26 00:24:51 | 显示全部楼层
good!

出0入0汤圆

发表于 2010-1-26 07:48:21 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-1-26 08:20:04 | 显示全部楼层
mark

出0入85汤圆

发表于 2010-1-26 08:31:15 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-1-26 09:25:11 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-1-26 13:33:50 | 显示全部楼层
学习了。

出0入0汤圆

发表于 2010-1-26 21:52:59 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-1-27 00:59:07 | 显示全部楼层
好教程,我慢慢研究下~

出0入0汤圆

发表于 2010-1-27 14:11:00 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-1-27 15:30:55 | 显示全部楼层
好资料啊

出0入0汤圆

发表于 2010-1-27 17:52:07 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-1-28 17:26:34 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-1-31 14:58:49 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-1-31 23:10:43 | 显示全部楼层
学习中。

出0入0汤圆

发表于 2010-1-31 23:59:47 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-2-1 01:42:43 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-11 16:45:18 | 显示全部楼层
不学对不起楼主

出0入0汤圆

发表于 2010-3-11 16:58:36 | 显示全部楼层
虽然网上这东西不少,但还是谢谢LZ

出0入0汤圆

发表于 2010-3-11 17:25:49 | 显示全部楼层
jh

出0入0汤圆

发表于 2010-3-11 20:14:43 | 显示全部楼层
mark.怎么最近spi这么多呢

出0入0汤圆

发表于 2010-4-30 22:07:33 | 显示全部楼层
学习了

出0入0汤圆

发表于 2010-5-1 22:48:42 | 显示全部楼层
好,收藏了,谢谢LZ

出0入0汤圆

发表于 2010-5-2 11:26:17 | 显示全部楼层
习惯用模拟的~~呵呵~~

出0入0汤圆

发表于 2010-5-2 11:31:21 | 显示全部楼层
很好,很清晰。

出0入0汤圆

发表于 2010-5-2 14:50:39 | 显示全部楼层
呵呵,上一个我diy的逻辑分析仪抓的spi的截图,看起来更直观了。


(原文件名:saleae_spi.jpg)

出0入0汤圆

发表于 2010-5-2 15:47:01 | 显示全部楼层
mark.

出0入0汤圆

发表于 2012-7-5 16:39:19 | 显示全部楼层
正在研究SD卡呢,想用51读SD卡,先学习SPI嘛

出0入0汤圆

发表于 2012-7-5 19:16:46 | 显示全部楼层
mark下,好。。。。。

出0入0汤圆

发表于 2012-7-10 10:18:16 | 显示全部楼层
      mark

出0入0汤圆

发表于 2012-7-18 15:42:23 | 显示全部楼层
多谢楼主啦。这个非常有用。楼主把自己对SPI的理解表达的很到位。让人很容易理解。

出0入0汤圆

发表于 2012-7-20 14:17:43 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-7-28 16:27:34 | 显示全部楼层
不错,学习下

出0入0汤圆

发表于 2012-8-1 14:37:24 | 显示全部楼层
讲解很赞 谢谢楼主分享

出0入0汤圆

发表于 2012-8-1 20:45:05 | 显示全部楼层
感谢,让我理解的更透彻

出0入0汤圆

发表于 2012-8-3 14:52:07 | 显示全部楼层
理解  ,很形象

出0入0汤圆

发表于 2012-11-2 09:26:25 | 显示全部楼层
不错,谢啦

出0入0汤圆

发表于 2012-11-3 13:18:23 | 显示全部楼层
简单,易懂,形象,嘿嘿
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 07:21

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表