串口通信(Serial Communication):
串口通信的特点:异步、电平信号、串行
串口按位(bit)发送和接收字节。虽然串口比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时使用另一根线来接收数据。故串口通信又分为:单工通信、半双工通信、双工通信。
*单工通信:只能是单方向传输,比如A发送数据给B。
*半双工通信:可以双方向传输,(此时需要三根线,Tx,Rx,GND)即A既可以接收数据也可以发送数据。但是同一时间内只允许A发送给B或者A从B接收数据。
*全双工通信:可以双方向传输,(此时需要三根线,Tx,Rx,GND)并且同一时间内可以允许A发送数据给B,同时B也发送数据给A。
串口通信结构简单并且能够实现远距离通信,比如IEEE488的定义并行通信状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;但对于串口通信而言,长度可达1200米。
串口通信比较重要的几个参数:波特率、数据位、停止位和奇偶校验位。对于两个进行串口通信的接口,这些参数必须匹配。
* 波特率:这是一个衡量符号传输速率的参数,指的是信号被调制以后在单位时间内的变化,即单位时间内载波参数变化的次数。我们也可以理解为单位时间内传输的二进制位数,比如波特率9600,可以理解为1s内传输9600位二进制“1”或者“0”。
* 数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据往往不会是8位的,标准的值是6/7/8,如何设置取决于你想传送的信息。
* 停止位:用于表示单个包的最后一位,典型的值为1位、1.5位、2位。由于数据是在传输线上定时发送的或接收的,串口是异步方式,所以发送方和接收方都有各自的时钟,两者进行通信时很可能会出现小小的不同步。因此停止位不仅仅是表示传输的结束,还提供了两者校正时钟同步的机会。用于停止位的位数越多,不同时钟同步的容忍度越大,但是数据传输的速率同时也会很慢。
* 奇偶校验位:这是串口通信中一种简单的检错方式。有四种检错方式:奇、偶、高、低。当然没有检验位也是可以的,只不过通信出错你也不知道。
RS232电平和TTL电平:
RS232电平:-15V~-3V为高电平1, 3V到15V为低电平0
TTL电平:+5V为高电平1, 0V为低电平0.
一般情况下SoC芯片内部通信采用的都是TTL电平,计算机采用的是RS232电平,如果两者进行通信可以使用一个电平转换芯片即可。而且一般由于RS232电平范围大,适合干扰大、传输距离远的环境;TTL适合板子上芯片之间的通信,距离小的地方。