ARM之光(3)-----UART
扫描二维码
随时随地手机看文章
today,we will study the UART of S3C2410,there is no doubt that the datasheet of S3C2410 is very important.
let’s go!
UART special registers
(1)UART LINE CONTROL REGISTER
there are three UART line control registers including ULCON0.ULCON1.and ULCON2 in the UART block.the address of three register is here:
ok .let me introduce every bit of this register:
this register decide the structure of data which will be transmmitted with UART:
(2)UART CONTROL REGISTER
there are three UARTcontrol register including UCON0,UCN1,UCON2 in the UART block.
以下位转载
每一个uart都包含一个波特率发生器(Baudrate Generator),发送器(Transmitter),接收器(Receiver)以及一个控制逻辑(Control Unit)。如下图:11-1。
波特率发生器使用的时钟可以为PCLK(默认)或者UEXTCLK(主要是为了达到更高的波特率,默认使用PCLK最高为230.4k bps)。发送器和接受器分别包括一个16-byte的FIFO以及一个数据移位器(data shifter)。数据通过发送引脚(TxDn)和接收引脚(RxDn)进行发送和接收。
发送数据时,CPU通过内部总线将要发送的数据写入Transmit buffer,对程序员来讲即将数据写入Transmit Holding Register(若使用FIFO Mode也是写入这个寄存器,硬件内部会自动判断)。然后Transmitter按照Buad-rate Generator产生的波特率将Transmit Buffer内的数据移入Transmit Shifter, 最后通过TXDn引脚发送出去。
接收数据时,接收引脚(RxDn)按一定波特率进行数据接收进来存放在 Receive Shifter然后再移入Receive Buffer。对程序员来讲即通过Receive Holding Register读取接收到的数据(类似发送,不管是否使用FIFO Mode都是读该寄存器获取接收到的数据)。
Transmit Holding Register和Receive Holding Register都是8 bit大小的寄存器,即每次可读写一个字节数据。
3) 波特率的计算
波特率时钟主要是用来提供串口数据发送和接收时所需要的时钟信号。
计算方法为源时钟(默认为PCLK)除以16以及一个16位分频因子 (divisor)。分频因子的值存储在baudrate divisor register (UBRDIVn)内,由用户指定。通常我们计算波特率的方法为根据想要的波特率反过来计算divisor, 然后将该值写入Divisor Register(UBRDIVn)寄存器内。公式如下:
UBRDIVn = (int)(PCLK/(bps x 16) ) -1,
Bps为我们需要设置的波特率,比如115200。
串口通讯基础及S3C2410 UART控制器(转)
作者:深圳远峰
数据通信的基本方式可分为并行通信与串行通信两种:
并行通信:是指利用多条数据传输线将一个资料的各位同时传送。它的特点是传输速度快,适用于短距离通信,但要求通讯速率较高的应用场合。
串行通信:是指利用一条传输线将资料一位位地顺序传送。特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场合。
一、异步通信及其协议
异步通信以一个字符为传输单位,通信中两个字符间的时间间隔是不固定的,然而在同一个字符中的两个相邻位代码间的时间间隔是固定的。
通信协议(通信规程):是指通信双方约定的一些规则。在使用异步串口传送一个字符的信息时,对资料格式有如下约定:规定有空闲位、起始位、资料位、奇偶校验位、停止位。
异步通讯的时序,如图5-1。
其中各位的意义如下:
起始位:先发出一个逻辑”0”信号,表示传输字符的开始。
资料位:紧接着起始位之后。资料位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟定位。
奇偶校验位:资料位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。
停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。
空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。
波特率:是衡量资料传送速率的指针。表示每秒钟传送的二进制位数。例如资料传送速率为120字符/秒,而每一个字符为10位,则其传送的波特率为10×120=1200字符/秒=1200波特。
注:异步通信是按字符传输的,接收设备在收到起始信号之后只要在一个字符的传输时间内能和发送设备保持同步就能正确接收。下一个字符起始位的到来又使同步重新校准(依靠检测起始位来实现发送与接收方的时钟自同步的)。
二、资料传送方式
根据资料传送方向的不同有以下三种方式。如图5-2所示。
(1)单工方式
(2)半双工方式
(3)全双工方式
图5-2 资料传送方式
1、单工方式
资料始终是从A设备发向B设备。
2、 半双工方式
资料能从A设备传送到B设备,也能从B设备传送到A设备。在任何时候资料都不能同时在两个方向上传送,即每次只能有一个设备发送,另一个设备接收。但是通讯双方依照一定的通讯协议来轮流地进行发送和接收。
3、 全双工方式
允许通信双方同时进行发送和接收。这时,A设备在发送的同时也可以接收,B设备亦同。全双工方式相当于把两个方向相反的单工方式组合在一起,因此它需要两条数据传输线。在计算机串行通讯中主要使用半双工和全双工方式。
三、信号传输方式
1、基带传输方式
在传输线路上直接传输不加调制的二进制信号,如图所示。它要求传送线的频带较宽,传输的数字信号是矩形波。
基带传输方式仅适宜于近距离和速度较低的通信。
2、频带传输方式
传输经过调制的模拟信号
在长距离通信时,发送方要用调制器把数字信号转换成模拟信号,接收方则用解调器将接收到的模拟信号再转换成数字信号,这就是信号的调制解调。
实现调制和解调任务的装置称为调制解调器(MODEM)。采用频带传输时,通信双方各接一个调制解调器,将数字信号寄载在模拟信号(载波)上加以传输。因此,这种传输方式也称为载波传输方式。这时的通信线路可以是电话交换网,也可以是专用线。
常用的调制方式有三种:
调幅、调频和调相,分别如下图所示。
四、串行接口标准
串行接口标准:指的是计算机或终端(资料终端设备DTE)的串行接口电路与调制解调器MODEM等(数据通信设备DCE)之间的连接标准。
RS-232C标准
RS-232C是一种标准接口,D型插座,采用25芯引脚或9芯引脚的连接器,如图5-5所示。
图5-5
微型计算机之间的串行通信就是按照RS-232C标准设计的接口电路实现的。如果使用一根电话线进行通信,那幺计算机和MODEM之间的联机就是根据RS-232C标准连接的。其连接及通信原理如图5-6所示