找回密码
 立即注册

QQ登录

第8课 — Arduino 通信方式介绍

来源: 学习教程 奥松-Neil 2016-1-13 17:35 显示全部楼层 |阅读模式
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 控制器
下图Arduino 8位静态数码管 扫描显示器 SPI LED 数码管 扩展显示模块,通过 SPI 接口与 Arduino UNO 控制器连接在一起,实现数码管显示功能。

(2)模块使用 UART 串口连接到 Arduino UNO 控制器下图为RB Bluetooth Transceiver 蓝牙模块通过 TX、RX 与 Arduino UNO 控制器进行连接,实现无线通信功能。


(3)模块使用 IIC 接口连接到 Arduino UNO 控制器
下图为 Arduino IIC/I2C LCD1602 字符液晶显示器通过 IIC 接口与 Arduino UNO 控制器连接,实现液晶显示功能。


相关推荐:





回复

使用道具 举报

您可能感兴趣的文章

您需要登录后才可以回帖 登录 | 立即注册

关注0

粉丝6

帖子147

发布主题
社区热门 MORE+
    社区热帖 MORE+