硬件开发入门--RS232串行通信
扫描二维码
随时随地手机看文章
1. 串口介绍
串口是“串行接口”的简称,即采用串行通信方式的接口。串行通信将数据字节分成一位一位的形式在一条数据线上逐个传送,其特点是通信线路简单,但传输速度较慢。因此串口广泛应用于嵌入式、工业控制等领域中对数据传输速度要求不高的场合。串行通信分为两种方式:同步串行通信和异步串行通信。同步串行通信需要通信双方在同一时钟的控制下,同步传输数据;异步串行通信是指通信双方使用各自的时钟控制数据的发送和接收过程。UART是一种采用异步串行通信方式的通用异步收发传输器(universal asynchronous receiver-transmitter),它在发送数据时将并行数据转换成串行数据来传输,在接收数据时将接收到的串行数据转换成并行数据。UART串口通信需要两根信号线来实现,一根用于串口发送,另外一根负责串口接收。UART在发送或接收过程中的一帧数据由4部分组成,起始位、数据位、奇偶校验位和停止位,如下图所示。其中,起始位标志着一帧数据的开始,停止位标志着一帧数据的结束,数据位是一帧数据中的有效数据。校验位分为奇校验和偶校验,用于检验数据在传输过程中是否出错。奇校验时,发送方应使数据位中1的个数与校验位中1的个数之和为奇数;接收方在接收数据时,对1的个数进行检查,若不为奇数,则说明数据在传输过程中出了差错。同样,偶校验则检查1的个数是否为偶数。异步串行通信数据格式图如上图所示,UART通信过程中的数据格式及传输速率是可设置的,为了正确的通信,收发双方应约定并遵循同样的设置。数据位可选择为5、6、7、8位,其中8位数据位是最常用的,在实际应用中一般都选择8位数据位;校验位可选择奇校验、偶校验或者无校验位;停止位可选择1位(默认),1.5或2位。串口通信的速率用波特率表示,它表示每秒传输二进制数据的位数,单位是bps(位/秒),常用的波特率有9600、19200、38400、57600以及115200等。在设置好数据格式及传输速率之后,UART负责完成数据的串并转换,而信号的传输则由外部驱动电路实现。电信号的传输过程有着不同的电平标准和接口规范,针对异步串行通信的接口标准有RS232、RS422、RS485等,它们定义了接口不同的电气特性,如 RS-232是单端输入输出,而RS-422/485 为差分输入输出等。2. 常见的串行通信接口针对异步串行通信的接口标准有RS232、RS422、RS485,其对比区别如下:RS-232,RS-422和RS-485也都是常用的串行通信接口标准,它们定义了接口不同的电气特性,如 RS-232 是单端输入输出,而 RS-422/485为差分输入输出等。2. 串行通信传输方式串口通信过程中有单端传输与差分传输的差别。单端传输是指在发送或接收过程中,用信号线对地线的电压值来表示逻辑“0”和“1”。而差分传输使用两根信号线来传输一路信号,这两根信号线上传输的信号幅值相等,相位相差 180 度(极性相反),用它们的差值来表示逻辑“0”和“1”,如下图所示。
5. RS232基础介绍
RS232 接口标准出现较早,可实现全双工工作方式,即数据发送和接收可以同时进行。在传输距离较短时(不超过15m),RS232是串行通信最常用的接口标准。RS-232标准的串口最常见的接口类型为DB9(如下图1所示),工业控制领域中用到的工控机一般都配备多个串口,很多老式台式机也都配有串口。但是笔记本电脑以及较新一点的台式机都没有串口,它们一般通过USB转串口线来实现与外部设备的串口通信(如下图2所示)。DB9 接口定义以及各引脚功能说明如图,我们一般只用到其中的 2(RXD)、3(TXD)、5(GND)引脚,其他引脚在普通串口模式下一般不使用。3线连接中,使用TXD和RXD两条数据线,无法实现硬件流控功能。6. 典型硬件电路设计
SP3232的作用:ZYNQ PL端串口输入输出引脚为TTL电平,用3.3V代表逻辑“1”,0V 代表逻辑“0”;而计算机串口采用RS-232电平,它是负逻辑电平,即-15V~-5V 代表逻辑“1”,+5V~+15V 代表逻辑“0”。因此当计算机与ZYNQ通信时,需要加电平转换芯片SP3232,实现RS232电平与TTL电平的转换。P1的座子的作用:SP3232芯片端口的U2_RX和U2_TX并没有直接和ZYNQ的引脚相连接,而是连接到了P1排针上。RS232串口和RS485串口共用P1排针的UART2_TX和UART2_RX,而UART2_TX和UART2_RX是直接和ZYNQ的引脚相连接的。在使用时,使用跳线帽选择与ZYNQ 相连接的串口类型,这样的设计方式实现了有限IO的复用。因此,在做RS232的通信实验时,需要使用杜邦线或者跳线帽将U2_RX和UART2_TX连接在一起,U2_TX和UART2_RX连接在一起。原理说明:P1端子的3脚是连接FPGA的发送端,4脚是连接FPGA的接收端。COM2的2脚是接收数据端,3脚是发送数据端。发送数据的过程:如果我们想实现FPGA与外部的串口设备进行通信。那我们就需要将串口的发送端与外部设备串口的接收端进行连接。所以用跳线帽把P1的3脚和P1的1脚连接。另外,我们还需要把串口的接收端与外部的发送端连接,即把P1的2脚和P1的4脚连接。U1的11脚在芯片的内部与14管脚连接,在这个过程中,完成了TTL电平到RS232电平的转换。通过第14管脚连接到DB9的第二个管脚。DB9的2脚是接收数据端。DB9通过串口线与外部的串口设备进行连接。接收数据的过程:外部的串口设备会发送数据通过串口线连接到DB9的第3管脚,数据通过SP3232管脚的13管脚,再连接到12管脚,在这个过程中,完成电平转换的过程。最终数据会通过P2的2脚和4脚连接,送到FPGA的接收端。7. MAX232与MAX3232常用232电平转换芯片的区别
- MAX232是5V电压供电的,而max3232是5v或3.3V电压供电的。
- MAX232功耗较大,供电电压5V时,耗电5mA;而MAX3232功耗较小,供电电压5V或3.3V时,耗电 0.3mA。
- MAX232外接4个1uF电容;而MAX3232外接4个0.1uF电容。
- MAX232一般民用产品应用;而MAX3232一般军用(如航天等对功耗要求苛刻的地方)。
- 价格上略有差别。