四个单片机串口通信电路设计
- 前言
单片机的串口通信,是简单的通信协议,STC单片机就是通过串口协议进行下载程序的。这里说的串口通信是指UART,当然广泛意义上的串口通信是指非并口通信,比如SPI,IIC等。
一般我们设计的单片机板子,只有一个单片机,我想,如果有多个单片机会怎么样呢?一个单片机算是很常见的模式了,编写代码也是常规的套路,但是两个,三个单片机呢,还是简单的以一个个进行程序编写,然后逐个下载到单片机内部,然后单片机之间仅进行一些数据交流吗?这个算是一种多个单片机电路设计的一种方式。
上述的方式存在一个问题,单片机之间的数据交流需要一定的时间,当然这个我们可以用DMA 硬件串口的方式节省这个时间。那可不可以让单片机共用数据存储器(SRAM)呢。这个场景对于大量数据需要先行处理的情况会好一些,但是这个也是有一定问题的,就是两个单片机是不能同时访问SRAM的。(附图:STC单片机外部扩展SRAM电路)
上述是我对多个单片机协作处理信息方式的一个看法,回归本题,假如我们要做一个多片单片机的板子,我们要如何设计电路呢?
- 一般串口通信电路
一般的串口通信,两个芯片U1和U2,U1的TXD接到U2的RXD,U2的TXD接到U1的RXD。如果只需要单向通信,其实只需要接一根线就可以了,当然还需要共地。
两个单片机可以直接交叉连接,3个呢,3个单片机,任意两个都要进行交叉,最终的电路会是什么样子?
假如我们只看U1和其他两个单片机通信,那么连接图是这个样子。单片机U1确实可以和U2,U3通信,但是U2和U3却不能通信,因为他们的发送端接在了一起。
要解决这个问题,我们可以给U3的串口接一个TXD和RXD可交换的电路结构,比如模拟开关,然后这个开关可以被U1,U2,U3去控制,因为这个三个单片机都可能是串口数据发送方,发送方去选择接收方合情合理。
- 模拟开关CD4052介绍
CD4051,52,53是模拟开关系列的芯片,通过使用模拟开关即可实现电路连接的改变。今天来介绍一下CD4052。