硬件通过什么接口或者方法实现两个CPU之间的通讯?
现在想实现两个ARM之间的通讯,主要用于传输数据和命令。通讯方法除了以下几个方式,还有其他方式么?请各路大神指教!!!1、芯片级:双口RAM,FIFO,公共内存,DMA
2、系统级
PC机的I/O口:RS232,RS485,PIO
紧凑型总线:STD,ISA,cPCI,VME,PC104,3XBUS
3、网络级
Internet,Intranet
是否还有其他更高效的方法呢? IIC,SPI,UART,etc 看你实际需求咯,要求的速度?可靠性?程序的开发难度?成本要求?都有关系了 sddp001 发表于 2016-2-14 15:49
看你实际需求咯,要求的速度?可靠性?程序的开发难度?成本要求?都有关系了 ...
速度要求不高,采用的Linux系统,开发难度低,成本适中即可。 进来学习一下 最高效,最省事是双口RAM,低成本,则硬件SPI,速度可高可低,协议自定 wjb444 发表于 2016-2-14 17:19
最高效,最省事是双口RAM,低成本,则硬件SPI,速度可高可低,协议自定
但是软件开发又要重新修改很多代码,不利于新产品快速上市 速度要求不高 数据量不大 ,UART就够了,软件开发简单。 UART做成单总线方式,主从通信,用于内部板卡间的通信,从机可以多个,分配下地址,随便增删。 直接8位数据口连接 uart“最简单”最常用 打引号是因为一旦实际使用情况复杂的话UART协议会变得复杂而不容易编程稳定 CAN ilikemcu 发表于 2016-2-14 20:02
UART做成单总线方式,主从通信,用于内部板卡间的通信,从机可以多个,分配下地址,随便增删。 ...
UART口不够用,这个方法我会先考虑,再次是CAN口,再次是IIC。你觉得这样怎么样? spi应该首选 ericdai 发表于 2016-2-14 22:24
spi应该首选
大神解释解释 LVDS速度快功耗低传输量大 mkliop 发表于 2016-2-14 23:50
LVDS速度快功耗低传输量大
CPU之间通讯用LVDS怎么实现? mkliop 发表于 2016-2-14 23:50
LVDS速度快功耗低传输量大
代码更改量太大,且我需要的速度不够。综合各位大神的建议,我首选SPI 通讯的距离? zajia 发表于 2016-2-15 00:21
通讯的距离?
同一个电路板 lz没说明两个cpu之间是板级通讯,还是板间通讯,或是机对机通讯。机对机通讯,用can 比较快速可靠,可靠性要求低些可以用异步串行通讯方式。板对板通讯,可用异步串行或同步串行通讯方式。板级通讯,可以用简单高效的串行或并行通讯方式处理。 guet@11308 发表于 2016-2-15 00:10
代码更改量太大,且我需要的速度不够。综合各位大神的建议,我首选SPI
高速的话可以选pcie的NT或者pcie-USB。 如果两个CPU都带网卡,那肯定是用网线最合适了,如果不是都带网卡的话数据量大用spi,小了用法串口 新年报道,学习学习 还有 SATA 3.2、SATA Express、Thunderbolt 2 及 Thunderbolt 3 等。
ericdai 发表于 2016-2-14 22:24
spi应该首选
我也这么认为。 其实, 要做成可靠都不容易, 如怎样保证数据的完整性, 怎样实现流控, 如果通知对方, 如何应答等, 都需要有一套策略. guet@11308 发表于 2016-2-14 22:35
大神解释解释
没啥就是简单,速度还可以 ,各种库比较成熟,开销也小 同一个电路板首选SPI 我也认为SPI是首选,可全双工,高速,当然,速度要求不高的话UART实现起来更简单些。 我们的单板上四块STM32用的SPI互相通信,突发速率能到30M,更高的没试,理论F4能到42M,F7的能到54M uart或SPI lanqilove 发表于 2016-2-15 09:52
如果两个CPU都带网卡,那肯定是用网线最合适了,如果不是都带网卡的话数据量大用spi,小了用法串口 ...
网卡都被占用了,现在只能靠SPI和串口了 guet@11308 发表于 2016-2-15 23:37
网卡都被占用了,现在只能靠SPI和串口了
网卡怎么占的?插上交换机就能通信 其实任何通讯方式都是一致的。既然用了linux操作系统,驱动写好,通讯过程一封装,调用起来基本没区别。就看你要多少速度了。
首选SPI,空闲的时候就配置成从机,采用DMA方式接收数据,几乎不占用CPU资源。 学习一下。应该SPI.
页:
[1]