S3C2410 -- UART

发布者:BeaLaity0170最新更新时间:2016-11-25 来源: eefocus关键字:S3C2410  UART 手机看文章 扫描二维码
随时随地手机看文章

自动流控模式
S3C2410的UART0和UART1都可以通过各自的nRTS和nCTS信号来实现自动流控。
在自动流控(AFC)模式下nRTS取决于接收端的状态,而nCTS控制了发送断的操作。具体地说:只有当nCTS有效时(表明接收方的FIFO已经准备就绪来接收资料了),UART才会将FIFO中的资料发送出去。在UART接收资料之前,只要当接收FIFO有至少2-byte空余的时候,nRTS就会被置为有效。图5-12是UART 自动流控模式的连接方式  

 

图5-12

  中断/DMA请求产生
S3C2410的每个UART都有7种状态,分别是:溢出覆盖(Overrun)错误、奇偶校验错误、帧出错、断线错误、接收就绪、发送缓冲空闲、发送移位器空闲。它们在UART状态寄存器 UTRSTATn / UERSTATn 中有相应的标志位。

波特率发生器
每个UART控制器都有各自的波特率发生器来产生发送和接收资料所用的序列时钟,波特率发生器的时钟源可以CPU内部的系统时钟,也可以从CPU的 UCLK 管脚由外部取得时钟信号,并且可以通过 UCONn 选择各自的时钟源。
波特率产生的具体计算方法如下:
当选择CPU内部时钟时:
UBRDIVn=(int)(PCLK/(bps*16))-1,bps为所需要的波特率值,PCLK为CPU内部外设总线(APB)的工作时钟。
当需要得到更精确的波特率时,可以选择由 UCLK 引入的外部时钟来生成。
UBRDIVn=(int)(UCLK/(bps*16))-1
LoopBack操作模式
S3C2410 CPU的UART提供了一种测试模式,也就是这里所说的LoopBack模式。在设计系统的具体应用时,为了判断通讯故障是由于外部的数据链路上的问题,还是CPU内驱动程序或CPU本身的问题,这就需要采用LoopBack模式来进行测试。在LoopBack模式中,资料发送端TXD在UART内部就从逻辑上与接收端RXD连在一起,并可以来验证资料的收发是否正常。
UART控制寄存器
下面将针对UART的各个控制寄存器逐一进行讲解,以期对UART的操作和设置能有更进一步的了解。

ULCONn (UART Line Control Register)见图5-13

 

 

图5-13

 

Word Length :资料位长度
Number of Stop Bit :停止位数
Parity Mode :奇偶校验位类型
Infra-Red Mode :UART/红外模式选择(当以UART模式工作时,需设为“0”)

UCONn (UART Control Register)见图5-14
Receive Mode :选择接收模式。如果是采用DMA模式的话,还需要指定说使用的DMA信道。
Transmit Mode :同上。
Send Break Signal :选择是否在传1帧资料中途发送Break信号。
Loopback Mode :选择是否将UART置于Loopback测试模式。
Rx Error Status Interrupt Enable :选择是否使能当发生接收异常时,是否产生接收错误中断。
Rx Time Out Enable :是否使能接收超时中断。
Rx Interrupt Type :选择接收中断类型。
选择0:Pulse(脉冲式/边沿式中断。非FIFO模式时,一旦接收缓冲区中有资料,即产生一个中断;为FIFO模式时,一旦当FIFO中的资料达到一定的触发水平后,即产生一个中断)


选择1:Level(电平模式中断。非FIFO模式时,只要接收缓冲区中有资料,即产生中断;为FIFO模式时,只要FIFO中的资料达到触发水平后,即产生中断)
Tx Interrupt Type :类同于Rx Interrupt Type
Clock Selection :选择UART波特率发生器的时钟源。

图5-14

UFCONn (UART FIFO Conrtol Register)见图5-15
FIFO Enable :FIFO使能选择。
Rx FIFO Reset :选择当复位接收FIFO时是否自动清除FIFO中的内容。
Tx FIFO Reset :选择当复位发送FIFO时是否自动清除FIFO中的内容。
Rx FIFO Trigger Level :选择接收FIFO的触发水平。
Tx FIFO Trigger Level :选择发送FIFO的触发水平。

图5-15

UMCONn (UART Modem Control Register)见图5-16
Request to Send :如果在AFC模式下,该位将由UART控制器自动设置;否则的话就必须由用户的软件来控制。
Auto Flow Control :选择是否使能自动流控(AFC)。

图5-16

UTRSTATn (UART TX/RX Status Register)见图5-17
Receive buffer data ready :当接收缓冲寄存器从UART接收端口接收到有效资料时将自动置“1”。反之为“0”则表示缓冲器中没有资料。
Transmit buffer empty :当发送缓冲寄存器中为空,自动置“1”;反之表明缓冲器中正有资料等待发送。
Transmitter empty :当发送缓冲器中已经没有有效资料时,自动置“1”;反之表明尚有资料未发送。

图5-17

UERSTATn (UART Error Status Register)见图5-18
Overrun Error :为“1”,表明发生Overrun错误。
Frame Error :为“1”。表明发生Frame(帧)错误。

图5-18

UFSTATn :(UART FIFO Status Register)见图5-19
Rx FIFO Count :接收FIFO中当前存放的字节数。
 Tx FIFO Count :发送FIFO中当前存放的字节数。
 Rx FIFO Full :为“1“表明接收FIFO已满。
 Tx FIFO Full :为“1“表明发送FIFO已满。


图5-19

UMSTATn :(UART FIFO Status Register)见图5-20
Clear to Send :为“0”表示CTS无效;为“1”表示CTS有效。
Delta CTS :指示自从上次CPU访问该位后,nCTS的状态有无发生改变。
为“0”则说明不曾改变;反之表明nCTS信号已经变化了。


图5-20

UTXHn 和 URXHn 分别是UART发送和接收资料寄存器
这两个寄存器存放着发送和接收的资料,当然只有一个字节8位资料。需要注意的是在发生溢出错误的时候,接收的资料必须要被读出来,否则会引发下次溢出错误

UBRDIVn :(UART Baud Rate Divisor Register)见图5-21

图5-21

关于UART波特率的计算方法,在前面的内容中已经有详细的阐述,此处不做多余说明。

小结: 读写状态寄存器UTRSTAT 以及错误状态寄存UERSTAT,可以反映芯片目前的读写状态以及错误类型。FIFO 状态寄存器UFSTAT 和MODEM 状态寄存器UMSTAT,通过前者可以读出目前FIFO 是否满以及其中的字节数;通过后者可以读出目前MODEM 的CTS状态。


关键字:S3C2410  UART 引用地址:S3C2410 -- UART

上一篇:S3C2410的中断过程中保存和还原现场问题分析
下一篇:S3C2410 IIS音频驱动

推荐阅读最新更新时间:2024-03-16 15:22

基于JTAG接口实现ARM的FPGA在线配置
  引 言   随着通信技术的发展,出现越来越多的无线接入技术,为了解决不同标准间的互通和兼容,人们提出了软件无线电(Software Defined Radio,SDR)技术。SDR技术要求通信终端具有可重配置能力,根据特定通信网络情况,动态地改变调制/解调、编解码、交织/解交织等方案。SDR终端的实现往往都是基于可重配置的硬件环境,如现场可编程逻辑阵列(Field Programmable Gate Array,FPGA)、数字信号处理器(Digital Signal Processor,DSP),而不是专用集成电路(Application Specific Integrated Circuit,ASIC)等特定的硬件电路和芯
[单片机]
基于JTAG接口实现ARM的FPGA在线配置
控制IO端口 s3c2410_gpio_setpin()的使用
本文基于FL2440 ARM开发板 Linux内核版本 2.6.28.7 arm-linux-gcc 3.4.1 #include linux/kernel.h #include linux/init.h #include linux/module.h #include linux/fs.h #include linux/types.h #include linux/interrupt.h /*设置中断方式*/ #include linux/wait.h #include linux/irq.h #include asm/uaccess.h #include mach/regs-gpio.
[单片机]
STM32 Uart 接收不定长数据
前面讲了Uart三种不同的方式接收数据,请参照《STM32 Uart及其配置》《STM32 Uart中断接收》《STM32 Uart DMA方式接收数据》,但是,它们都需要指定数据的长度,但实际应用中,会出现不定长度的数据,比如,某些模块的@命令,那么,如何接收不定长度的数据呢?今天,我们就来扒一扒STM32 Uart 变长数据的接收。 问题来了,变长数据包,我们如何确定数据包的长度? 带着问题思考,我们可以得出以下几种思路: 1. 制定严格的通信协议,带有一串特殊字符的数据包头、长度、校验、包尾等,比如,一开始收到:0xAA-0xBB-0xCC-0xDD-0xEE,表示数据包头,接下来两个字节
[单片机]
STM32 <font color='red'>Uart</font> 接收不定长数据
Linux-2.6.32.2内核在mini2440上的移植(十八)---将UART2更成普通串口
移植环境 1,主机环境:VMare下CentOS 5.5 ,1G内存。 2,集成开发环境:Elipse IDE 3,编译编译环境:arm-linux-gcc v4.4.3,arm-none-linux-gnueabi-gcc v4.5.1。 4,开发板:mini2440,2M nor flash,128M nand flash。 5,u-boot版本:u-boot-2009.08 6,linux 版本:linux-2.6.32.2 7,参考文章: 嵌入式linux应用开发完全手册,韦东山,编著。 Mini2440 之Linux 移植开发实战指南 【1】硬件原理 S3C2440 芯片具有3 个串口:UART0,1,2,我们下载的L
[单片机]
Linux-2.6.32.2内核在mini2440上的移植(十八)---将<font color='red'>UART</font>2更成普通串口
8051/2单片机常用的本地通讯方式 UART,RS485,I2C,SPI 之 SPI 25AA040A 读写 E2PROM 4
一、说明 PART 3 SPI (SCLK,SDO,SDI) 全双工 SCLK 时钟 ,SDO(MOSI) 数据输出,SDI (MISO) 数据输入 8051SPI 和 I2C一样也是需要用IO模拟 SPI总线传输共有4种类型, CPOL位,高电平为:1,低电平为:0 CPHA位, 边沿,先读后写:0,先写后读:1 传输时候,先传输高位再传输低位 实验程序采用SPI 串行总线的EEPROM,25AA040A 过程 读数据: 先写入读命令,再写读地址 写数据: 先使写地址锁存,然后使用写命令,写地址,然后再写入数据 A8 如果是9位寄存器有效 1,8位为0 二、演示 三、时序 命令字 读写时序 写使能
[单片机]
8051/2单片机常用的本地通讯方式 <font color='red'>UART</font>,RS485,I2C,SPI 之 SPI 25AA040A 读写 E2PROM 4
ATMEGA128 UART的使用
#include myuart.h #include avr/io.h #include #define UDRE 5 #define RXEN 4 #define TXEN 3 #define UCSZ0 1 #define RXC 7 #define RXCIE 7 ISR(USART0_RX_vect)//接收中断 { unsigned char dummy; while ( UCSR0A & (1 RXC) ) { dummy = UDR0; } USART_Transmit(dummy); } void USART_Transmit(unsigned char data)//发送字节 {
[单片机]
ATMEGA128 <font color='red'>UART</font>的使用
DY-SV17F语音播放模块应用篇二 【UART 串口模式】
UART 串口模式 是采用波特率为 9600 的全双工串口通信。 语音模块做为从机处理,上电默认等待状态,所有播放操作全由主机控制。 从机不会主动发起通信,所有通信都是由主机发起。 串口模式接线图: 使用串口可以存放65535首曲目(需要注意模块只有4m内存),通过通信指令可以实现多种模式播放,具体如下: 控制指令 : 设置指令 : 查询指令 : 指令太多,就不全部介绍了,本文只使用指定播放功能: AA 07 02 这前三位是固定的,不用管; 后三位分别是 曲目高8位 曲目低8位 SM。 其中高8位和低8位刚好组成16进制,如0xFFFF刚好对应65535。
[单片机]
DY-SV17F语音播放模块应用篇二 【<font color='red'>UART</font> 串口模式】
AD7888与S3C2410的SPI接口及Linux下嵌入式驱动的实现
串行外围设备接口SPI(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口,它允许CPU与TTL移位寄存器、A/D或D/A转换器、实时时钟(RTO)、存储器以及LCD和LED显示驱动器等外围接口器件以串行方式进行通讯。 SPI总线只需3~4根数据线和控制线即可扩展具有SPI接口的各种I/O器件,其硬件功能很强,实现软件相当简单。串行A/D转换器具有电路简单、工作可靠的特点,而ARM芯片被设计用于手持设备以及普通的嵌人式应用的集成系统,将上述两种实用的芯片和SPI总线技术相结合以实现数据采集十分有效。 1 AD7888的功能与使用 AD7888是美国模拟器件公司推出的一款
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved