电子通识区
返回
登录/注册
spi总线概述
楼主
DC 于 2006-06-08 00:41:26
spi总线概述
SPI是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换。
假设下面的8位寄存器装的是待发送的数据10101010,上升沿发送、下降沿接收、高位先发送。
那么第一个上升沿来的时候 数据将会是sdo=1;寄存器=0101010x。下降沿到来的时候,sdi上的电平将所存到寄存器中去,那么这时寄存器=0101010sdi,这样在8个时钟脉冲以后,两个寄存器的内容互相交换一次。这样就完成里一个spi时序。
例子:
假设主机和从机初始化就绪:并且主机的sbuff=0xaa,从机的sbuff=0x55,下面将分步对spi的8个时钟周期的数据情况演示一遍:假设上升沿发送数据
[TABLE][TR][TD][SIZE=4]脉冲[/SIZE][/TD][TD][SIZE=4]主机sbuff [/SIZE][/TD][TD][SIZE=4]从机sbuff [/SIZE][/TD][TD][SIZE=4]sdi [/SIZE][/TD][TD][SIZE=4]sdo [/SIZE][/TD][/TR][TR][TD][SIZE=4]0[/SIZE][/TD][TD][SIZE=4][COLOR=#ff0000]1[/SIZE]0101010[/COLOR][/TD][TD][SIZE=4][COLOR=#ff00ff]0[/SIZE]1010101[/COLOR][/TD][TD][SIZE=4]0[/SIZE][/TD][TD][SIZE=4]0[/SIZE][/TD][/TR][TR][TD][SIZE=4]1上[/SIZE][/TD][TD][SIZE=4]0101010x[/SIZE][/TD][TD][SIZE=4]1010101x[/SIZE][/TD][TD][COLOR=#ff00ff]0[/COLOR][/TD][TD][SIZE=4][COLOR=#ff0000]1[/SIZE][/COLOR][/TD][/TR][TR][TD][SIZE=4]1下[/SIZE][/TD][TD][SIZE=4]0101010[COLOR=#ff00ff]0[/SIZE][/COLOR][/TD][TD][SIZE=4]1010101[COLOR=#ff0000]1[/SIZE][/COLOR][/TD][TD][SIZE=4]0[/SIZE][/TD][TD][SIZE=4]1[/SIZE][/TD][/TR][TR][TD][SIZE=4]2上[/SIZE][/TD][TD][SIZE=4]101010[COLOR=#09f797]0[/SIZE]x [/COLOR][/TD][TD][SIZE=4]010101[COLOR=#09f738]1[/SIZE]x[/COLOR][/TD][TD][SIZE=4]1[/SIZE][/TD][TD][SIZE=4]0[/SIZE][/TD][/TR][TR][TD][SIZE=4]2下[/SIZE][/TD][TD][SIZE=4]101010[COLOR=#09f797]01[/SIZE][/COLOR][/TD][TD][SIZE=4]010101[COLOR=#09f738]10[/SIZE][/COLOR][/TD][TD][SIZE=4]1[/SIZE][/TD][TD][SIZE=4]0[/SIZE][/TD][/TR][TR][TD][SIZE=4]3上[/SIZE][/TD][TD][SIZE=4]01010[COLOR=#09f797]01[/SIZE]x[/COLOR][/TD][TD][SIZE=4]10101[COLOR=#09f738]10[/SIZE]x[/COLOR][/TD][TD][SIZE=4]0[/SIZE][/TD][TD][SIZE=4]1[/SIZE][/TD][/TR][TR][TD][SIZE=4]3下[/SIZE][/TD][TD][SIZE=4]01010[COLOR=#09f797]010[/SIZE][/COLOR][/TD][TD][SIZE=4]10101[COLOR=#09f738]101[/SIZE][/COLOR][/TD][TD][SIZE=4]0[/SIZE][/TD][TD][SIZE=4]1[/SIZE][/TD][/TR][TR][TD][SIZE=4]4上[/SIZE][/TD][TD][SIZE=4]1010[COLOR=#09f797]010[/SIZE]x[/COLOR][/TD][TD][SIZE=4]0101[COLOR=#09f738]101[/SIZE]x[/COLOR][/TD][TD][SIZE=4]1[/SIZE][/TD][TD][SIZE=4]0[/SIZE][/TD][/TR][TR][TD][SIZE=4]4下[/SIZE][/TD][TD][SIZE=4]1010[COLOR=#09f797]0101[/SIZE][/COLOR][/TD][TD][SIZE=4]0101[COLOR=#09f738]1010[/SIZE][/COLOR][/TD][TD][SIZE=4]1[/SIZE][/TD][TD][SIZE=4]0[/SIZE][/TD][/TR][TR][TD][SIZE=4]5上[/SIZE][/TD][TD][SIZE=4]010[COLOR=#09f797]0101[/SIZE]x[/COLOR][/TD][TD][SIZE=4]101[COLOR=#09f738]1010[/SIZE]x[/COLOR][/TD][TD][SIZE=4]0[/SIZE][/TD][TD][SIZE=4]1[/SIZE][/TD][/TR][TR][TD][SIZE=4]5下[/SIZE][/TD][TD][SIZE=4]010[COLOR=#09f797]01010[/SIZE][/COLOR][/TD][TD][SIZE=4]101[COLOR=#09f738]10101[/SIZE][/COLOR][/TD][TD][SIZE=4]0[/SIZE][/TD][TD][SIZE=4]1[/SIZE][/TD][/TR][TR][TD][SIZE=4]6上[/SIZE][/TD][TD][SIZE=4]10[COLOR=#09f797]01010[/SIZE]x[/COLOR][/TD][TD][SIZE=4]01[COLOR=#09f738]10101[/SIZE]x[/COLOR][/TD][TD][SIZE=4]1[/SIZE][/TD][TD][SIZE=4]0[/SIZE][/TD][/TR][TR][TD][SIZE=4]6下[/SIZE][/TD][TD][SIZE=4]10[COLOR=#09f797]010101[/SIZE][/COLOR][/TD][TD][SIZE=4]01[COLOR=#09f738]101010[/SIZE][/COLOR][/TD][TD][SIZE=4]1[/SIZE][/TD][TD][SIZE=4]0[/SIZE][/TD][/TR][TR][TD][SIZE=4]7上[/SIZE][/TD][TD][SIZE=4]0[COLOR=#09f797]010101[/SIZE]x[/COLOR][/TD][TD][SIZE=4]1[COLOR=#09f738]101010[/SIZE]x[/COLOR][/TD][TD][SIZE=4]0[/SIZE][/TD][TD][SIZE=4]1[/SIZE][/TD][/TR][TR][TD][SIZE=4]7下[/SIZE][/TD][TD][SIZE=4]0[COLOR=#09f797]0101010[/SIZE][/COLOR][/TD][TD][SIZE=4]1[COLOR=#09f738]1010101[/SIZE][/COLOR][/TD][TD][SIZE=4]0[/SIZE][/TD][TD][SIZE=4]1[/SIZE][/TD][/TR][TR][TD][SIZE=4]8上[/SIZE][/TD][TD][SIZE=4][COLOR=#09f797]0101010[/SIZE]x[/COLOR][/TD][TD][SIZE=4][COLOR=#09f738]1010101[/SIZE]x[/COLOR][/TD][TD][SIZE=4]1[/SIZE][/TD][TD][SIZE=4]0[/SIZE][/TD][/TR][TR][TD][SIZE=4]8下[/SIZE][/TD][TD][SIZE=4][COLOR=#09f797]01010101[/SIZE][/COLOR][/TD][TD][SIZE=4][COLOR=#09f738]10101010[/SIZE][/COLOR][/TD][TD][SIZE=4]1[/SIZE][/TD][TD][SIZE=4]0[/SIZE][/TD][/TR][/TABLE]
这样就完成了两个寄存器8位的交换,上面的上表示上升沿、下表示下降沿,sdi、sdo相对于主机而言的。其中ss引脚作为主机的时候,从机可以把它拉底被动选为从机,作为从机的是时候,可以作为片选脚用。根据以上分析,一个完整的传送周期是16位,即两个字节,因为,首先主机要发送命令过去,然后从机根据主机的名准备数据,主机在下一个8位时钟周期才把数据读回来!!
回复
1楼
步行者 于 2006-11-24 20:17:34
学习学习!
回复
2楼
pilibeibei 于 2006-12-25 15:23:26
第一次看这个帖子的时候没看明白,今天再过来温习一下,恍然大悟了,谢谢斑竹!
回复
3楼
bigstone 于 2007-01-10 14:13:19
有点明白了,还要好好学习啊!
回复
4楼
lucheng0415 于 2007-03-12 10:48:10
好啊,好东西,我正需要!!!!
回复
1
电脑版
Page created in 0.0781 seconds width 2 queries.