guet@11308 发表于 2016-2-14 15:17:27

硬件通过什么接口或者方法实现两个CPU之间的通讯?

现在想实现两个ARM之间的通讯,主要用于传输数据和命令。通讯方法除了以下几个方式,还有其他方式么?请各路大神指教!!!
1、芯片级:双口RAM,FIFO,公共内存,DMA
2、系统级
PC机的I/O口:RS232,RS485,PIO
紧凑型总线:STD,ISA,cPCI,VME,PC104,3XBUS
3、网络级
Internet,Intranet
是否还有其他更高效的方法呢?

little_Monkey 发表于 2016-2-14 15:34:42

IIC,SPI,UART,etc

sddp001 发表于 2016-2-14 15:49:35

看你实际需求咯,要求的速度?可靠性?程序的开发难度?成本要求?都有关系了

guet@11308 发表于 2016-2-14 15:51:29

sddp001 发表于 2016-2-14 15:49
看你实际需求咯,要求的速度?可靠性?程序的开发难度?成本要求?都有关系了 ...

速度要求不高,采用的Linux系统,开发难度低,成本适中即可。

WXF_mabg 发表于 2016-2-14 15:53:14

进来学习一下

wjb444 发表于 2016-2-14 17:19:51

最高效,最省事是双口RAM,低成本,则硬件SPI,速度可高可低,协议自定

guet@11308 发表于 2016-2-14 19:36:36

wjb444 发表于 2016-2-14 17:19
最高效,最省事是双口RAM,低成本,则硬件SPI,速度可高可低,协议自定

但是软件开发又要重新修改很多代码,不利于新产品快速上市

dhbighead 发表于 2016-2-14 19:43:23

速度要求不高 数据量不大 ,UART就够了,软件开发简单。

ilikemcu 发表于 2016-2-14 20:02:34

UART做成单总线方式,主从通信,用于内部板卡间的通信,从机可以多个,分配下地址,随便增删。

hzpyl 发表于 2016-2-14 20:50:15

直接8位数据口连接

ziruo2002ab 发表于 2016-2-14 21:12:58

uart“最简单”最常用   打引号是因为一旦实际使用情况复杂的话UART协议会变得复杂而不容易编程稳定

ilan2003 发表于 2016-2-14 21:29:04

CAN                  

guet@11308 发表于 2016-2-14 22:14:05

ilikemcu 发表于 2016-2-14 20:02
UART做成单总线方式,主从通信,用于内部板卡间的通信,从机可以多个,分配下地址,随便增删。 ...

UART口不够用,这个方法我会先考虑,再次是CAN口,再次是IIC。你觉得这样怎么样?

ericdai 发表于 2016-2-14 22:24:39

spi应该首选

guet@11308 发表于 2016-2-14 22:35:03

ericdai 发表于 2016-2-14 22:24
spi应该首选

大神解释解释

mkliop 发表于 2016-2-14 23:50:35

LVDS速度快功耗低传输量大

guet@11308 发表于 2016-2-15 00:07:07

mkliop 发表于 2016-2-14 23:50
LVDS速度快功耗低传输量大

CPU之间通讯用LVDS怎么实现?

guet@11308 发表于 2016-2-15 00:10:09

mkliop 发表于 2016-2-14 23:50
LVDS速度快功耗低传输量大

代码更改量太大,且我需要的速度不够。综合各位大神的建议,我首选SPI

zajia 发表于 2016-2-15 00:21:03

通讯的距离?

guet@11308 发表于 2016-2-15 09:21:48

zajia 发表于 2016-2-15 00:21
通讯的距离?

同一个电路板

wiser803 发表于 2016-2-15 09:37:54

lz没说明两个cpu之间是板级通讯,还是板间通讯,或是机对机通讯。机对机通讯,用can 比较快速可靠,可靠性要求低些可以用异步串行通讯方式。板对板通讯,可用异步串行或同步串行通讯方式。板级通讯,可以用简单高效的串行或并行通讯方式处理。

zjykwym 发表于 2016-2-15 09:48:08

guet@11308 发表于 2016-2-15 00:10
代码更改量太大,且我需要的速度不够。综合各位大神的建议,我首选SPI

高速的话可以选pcie的NT或者pcie-USB。

lanqilove 发表于 2016-2-15 09:52:34

如果两个CPU都带网卡,那肯定是用网线最合适了,如果不是都带网卡的话数据量大用spi,小了用法串口

xuebingsmart 发表于 2016-2-15 10:02:34

新年报道,学习学习

xyz543 发表于 2016-2-15 10:35:06

还有 SATA 3.2、SATA Express、Thunderbolt 2 及 Thunderbolt 3 等。

yanhaijian2005 发表于 2016-2-15 11:58:02

ericdai 发表于 2016-2-14 22:24
spi应该首选

我也这么认为。

lkm_unication 发表于 2016-2-15 13:21:49

其实, 要做成可靠都不容易, 如怎样保证数据的完整性, 怎样实现流控, 如果通知对方, 如何应答等, 都需要有一套策略.

ericdai 发表于 2016-2-15 18:17:21

guet@11308 发表于 2016-2-14 22:35
大神解释解释

没啥就是简单,速度还可以 ,各种库比较成熟,开销也小

modbus 发表于 2016-2-15 18:49:52

同一个电路板首选SPI

LDMega 发表于 2016-2-15 19:08:39

我也认为SPI是首选,可全双工,高速,当然,速度要求不高的话UART实现起来更简单些。

wangrb 发表于 2016-2-15 19:17:20

我们的单板上四块STM32用的SPI互相通信,突发速率能到30M,更高的没试,理论F4能到42M,F7的能到54M

长风万里 发表于 2016-2-15 20:45:39

uart或SPI

guet@11308 发表于 2016-2-15 23:37:03

lanqilove 发表于 2016-2-15 09:52
如果两个CPU都带网卡,那肯定是用网线最合适了,如果不是都带网卡的话数据量大用spi,小了用法串口 ...

网卡都被占用了,现在只能靠SPI和串口了

lanqilove 发表于 2016-2-16 08:42:42

guet@11308 发表于 2016-2-15 23:37
网卡都被占用了,现在只能靠SPI和串口了

网卡怎么占的?插上交换机就能通信

jimmy_xt 发表于 2016-2-16 09:25:44

其实任何通讯方式都是一致的。既然用了linux操作系统,驱动写好,通讯过程一封装,调用起来基本没区别。就看你要多少速度了。

LingYi 发表于 2016-2-17 16:44:14

首选SPI,空闲的时候就配置成从机,采用DMA方式接收数据,几乎不占用CPU资源。

yangzhong316 发表于 2016-2-22 16:30:43

学习一下。应该SPI.
页: [1]
查看完整版本: 硬件通过什么接口或者方法实现两个CPU之间的通讯?