UART

一,基础知识

数据通信方式:

并行通信:利用多条数据线将数据的各位同时传送。

串行通信:利用一条数据线将数据一位位地顺序传送。

异步通信:以一个字符为传输单位,通信中两个字符间的时间间隔是不固定的。

通信协议:通信双方约定的一些规则,在异步通信时,对数据格式有如下约定:规定有空闲位,起始位,资料位,奇偶校验位,停止位。

波特率:衡量数据传输速率标准

记录每秒传送的二进制位数,例如数据传送速率为120字符/秒,而每一位字符为10位,则其传送的波特率为10*120=1200位/秒=1200波特

传送方式:

单工方式:只能A向B发送数据

半双工方式:A能向B发送,B能向A发送,当时A,B不能同时发送数据

全双工方式:A,B能同时互相发送数据。

二,UART基本原理

通用异步收发器,用来串行传输数据,发送时:CPU将数据并行写入UART,UART按照一定的格式在一根信号线上串行发出:接收时:UART检测另一根信号线上的信号,

将串行数据放在缓冲区中,CPU可读取UART获得的这些数据。


从linux系统或者裸机程序中获得数据送到发送缓冲区寄存器中,在FIFO方式,要发送的数据先写入到FIFO寄存器,然后复制到发送移位器,通过发送数据引脚TxDn移位输出,而接收数据从接收数据引脚RxDn输入并移位,然后从接收移位器复制到FIFO寄存器。在非FIFO方式,要发送的数据先写入发送保持寄存器,然后复制到发送移位器,通过TxDn引脚移位输出,要接收的数据通过RxDn引脚并移位,然后从移位器复制到接收保持寄存器。

发送移位器是为了让数据一位一位的往外发送。

3.UART程序流程

1)UART初始化

设置波特率->设置数据传输格式->选择通道工作模式

设置波特率:

UBRDIV=(int)(PCLK/(buad rate *16))-1

eg:波特率为115200bps,UART时钟PCK=40MHz,

UBRDIV=(int)(40000000/(115200*16))-1

设置数据传输格式:

ULCON,设置数据位,校验位,奇校验,还是偶校验,停止位,流量控制

设置通道工作模式:

UCON,设置中断模式,查询模式或者DMA模式

2)发送数据

UTXHn

3)接收数据

URXHn

发布了43 篇原创文章 · 获赞 15 · 访问量 8万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章