SPI超远距离长线通信方法,以及在SPI显示器上的应用

2019-12-11 18:26发布

本帖最后由 neqee 于 2018-12-3 10:43 编辑

这篇文章也许现在对你没什么用,但以后需要的时候希望能帮到你.
之前在论坛也有很多人讨论过长距离通信的最佳方案,希望能找到一种传输距离几十米,速度不要太慢,但又不需要太快,稳定可靠又简单的通信方法,我个人认为非SPI莫属,不过需要将SPI转换成差分信号传输才能做到稳定可靠的超长距离通信。相比之下,RS232、RS485、Can速度太慢, I2C、UART速度不行距离更不行,Ethernet、USB应用复杂成本高而且不够稳定可靠。
SPI作为同步、单向通信接口,时序严谨,支持推挽驱动,支持驱动缓冲,就算不转换为差分传输,如果布线和对地阻抗做地好的话,比如使用灰排线并且每根信号用地间隔,18MHz时钟频率,一般环境下,2米距离通信完全没有问题;但如果是强干扰环境,超远距离通信,就必须考虑将TTL信号转为差分传输,而常用、简单、高速、低成本的差分传输是LVDS:
image013.jpg (75.74 KB, 下载次数: 0) 下载附件 2018-12-3 10:29 上传

SPI作为同步、单向、推挽串行高速接口,它的扩展性和可转换性是非常强大的,我在想,以后工控设备主机是不是可以像串口DB9那样配备一个这样的"DVI接口"呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
46条回答
neqee
2019-12-15 17:39
dukelec 发表于 2018-12-11 12:23
跟 MCU 采样 UART 相似,都是用更高的频率来采样:
STM32 一般是固定 16x 倍频采样,部分型号支持 8x 倍 ...

我在想,既然用CPLD来做协议了,为什么不把校验和重发也做在CPLD 的ip核里面?我知道实现起来还是有一定的难度,但对用户来说,可以摆脱很多工作量,在用户看来,使用就简单很多了!也许你在顾虑MCU和CPLD通信错误怎么办?其实这个问题是可以解决的,MCU读CPLD状态时,读"MCU-CPLD"和"RS485总线"两个校验状态不就可以了?

一周热门 更多>