我正在研究一种连接两个微控制器的方法.在序列化的层面上,我正在考虑使用Nano protobuffers(http://code.google.com/p/nanopb/).这样我就可以编码/解码消息并在两个处理器之间发送它们.
基本上,一个小型处理器将是RPC服务器,能够执行多个功能.较大的处理器将通过发送的消息调用RPC,然后当数据准备好时,它将从较小的处理器读取它.
使用UART,I2C或SPI的优缺点是什么?
邮件将在发送之前放入邮箱中.
最好的问候,Drasko
这取决于您的总需求和引脚的价格.
I2C只需要两个引脚,但它很慢并且有或没有中断来处理它是一件痛苦的事情,即使是在外设模块中构建也是如此.它是一个主/从系统,它适用于控制许多慢速设备,如温度传感器.
所有总线设备只有两条线路,通过协议中的I2C地址进行选择.
Uart需要两个引脚,通常更快,更容易处理,但两侧需要(几乎)相同的时钟.如果两个系统有时需要在不等待主轮询请求的情况下发送数据,那么一对一的异步系统就会很好.
也可以用作总线系统,但是你需要一个主/从结构或更复杂的协议.
SPI需要3个(或4个带CS)引脚,它是最快的,即使使用DMA也很容易实现,低CPU时间开销,通常是缓冲的.当你有足够的自由针脚时我会更喜欢它.