浅析MCU之间通信的主要方式

目前很多产品的集成度比较高,也包括非常多的主控芯片,而芯片之间传递数据不同的方式会有不同特点,速度、稳定性、数据吞吐量等等。
1
mcu之间通信的主要方式
1、采用硬件uart进行异步串行通信 这是一种占用口线少,有效、可靠的通信方式;但遗憾的是许多小型单片机没有硬件uart,有些也只有1个uart,如果系统还要与上位机通信的话,硬件资源是不够的。这种方法一般用于单片机有硬件uart且不需与外界进行串行通信或采用双uart单片机的场合。
2、采用片内spi接口或i2c总线模块串行通信形式
spi/i2c接口具有硬件简单、软件编程容易等特点,但目前大多数低端的单片机不具备硬件spi/i2c外设。
3、可以利用软件模拟spi/i2c模式通信
这种方式很难模拟从机模式,通信双方对每一位要做出响应,通信速率与软件资源的开销会形成一个很大的矛盾,处理不好会导致系统整体性能急剧下降。这种方法只能用于通信量极少的场合。
4、口对口并行通信
利用单片机的口线直接相连,加上1~2条握手信号线。这种方式的特点是通信速度快,1次可以传输4位或8位,甚至更多,但需要占用大量的口线,而且数据传递是准同步的。在一个单片机向另一个单片机传送1个字节以后,必须等到另一个单片机的接收响应信号后才能传送下一个数据。一般用于一些硬件口线比较富裕的场合。
5、利用双口ram作为缓冲器通信
这种方式的最大特点就是通信速度快,两边都可以直接用读写存储器的指令直接操作;但这种方式需要大量的口线,而且双口ram的价格很高,一般只用于一些对速度有特殊要求的场合。
总  结
从上面几种方案来看,各种方法对硬件都有很大的要求与限制,特别是难以在功能简单的单片机上实现,因此寻求一种简单、有效的,能在各种单片机之间通信的方法具有重要的意义。③、④方案中,双方单片机要传递的每一位或每一个字节做出响应,通信数据量较大时会耗费大量的软件资源,这在一些实时性要求高的地方是不允许的。
针对这一问题,假设在单片机之间增加1个数据缓冲器,大批数据先写入缓冲区,然后再让对方去取,各个单片机对数据缓冲器都是主控模式,这样必然会大大提高通信效率。
谈到数据缓冲,我们马上会想到并行ram,但是并行ram需要占用大量的口线(数据线+地址线+读写线+片选线+握手线),一般在16条以上。这是一个让人望而生畏的数字,而且会大大增加pcb面积并给布线带来一定的困难,极少有人采用这种方式。
串行接口的ram在市场上很少见,不但难以买到而且价格很高。移位寄存器也可以做数据缓冲器,但目前容量最大的也只128位,因为是“先进先出”结构,所以不管传递数据多少,接收方必须移完整个寄存器,灵活性差而且大容量的移位寄存器也是少见难买的。一种被称为“铁电存储器”芯片的出现,给我们带来了解决方法。
2
采用铁电存储器
利用铁电存储器作为数据缓冲器的通信方式,铁电存储器是美国ramtran公司推出的一种非易失性存储器件,简称fram。
与普通eeprom、flash-rom相比,它具有不需写入时间、读写次数无限,没有分布结构可以连续写放的优点,因此具有ram与eeprom的双得特性,而且价格相对较低。
现在大多数的单片机系统配备串行eeprom(如24cxx、93cxx等)用来存储参数。如果用1片fram代替原有eeprom,使它既能存储参数,又能作串行数据通信的缓冲器。
2个(或多个)单片机与1片fram接成多主-从的i2c总线方式,增加几条握手线,即可得到简单高效的通信硬件电路。
在软件方面,只要解决好i2c多主-从的控制冲突与通信协议问题,即可实现简单、高效、可靠的通信了。


南通1号线正式通车,赛思时钟系统牵引南通迈入地铁时代
航顺HK32C030胎心仪MCU方案“解读”生命律动,稳稳的!
区块链+房地产成为现实后会有怎样的影响
小米mix最新消息:何苦抢小米6,还不一定抢到,小米mix不比小米6强吗?
特斯拉已启动1万颗英伟达H100 GPU,训练FSD自动驾驶
浅析MCU之间通信的主要方式
MWC热点解读:国产厂商开始引领创新,5G成大热门
我国自主建设出了首个卫星移动通信系统
区分智能驾驶、自动驾驶和无人驾驶三个概念
电子芯闻早报:未来云计算八大发展趋势
IIC-China 2010参展商展前专访:技领半导体
未来人脑和人工智能将协同工作
3种继电器继电器的工作原理和特性
电脑重装系统老是失败,如何解决
基于OpenHarmony2.0 Canary在Linux环境下点亮3861开发板
液晶平板电视机的主要性能参数
比特币扩容为什么这么难
大疆下狠手抓内部腐败问题 45人被处理,损失超过10亿元
通信周动态
借助自适应计算迎接更加智能和互联的世界