S3C2440-UART简介及编程.ppt

上传人:牧羊曲112 文档编号:6518037 上传时间:2023-11-08 格式:PPT 页数:17 大小:1.51MB
返回 下载 相关 举报
S3C2440-UART简介及编程.ppt_第1页
第1页 / 共17页
S3C2440-UART简介及编程.ppt_第2页
第2页 / 共17页
S3C2440-UART简介及编程.ppt_第3页
第3页 / 共17页
S3C2440-UART简介及编程.ppt_第4页
第4页 / 共17页
S3C2440-UART简介及编程.ppt_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《S3C2440-UART简介及编程.ppt》由会员分享,可在线阅读,更多相关《S3C2440-UART简介及编程.ppt(17页珍藏版)》请在三一办公上搜索。

1、S3C2440-UART简介及编程,授课教师:蔡卫明 E-mail:二O一一年九月 杭州汇文教育咨询有限公司,串行通信的基本特征是数据逐位顺序进行传送串行通信的格式及约定(如:同步方式、通讯速率、数据块格式、信号电平等)不同,形成了多种串行通信的协议与接口标准。常见的有:1、通用异步收发器(UART)2、通用串行总线(USB)3、I2C总线4、CAN总线5、SPI总线6、RS-485,RS-232C,RS422A标准等,串行通信,全双工串行接口(UART),1、数据通信的几个术语:并行:数据各位同时进行传送 串行:数据逐位顺序进行传送,2、全双工:(串行通信)收/发可同时进行 半双工:(串行通

2、信)收/发不可同时进行,3、异步串行通信:以字符为单位进行传送 同步串行通信:以数据块为单位进行传送 波特率(bps.):单位时间传送的位数,UART-通用异步串行通信接口的总称,UART允许在串行链路上进行全双工的通信,输出/输入的电平为TTL电平。一般来说,全双工UART定义了一个串行发送引脚(TXD)和一个串行接收引脚(RXD),可以在同一时刻发送和接收数据;RS232-是美国电子工业协会(EIA)制定的串行通讯标准,又称RS-232-C。早期它被应用于计算机和调制解调器(MODEM)的连接控制,(MODEM)再通过电话线进行远距离的数据传输。RS232是一个全双工的通讯标准,它可以同时

3、进行数据接收和发送的工作。RS232标准包括一个主通道和一个辅助通道,在多数情况下主要使用主通道,即RXD、TXD、GND信号;,RS232标准采用负逻辑方式,标准逻辑“1”对应5V15V电平,标准逻辑“0”对应+5V+15V电平。因此UART的TTL电平需要进行RS232电平转换后,才能与RS232接口连接并通讯,可以使用SP3232E或SP3243ECA芯片进行电平转换。,S3C2440的UART内部结构,S3C2410异步串行通信(UART)单元 1、S3C2410 UART单元提供3个独立的异步串行通信接口,皆可工作于查询、中断和DMA模式。使用系统时钟最高波特率达230.4 kb/s

4、,如果使用外部设备提供的时钟,可以达到更高的速率。每一个UART单元包含一个16字节的FIFO(First Input First Output,先进先出移位寄存器),用于数据的接收和发送。2、S3C2410 UART支持可编程波特率、红外发送/接收(UART2)、1个或2个停止位、5位/6位/7位/8位数据宽度和奇偶校验。,S3C2440的串口UART概述,波特率的产生波特率由一个专用的UART波特率分频寄存器(UBRDIVn)控制,UBRDIVn值计算公式如下:UBRDIVn=(int)ULK/(波特率 16)1 或者 UBRDIVn=(int)PLK/(波特率 16)1 式中:时钟选用U

5、LK还是PLK由UART控制寄存器UCONn10的状态决定。如果UCONn10=0,则用PLK作为波特率发生器的时钟源频率;否则选用ULK作为波特率发生器的时钟源频率。UBRDIVn的值必须在1(2161)之间。例:若ULK或者PLK等于40 MHz,当波特率为115200 b/s时,则UBRDIVn=(int)40 000 000/(115 200 16)一1=int(21.7)1=211=20,单寄存器 vs.FIFO(64bytes)中断 vs.轮询,1、首先要设置相应I/O为TXD0、RXD0功能引脚;2、然后通过ULCON0寄存器来设置串口数据格式;3、通过UCON0寄存器来设置串口

6、工作模式;4、最后通过UBRDIV0来设置通讯波特率。,5实验原理,S3C2440串口的初始化,通信程序编写步骤UART通信程序可以采用查询、中断和DMA模式。我们通过使用较多的中断方式来介UART通信程序的编写。简单做法是,UART通信程序的编写参照例子程序。(1)选通道,通过函数Uart_Select();选UART0UART2;(2)选波特率和波特率发生器时钟,选波特率通过函数Uart_Pclk_En(int ch,int baud)或Uart_Pclk_En(int ch,int baud)来进行。时钟选UCLK,rUCON0|=0 x400;时钟选PCLK,rUCON0&=0 x3f

7、f。(3)设定通信协议(rULCON0),通常设置为:一位停止位,8位数据位,无奇偶效验:rULCON0=(06)|(03)|(02)|(3);,UART通信程序编写,(4)通信控制字(rUCON0)设定,如时钟选ULK做波特率发生器;Tx中断脉冲触发,Rx中断脉冲触发;接收超时中断允许;产生接收错误中断;正常模式发送:rUCON0|=(TX_INTTYPE9)|(RX_INTTYPE8)|(07)|(06)|(05)|(04)|(12)|(1);(5)I/O口初始化,因为UART通信使用H口的第二功能,所以H口要上拉禁止:rGPHUP|=0 x1ff。H口控制寄存器nRTS1,nCTS1功能

8、使能,rGPHCON&=0 x3c0000,rGPHCON|=0 x2faaa;(6)设中断服务函数入口地址,把中断服务函数入口地址赋函数指针PISR_UARTn,注意,接收中断服务函数入口地址和发送中断服务函数入口地址是一个,在中断服务函数中根据UTRSTATn 1和UTRSTATn 0状态决定是发送中断还是接收中断。,(7)打开总中断屏蔽和子中断屏蔽等待中断:rINTMSK=(BIT_UART0);rINTSUBMSK=(BIT_SUB_TXD0);(8)进入中断后,先屏蔽发送和接收中断,防止新来中断干扰我们的正常发送和接收,正常发送和接收结束后,清中断挂起和中断源挂起寄存器:ClearPending(BIT_UART0),rSUBSRCPND=(BIT_SUB_TXD0(发送),rSUBSRCPND=(BIT_SUB_RXD0|BIT_SUB_ERR0)(接收);(9)取消中断屏蔽,等下一次中断。,RS232的电平与S2C2410A的UART电平有什么差别?,思考题,谢谢!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号