通用异步串行通讯(UART,以下简称:串口通讯),是一般嵌入式工程控制系统中使用非常普遍的一种通讯方式,又主要是以TTL电平、RS232、RS485或RS422总线方式为最多。所以,一般从事工控行业的IT工程师,需撑握串口通讯的一般应用方法,包括接口总线的硬件及通讯协议的软件。但还是有不少的工程师对此不了解,因此该技术文章对串口通讯应用相关的硬件及软件进行一些描述。
串口设备在一般的PC机、单片机、ARM处理器等常用的CPU都有,且有些芯片多达好几个串口。串口通讯是按“字节”进行数据传输,每一个字节的传输由这几个位元素组成:起始位、数据位、校验位、停止位。其中,数据位由应用程序填装,校验位是通过应用程序设置相应的控制寄存器设置,为可选位。设置好校验并填装好要发送的数据后,串口控制器会自动生成数据通讯的波形。因此在通讯波形中就会根据校验设置,增加或不增加校验波形时钟。串口通讯的时序如下所示:
空闲:通讯线上没有任何数据在通讯,这时通讯电平为高电平(均以TTL进行说明)
起始位:通讯电平由高电平变为低电平,表示开始
数据位:开始位以后,接就是数据位,且低位在前,高位在后。(根据不同的控制器,通讯位可设置为7位、8位、9位,具体的要视应用而确定)
校验位:根据数据位的高电平个数及校验设置要求,在该位出现一个高电平或低电平
停止位:通讯电平由低电平变为高电平后且通讯位数据位已达到指定个数,则表示停止通讯。
串口通讯的各通讯电平距离说明:
<