低速通信接口包括异步串行通信UART、同步串行通信I2C和SPI。
首先简单介绍以下:
串行通信:计算机与I/O设备之间的传输的数据是一位接一位的依次传送的。
并行通信:计算机与I/O设备之间通过多条数据传输线交换数据。
异步通信:数据传送以字符为单位;用起始位和停止位标识每个字符的开始和结束;相邻字符之间间隔任意长,只需要接受时钟频率和发送时钟频率相同即可。异步通信不需要传递同步时钟信号。
同步通信:以数据块为单位传送信息。在数据块开始处用同步字符来指示,由于传送数据较多,接受时钟域发送时钟严格同步。
UART(Universal Asynchronous Receiver and Transmitter)
UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。将计算机内部传送过来的并行数据转换为输出的串行数据流。将计算机外部来的串行数据转换为字节,供计算机内部并行数据的器件使用。(相当于一个能读取和写入的8位输入和输出端口)在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验。在输出数据流中加入启停标记,并从接收数据流中删除启停标记。
URAT以ASCII码交换文本数据,数据构成如下:
(1)起始位:1bit低电平,作为通信起始信号;
(2)数据位:5/6/7/8bit,[LSB:MSB]
(3)校验位:分为奇校验、偶校验和无校验,1bit,奇校验时,若数据位中1位奇数,则校验位为0,若为偶数,校验位为1,保证“数据位+校验位=奇数”
(4)停止位:1/1.5/2bit高电平,作为终止信号;
(5)空闲位:高电平,直到起始位。
UART物理层实现形式:根据物理层的不同分为TTL/RS232等。
(1)TTL:5V代表1,0V代表0,单端,全双工;
(2)RS232:RS232采用负逻辑 , Logic1:-25V~-3V, Logic0:+3V~+25V ,-3V~+3V为过渡区,单端,全双工。
波特率和比特率的区别:
比特率:单位时间内传输的比特(bit)的个数,比特率≥波特率;
波特率:单位时间内传输的码元的个数,对于二进制,1bit代表一个码元(0/1),对于四进制,2bit代表一个码元(00/01/10/11),此时波特率为比特率的1/2。
常用波特率:300、1200、2400、4800、9600、19.2k、 38.4k、57.6k等。
UART发送器,以并行格式取出数据并指定UART以串行格式发送。
UART接受机,以串行格式接收数据,去掉起始位和停止位后以并行格式存储数据。
首先是UART发送器设计:
设计参数:<