第10章 异步串行接口
1、 串行通信与并行通信的概念、特点。
数据通信的基本方式可分为并行通信与串行通信两种。
并行通信:是指利用多条数据传输线将一个资料的各位同时传送。它的特点是传输速度快,适用于短距离通信,但要求通讯速率较高的应用场合。
串行通信:是指利用一条传输线将资料一位位地顺序传送。特点是通信线路简单,利用 简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场合。
2、 异步串行通信的时序
起始位:先发出一个逻辑”0”信号,表示传输字符的开始。
资料位:紧接着起始位之后。资料位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟定位。
奇偶校验位:资料位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。
停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。
空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。
3、波特率是衡量资料传送速率的指针。表示每秒钟传送的二进制位数。例如资料传送速率为120字符/秒,而每一个字符为10位,则其传送的波特率为10×120=1200位/秒=1200波特。
4、RS232-C接口标准。232电平与EIA电平的定义,接口方法。
RS-232C标准采用EIA电平,规定在信号线上:
“1”的逻辑电平在-3V~-15v之间;
“0”的逻辑电平在+3V~+15V之间。
TTL电平逻辑高为3.5-5.0V,逻辑0为小于0.4V。
5、S5PV210的UART接口波特率公式
UBRDIVn = (PCLK/(波特率×16))- 1
6、UART操作:资料发送、资料接收、产生中断、产生波特率、Loopback模式、红外模式以及自动流控模式。
7、UART寄存器
S5PV210进行UART通信涉及的寄存器有:引脚配置寄存器、UART线控寄存器、UART控制寄存器、FIFO寄存器等。
8、通信实例
#define UART_UBRDIV_VAL 35
#define UART_UDIVSLOT_VAL 0x1
// 初始化串口
void uart_init()
{ GPA0CON = 0x22222222; // 1 配置引脚用于RX/TX功能
GPA1CON = 0x2222; // 2 设置数据格式等
UFCON0 = 0x1; // 使能fifo
UMCON0 = 0x0; // 无流控
ULCON0 = 0x3; // 数据位:8, 无校验, 停止位: 1
UCON0 = 0x5; // 时钟:PCLK,禁止中断,使能UART发送、接收
UBRDIV0 = UART_UBRDIV_VAL; // 3 设置波特率
UDIVSLOT0 = UART_UDIVSLOT_VAL;
}
// 接收一个字符
char getc(void)
{
// 如果RX FIFO空,等待
while (!(UTRSTAT0 & (1<<0)));
// 取数据
return URXH0;
}
// 发送一个字符
void putc(char c)
{
// 如果TX FIFO满,等待
while (!(UTRSTAT0 & (1<<2)));
// 写数据
UTXH0 = c;
}
void uart_init(void);
int main()
{ char c;
// 初始化串口
uart_init();
while (1)
{ //接收字符
c = getc();
//发送字符c+1
putc(c+1);
}
return 0;
}