UART是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了数据终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。作为接口的一部分,UART还提供以下功能:
将由计算机内部传送过来的并行数据转换为输出的串行数据流;
将计算机外部来的串行数据转换为字节,供计算机内部使用并行数据的器件使用;
在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验;
在输出数据流中加入启停标记,并从接收数据流中删除启停标记;
处理由键盘或鼠标发出的中断信号(键盘和鼠票也是串行设备);
可以处理计算机与外部串行设备的同步管理问题;
异步串口通信协议,工作原理是将传输数据的每个字符以串行方式一位接一位的传输。如下图:
其中每一位(bit)的意义如下:
起始位:先发出一个逻辑“0”的信号,表示传输字符的开始。
数据位:紧跟起始位之后。数据位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟来定位。
奇偶校验位:数据位加上这一位后(跟在数据位尾部),使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。
停止位:它是一个字符数据的结束