通信协议——uart
2017-10-08 09:38
218 查看
通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器,是电脑硬件的一部分。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上,且UART可实现全双工通信。
UART初始化需要定义的一些参数:
1. 起始位
2. 数据位(8位或9位)
3. 奇偶校验位(第9位)
4. 停止位
5. 波特率设置
如下图所示
UART接收数据过程
1. 输入移位寄存器将在串行数据输入线上的数据逐位移入,当数据装满后,发送到输入缓冲寄存器(SBUF)中
2. 当SBUF装载完数据时,产生中断,并且接收中断标志位置1
3. CPU可以此时可以在中断函数中读取SBUF中的数据
其接收中断函数如下:
UART发送数据过程
1. CPU将需要发送的数据传递给输出缓冲寄存器(SBUF,发送和接收缓冲寄存器是地址重叠,但物理结构独立的两个缓冲寄存器)
2. 输出移位寄存器接收输出缓冲寄存器的数据,然后一位一位进行输出,在输出完成后,发送标志位置1,完成数据发送
其发送数据函数如下:
UART初始化需要定义的一些参数:
1. 起始位
2. 数据位(8位或9位)
3. 奇偶校验位(第9位)
4. 停止位
5. 波特率设置
如下图所示
UART接收数据过程
1. 输入移位寄存器将在串行数据输入线上的数据逐位移入,当数据装满后,发送到输入缓冲寄存器(SBUF)中
2. 当SBUF装载完数据时,产生中断,并且接收中断标志位置1
3. CPU可以此时可以在中断函数中读取SBUF中的数据
其接收中断函数如下:
/************************************************************************* 4000 ****** * 函 数 名 :Uart_Interrupt() * 函数功能 :串口中断接收 * 输 入 :无 * 输 出 :无 *******************************************************************************/ void Uart_Interrupt(void) interrupt 4 { if(RI) { ES = 0; //串口中断禁止 RI = 0; //清除接收标志位 res = SBUF; //将接收到的数据存入一个变量 if(res != 0x0a) //判断接收到的数据是否为换行符,0xa0为换行符的ASCII码 { Buff[len++] = res; //存入缓存数组 } else { if(Buff[len-1] == 0x0d) //判断前一个数据是否为回车符 { urt_flag = 1; //置串口标志位为1,说明数据已经接收完成 len--; //接收的数据不包括回车符,所以减1后为实际的字符数目 } } ES=1; } }
UART发送数据过程
1. CPU将需要发送的数据传递给输出缓冲寄存器(SBUF,发送和接收缓冲寄存器是地址重叠,但物理结构独立的两个缓冲寄存器)
2. 输出移位寄存器接收输出缓冲寄存器的数据,然后一位一位进行输出,在输出完成后,发送标志位置1,完成数据发送
其发送数据函数如下:
/******************************************************************************* * 函 数 名 :Uart_Sendstring(unsigned char *str) * 函数功能 :串口发送函数 * 输 入 :需要发送的数组数据 * 输 出 :无 *******************************************************************************/ void Uart_Sendstring(unsigned char *str) { unsigned char *str1; str1 = str; while(*str1 != '\0') //空字符,意味着结束,也可以自行定义一个结束字符 { SBUF = *str1; while(TI == 0); //等待发送标志位置位 TI = 0; str1++; } }
相关文章推荐
- 通信协议之UART
- 嵌入式学习笔记之UART通信协议
- UART 通信逻辑协议设计(3)
- Uart通信协议
- STM32开发 -- UART应用层通信协议分析
- 嵌入式开发之uart---rs232 和rs485 通用自定义通信协议
- 使用逻辑分析进行UART通信协议分析
- UART 通信逻辑协议设计(2)
- 三大通信协议--UART、SPI、IIC
- UART , 通信模型, 协议
- UART0串口编程(一):通信协议设计;RS232标准
- UART通信协议
- 嵌入式学习笔记之UART通信协议
- 传送control嵌入式学习笔记之UART通信协议
- 总线接口与计算机通信(三)UART起止式异步通用串行数据总线
- 初探基于TCP的服务器/客户端结构的聊天系统(二)之应用层通信协议设计
- Java学习系列(十八)Java面向对象之基于UDP协议的网络通信
- 51与PC通信协议设计及实现(五):问题收集解决随笔
- P2P通信标准协议(三)之ICE
- 通信协议之Protocol buffer(Java篇)