单片机必须了解的外设功能——GPIO/串行通信
通过UART便可简单地使用串行通信
由于电特性的不同,以及用于进行通信协议的规定不同,串行通信具有多种方式,其中,最易于使用的应该是"异步通信模式"了。仅需用信号线将单片机和外围设备连接起来便可使用,所以在单片机与动作监视器用的终端之间进行通信时、以及单片机与无线LAN用模块进行通信时使用。
在异步通信模式的串行通信状态下,一字节的文字信息※1在"开始位"(Start bit,意味着开始发送)和"停止位"(Stop bit,意味着停止发送)之间发送(图2)。由此,无需I2C (Inter-Integrated Circuit,内部集成电路)"及"SPI(Serial Peripheral Interface,串行外设接口)"等时钟信号线(但在其他的串行通信模式中这些时钟信号线是必需的,以对发送和接收的时序进行同步)。另外,还可追加用于检查数据是否已正常发送的"奇偶校验位(Parity bit)※2"。
此通信方式所使用的通信用器件被称为UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器),在瑞萨电子的单片机--RX63N中内置了支持此功能的SCI(串行通信接口)。
(※1)异步串行通信状态下,一般都是从"最低有效位(LSB: Least Significant Bit),即最低二进制数位"开始进行发送的。
(※2)奇偶校验位(Parity bit):在发送时按一定量的数据(在SCI中为7位或8位)中所具有"1"(或"0")的个数为奇数个时定为"1",为偶数个时定为"0"的奇偶校验位(使偶校验(Even Parity Check)、数据及奇偶校验位中所包括的"1"的数量成为偶数个的方法),并通过与接收侧进行校验,以检测出数据通信中的错误。反之,如果"1"(或"0")的个数为奇数时定为"0",为偶数时定为"1"的方法被称为奇校验(Odd Parity Check)。
在异步通信中,能实现按"单片机→外围设备"或"外围设备→单片机"的方向确保数据信号专用的信号线时,被称为全双工通信。另一方面,将通过1根信号线来切换通信方向的方式称为半双工通信。全双工方式时需要2根信号线,可同时进行发送和接收。半双工方式时仅需1根信号线,但必须在发送和接收之间进行切换(图3)。
尝试向单片机和电脑之间进行通信!
下面,我们通过GR-SAKURA来试用样本程序。本期我们试着通过可在电脑上运行的终端软件和GR-SAKURA之间进行通信。也就是试用从终端软件发送出"?"(半角问号)后就有"GR-SAKURA"的字符串被传送回来的程序(图4)。为了确认该程序的动作状况,需在电脑上安装终端软件。如在Windows系统下可使用免费软件—TeraTerm,而在Mac系统下建议使用该系统标准配备的软件—Terminal。
该样本程序使用了GR-SAKURA的樱花程序库"串行通信(Serial Class)"。该程序库支持全双工异步通信。
在程序的第8行中,对经由USB的通信进行设定。第13行的Serial.read()是用于设定在串行通信中读取从电脑发送过来的数据,在读取"?"(半角问号)时,就将"GR-SAKURA"字符串传送回来。如果换作是GR-SAKURA中所搭载的RX63N单片机来进行处理的话,就是:SCI将电脑传送来的串行信号转换为并行信号,再由CPU对"?"进行识别后判断输出"GR-SAKURA"字符串,之后再通过SCI将并行信号转换为串行信号后发送到电脑上。
虽然只是非常简单的程序,但是由此便可实现在GR-SAKURA和电脑之间进行文字信息的交换。本期我们介绍的是固定字符串,但也可发送GR-SAKURA的处理结果。请大家也作尝试!
SAKURA Sketch Reference: Sakura Library "Serial Communication"(仅英文版)
图4:样本程序:从Terminal输入"?"后,将传送回"GR-SAKURA"的信息。
※//~为注释符,不会影响程序的运行
※本程序仅用于说明程序的原理,并不具有在实际使用时所需的对策。
下接:《单片机必须了解的外设功能——定时器/中断功能》
- STM32之的GPIO推挽输出与开漏输出的区别(11-13)
- 串行通信层MIPI D‘PHY RX详细解读(09-28)
- FPGA与单片机实现数据串行通信的解决方案(02-11)
- DSP与蓝牙模块UART口通信电路设计(08-29)
- 单片机在电源设计中的应用(06-07)
- 基于单片机的锅炉液位控制装置设计(07-22)