我正在研究一种连接两个微 Controller 的方法。在序列化层面,我正在考虑使用 Nano protobuffers ( http://code.google.com/p/nanopb/ )。这样我就可以对消息进行编码/解码并在两个处理器之间发送它们。
基本上,一个小型处理器就是 RPC 服务器,能够执行多种功能。较大的处理器将通过发送的消息调用 RPC,然后当数据准备好时,它将从较小的处理器读取数据。
使用 UART、I2C 或 SPI 的优点/缺点是什么?
消息将在发送前放入邮箱队列中。
最佳答案
这取决于您的总体要求以及引脚的价格。
I2C 只需要两个引脚,但速度很慢,无论是否有中断,处理它都很痛苦,即使有内置的外围模块也是如此。
它是一个主/从系统,非常适合控制许多慢速设备,例如温度传感器。
所有总线设备只有两条线,选择是通过协议(protocol)中的 I2C 地址完成的。
Uart 需要两个引脚,通常速度更快,更容易处理,但两侧需要(几乎)相同的时钟。
如果两个系统有时需要发送数据而不等待主轮询请求,那么一对一的异步系统可能会很好。
也可以用作总线系统,但需要主/从结构或更复杂的协议(protocol)。
SPI需要3个(或4个CS)引脚,它是最快的,即使使用DMA也能简单实现,CPU时间开销低,经常缓冲。 如果您有足够的免费引脚,我会更喜欢它。
关于embedded - 微 Controller 之间处理器间通信的 UART、I2C 与 SPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21469647/