zhliangxi 发表于 2007-10-25 15:40:56

spi总线原理附图解

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位时钟周期才把数据读回来!!

zhliangxi 发表于 2007-10-25 15:42:29

http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_178252.jpg      
原理图

zhliangxi 发表于 2007-10-25 16:31:03

http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_178252.jpg      
原理图2

zkf0100007 发表于 2007-10-25 18:39:03

不错,很形像!

wodeliguotao 发表于 2008-2-2 09:19:49

很好,继续努力

wodeliguotao 发表于 2008-2-2 09:30:51

我是在研究SPI中,.多谢,,,,,,,,,

ivension 发表于 2008-4-1 14:57:18

mark
有点不懂

spy2008 发表于 2008-4-1 15:18:35

mark

ninjia 发表于 2008-4-1 15:55:40

ding

34480016 发表于 2008-4-1 18:48:06

收藏

sciencehero 发表于 2008-4-1 19:27:30

记录!

nutos 发表于 2008-4-1 21:37:47

简单,易懂,形象,嘿嘿

lljyes 发表于 2008-4-1 22:59:45

看懂了,理解了,就不用再记!

yzlyear 发表于 2008-4-2 11:19:02

HZZCL 发表于 2008-4-2 13:00:27

记号

68336016 发表于 2008-4-3 10:13:37

慢慢理解

likedev 发表于 2008-4-3 10:28:54

多谢了!!

bjj9217 发表于 2008-4-3 11:57:55

学习!

zhao_123456 发表于 2008-4-3 22:54:43

记号!

litteworm 发表于 2008-4-22 00:45:52

很好 2个移位寄存器操作 嗯。。。谢谢楼主

duqinglin 发表于 2008-4-22 11:26:20

不错

lionliu 发表于 2008-4-24 11:36:44

谢谢

Chenxg 发表于 2008-5-6 15:21:08

先顶再说.

Chenxg 发表于 2008-5-6 15:21:14

先顶再说.

heying 发表于 2009-3-12 14:08:35

精辟简洁,看书上的说明看了很久都不是很明白,书上说了十几页,都是该详的不详,该略的不略,太感谢楼主了。

zhangxiaojun 发表于 2009-3-12 14:38:21

笔记

a_zhi 发表于 2009-3-13 10:07:20

做个记号,慢慢学。

phone 发表于 2009-3-19 11:42:18

这只是其中的一种模式,还有别的模式的

hali 发表于 2009-3-19 21:45:23

简单一点,就是循环左移和循环右移.

jchqxl 发表于 2009-3-19 22:13:47

通俗易懂

broadwood 发表于 2009-3-19 23:16:24

建议慎用STC单片机的SPI功能

qzzz 发表于 2009-3-19 23:41:20

漫漫看,谢楼主

waoiofo 发表于 2009-3-19 23:44:41

我是新手应该怎么学呀 ?

sinbord 发表于 2009-3-20 00:00:43

mark

znxiyou 发表于 2009-3-20 16:27:55

呵呵……太谢谢楼主了,好东西~!

vi51 发表于 2009-5-1 00:51:26

to31楼朋友
请教STC的SPI有什么不好的,能说明好吗?我正想用STC的SPI功能,不好的我就考虑用模拟的办法来用。

vi51 发表于 2009-5-1 00:59:20

我现在试汇编一程序用STC的SPI和SM16312通信驱动VFD屏,不知那位兄弟能提供一汇编的硬件SPI通信范例来学习。C语言的我不懂啊。

mondayblue 发表于 2009-5-1 01:03:49

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

void_c 发表于 2009-5-1 09:14:20

SPI的相位如何设置?
主机相位如何设置?
从机相位如何设置?

mondayblue 发表于 2009-5-1 11:15:34

相位和电平设置保持一致就没问题

tota2004 发表于 2009-5-1 20:57:01

好东西

jingufo11 发表于 2009-6-21 14:01:36

mark

goofy 发表于 2009-7-19 13:18:14

清晰明了,谢谢lz!!

lilolog 发表于 2009-7-19 13:56:36

前送后补,轮圈转

dhyana 发表于 2009-7-19 14:32:55

标记,正好要做

dengxiaofeng 发表于 2009-7-19 14:33:48

不错!!!学习!!!

wanghengzhi 发表于 2009-8-17 00:34:45

收藏

BlueFoox 发表于 2009-9-9 14:52:05

mark

hnrain 发表于 2009-9-16 09:07:38

嗯。。学习了。!

chengtina 发表于 2009-9-16 09:13:59

MARK

51hubao 发表于 2009-9-20 14:21:43

m

river_ucan 发表于 2009-11-19 21:45:48

mark

ndust 发表于 2009-11-19 21:50:41

jh

hukai 发表于 2009-11-20 00:01:14

mark!

wc8841484 发表于 2009-11-20 08:13:30

看帖是一种享受顶贴是一种美德

xjtyOnly51 发表于 2009-11-20 08:29:34

hao de hen a

xjtyOnly51 发表于 2009-11-20 09:20:01

hao de hen a

aaron96031 发表于 2009-11-26 10:52:49

收藏

kong 发表于 2009-12-2 20:40:54

不错,最近在搞SPI时序,

809314596 发表于 2009-12-3 08:14:02

记号!!!!!!!!!!

ggyyll8683 发表于 2009-12-3 09:16:37

清晰的解释!!!

zengxy 发表于 2009-12-3 10:29:07

mark

dugutianma 发表于 2009-12-9 22:43:57

mark

songlianjie5 发表于 2010-1-26 00:24:51

good!

bookmark 发表于 2010-1-26 07:48:21

mark

avrmk 发表于 2010-1-26 08:20:04

mark

bluefeel 发表于 2010-1-26 08:31:15

mark

sunnyAVR 发表于 2010-1-26 09:25:11

mark

zldiy 发表于 2010-1-26 13:33:50

学习了。

joni 发表于 2010-1-26 21:52:59

MARK

coolzc 发表于 2010-1-27 00:59:07

好教程,我慢慢研究下~

gxy508 发表于 2010-1-27 14:11:00

mark

please99 发表于 2010-1-27 15:30:55

好资料啊

littone 发表于 2010-1-27 17:52:07

mark

zengyi703 发表于 2010-1-28 17:26:34

mark

swustlx86 发表于 2010-1-31 14:58:49

MARK

silvanesw 发表于 2010-1-31 23:10:43

学习中。

MCU678 发表于 2010-1-31 23:59:47

MARK

moon0213 发表于 2010-2-1 01:42:43

mark

wchunyang 发表于 2010-3-11 16:45:18

不学对不起楼主

thinki 发表于 2010-3-11 16:58:36

虽然网上这东西不少,但还是谢谢LZ

1181zjf 发表于 2010-3-11 17:25:49

jh

xuejianhua1986 发表于 2010-3-11 20:14:43

mark.怎么最近spi这么多呢

lantian0099 发表于 2010-4-30 22:07:33

学习了

sodohe 发表于 2010-5-1 22:48:42

好,收藏了,谢谢LZ

jj.deng 发表于 2010-5-2 11:26:17

习惯用模拟的~~呵呵~~

wtliu 发表于 2010-5-2 11:31:21

很好,很清晰。

rosebowl 发表于 2010-5-2 14:50:39

呵呵,上一个我diy的逻辑分析仪抓的spi的截图,看起来更直观了。

http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_551075.jpg
(原文件名:saleae_spi.jpg)

KevinLee 发表于 2010-5-2 15:47:01

mark.

ab1212144 发表于 2012-7-5 16:39:19

正在研究SD卡呢,想用51读SD卡,先学习SPI嘛

paorigz 发表于 2012-7-5 19:16:46

mark下,好。。。。。

枫叶随秋 发表于 2012-7-10 10:18:16

      mark

浮云残雪 发表于 2012-7-18 15:42:23

多谢楼主啦。这个非常有用。楼主把自己对SPI的理解表达的很到位。让人很容易理解。

烂泥桑 发表于 2012-7-20 14:17:43

mark{:biggrin:}

gwy0075 发表于 2012-7-28 16:27:34

不错,学习下

czh_ustb 发表于 2012-8-1 14:37:24

讲解很赞 谢谢楼主分享

07031529 发表于 2012-8-1 20:45:05

感谢,让我理解的更透彻

hqjin 发表于 2012-8-3 14:52:07

理解,很形象

木v风 发表于 2012-11-2 09:26:25

不错,谢啦

司马朝阳007 发表于 2012-11-3 13:18:23

简单,易懂,形象,嘿嘿
页: [1] 2
查看完整版本: spi总线原理附图解