串口编程-串口简介
https://m.toutiao.com/is/J3ycgUa/
前言
串行接口(Serial port),也称串行接口或串行端口,串行通信接口,COM接口,简称串口。主要用于串行式逐位数据传输。
串口通信(Serial Communication),是一种非常常见的设备间的通信方式。串口通信协议是指双方约定一致的数据包格式规范(包含起始位、数据、校验位及停止位)。
1.串口常见的电气标准和协议
1.1 RS-232C
RS-232C标准串口,是目前最常用的一种串行通信接口
机械特性
RS-232C采用的接口是9针或25针的D型插头,常用的一般是9针插头。
DE-9 Male(Pin Side) DE-9 Female (Pin Side) ------------- ------------- \ 1 2 3 4 5 / \ 5 4 3 2 1 / \ 6 7 8 9 / \ 9 8 7 6 / --------- ---------
9针插头管脚
1 数据载波检测(DCD) 2 接受数据(RD、RXD) 3 发送数据(TD、TXD)4 数据终端准备(DTR)5 公共接地 6 数据准备好(DSR)7 请求发送(RTS)8 清除发送(CTS)9 振铃指示(RI)
电气特性
逻辑电平:逻辑1: -3~-15V;逻辑0: 3~15V
数据最高传输速率:19200bps
最远通信距离:15m
1.2 RS-422
RS-232存在距离短、速率低的问题,RS-422提升了这两方面,最大传输距离1200m,最大传输速度10Mb/s
机械特性
一般是9针插头D型插头
电气特性
逻辑电平:逻辑1: 两线间的电压差+2V~+6V 逻辑0: 两线间的电压差-6V~-2V
数据最高传输速率:10Mbps
最远通信距离:1200m
1.3 RS-485
在RS-422基础上,RS-485增加了多点、双向通信能力,具备联网功能。
机械特性
一般是9针插头D型插头
电气特性
逻辑电平:逻辑1: 两线间的电压差+2V~+6V 逻辑0: 两线间的电压差-6V~-2V
数据最高传输速率:10Mbps
最远通信距离:1200m
2. 串口数据包的组成
串口数据包由起始位、数据、校验位及停止位组成。
最常见的串口数据包配置为9600 8N1(9600波特率,8位数据位,无校验,1位停止位)。
例如传输字符0(ASCII为48,二进制110000)
01100001
解释
0(起始位) 110000(8位数据位) 1(1位停止位)
2.1 起始位
一个逻辑0(低电平)的数据位表示开始
2.2 数据位
起始位后的就是数据位,数据位的长度一般为5、6、7、8。
2.3 校验位
校验位用于校验数据是否正确。
一般分为:
0 - No Parity 无校验1 - Odd Parity 奇校验2 - Even Parity 偶校验3 - Mark Parity 1校验4 - Space Parity 0校验
2.4 停止位
数据传输结束的标志,一般由 1、1.5、2 个逻辑1(高电平)的数据位表示