SPI的通信速率到底可以达到多少
更新时间:2023-10-01 01:24:01 阅读量: 综合文库 文档下载
- spi的四种工作模式推荐度:
- 相关推荐
楼主提问:SPI的通信速率到底可以达到多少???
按照手册上的说明,应该能到fosc/4,然而实际上由于SPI通信底层没有任何握手,不像I2C总线那样带ACK,所以SPI速率实际上根本不能达到fosc/4,除非发信端与收信端完全同步,然而事实上接收端往往要对接收到的数据进行一些判断和处理,所以在接收端往往会丢数,解决办法就是在发信端发完一个字节后人为加上延时等待接收端处理,但是如果这样的话,高速还有什么意义呢? 我做了一个试验,即使关掉所有其它中断,只作SPI通信处理,在fosc/4的通信速率下,接收端只能接收10个字节以内的数据,10个字节以上就会丢数,而在fosc/8的通信速率下,如果关闭所有其它中断,收发256个字节是没什么问题的,但是如果应用程序有1ms的时钟中断事件的话,spi通信成功率很低。
在前面很多帖子里,看到不少人说spi只是硬件底层,通信的可靠性要靠通信协议,诚然如此,但是我以为通信协议只是最后一道保障,如果底层不可靠,通信协议再完善也是惘然。
轮询和中断方式有本质区别吗?轮询就能保证不被其它中断干扰吗? 主机自己掌握SPI节奏,它只知道自己发送出去了,并不知道从机是否处理完,如果从机还在处理上一个字节,这时候发下个字节显然会丢数据啊
解答者1回答:
是同步!不是异步!
也就是说MASTER提供时钟,所以完全由MASTER决定速率(当然大家都能达到的) 再有就是这个速率仅仅指一个BYTE的通讯速率,不是整个帧速率(2个BYTE以上)从机查询和中断无关,说白了就是移位寄存器!
楼主再问:
关键就在于这个速率要大家都能达到啊,如果都能达到就不用讲了,实测下来就是slave端达不到这个速率啊 。如果这个速率是一个BYTE的指标那就没啥说的了,我认了,只能在字节之间加延时了。
解答者2:
我试过用fosc/2的时钟速率进行两机通讯(系统时钟16M),连续传了好多字节都没有问题。主机用查询方式发送;从机用中断接收,接收到的数据用液晶显示出来。
解答者1:
多字节是不可能达到fosc/2的!除非从机速率更快,有足够的时间去处理或保存(读取数据),要不然是吹牛的!影响速率达不到fosc/2就是从机提取数据!与系统时钟多少那无关!再有, 从机响应中断都要4个机器周期,更别说要存储,中断出来也要4个机器周期。 对于单字节来说是可以达到fosc/2,因为AVR可以使用倍率,本来是fosc/4的! 所以,数据手册里讲的可以达到fosc/4那是指单字节的速率! 楼主:
所以说手册给出来的指标很带有欺骗性,为了可靠起见(相信很多人的程序中都有个时钟在运行),建议放在fosc/16。
SPI接口原理
SPI接口的全称是\意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM, FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。
SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,地位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到几Mbps。
SPI接口是以主从方式工作的,这种模式通常有一个主器件和一个或多个从器件,其接口包括以下四种信号:
(1)MOSI – 主器件数据输出,从器件数据输入 (2)MISO – 主器件数据输入,从器件数据输出 (3)SCLK – 时钟信号,由主器件产生 (4)/SS – 从器件使能信号,由主器件控制
在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。 在多个从器件的系统中,每个从器件需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。
SPI接口在内部硬件实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。如下图所示,在SCLK的下降沿上数据改变,同时一位数据被存入移位寄存器。 SPI接口内部硬件图示:
最后,SPI接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据。
///////////////////////////// SPI与UART的区别:
SPI是三线或者四线(CS CLK DI DO)
UART是两线制(TXD RXD),实际上就是串口;
SPI一般是CS=0启动传输,以CLK作为同步信号,不含启动位停止位等 UART传输信号中包含了启动位和停止位等,本身就可作为同步信号使用
SPI一般没有标准的通信速率
UART一般都是使用标准的通信波特率
///////////////////////////////////////////////////////////////////////////////// SPI通信--单片机最多能带动多少从机?
回答1:SPI主要是芯片级或板级通信使用,也有设备之间使用的。但不可能在实际应用中有太多的SPI设备互连。
回答2:SPI是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换。
假设下面的8位寄存器装的是待发送的数据10101010,上升沿发送、下降沿接收、高位先发送。
那么第一个上升沿来的时候 数据将会是sdo=1;寄存器=0101010x。下降沿到来的时候,sdi上的电平将所存到寄存器中去,那么这时寄存器=0101010sdi,这样在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位的交换,上面的上表示上升沿、下表示下降沿,sdi、sdo相对于主机而言的。其中ss引脚作为主机的时候,从机可以把它拉底被动选为从机,作为从机的是时候,可以作为片选脚用。根据以上分析,一个完整的传送周期是16位,即两个字节,因为,首先主机要发送命令过去,然后从机根据主机的名准备数据,主机在下一个8位时钟周期才把数据读回来
SPI 总线是Motorola公司推出的三线同步接口,同步串行3线方式进行通信:一条时钟线SCK,一条数据输入线MOSI,一条数据输出线MISO;用于CPU与各种外围器件进行全双工、同步串行通讯。SPI主要特点有:可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。图3示出SPI总线工作的四种方式,其中使用的最为广泛的是SPI0和SPI3方式(实线表示):
图2 SPI总线四种工作方式
SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外设音时钟相位和极性应该一致。SPI接口时序如图3、图4所示。 回答3:
SPI是这样的,有三根线用于通信(一根发送、一根接收还有一根时钟信号)。带从机则需要在此三根线基础上外加从机的使能信号线。
所以理论上来说有多少闲置的I/O口(用作从机使能端)就可以带多少从机。如果再加上I/O扩展芯片的话就可以带更多了。
正在阅读:
SPI的通信速率到底可以达到多少10-01
做人做事的十个技巧09-06
上进村创建市级生态村申报材料(一大本)201.10.2010-11
高温熔盐的热物性测试及热稳定性分析07-21
2013上海公务员考试申论真题A卷09-07
科研论文资料拾零08-06
体育教师个人职业生涯规划【优秀4篇】03-26
海运提单填写规范07-08
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 速率
- 达到
- 到底
- 多少
- 通信
- 可以
- SPI
- 恐龙工具箱使用说明
- 处方药与非处方药分类管理的现状与问题分析
- 《中国古建筑赏析》满分题库
- 榨汁机销售话述
- 新课改下民族地区初中语文教学中的德育渗透
- 催化裂化烟机振动原因分析及对策
- 九年级语文九年级语文(上)《综合学习与探究》 导学案
- 保险原理与实务试卷
- ANSYS中弯矩、剪力图的绘制
- 2019-2025年中国婚纱礼服市场运行态势及行业发展前景预测报告 - 图文
- 2008年全国攻读工商管理硕士学位研究生入学考试综合能力试题
- 金融企业呆账核销管理办法(2015年修订版)
- 小学四年级数学教案-四年级数学三步计算的应用题 精品
- 个税安装常见问题及处理方案 - 图文
- 凯立德导航主程序包各个文件作用详解
- 备案审查工作的思考和探讨(2010征文)
- 基因毒性杂质限度指南(转载中英文)
- 苏科版九年级第13章《电路初探》教案 - 坎北初中
- 2015年3月作业许可考试(答案) - 图文
- 部编人教版六年级语文上册:总复习之看注释写词语 doc