0
点赞
收藏
分享

微信扫一扫

嵌入式操作教程:2-12 RS232串口通信实验(查询方式)

一、实验目的

了解UART 的功能和结构,学习RS232串口通信协议,并实现通过查询方式进行 RS232 串口通信收发。

二、实验原理

RS232

RS232接口是现在主流的串行通信接口之一,被广泛用于计算机串行接口外设连接。 RS232标准的接口,在电压处于-3V-15V时处于逻辑1状,当电压在+3V+15V时,处于逻辑0状态。另外在型号线这块RTS/CTS和DTR/DSR以及CD/RI这些信号线都是以前较老形式的,现在常用的信号线就是RXD/TXD和GND这3条,如果不连接GND地线的话可能会出现乱码。在接头上的2和3接口是接收和发送,5接口就是地线,使用这三条就可以完成接收和发送数据。

嵌入式操作教程:2-12 RS232串口通信实验(查询方式)_串口通信

RS232通信的主要特点

(1)全双工数据传输

串行数据流可以同时进行双向传输。

(2)点对点通信

RS232只能实现点对点的通信方式。

RS232接口的局限性

(1)接口信号电平值较高,接口电路芯片容易损坏。

(2)传输速率低,最高波特率19200bps。

(3)抗干扰能力较差。

(4)传输距离有限,一般在15m以内。

(5)只能实现点对点的通讯方式。

RS232接口

UART1_RXD、UART1_TXD和RS232_UART2_TXD、RS232_UART2_RXD。RS232规定用电平表示数据,因此线路就是单线路的,用两根线才能达到全双工的目的。

嵌入式操作教程:2-12 RS232串口通信实验(查询方式)_串口_02

实验板上的CON14和CON15是由UART1和UART2通过MAX3232串口电平转换芯片得到的RS232串口,使用的是9针DB9接口。在本实验中使用的是UART1串口。

嵌入式操作教程:2-12 RS232串口通信实验(查询方式)_串口_03

UART

全称Universal Asynchronous Receiver/Transmitter,通用异步收发传输器。 UART是一种通用串行数据总线,用于异步通信,异步通信以一个字符为传输单位,通信中两个字符间的时间间隔多少是不固定的,但在同一个字符中的两个相邻位间的时间间隔是固定的。该总线双向通信,可以实现全双工传输和接收。串行通信是指利用一条传输线将资料一位位地顺序传送,特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场合。在嵌入式设计中,UART用于主机与辅助设备通信,如PC机通信包括与监控调试器和其它器件。

UART特点

(1)通用异步

(2)串行低速总线

(3)全双工

(4)需要约定通信速率

(5)只能点对点通信

嵌入式操作教程:2-12 RS232串口通信实验(查询方式)_数据_04

UART的功能框图

嵌入式操作教程:2-12 RS232串口通信实验(查询方式)_串口通信_05

UART通信模式

(1)单工:数据传输仅能沿一个方向,不能实现反向传输。

(2)半双工:数据传输可以沿两个方向,但需要分时进行(RS485)

(3)全双工:数据可以同时进行双向传输。

嵌入式操作教程:2-12 RS232串口通信实验(查询方式)_数据_06

UART通信协议

起始位 : 发出一个逻辑 0 信号,表示传输字符的开始。

数据位 : 数据位的个数可以是 5、6、7、8 等,构成一个字符。通常采用ASCII码(7位),从最低位开始传送。

校验位 : 数据位加上这一位后,使得 1 的位数应为偶数(偶校验)或奇数(奇校验),以此来校验传输的正确性。

停止位 : 数据的结束标志。可以是 1 位、1.5 位、2 位的高电平。

空闲位 : 处于逻辑 1 状态,表示当前线路上没有数据传送。

嵌入式操作教程:2-12 RS232串口通信实验(查询方式)_数据_07

波特率

指的是串口通信的速率,也就是串口通信时每秒钟可以传输多少个二进制。譬如每秒钟可以传输9600个二进制位,波特率就是9600。

串口通信的波特率不能随意设定,而应该在一些值中选择,一般常见的波特率是9600和115200(低端单片机如51常用9600,高端单片机和嵌入式SoC一般用115200)。

(1)通信双方必须事先设定相同的波特率这样才能成功通信,如果发送方和接受方按照不同的波特率通信则根本收不到,因此比特率最好是大家熟知的而不是随意指定的

(2)常用的波特率经过长久发展,就形成了共识,常用9600 和115200。

程序流程设计

程序流程设计中首先要进行外设使能配置,接着进行管脚复用配置和UART初始化,然后进行发送数据,串口不断查询有无需要接收的数据,最后返回数据。

嵌入式操作教程:2-12 RS232串口通信实验(查询方式)_串口_08

查询方式

对I/O设备的程序轮流查询,它定时对设备轮流询问一遍有无处理需求。轮流询问之后,有需求的,则加以处理。在处理I/O设备的需求完之后,处理机返回继续工作。

CPU要不断地读取状态字和检测状态字,不管那个外围设备是否有服务请求,都必须一一查询,许多次的重复查询,可能都是无用的,而又占去了CPU的时间,效率较低。

源码说明

管脚复用源码

管脚复用配置。

GPIO复用配置操作直接封装成了函数,使用时,直接包含“TL6748.h”文件 即可。

StarterWare API 接口。

GPIOBank0Pin0PinMuxSetup();

嵌入式操作教程:2-12 RS232串口通信实验(查询方式)_串口_09

数据发送源码

数据发送配置。

使用 StarterWare 的库来设置数据发送。

使用时,直接包含“uart.h”文件 即可。

StarterWare API 接口。

void UARTCharPut(unsigned int baseAdd, unsigned char byteTx)

嵌入式操作教程:2-12 RS232串口通信实验(查询方式)_串口通信_10

数据接收源码

数据接收配置。

使用 StarterWare 的库来设置数据接收。

使用时,直接包含“uart.h”文件 即可。

StarterWare API 接口。

int UARTCharGet(unsigned int baseAdd)

嵌入式操作教程:2-12 RS232串口通信实验(查询方式)_数据_11

三、操作现象

实验设备

本实验使用的硬件接口为UART1 RS232接口,所需硬件为实验板、仿真器、RS232 交叉串口母母线、USB转RS232串口线和电源。

嵌入式操作教程:2-12 RS232串口通信实验(查询方式)_数据_12

硬件连接

(1)使用 RS232 交叉串口母母线和 USB 转 RS232 串口线连接实验板的UART1串口和电脑的 USB

口。

(2)连接仿真器和电脑的USB接口,

(3)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。

嵌入式操作教程:2-12 RS232串口通信实验(查询方式)_串口_13

软件操作

串口端口查询

(1)先在设备管理器查看串口的端口号;

(2)再设置串口调试工具,波特率设置为115200。

嵌入式操作教程:2-12 RS232串口通信实验(查询方式)_数据_14

CCS里相关操作

导入工程,选择Demo文件夹下的对应工程

编译工程

将CCS连接实验箱并加载程序

点击运行程序,串口终端会打印相关信息

通过电脑键盘输入任意字符,可在串口终端回显。

实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。

嵌入式操作教程:2-12 RS232串口通信实验(查询方式)_数据_15

举报

相关推荐

0 条评论