ImageVerifierCode 换一换
格式:PPT , 页数:30 ,大小:457.50KB ,
资源ID:4505895      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-4505895.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(刘彦文基于ARM7TDMI的S3C44B0X嵌入式微处理器技术第10章.ppt)为本站会员(buyk185)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

刘彦文基于ARM7TDMI的S3C44B0X嵌入式微处理器技术第10章.ppt

1、第10章 通用异步收发器,本章重点:, UART组成; UART操作:包括数据发送接收、自动流控制、非自动流控制、RS-232C接口、中断及DMA请求、UART错误状态FIFO、波特率发生器、回送方式、红外方式等; 各特殊功能寄存器的含义及设置。,10.1 概 述,S3C44B0X中通用异步收发器(Universal Asynchronous Receiver and Transmitter,UART)提供了两个独立的异步串行IO(Serial Input Output,SIO)端口,每个可以使用基于中断(含查询)或基于DMA的方式操作,也就是说UART通过产生中断请求或DMA请求,在CPU(

2、或内存)和UART之间传送数据。,UART支持最高波特率为115.2Kbps。每个UART通道含一个16字节的接收FIFO(First In First Out,先进先出)寄存器组,一个16字节的发送FIFO寄存器组。 数据发送和接收可以使用FIFO,也可以不使用FIFO。 不使用FIFO时,CPU(或内存)要发送的数据写到UART的发送保持(缓冲区)寄存器,UART接收到的数据保存在接收保持(缓冲区)寄存器。,可以对S3C44B0X中UART以下参数进行设置:波特率;红外IR(Infra Red)发送接收模式;1位或2位停止位;58位数据位;奇偶校验位。如图10.1所示,每个UART含1个波

3、特率发生器、发送器、接收器和控制单元。系统时钟MCLK可以作为时钟源送到波特率发生器。发送器和接收器各有1个16字节的FIFO和数据移位寄存器。要发送的数据写到FIFO后被拷贝到发送移位寄存器,通过发送数据引脚TxDn移位输出。接收数据从接收引脚RxDn移入接收移位寄存器,然后拷贝到FIFO。,图10.1 带FIFO的UART框图,S3C44B0X中UART有以下特点: RxD0、TxD0、RxD1和TxD1可以基于中断(含查询)或DMA方式操作; UART通道0带有IrDA1.0,并且有16字节FIFO; UART通道1带有IrDA1.0,并且有16字节FIFO; 支持发送接收握手方式。,1

4、0.2 UART操作,UART操作包含数据发送、数据接收、自动流控制(Auto Flow Control,AFC)、中断和DMA请求产生、错误状态FIFO、波特率发生器、红外方式等内容。 数据发送发送数据的帧格式是可编程的,由1位起始位,58位数据位,1位可选择的奇偶校验位和12位停止位组成,能够在UART线控制寄存器ULCONn中指定。发送器也能产生断开条件(break condition),断开条件迫使串行输出成为0状态,持续时间比1帧传送时间更长。, 数据接收像发送一样,接收的数据帧格式也是可编程的,由1位起始位,58位数据位,位可选择的奇偶校验位和12位停止位组成,能够在ULCONn中

5、指定。接收器能够检查溢出错误(overrun error)、奇偶校验错误(parity error)、帧错误(frame error)和断开条件(break condition),并分别设置错误标记。, 溢出错误 奇偶校验错误 帧错误 断开条件 接收超时条件出现的情况。, 自动流控制S3C44B0X的UART使用nRTS和nCTS信号支持自动流控制(Auto Flow Control,AFC),在这种情况下必须将UATR连到另一个UART。如果用户连接UART到调制解调器,应该在UMCONn寄存器中禁止AFC位,由软件控制nRTS信号。自动流控制接口见图10.2。,图10.2 UART AFC

6、接口, 非自动流控制(由软件控制nRTS和nCTS) 接收操作 选择接收方式基于中断或BDMA方式。 检查UFSTATn寄存器中接收FIFO计数值,如果小于15,用户必须设UMCONn0为1,使nRTS激活;如果大于等于15,用户将该值设为0,使nRTS不激活。 重复, 发送操作 选择发送方式基于中断或BDMA方式。 检查UMSTATn0的值,如果等于1,nCTS被激活,用户写数据到发送缓冲区或发送FIFO寄存器。, RS-232C接口如果用户希望连接到调制解调器接口,需要使用nRTS、nCTS、nDSR、nDTR、DCD和nRI信号,在这种情况下,用户能够使用通用IO端口(GPIO)由软件控

7、制这些信号,AFC不支持RS-232C接口。, 中断DMA请求产生每个UART有7种状态信号:溢出错、奇偶校验错、帧错、断开(break)、接收FIFO或接收保持(缓冲区)寄存器数据准备好、发送FIFO或发送保持(缓冲区)寄存器空、发送移位寄存器空。在对应的UART状态寄存器UTRSTATnUERSTATn中,有相应位作为指示。,溢出错、奇偶校验错、帧错和断开都被看作是接收错误状态,如果在控制寄存器UCONn中接收错误状态中断允许位设置为1,它们中的每一种都能引起接收错误状态中断请求。当一个接收错误状态中断请求被检出,通过读UERSTATn能够识别这4种中哪一个提出了中断请求。与FIFO有关的

8、中断见表10.1。 (P264), UART错误状态FIFO除了接收FIFO寄存器,UART还有状态FIFO。 状态FIFO表示在FIFO寄存器中的数据是否带有错误。 例如,假定UART FIFO顺次收到F、G、H、I、J字符,当收到字符G时出现帧错误,当收到字符I时出现奇偶校验错误。参见表10.2和图10.3。(P264、265), 波特率发生器每个UART的波特率发生器为发送器和接收器提供串行的时钟信号。波特率发生器使用的时钟源,能够选择S3C44B0X内部系统时钟。时钟源除以16,然后由UART中波特率分频寄存器UBRDIVn中16位分频系数再分频,作为波特率时钟。UBRDIVn中系数由

9、以下公式确定:,UBRDIVn =(round_off)(MCLK/(bps*16)-1 (式10-1)比如波特率是115200bps,MCLK是40MHz,则UBRDIVn为:UBRDIVn=(int)(40000000/(115200*16)+0.5)-1=(int)(21.7+0.5)-1=22-1=21, 回送方式(loop back mode)S3C44B0X的UART提供了一种测试方式,也称回送方式,用于在通讯链中辅助隔离故障。 红外方式S3C44B0X支持红外(Infra Red,IR)发送和接收,通过在UART线控制寄存器ULCONn中设置红外方式位选择红外方式。红外方式的实现

10、如图10.4所示。,图10.4 IrDA功能框图,10.3 UART特殊功能寄存器, UART线控制寄存器在UART中有个线控制寄存器ULCON0和ULCON1,地址分别是0x01D00000和0x01D04000,可读写,Reset值为0x00,具体含义见表10.3。(P266) UART控制寄存器在UART中有2个控制寄存器UCON0和UCON1,地址分别是0x01D00004和0x01D04004,可读写,Reset值为0x00,具体含义见表10.4。(P267), UART的FIFO控制寄存器UFCON0和UFCON1是UART通道0和通道1的FIFO控制寄存器,地址分别是0x01D0

11、0008和0x01D04008,可读写,Reset值为0x00,具体含义见表10.5。(P268) UART调制解调器控制寄存器UMCON0和UMCON1是调制解调器控制寄存器,地址分别是0x01D0000C和0x01D0400C,可读写,Reset值为0x00,具体含义见表10.6。(P268), UART发送接收状态寄存器UTRSTAT0和UTRSTAT1分别是UART通道0和通道1的发送和接收状态寄存器,地址分别是0x01D00010和0x01D04010,只读,Reset值为0x6,具体含义见表10.7。(P269) UART错误状态寄存器UART中有2个接收错误状态寄存器,分别是UE

12、RSTAT0和UERSTAT1,对应地址是0x01D00014和0x01D04014,只读,Reset值为0x0,具体含义见表10.8。(P269), UART FIFO状态寄存器UART中有2个UART FIFO状态寄存器,分别是UFSTAT0和UFSTAT1,对应地址是0x01D00018和0x01D04018,只读,分别用于通道0和通道1,Reset值为0x0000,具体含义见表10.9。(P269) UART调制解调器状态寄存器UART中有2个UART调制解调器状态寄存器,分别是UMSTAT0和UMSTAT1,对应地址是0x01D0001C和0x01D0401C,只读,Reset值为0

13、x0,具体含义见表10.10和图10.8。(P270), UART发送保持(缓冲区)寄存器与FIFO寄存器在表10.5中,如果UFCONn0=0,禁止使用FIFO,由处理器送来的数据,保存到发送保持(缓冲区)寄存器;如果UFCONn0=1,FIFO方式,允许使用FIFO,由处理器送来的数据,保存到FIFO寄存器。发送保持(缓冲区)寄存器和FIFO寄存器有相同的地址。UART通道0和通道1各有一个8位的发送保持(缓冲区)寄存器与FIFO寄存器,分别是UTXH0和UTXH1,具体内容见表10.11。(P270)UTXHn中位7:0称为TXDATAn字段。, UART接收保持(缓冲区)寄存器与FIF

14、O寄存器在表10.5中,如果UFCONn0=0,禁止使用FIFO,UART接收到的数据保存在接收保持(缓冲区)寄存器;如果UFCONn0=1,FIFO方式,允许使用FIFO,UART接收到的数据保存在FIFO寄存器。接收保持(缓冲区)寄存器和FIFO寄存器有相同的地址。UART通道0和通道1各有一个8位的接收保持(缓冲区)寄存器与FIFO寄存器,分别是URXH0和URXH1,具体内容见表10.12。(P271)URXHn中位7:0称为RXDATAn字段。, UART波特率分频寄存器UART有2个波特率分频寄存器UBRDIV0和UBRDIV1,用于确定每个通道的发送接收波特率,具体含义见表10.13。(P271) UART特殊功能寄存器使用举例 【例10.1】下面给出了使用C语言编写的对UART初始化,选择通道,不使用FIFO,通过查询UTRSTATn(非DMA)接收和发送数据的程序片段,开始部分定义了特殊功能寄存器的地址,请注意大端或小端时一些寄存器的地址不同。请读者对照前文所述寄存器的含义,阅读并理解程序的含义。假定MCLK、 _BIG_ENDIAN已经定义过了。(P271-273),END,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报