Arduino UNO 有很多接口可供与计算机、另一个Arduino或其它微控制器通信之用,这里我们来介绍一下Arduino UNO控制器的通信接口Arduino UNO 与外围设备进行通信的接口包含 UART 接口、SPI 接口、TWI 接口、USB 通信接口,下面我们来逐一介绍一下这些接口:
(1)UART 接口:UART(Universal Asynchronous Receiver Transmitter:通用异步收发器), Arduino UNO 控制器的串口引脚: 0 (RX) and 1 (TX). 用于接收(RX)和发送(TX)TTL串口数据。这些引脚与 ATmega16U2 USB 转 TTL 串口芯片的相应引脚相连,可以实现全双工。
UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。
(2)SPI 接口:SPI(Serial Peripheral Interface:串行外设接口),Arduino UNO 控制器的 SPI 引脚: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). 这些引脚支持利用SPI库进行SPI通信,可以实现全双工。
SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现多个SPI设备互相连接。提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。 (3)TWI 接口: Arduino UNO 控制器的 TWI 引脚: A4或SDA 和 A5或SCL . 支持通过线库实现 TWI 通信,它实际上就是IIC(INTER IC BUS)总线接口,不能实现全双工。 I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。如果用通用 IO 口模拟 I2C 总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。 (4)USB 通信接口:Arduino UNO 上的 ATmega16U2 会通过 USB 进行该串行通信,在计算机上充当软件的虚拟通信端口。16U2 固件采用标准 USB COM 驱动器,无需外部驱动器。在Windows上,需要1个.inf文件。Arduino 软件包含1个串行监控器,使得简单的文本数据能够发送到或者从 Arduino UNO 板上发出。当通过USB转串口芯片和计算机的 USB 连接传输数据时,电路板上的RX和TX LED会闪烁(但不适于引脚0和1上的串行通信)。 以上是对接口的基本介绍,那么这些接口做什么使用的呢?什么情况下会使用到呢?其实在教程的开始我们说过 Arduino 就是一个小型的开发板,例如数码管显示、液晶显示、无线通信等功能,需要用 Arduino 连接外围模块的形式实现功能,那么问题来了,这些扩展的外围模块与 Arduino 控制器是如何连接的呢?如何通信的呢?没错,它们的连接就用到我们今天介绍的通信接口了,我们来看几个例子: (1)模块使用 SPI 接口连接到 Arduino 控制器 (2)模块使用 UART 串口连接到 Arduino UNO 控制器下图为RB Bluetooth Transceiver 蓝牙模块,通过 TX、RX 与 Arduino UNO 控制器进行连接,实现无线通信功能。
(3)模块使用 IIC 接口连接到 Arduino UNO 控制器
下图为 Arduino IIC/I2C LCD1602 字符液晶显示器,通过 IIC 接口与 Arduino UNO 控制器连接,实现液晶显示功能。
相关推荐:
|