欢迎来到天天文库
浏览记录
ID:40415327
大小:1.51 MB
页数:17页
时间:2019-08-02
《S3C2440-UART简介及编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、S3C2440-UART简介及编程授课教师:蔡卫明E-mail:caiwm@zju.edu.cn二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)再通过电话线进行远距离的数
3、据传输。RS232是一个全双工的通讯标准,它可以同时进行数据接收和发送的工作。RS232标准包括一个主通道和一个辅助通道,在多数情况下主要使用主通道,即RXD、TXD、GND信号;RS232标准采用负逻辑方式,标准逻辑“1”对应-5V~-15V电平,标准逻辑“0”对应+5V~+15V电平。因此UART的TTL电平需要进行RS232电平转换后,才能与RS232接口连接并通讯,可以使用SP3232E或SP3243ECA芯片进行电平转换。S3C2440的UART内部结构S3C2410异步串行通信(UART)单元1、S3C2410UART单元提供3个独立的异步串行通信接口,皆可工作于
4、查询、中断和DMA模式。使用系统时钟最高波特率达230.4kb/s,如果使用外部设备提供的时钟,可以达到更高的速率。每一个UART单元包含一个16字节的FIFO(FirstInputFirstOutput,先进先出移位寄存器),用于数据的接收和发送。2、S3C2410UART支持可编程波特率、红外发送/接收(UART2)、1个或2个停止位、5位/6位/7位/8位数据宽度和奇偶校验。S3C2440的串口UART概述波特率的产生波特率由一个专用的UART波特率分频寄存器(UBRDIVn)控制,UBRDIVn值计算公式如下:UBRDIVn=(int)[ULK/(波特率×16)]-1
5、或者UBRDIVn=(int)[PLK/(波特率×16)]-1式中:时钟选用ULK还是PLK由UART控制寄存器UCONn[10]的状态决定。如果UCONn[10]=0,则用PLK作为波特率发生器的时钟源频率;否则选用ULK作为波特率发生器的时钟源频率。UBRDIVn的值必须在1~(216-1)之间。例:若ULK或者PLK等于40MHz,当波特率为115200b/s时,则UBRDIVn=(int)[40000000/(115200×16)]一1=int(21.7)-1=21-1=20单寄存器vs.FIFO(64bytes)中断vs.轮询名称地址功能ULCON00x500000
6、00Uart0线路信号格式UCON00x50000004工作模式UFCON00x50000008FIFO设置UMCON00x5000000CModem设置(传输控制协议)UTRSTAT00x50000010接受发送数据状态UERSTAT00x50000014错误状态UFSTAT00x50000018FIFO状态UTXH00x50000020发送URXH00x50000024接收UBRDIV00x50000028波特率设置1、首先要设置相应I/O为TXD0、RXD0功能引脚;2、然后通过ULCON0寄存器来设置串口数据格式;3、通过UCON0寄存器来设置串口工作模式;4、最后通
7、过UBRDIV0来设置通讯波特率。5.实验原理S3C2440串口的初始化通信程序编写步骤UART通信程序可以采用查询、中断和DMA模式。我们通过使用较多的中断方式来介UART通信程序的编写。简单做法是,UART通信程序的编写参照例子程序。(1)选通道,通过函数Uart_Select();选UART0~UART2;(2)选波特率和波特率发生器时钟,选波特率通过函数Uart_Pclk_En(intch,intbaud)或Uart_Pclk_En(intch,intbaud)来进行。时钟选UCLK,rUCON
此文档下载收益归作者所有