机电之家资源网
单片机首页|单片机基础|单片机应用|单片机开发|单片机文案|软件资料下载|音响制作|电路图下载 |嵌入式开发
培训信息
赞助商
SPI总线时钟极性和时钟相位的概念
SPI总线时钟极性和时钟相位的概念
 更新时间:2009-12-26 15:44:48  点击数:0
【字体: 字体颜色

SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。 
其工作模式有两种:主模式和从模式,无论那种模式,都支持3Mbit/s的速率,并且还具有传输完成标志和写冲突保护标志。 

跟SPI密切相关的两个概念是时钟极性和时钟相位。 

时钟极性:表示时钟信号在空闲时是高电平还是低电平。  
时钟相位:决定数据是在SCK的上升沿采样还是在SCK的结束沿采样。  
下面以矩力的7022B芯片为例子,分析SPI工作模式的设置。 

在7022B的数据手册中,指出:在SCK的上升沿放数据,在下降沿取数据。在SCK的下降沿将DIN的数据采样到7022B中,在SCK的上升沿将7022B的数据放置在DOUT上面输出。 

下面是模拟SPI总线对7022B进行读取的例子,这个例子生动表示了何时放数据,何时采样数据。 

unsigned long Read_reg3(unsigned char cmd) 

       int i; 
       unsigned long data; 
       set_bit(SPI_PORT,SPI_SS); 
       clr_bit(SPI_PORT,SPI_SCK); 
       clr_bit(SPI_PORT,SPI_SS); 
       for(i=0;i<8;i++) 
       { 
           set_bit(SPI_PORT,SPI_SCK); 
              if(cmd&0x80) 
              { 
                set_bit(SPI_PORT,SPI_MOSI); 
              } 
              else 
              { 
                clr_bit(SPI_PORT,SPI_MOSI); 
              } 
              cmd=cmd<<1; 
              nop; 
              nop; 
              clr_bit(SPI_PORT,SPI_SCK);nop; 
       } 
       clr_bit(SPI_PORT,SPI_SCK); 
       _delay_us(3); 
       data=0; 
       for(i=0;i<24;i++) 
       { 
           set_bit(SPI_PORT,SPI_SCK); 
              nop; 
              nop; 
              nop; 
              if(PINB&(1 
              { 
                data+=1; 
              }else 
              { 
                data+=0; 
              } 
              data=data<<1; 
              nop; 
              clr_bit(SPI_PORT,SPI_SCK); 
       } 
       set_bit(SPI_PORT,SPI_SS); 
       return data; 

如果采用硬件SPI,则需要对单片机(ATMEGA16)SPI寄存器进行设置,本例子中,需要设置SPCR=0x57;//MSB在先01010011 

时钟极性为0,因为空闲时CLK电平为低。 

时钟相位设置为1,因为是下降沿采样数据,上升沿放数据。 

我对SPI的理解错在采样的概念上。比如,下降沿采样,当主机接收时,我觉得应该是先有下降沿,再有采样。其实,正确的理解是:采样是对主机从机都一致的概念,采样之前必须把数据准备好。当主机接收数据时,主机也是下降沿采样,但是在下降沿发生之前,必须准备好数据,换句话说,从机在上升沿发生后,就要把数据放出来,为下降沿采样做好准备。
参考链接:http://www.picavr.com/news/2009-08/203.htm

  • 上一篇: CAN总线网络的技术特点
  • 下一篇: 没有了
  • 发表评论   告诉好友   打印此文  收藏此页  关闭窗口  返回顶部
    热点文章
     
    推荐文章
     
    相关文章
    网友评论:(只显示最新5条。)
    关于我们 | 联系我们 | 广告合作 | 付款方式 | 使用帮助 | 机电之家 | 会员助手 | 免费链接

    点击这里给我发消息66821730(技术支持)点击这里给我发消息66821730(广告投放) 点击这里给我发消息41031197(编辑) 点击这里给我发消息58733127(审核)
    本站提供的机电设备,机电供求等信息由机电企业自行提供,该企业负责信息内容的真实性、准确性和合法性。
    机电之家对此不承担任何保证责任,有侵犯您利益的地方请联系机电之家,机电之家将及时作出处理。
    Copyright 2007 机电之家 Inc All Rights Reserved.机电之家-由机电一体化网更名-声明
    电话:0571-87774297 传真:0571-87774298
    杭州滨兴科技有限公司提供技术支持

    主办:杭州市高新区(滨江)机电一体化学会
    中国行业电子商务100强网站

    网站经营许可证:浙B2-20080178-1