关键词不能为空

当前您在: 主页 > 英语 >

UART串行口简介

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-27 21:30
tags:

-

2021年2月27日发(作者:出师)















UART


异步串行口



UART


异步串行口简介



数据通信的基本方式可分为并行通信与串行通信两种:



?



并行通信


:是指利用多条数据传输线将一个资料的各位同时传送。它的特点是传输速



度快,适用于短距离通信,但要求通讯速率较高的应用场合。



?



串行通信


:是指利用一条传输线将资料一位位地顺序传送。特点是通信线路简单,利


< p>
用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场



合。



UART


异步串行口的传输格式



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



而在同一个字符中的两个相邻位代码间的时间间隔是固定的。



通信协议(通信规程):是指通信双方约定的一些规则。在使用异步串口传送一个



字符的信息时,对资料格式有如下约定:规定有空闲位、起始位、资 料位、奇偶校验



位、停止位。通讯时序图如下:




?



开始前,线路处于空闲状态,送出 连续“


1


”。传送开始时首先发一个“


0


”作为



起始位,然后出现在通信线上的是字符的二进制编码数据。



?



每个字符的数据位长可以约定为


5


位、


6


位、


7


位或


8


位,一般采用


ASCII


编码。



后面是奇偶校验位,根据约定 ,用奇偶校验位将所传字符中为“


1


”的位数凑成奇

< p>


数个或偶数个。也可以约定不要奇偶校验,这样就取消奇偶校验位。



?



最后是表示 停止位的“


1


”信号,这个停止位可以约定持续


1


位、


1.5


位或


2




的时间宽度。



?



至此一个字符传送完毕,线路又进 入空闲,持续为“


1


”。经过一段随机的时间后,



下一个字符开始传送才又发出起始位。



?



每一个数据位的宽度等于传送波特 率的倒数。微机异步串行通信中,常用的波特



率为

< p>
110



150



300



600


,< /p>


1200



2400


4800



9600



19200



384 00



115200


等。



S3C2410


的异步串行口



1



S3C2410



UART



通用异步串行 口)


单元提供三个独立的异步串行


I/O


端口,


每个都可以在中断和


DMA < /p>



种模式下进行。


UART


支持的最高波特率达


230.4kbps


。每个


UART


通道包含


2



16



FIFO


分别提供给接


收和发送。



每个


UART


包含波特率发生器,< /p>


接收器,


发送器和控制单元。



波特率发生器以


PCLK


UCLK


为时钟源。




送器和接收器包含


16


字节


FIFO


寄存器和移位寄存器,当发送数据的时候,数据先写到


FIFO


然后拷贝


到发送移位寄存器,然后从数据输出端口(

< p>
TxDn


)依次被移位输出。被接收的数据也同样从接收端口



RxDn


)移位输入到移位寄存器,然后拷贝到< /p>


FIFO


中。



异步串行口的操作



?



数据发送操作



数据发送帧的格式是可编程的,它包含一个开始位,


5



8


个数据位,一个可选的奇偶位和 一个或


两个停止位,这些可以通过线性控制器(


ULCONn< /p>


)来设置。发送器也能够产生发送中止条件。中止条件


迫使串口输 出保持在逻辑


0


状态,


这种状态保持 一个传输帧的时间长度。


通常在一帧传输数据完整地传


输完之后 ,


在通过这个全


0


状态将中止信号发 送给对方。


中止信号发送之后,


传送数据连续放到


FIFO



(在不使用


FIFO


模式下,将被放到输出保持寄存器)。



?



数据接收操作



与数据发送一样,数据 接收的帧也是可以编程的,它包含一个开始位,


5



8



< /p>


数据,一个可选的奇偶位和一位或两位停止位,它们都是通过线性控制器(


ULCONn




来设置的。



接收器能够检测溢出错误 ,奇偶校验错误,帧错误和中止状况,每种情况下都将



会将一个错误标志置位。



UART


异步串行口的波特率发生器



每个


UART


的波特率发生器为传输 提供了串行移位时钟。波特率产生器的时钟源可以从


S3C2410



内部系统时钟或


UCLK


中来选择。。波特率由时钟源(


PCLK


UCLK



16


分频然后被


UART


波特率除数寄< /p>


存器(


UBRDIVn


)指定的


16


位除数决定。因此,


UBRDIVn


的值可以按照下式确定:



UBRDI Vn


=(int)



PCLK/



bps*16


))


-1




其中


bps


为波特率。



例如,如果波特率为


115200bps



PCLK



UCLK



40MHz,



UBRDIVn


为:



UBRDIVn


=



int



(40000000)(115200*16 ))-1


= (int)(21.7)-1


= 21-1 = 20



UART


异步串行口波特率 发生器的误差极限



UART


传输


10bit


数据的时间误差应该小于


1.8 7


%(


3/160


)。



tUPCLK = (UBRDIVn + 1) x 16 x 10 / PCLK


实际的传输


10bit


所需时间。



tUEXACT = 10 / baud- rate











理想情况下传输

< br>10


位需要的时间。



UART error



(tUPCLK



tUEXACT) / tUEXACT x 100%


异步串行口的相关寄存器



?



线路控制寄存器(


ULCON





2



线性控制寄存器,主要用来规定 传输帧的格式。下面表格是线控制寄存器的地址



和位定义:



寄存器



ULCON0


ULCON1


ULCON2


地址



0x50000000


0x50004000


0x50008000



/





/





/





/




描述



UART


通道


0


线路控制寄存器


< p>
UART


通道


1


线路控制 寄存器



UART


通道


2


线路控制寄存器



重置值




0x00


0x00


0x00




ULCONn



保留



Infra-Red Mode




[7]


[6]



描述



初始状态



0


0


Parity Mode


决定是否用红外模式。



0 =


正常模式操作



1 =


红外


Tx/Rx


模式



[5:3]


指定奇偶产生的类型并在


UART


的传输与接收操作中检查。



0xx =


非奇偶



100 =




101 =




110 =


强制奇偶


/


选中为


1


111 =


强制奇偶


/


选中为


0


指定多少个停止位将被使用对于帧结束信号。



0 =


每帧一个停止位



1 =


每帧两个停止位



[1:0]


显示每帧传输或接收的数据位的数目。



00 = 5


位,


01 = 6




10 = 7


位,


11 = 8




[2]


000


Number of Stop Bit


0


Word Length


00




?



控制寄存器(


UCON


< br>


寄存器



UCON0


UCON1


UCON2


地址



0x50000004


0x50004004


0x50008004



/





/





/





/




描述



UART


通道


0


控制寄存器



UART


通道


1


控制寄存器< /p>



UART


通道


2


控制寄存器



重置值



0x00


0x00


0x00








UCONn



Clock


Selection





描述



初始状态



0


[10]


选择


PCLK

< p>


UCLK


对于


UART


的波特率。



0=PCLK : UBRDIVn = (int)(PCLK / (bps x 16) ) -1


1=UCLK(@GPH8) : UBRDIVn = (int)(UCLK / (bps x 16) ) -1



3



Tx Interrupt


Type


Rx Interrupt


Type


Rx Time Out


Enable


[9]


中断请求类型。



0 =

< p>
脉冲型


(



Tx


缓冲区在无输入输出模式下变空或当


Tx


在输入 输出


模式下的输入输出到达触发电平时,中断就被请求。


)


1 =


电平型


(


Tx


缓冲区在无输入输出模式下变空或当


Tx


在输入输出


模式下的输入输出到达触发电平时,中 断就被请求。


)


[8]


中断请求类型。



0 =

< p>
脉冲型


(



Rx


缓冲区在无输入输出模式下接收数据或当


Rx


在 输入


输出模式下的输入输出到达触发电平时,中断就被请求。


)


1 =


电平型


(


Rx


缓冲区在无输入输出模式下接收数据或当

< p>
Rx


在输入


输出模式下的输入输出到达触发电平时 ,中断就被请求。


)


[7]



UART


的输入输出被使能时,使


Rx


的定时中断使能


/


失能。这个中断


是一个接收中断。


0 =


失能,


1 =


使能



0


0


0


Rx


Error


Status


[6]


使


UART


在一个例外上产生中断是使 能的,例如一个暂停,帧出错,奇


Interrupt


偶出错或溢出出错在一个接收操作中。



Enable


0 =


不产生接收出错的状态中断



1 =


产生接收出错的状态中断



Loopback Mode


[5]

设置回溯位为


1


将引起


UART< /p>


加入到回溯模式中。这种模式只是为测试


目的而提供的。


0 =


正常操作,


1 =


回溯模式



Send Break


Signal


[4]


设置这个位 将引起


UART


在一帧的时间内传送一个暂停。


这个位在送出


暂停信号后会被自动清除。



0 =


正常传输,


1 =


传送暂停信号



0


0


0



Transmit Mode


[3:2]


决定哪一个函数当前能够对


Tx


写入数据到

< p>
UART


传输缓冲寄存器。



00 =


失能



01 =


中断请求或轮流检测模式



10 = DMA0


请求(只对于


UA RT0



,DMA3


请求(只对于


UART2




11 = DMA1


请求(只对于


UART1)


Receive Mode


[1:0]

< br>决定哪一个函数当前能够读取数据从


UART


接收缓冲寄 存器。



00 =


失能



01 =


中断请求或轮流检测模式



10 = DMA0


请求(只对于


UART0


)< /p>


,DMA3


请求(只对于


UART2




11 = DMA1


请求(只对于


UART1)


00


00





?



FIFO


控制寄存器(


UFCON




寄存器



UFCON0


UFCON1


UFCON2


UFCONn



地址



0x50000008


0x50004008


0x50008008






/





/





/





/




描述



UART


通道


0FIFO


控制寄存器



UART


通道


1FIFO

< br>控制寄存器



UART


通道


2FIFO


控制寄存器



描述



重置值



0x0


0x0


0x0


初始状态



00


Tx FIFO Trigger Level


[7:6]


决定传输


FIFO


的触发电平。



00 =


空,


01 = 4


字节



10 = 8


字节,


11 = 12


字节



Rx FIFO Trigger Level


[5:4]


决定接收


FIFO


的触发电平。



00 = 4


字节,


01 = 8


字节



10 = 12


字节,


11 = 16


字节



00



4



保留



Tx FIFO Reset


Rx FIFO Reset


[3]



[2]


在重新设置


FIFO


后自动清除。



0 =


正常,


1= Tx FIFO


重置



[1]

< p>
在重新设置


FIFO


后自动清除。



0 =


正常,


1= Rx FIFO


重置



[0]


0 =


失能



1 =


使能



0


0


0


FIFO Enable


0





?



MODEM


控制寄存器(


UMCON




寄存器



UMCON0


UMCON1


保留



地址



0x5000000C


0x5000400C


0x5000800C





[7:5]


这些位必须是


0


[4]


0 =


失能



1 =


使能




/





/





/




-


描述



U ART


通道


0Modem


控制寄存器< /p>



UART


通道


1Modem


控制寄存器



保留



描述



重置值



0x0


0x0


未定义



初始状态



00


0


00


0



UMCONn



保留



Auto Flow Control


(AFC)


保留



Request to Send


[3:1]


这些位必须是


0


[0]


如果


AFC



是使



的,



个值



被忽



。在


这种



况下


S3C 2410X


将自动控制


nRTS


。如果


AFC


位是失能的,


nRTS


必须


由软件控制。



0 =



H


’电平


(


不激活


nRTS)



1 =



L


’电平


(


激活


nRTS)



?



发送< /p>


/


接收状态寄存器(


UTRSTA


T






Register



Addre


ss



R/W



Description



R



R



R



UART


通道


0 Tx/Rx


状态寄存器




UART


通道


1 Tx/Rx


状态寄存器




UART


通道


2 Tx/Rx


状态寄存器



Reset Value



0x6



0x6



0x6



UTRSTAT0



0x50000010



UTRSTAT1



0x50004010



UTRSTAT2



0x50008010








UTRSTATn



Transmitter empty



Bit



Description



[2]



当传输缓冲寄存器中没有有效的值传输并且传输转换寄


存器中为空的时候,自动置


1.



0 =


不为空




1 =


传输器



(


传输缓冲器



&


转换寄存器


)


为空



Initial


State



1




5

-


-


-


-


-


-


-


-



本文更新与2021-02-27 21:30,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/676137.html

UART串行口简介的相关文章