微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 单片机必须了解的外设功能——GPIO/串行通信

单片机必须了解的外设功能——GPIO/串行通信

时间:08-07 来源:网络 点击:

  通过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"的信息。

  ※//~为注释符,不会影响程序的运行

  ※本程序仅用于说明程序的原理,并不具有在实际使用时所需的对策。
下接:《单片机必须了解的外设功能——定时器/中断功能》

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top