当前位置:首页 > 单片机 > 单片机
[导读]Uart工作原理:数据通信方式为:并行通信与串行通信两种:§并行通信:利用多条数据线将数据的各位同时传送。它的特点是:传输速度快,是用于短距离通信;§串行通信:利用一条数据线将数据一位位地顺序传送。特点是通

Uart工作原理:

数据通信方式为:并行通信与串行通信两种:

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

它的特点是:传输速度快,是用于短距离通信;

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

特点是通信线路简单,利用简单的线缆就实现通信,低成本,是用于远距离通信。

异步通信:

a异步通信:以一个字符为传输单位,通过两个字符间的时间间隔是不固定的,然而同一字符中的两个相邻位之间的时间间隔是固定的。

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

起始位:先发一个逻辑“0”信号,表示传输字符的开始;

数据位:紧接在起始位之后。数据位的个数可以是4、5、6、7、8等,从最低位开始传送,靠时钟定位。

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

停止位:它是一个字符数据的结束标志。

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

波特率:

是衡量数据传送率的指标:记录每秒中传送的二进制位数。例如:数据传送速率为120字符、每秒。而每一个字符为10位,则其传送的波特率为10*120=1200位/秒=1200波特率

UART基本原理

通用异步收发器,简称UART,即“Universal Asynchronous Receiver Transmitter”,它用来传输串行数据;

发送数据时:

CPU将并行数据写入UART,UART按照一定的格式在一根电线上串行发出;

接收数据时:

UART检测另一根电线上的信号,将串行数据放在缓冲区中,CPU可读取UART获得的这些数据。

UART驱动程序设计

UART初始化:1.发送数据;2.接收数据;

UART初始化:1.设置波特率;2.设置数据传输格式;3.选择通道工作模式;

一.设置波特率:(UBRDIV)

在s3c2440中,通过UBRDIV(p352)寄存器可以设定UART的波特率。Uart0、Uart1、Uart2分别对应UBRDIV0,UBRDIV1、UBRDIV2

到底UBRDIV寄存器中的值与波特率有何关系?

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

(UART clock:PCLK or FCLK/ n or UEXTCLK)

如波特率为115200bps,UART时钟为40MHZ

UBRDIV =(int) (40MHZ /(115200*16))-1

二.设置数据传输格式(ULCON)

在s3c2440中,通过ULCON(page341),可以设置传输格式(有多少个数据位、是否使用校验位、是奇校验还是偶校验,有多少个停止位、是否使用流量控制)

Uart0、Uart1、Uart2分别对应ULCON0、ULCON1、ULCON2.

三.设置通道工作模式(UCON)

在s3c2440中,通过UCON(page342),可以设置UART通道的工作模式,(中断模式、查询模式、或DMA模式)

Uart0、Uart1、Uart2分别对应UCON0、UCON1、UCON2.

这三步都属于初始化:初始化完成之后à发送或/接收数据

发送数据:

将要发送的数据写UTXHn, UART会将保存到缓冲区中,并自动发出去。

UTXH0、UTXH1、UTXH2

接收数据:

当UART收到数据时(UTRSTATn寄存器bit[0]被置1),CPU读取URXHn寄存器,即可获得数据。

URXH0、URXH1、URXH2寄存器中读取数据


Main.c

#defineGLOBAL_CLK1

#include

#include

#include"def.h"

#include"option.h"

#include"2440addr.h"

#include"2440lib.h"

#include"2440slib.h"

#include"mmu.h"

#include"profile.h"

#include"memtest.h"

staticvoidcal_cpu_bus_clk(void);

voidSet_Clk(void);

/*************************************************

Functionname:delay

Parameter:times

Description:延时函数

Return:void

Argument:void

Autor&date:Daniel

**************************************************/

voiddelay(inttimes)

{

inti,j;

for(i=0;i

for(j=0;j<400;j++);

}

/*************************************************

Functionname:Main

Parameter:void

Description:主功能函数,实现了串口的收发功能

首先想串口发送十次“helloworld”,

Return:void

Argument:void

Autor&date:Daniel

**************************************************/

voidMain(void)

{

inti;

intScom=0;

Set_Clk();

beep_init();

/*设置波特率、数据位、停止位、校验位*/

Uart_Init(0,115200);

Uart_Select(Scom);

for(i=0;i<10;i++)

Uart_Printf("nHelloWorld!n");

while(1)

{

while(Uart_GetKey()=='r')

{

for(i=0;i<10;i++)

beep_run();

Uart_Printf("nBeepQuit!n");

}

}

}

/*************************************************

Functionname:Set_Clk()

Parameter:void

Description:设置CPU的时钟频率

Return:void

Argument:void

Autor&date:Daniel

**************************************************/

voidSet_Clk(void)

{

inti;

U8key;

U32mpll_val=0;

i=2;//don'tuse100M!

//boot_params.cpu_clk.val=3;

switch(i){

case0://200

key=12;

mpll_val=(92<<12)|(4<<4)|(1);

break;

case1://300

key =

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

伴随物联网、车联网、人工智能等新兴应用领域的拓展和深化,智能家居、智慧楼宇、智慧城市和智能工业等行业快速发展,带动物联网无线模组需求释放,进而带动串口WiFi模块,BLE蓝牙模块以及ZigBee模块的需求增长

关键字: uart 串口通信 物联网

UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)是一种常用的串行通信协议,广泛应用于单片机或各种嵌入式设备之间的通信。

关键字: uart 串口通信 嵌入式

▼点击下方名片,关注公众号▼大家好,很高兴和各位一起分享我的第45篇原创文章,喜欢和支持我的工程师,欢迎给我点赞、收藏、分享。加微信[xyzn3333]与作者沟通交流,免费获取更多单片机与嵌入式的海量电子资料。欢迎关注【...

关键字: 串口发送

摘要:为了更好地发挥随钻测井仪检测数据的真实性和使用灵活性等优点,文中基于Actel公司的APA075FPGA数据采集和传输系统所涉及到的AD数据采集、FPGA数据缓存、FPGA中数据的串口发送三部分,在实验室自制的一块...

关键字: 随钻井径检测 AD数据采集 FPGA 串口发送

大家好,我是张巧龙,本文介绍如何使用带FIFO的串口来减少接收中断次数,通过一种自定义通讯协议格式,给出帧打包方法;之后介绍一种特殊的串口数据发送方法,可在避免使用串口发送中断的情况下,提高系统的响应速度。一种可1.简介...

关键字: 串口发送

射雕英雄传中的裘千丈说,UART就是我的轻功水上漂过河。想从河上过(通信),提前布暗桩,行走时步伐按桩距固定(波特率提前确定),步幅太大或太小都会落水。为了不被二弟裘千仞识破,可以安排侍卫在对岸监视通知,没风险才开始表演...

关键字: uart 通信技术

射雕英雄传中的裘千丈说,UART就是我的轻功水上漂过河。想从河上过(通信),提前布暗桩,行走时步伐按桩距固定(波特率提前确定),步幅太大或太小都会落水。为了不被二弟裘千仞识破,可以安排侍卫在对岸监视通知,没风险才开始表演...

关键字: uart 通信技术

射雕英雄传中的裘千丈说,UART就是我的轻功水上漂过河。想从河上过(通信),提前布暗桩,行走时步伐按桩距固定(波特率提前确定),步幅太大或太小都会落水。为了不被二弟裘千仞识破,可以安排侍卫在对岸监视通知,没风险才开始表演...

关键字: uart 通信技术

还记得当年的打印机,鼠标和调制解调器吗?他们都有巨大笨重的连接器和粗电缆,并且必须拧到你的电脑上。这些设备正是使用UART协议与计算机进行通信。虽然USB几乎完全取代了旧的电缆和连接器,但UART绝对没有过时。你会发现目...

关键字: uart 通信技术

这篇基础的UART,献给刚好需要的您!

关键字: uart 嵌入式
关闭