串口通讯(上)——基础概念
Posted fire909090
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了串口通讯(上)——基础概念相关的知识,希望对你有一定的参考价值。
通讯协议
通讯协议分为物理层和协议层。
- 物理层:规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输;
- 协议层:规定通讯逻辑,统一收发双方的数据打包、解包标准。
串口通讯物理层之RS-232
RS-232标准主要规定了信号用途、通讯接口和信号电平标准。如图9-1为常见的设备间串口通讯结构图。
图9-1
如上图所示,每个设备都有一个DB9接口,通过DB9接口连接RS-232标准的串口线进行数据传输。由于通过RS-232标准传输的电平信号到达设备后,不能直接被识别,所以会通过电平转换芯片(例如MAX3232、SP3232芯片等)转换成能识别的TTL电平信号,实现通讯。
相互通讯的两个设备间,一个设备发送数据,一个设备接收数据。一般情况下,发送数据的设备称为DTE,如计算机;接收数据的设备称为DCE,如调制解调器。
这里需要介绍下DB9接口。如图9-2为DB9标准的公头、母头接法(接线口以针式引出信号线为公头,以孔式引出信号线为母头)。
图9-2
如上图,以公头为例,有9条信号线,其中,
- RXD:用于接收DCE发来的数据信号,即输入;
- TXD:用于发送DTE的信号,即输出。公头和母头的RXD和TXD应交叉连接;
- GND:用于平衡设备双方的地电位,即共地。
其他信号线如DCD、DTR、DSR、RTS、CTS等,使用逻辑1表示有效信号,逻辑0表示无效信号。如DTE端的RTS信号线置1时,是为了告知DCE设备本机已准备好接收数据,而置0则表示未准备就绪。
串口通讯协议层
协议层规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据。如图9-3为数据包的基本组成。
图9-3
波特率
串口异步通讯中由于没有时钟信号,所以通讯双方需要约定好波特率,即每个码元的长度,以便对信号进行解码。常见的波特率有4800、9600、115200等。
起始位、停止位
数据包从起始位开始,到停止位结束。起始信号用逻辑0的数据位表示,停止信号由0.5、1、1.5或2个逻辑1的数据位表示,只要双方约定一致即可。
有效数据
起始位之后便是传输的主体数据内容了,也称为有效数据,其长度一般被约定为5、6、7或8位长。
数据校验
由于在通讯过程中易受到外部干扰导致传输数据出现偏差,所以在有效数据之后加上校验位解决。校验方法有奇校验(odd)、偶校验(even)、0校验(space)、1校验(mark)及无校验(noparity)。
奇校验要求有效数据和校验位中“1”的个数为奇数,比如一个8位长的有效数据为:01101001,此时共有4个“1”,为达到奇校验效果,校验位为“1”,最后传输的是8位有效数据加1位校验位,共9位。
而偶校验刚好相反,要求有效数据和校验位的“1”数量为偶数,则此时为达到偶校验效果,校验位为“0”。
而0校验则无论有效数据中是什么数据内容,校验位总是为“0”,1校验校验位总是为“1”。
以上是关于串口通讯(上)——基础概念的主要内容,如果未能解决你的问题,请参考以下文章