嵌入式操作教程:2-12 RS232串口通信实验(查询方式)
一、实验目的了解UART 的功能和结构,学习RS232串口通信协议,并实现通过查询方式进行 RS232 串口通信收发。二、实验原理RS232RS232接口是现在主流的串行通信接口之一,被广泛用于计算机串行接口外设连接。 RS232标准的接口,在电压处于-3V-15V时处于逻辑1状,当电压在+3V+15V时,处于逻辑0状态。另外在型号线这块RTS/CTS和DTR/DSR以及CD/RI这些信号线都是以前较老形式的,现在常用的信号线就是RXD/TXD和GND这3条,如果不连接GND地线的话可能会出现乱码。在接头上的2和3接口是接收和发送,5接口就是地线,使用这三条就可以完成接收和发送数据。https://file1.**/web2/M00/BF/FB/wKgZomXDIZaAGYnjAAOPh-Mw2Ic024.pngRS232通信的主要特点(1)全双工数据传输串行数据流可以同时进行双向传输。(2)点对点通信RS232只能实现点对点的通信方式。RS232接口的局限性(1)接口信号电平值较高,接口电路芯片容易损坏。(2)传输速率低,最高波特率19200bps。(3)抗干扰能力较差。(4)传输距离有限,一般在15m以内。(5)只能实现点对点的通讯方式。RS232接口UART1_RXD、UART1_TXD和RS232_UART2_TXD、RS232_UART2_RXD。RS232规定用电平表示数据,因此线路就是单线路的,用两根线才能达到全双工的目的。https://file1.**/web2/M00/BF/FB/wKgZomXDIaiAC8_GAANdbYHC4wA469.png实验板上的CON14和CON15是由UART1和UART2通过MAX3232串口电平转换芯片得到的RS232串口,使用的是9针DB9接口。在本实验中使用的是UART1串口。https://file1.**/web2/M00/C0/E8/wKgaomXDIbiAKUB-AAHHkB8PJvM771.pngUART全称Universal Asynchronous Receiver/Transmitter,通用异步收发传输器。 UART是一种通用串行数据总线,用于异步通信,异步通信以一个字符为传输单位,通信中两个字符间的时间间隔多少是不固定的,但在同一个字符中的两个相邻位间的时间间隔是固定的。该总线双向通信,可以实现全双工传输和接收。串行通信是指利用一条传输线将资料一位位地顺序传送,特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场合。在嵌入式设计中,UART用于主机与辅助设备通信,如PC机通信包括与监控调试器和其它器件。UART特点(1)通用异步(2)串行低速总线(3)全双工(4)需要约定通信速率(5)只能点对点通信https://file1.**/web2/M00/BF/FB/wKgZomXDIcWAYp9iAANv4wsEvfY419.pngUART的功能框图https://file1.**/web2/M00/C0/E8/wKgaomXDIdOAEMxoAAmBVGsWUQ0050.pngUART通信模式(1)单工:数据传输仅能沿一个方向,不能实现反向传输。(2)半双工:数据传输可以沿两个方向,但需要分时进行(RS485)(3)全双工:数据可以同时进行双向传输。https://file1.**/web2/M00/BF/FB/wKgZomXDId-Aar5zAAbAI2IRnl0815.pngUART通信协议起始位 : 发出一个逻辑 0 信号,表示传输字符的开始。数据位 : 数据位的个数可以是 5、6、7、8 等,构成一个字符。通常采用ASCII码(7位),从最低位开始传送。校验位 : 数据位加上这一位后,使得 1 的位数应为偶数(偶校验)或奇数(奇校验),以此来校验传输的正确性。停止位 : 数据的结束标志。可以是 1 位、1.5 位、2 位的高电平。空闲位 : 处于逻辑 1 状态,表示当前线路上没有数据传送。https://file1.**/web2/M00/BF/FB/wKgZomXDIj6ABzNjAAL3xCzHHtM433.png波特率指的是串口通信的速率,也就是串口通信时每秒钟可以传输多少个二进制。譬如每秒钟可以传输9600个二进制位,波特率就是9600。串口通信的波特率不能随意设定,而应该在一些值中选择,一般常见的波特率是9600和115200(低端单片机如51常用9600,高端单片机和嵌入式SoC一般用115200)。(1)通信双方必须事先设定相同的波特率这样才能成功通信,如果发送方和接受方按照不同的波特率通信则根本收不到,因此比特率最好是大家熟知的而不是随意指定的(2)常用的波特率经过长久发展,就形成了共识,常用9600 和115200。程序流程设计程序流程设计中首先要进行外设使能配置,接着进行管脚复用配置和UART初始化,然后进行发送数据,串口不断查询有无需要接收的数据,最后返回数据。https://file1.**/web2/M00/C0/E8/wKgaomXDIkeAKNa1AANjpy6VuFk102.png查询方式对I/O设备的程序轮流查询,它定时对设备轮流询问一遍有无处理需求。轮流询问之后,有需求的,则加以处理。在处理I/O设备的需求完之后,处理机返回继续工作。CPU要不断地读取状态字和检测状态字,不管那个外围设备是否有服务请求,都必须一一查询,许多次的重复查询,可能都是无用的,而又占去了CPU的时间,效率较低。源码说明管脚复用源码管脚复用配置。GPIO复用配置操作直接封装成了函数,使用时,直接包含“TL6748.h”文件 即可。StarterWare API 接口。GPIOBank0Pin0PinMuxSetup();https://file1.**/web2/M00/8E/CE/wKgZomTKC_yAZ-G7AAKpGRZoO-s308.png数据发送源码数据发送配置。使用 StarterWare 的库来设置数据发送。使用时,直接包含“uart.h”文件 即可。StarterWare API 接口。void UARTCharPut(unsigned int baseAdd, unsigned char byteTx)https://file1.**/web2/M00/BF/FB/wKgZomXDIleAVfopAATzILKiwNw727.png数据接收源码数据接收配置。使用 StarterWare 的库来设置数据接收。使用时,直接包含“uart.h”文件 即可。StarterWare API 接口。int UARTCharGet(unsigned int baseAdd)https://file1.**/web2/M00/BF/FB/wKgZomXDIl6ATVlCAAMZjRTfMJQ109.png三、操作现象实验设备本实验使用的硬件接口为UART1 RS232接口,所需硬件为实验板、仿真器、RS232 交叉串口母母线、USB转RS232串口线和电源。https://file1.**/web2/M00/C0/E8/wKgaomXDImqAKf1CAAhJqs2zgiM271.png硬件连接(1)使用 RS232 交叉串口母母线和 USB 转 RS232 串口线连接实验板的UART1串口和电脑的 USB口。(2)连接仿真器和电脑的USB接口,(3)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。https://file1.**/web2/M00/BF/FB/wKgZomXDInaAC7SSAAqNxePOTC4877.png软件操作串口端口查询(1)先在设备管理器查看串口的端口号;(2)再设置串口调试工具,波特率设置为115200。https://file1.**/web2/M00/C0/E8/wKgaomXDIn-AA5CiAAqNxUp7jBM764.pngCCS里相关操作导入工程,选择Demo文件夹下的对应工程编译工程将CCS连接实验箱并加载程序点击运行程序,串口终端会打印相关信息通过电脑键盘输入任意字符,可在串口终端回显。实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。https://file1.**/web2/M00/C0/E8/wKgaomXDIomAQqN1AAqNxS-jS9w233.png
页:
[1]