SPI通信———检测板的延伸学习

检查板上的ADC芯片,DAC芯片数据与ARM相连都是用SPI通信连接,并且因为所以的ARM芯片是购买的核心板,其接口并没有引出地址信号线,所以与FPGA之间的通信我也使用是SPI通信。

一、SPI通信,共四个引脚实现

①MISO:主输入从输出(连ADC,DAC的DOUT管脚)当然反过来也行,看程序怎么编。

②MOSI:主输出从输入。

③SCLK:显然是时钟(“读”,“写”数据时判断数据接受和发送)。

④NSS:片选主要是持续稳定的输出高电平(低电平)。

其示意图如下:

b27a6181f8d847cf830ebed0c03c018f.jpg

 上图是原理图中ARM和ADC直接的连线。

05308af801274893974de2829fb3ed66.jpg

上图是SPI通信的示意图。

 

二、SPI通信的实现:

①首先NSS引脚变换电平选中芯片,SPI芯片开始工作。

②发送时钟信号:开始进行“读”/“写”

③MOSI(“写”):主机(M)发送数据到缓存区(主机),经过移位寄存器发送到从机(S),从机经过移位寄存器把数据放到缓存区(从机)。

插图(等周末想起来就更新)

④MISO(“读”):从机(S)发送数据到缓存区(从机),经过移位寄存器发送到主机(M),主机经过移位寄存器把数据放到缓存区(主机)。

插图(等周末想起来就更新)

“读”和“写”可以同时进行,也可以分开进行,只“读”时主机发送空数据即可,只“写”时主机忽略接受的数据。

就ADC而已不同芯片的使能不同,所以要和软件沟通好,或者发给他芯片手册。

三、优缺点

就我而言检测板只需要检测信号是否正常,功能是否正常在FPGA和ARM之间通信时可以省略数据和地址线(可能吧,有大佬晓得的提醒下,我是和组内讨论说仅仅是需要简单传输数据的功能)。

我查的资料中

优点:

无启动和停止位,数据可流式传输而不会中断

无I2C那种复杂的从地址系统(从设备寻址系统)

速率高于I2C

可同时收发数据

更灵活的数据传输:不限于8位,可以任意大小的字

硬件简单,确实这方面深有体会,就是因为硬件接口资源不够我才问SPI通信的。从站不用唯一地址(与I2C不同),从机使用主机时钟,不用精密时钟振荡器/晶振(与UART不同),不用收发器(与CAN不同)

缺点:

用四根线(在我这里四根是少的,因为ARM和FPGA通信更多)

无校验是否成功接受数据(I2C有)

无UART的奇偶检验位类似的错误检测

仅允许单个主机

无从机应答信号

无硬件级别的错误检查协议

与RS-232和CAN相比仅支持短距离传输

 

看完资料发现我还得了解下CAN,I2C,UART协议,虽然我不需要会用但是还是得了解的。

  • 18
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值