微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > S3C2440 UART串口驱动

S3C2440 UART串口驱动

时间:11-20 来源:互联网 点击:
其错误容忍率大于1.86%,因此在12MHz频率下,波特率不能设置为115200,现在将波特率设置为56700bps,采用8N1数据帧格式通信,那么:

UBRdivn = (int)(12M / (57600 * 16)) - 1 = 12
tUPCLK = 13 * 16 * 10 / 12M = 0.000173
tUEXACT = 10 / 57600 = 0.0001736
UART Error = | 0. 000173 - 0. 0001736 | / 0. 0001736 = 0.345%

采用波特率为56700bps,8N1数据帧格式通信时,其错误容忍率小于标准的1.86%,因此可以正常工作。

图2-61 MINI2440开发板串口硬件图
UART的接口
图2-61为MINI2440开发板引出UART串口接线图,它采用DB9接口公头(有接线柱的端口,只有接线孔的为母头),其有9根信号线,UART通信过程中用到了信号线2 RSTXD0(数据发送管脚)它和串口线母头TXDx信号线相接(x代表0号,1号,2号串口),信号3 RSRXD0(数据接收管脚)和串口线母头RXDx相接(x代表0号,1号,2号串口),信号线5(接地管脚),信号线7 RSCTS0(数据发送流控制管脚)和串口线母头nCTSx相接,信号线8 RSRTS0(数据接收流控制管脚)和串口线母头nRTSx相接。如果UART中没有开启AFC流控的话,只要用到信号线2,信号线3和信号线5。


图2-62 MINI2440串口管脚接线
通过MINI2440硬件CPU管脚图可以看出,RSTXD0和RSRXD0连接到CPU的GPH2和GPH3管脚上的,而GPH2和GPH3是CPU复用管脚,因此我们要对GPH2和GPH3对应寄存器进行设置,其对应寄存器为GPHCON。
表2-23 GPIO端口H设置寄存器(GPHCON)
寄存器名地址是否读写描述复位默认值
GPHCON0x56000070R/WGPIO端口H配置寄存器0x0
GPHDAT0x56000074R/WGPIO端口H数据寄存器未定义
GPHUP0x56000078R/WGPIO端口H上拉无效寄存器0x000

GPHCON描述初始值
GPH3[7:6]设置当前管脚功能:
00 =输入端口01 =输出端口
10 = RXD[0]配置为串口0的接收数据管脚
11 =保留
0
GPH2[5:4]设置当前管脚功能:
00 =输入端口01 =输出端口
10 = RXD[0]配置为串口0的接收数据管脚
11 =保留
0
GPHCON[7:6]和GPHCON[5:4]为RSTXD0和RSRXD0管脚设置位,将其功能设置为了UART专用通信管脚,因此应该设置其为0b10,分别用于UART数据的接收和发送。

GPHCON | = 0xa0;

表2-24 GPIO端口H上拉电阻设置寄存器(GPHUP)
GPHUP描述初始值
GPH[10:0][10:0]设置对应管脚GPHn的是否启用上拉功能
0 =启用上拉功能
1 =禁用上拉功能
0
GPHUP上拉电阻设置寄存器:上拉电阻用来稳定电平信号,保障传输数据的正确,GPHUP里设置其内部上拉。

GPHUP = 0x0;

表2-25 UART0串行控制寄存器(ULCON0)
寄存器名地址是否读写描述复位默认值
ULCON00x50000000R/W串口0串行控制寄存器0x00

ULCON0描述初始值
保留[7]0
红外模式[6]选择串口0是否使用红外模式:
0 =正常通信模式
1 =红外通信模式
0
校验模式[5:3]设置串口0在数据接收和发送时采用的校验方式:
0xx =无校验
100 =奇校验
101 =偶校验
110 =强制校验/检测是否为1
111 =强制校验/检测是否为0
000
停止位[2]设置串口0停止位数:
0 =每个数据帧一个停止位
1 =每个数据帧二个停止位
0
数据位[1:0]设置串口0数据位数:
00 = 5个数据位01 = 6个数据位
10 = 7个数据位11 = 8个数据位
00
通过设置ULCON0来设置UART0通信方式,ULCON0[6]选择通信方式为一般通信模式或红外通信模式,ULCON0[5:3]设置串口0校验方式,ULCON0[2]设置串口0停止位数,ULCON0[1:0]设置串口0的数据位数。
我们选择一般通信模式,无校验位,1个停止位,8个数据位的数据通信方式。因此:

ULCON0 = 0x03;

表2-26 UART0串口控制寄存器(UCON0)
寄存器名地址是否读写描述复位默认值
UCON00x50000004R/W串口0控制寄存器0x00

UCON0描述初始值
FCLK分频因子[15:12]当UART0选择FCLK作为时钟源时,设置其FCLK的分频因子
UART0工作时钟频率= FCLK/ FCLK分频因子+ 6
0000
UART时钟源选择[11:10]选择UART0的工作时钟PCLK,UEXTCLK,FCLK/n:
00,10 = PCLK
01 = UEXTCLK
11 = FCLK/n
当选择FCLK/n作为UART0工作时钟时还要做其它设置,具体请读者自行查看硬件手册
00
发送数据中断
产生类型
[9]设置UART0中断请求类型,在非FIFO传输模式下,一旦发送数据缓冲区为空,立即产生中断信号,在FIFO传输模式下达到发送数据触发条件时立即产生中断信号:
0 =脉冲触发
1 =电平触发
0
接收数据中断
产生类型
[8]设置UART0中断请求类型,在非FIFO传输模式下,一旦接收到数据,立即产生中断信号,在FIFO传输模式下达到接收数据触发条件时立即产生中断信号:
0 =脉冲触发
1 =电平触发
0
接收数据超时[7]设置当接收数据时,如果数据超时,是否产生接收中断:
0 =不开启超时中断1 =开启超时中断
10 = 7个数据位11 = 8个数据位
0

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top