《S3C2440-UART简介及编程.ppt》由会员分享,可在线阅读,更多相关《S3C2440-UART简介及编程.ppt(17页珍藏版)》请在金锄头文库上搜索。
1、S3C2440-UARTS3C2440-UARTS3C2440-UARTS3C2440-UART简介及编程简介及编程简介及编程简介及编程授课教师:蔡卫明授课教师:蔡卫明 E-mail E-mail:二二O O一一年九月一一年九月 杭州汇文教育咨询有限公司杭州汇文教育咨询有限公司串行通信的基本特征是数据逐位顺序进行传送串行通信的基本特征是数据逐位顺序进行传送串行通信的格式及约定(如:同步方式、通讯速串行通信的格式及约定(如:同步方式、通讯速率、数据块格式、信号电平率、数据块格式、信号电平等)不同,形成等)不同,形成了多种串行通信的协议与接口标准。了多种串行通信的协议与接口标准。常见的有:常见的有
2、:1 1、通用异步收发器通用异步收发器(UART)(UART)2 2、通用串行总线通用串行总线(USBUSB)3 3、I I2 2C C总线总线4 4、CANCAN总线总线5 5、SPISPI总线总线6 6、RS-485RS-485,RS-232CRS-232C,RS422ARS422A标准标准等等串行通信串行通信全双工串行接口全双工串行接口(UART)(UART)1 1、数据通信的、数据通信的几个术语:几个术语: 并行:数据各位同时进行传送并行:数据各位同时进行传送 串行:数据逐位顺序进行传送串行:数据逐位顺序进行传送2 2、全双工全双工:(:(串行通信串行通信) )收收/ /发可同时进行发
3、可同时进行 半双工半双工:(:(串行通信串行通信) )收收/ /发不可同时进行发不可同时进行3 3、异步串行通信异步串行通信: :以字符为单位进行传送以字符为单位进行传送 同步串行通信同步串行通信: :以数据块以数据块为单位进行传送为单位进行传送 波特率波特率(bps.):(bps.):单位时间传送的位数单位时间传送的位数l l UART-UART-UART-UART-通通通通用用用用异异异异步步步步串串串串行行行行通通通通信信信信接接接接口口口口的的的的总总总总称称称称,UARTUARTUARTUART允允允允许许许许在在在在串串串串行行行行链链链链路路路路上上上上进进进进行行行行全全全全双
4、双双双工工工工的的的的通通通通信信信信,输输输输出出出出/ / / /输输输输入入入入的的的的电电电电平平平平为为为为TTLTTLTTLTTL电电电电平平平平。一一一一般般般般来来来来说说说说,全全全全双双双双工工工工UARTUARTUARTUART定定定定义义义义了了了了一一一一个个个个串串串串行行行行发发发发送送送送引引引引脚脚脚脚(TXD)(TXD)(TXD)(TXD)和和和和一一一一个个个个串串串串行行行行接接接接收收收收引引引引脚脚脚脚(RXD)(RXD)(RXD)(RXD),可可可可以以以以在在在在同同同同一一一一时时时时刻发送和接收数据;刻发送和接收数据;刻发送和接收数据;刻发送
5、和接收数据;l l RS232-RS232-RS232-RS232-是是是是美美美美国国国国电电电电子子子子工工工工业业业业协协协协会会会会(EIA)(EIA)(EIA)(EIA)制制制制定定定定的的的的串串串串行行行行通通通通讯讯讯讯标标标标准准准准,又又又又称称称称RS-232-CRS-232-CRS-232-CRS-232-C。早早早早期期期期它它它它被被被被应应应应用用用用于于于于计计计计算算算算机机机机和和和和调调调调制制制制解解解解调调调调器器器器(MODEM)(MODEM)(MODEM)(MODEM)的的的的连连连连接接接接控控控控制制制制,(MODEM)(MODEM)(MODE
6、M)(MODEM)再再再再通通通通过过过过电电电电话话话话线线线线进进进进行行行行远远远远距距距距离离离离的的的的数数数数据据据据传传传传输输输输。RS232RS232RS232RS232是是是是一一一一个个个个全全全全双双双双工工工工的的的的通通通通讯讯讯讯标标标标准准准准,它它它它可可可可以以以以同同同同时时时时进进进进行行行行数数数数据据据据接接接接收收收收和和和和发发发发送送送送的的的的工工工工作作作作。RS232RS232RS232RS232标标标标准准准准包包包包括括括括一一一一个个个个主主主主通通通通道道道道和和和和一一一一个个个个辅辅辅辅助助助助通通通通道道道道,在在在在多多多
7、多数数数数情情情情况况况况下下下下主主主主要要要要使使使使用主通道,即用主通道,即用主通道,即用主通道,即RXDRXDRXDRXD、TXDTXDTXDTXD、GNDGNDGNDGND信号;信号;信号;信号;l l RS232RS232RS232RS232标标标标准准准准采采采采用用用用负负负负逻逻逻逻辑辑辑辑方方方方式式式式,标标标标准准准准逻逻逻逻辑辑辑辑“1 1 1 1”对对对对应应应应5V5V5V5V15V15V15V15V电电电电平平平平,标标标标准准准准逻逻逻逻辑辑辑辑“0 0 0 0”对对对对应应应应+5V+5V+5V+5V+15V+15V+15V+15V电电电电平平平平。因因因因
8、此此此此UARTUARTUARTUART的的的的TTLTTLTTLTTL电电电电平平平平需需需需要要要要进进进进行行行行RS232RS232RS232RS232电电电电平平平平转转转转换换换换后后后后,才才才才能能能能与与与与 RS232RS232RS232RS232接接接接 口口口口 连连连连 接接接接 并并并并 通通通通 讯讯讯讯 , 可可可可 以以以以 使使使使 用用用用 SP3232ESP3232ESP3232ESP3232E或或或或SP3243ECASP3243ECASP3243ECASP3243ECA芯片进行电平转换。芯片进行电平转换。芯片进行电平转换。芯片进行电平转换。S3C24
9、40S3C2440的的UARTUART内部结构内部结构S3C2410S3C2410异步串行通信(异步串行通信(UARTUART)单元)单元 1、S3C2410 UART单元提供3个独立的异步串行通信接口,皆可工作于查询、中断和DMA模式。使用系统时钟最高波特率达230. 4 kb/s,如果使用外部设备提供的时钟,可以达到更高的速率。每一个UART单元包含一个16字节的FIFO(First Input First Output,先进先出移位寄存器),用于数据的接收和发送。 2、S3C2410 UART支持可编程波特率、红外发送/接收( UART2 )、1个或2个停止位、5位/6位/7位/8位数据
10、宽度和奇偶校验。S3C2440S3C2440的串口的串口UARTUART概述概述波特率的产生v波特率由一个专用的UART波特率分频寄存器(UBRDIVn)控制,UBRDIVn值计算公式如下: UBRDIVn=(int)ULK/(波特率 16)1 或者 UBRDIVn=(int) PLK/(波特率 16)1 式中:时钟选用ULK还是PLK由UART控制寄存器UCONn10的状态决定。如果UCONn10=0,则用PLK作为波特率发生器的时钟源频率;否则选用ULK作为波特率发生器的时钟源频率。UBRDIVn的值必须在1(2161)之间。 例:若ULK或者PLK等于40 MHz,当波特率为115200
11、 b/s时,则vUBRDIVn=(int)40 000 000/(115 200 16)一1=int(21. 7)1= 211=20v单寄存器单寄存器 vs. FIFO (64bytes)vs. FIFO (64bytes)v中断中断 vs. vs. 轮询轮询名称名称地址地址功能功能ULCON0ULCON00x500000000x50000000Uart0 Uart0 线路信号格式线路信号格式UCON0UCON00x500000040x50000004工作模式工作模式UFCON0UFCON00x500000080x50000008FIFOFIFO设置设置UMCON0UMCON00x500000
12、0C0x5000000CModemModem设置(传输控制协议)设置(传输控制协议)UTRSTAT0UTRSTAT00x500000100x50000010接受发送数据状态接受发送数据状态UERSTAT0UERSTAT00x500000140x50000014错误状态错误状态UFSTAT0UFSTAT00x500000180x50000018FIFOFIFO状态状态UTXH0UTXH00x500000200x50000020发送发送URXH0URXH00x500000240x50000024接收接收UBRDIV0UBRDIV00x500000280x50000028波特率设置波特率设置1 1
13、1 1、首先要设置相应、首先要设置相应、首先要设置相应、首先要设置相应I/OI/OI/OI/O为为为为TXD0TXD0TXD0TXD0、RXD0RXD0RXD0RXD0功能引脚功能引脚功能引脚功能引脚; ; ; ;2 2 2 2、然后通过、然后通过、然后通过、然后通过ULCON0ULCON0ULCON0ULCON0寄存器来设置串口数据格式;寄存器来设置串口数据格式;寄存器来设置串口数据格式;寄存器来设置串口数据格式;3 3 3 3、通过、通过、通过、通过UCON0UCON0UCON0UCON0寄存器来设置串口工作模式;寄存器来设置串口工作模式;寄存器来设置串口工作模式;寄存器来设置串口工作模式
14、;4 4 4 4、最后通过、最后通过、最后通过、最后通过UBRDIV0UBRDIV0UBRDIV0UBRDIV0来设置通讯波特率来设置通讯波特率来设置通讯波特率来设置通讯波特率。5实验原理S3C2440串口的初始化串口的初始化通信程序编写步骤vUART通信程序可以采用查询、中断和DMA模式。我们通过使用较多的中断方式来介UART通信程序的编写。简单做法是,UART通信程序的编写参照例子程序。 (1)选通道,通过函数Uart_Select();选UART0UART2; (2)选波特率和波特率发生器时钟,选波特率通过函数Uart_Pclk_En(int ch, int baud)或Uart_Pcl
15、k_En(int ch, int baud)来进行。时钟选UCLK ,rUCON0|=0x400;时钟选PCLK ,rUCON0&=0x3ff。 (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);
16、(5)I/O口初始化,因为UART通信使用H口的第二功能,所以H口要上拉禁止:rGPHUP|=0x1ff。H口控制寄存器nRTS1,nCTS1功能使能,rGPHCON&=0x3c0000,rGPHCON|=0x2faaa; (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)取消中断屏蔽,等下一次中断。l RS232RS232的的电电平平与与S2C2410AS2C2410A的的UARTUART电电平有什么差别?平有什么差别? 思考题思考题谢谢!谢谢!