串行接口(Serial port),也称串行接口或串行端口,串行通信接口,COM接口,简称串口主要用于串行式逐位数据传输,现在小编就来说说关于串口通信编程实例?下面内容希望能帮助到你,我们来一起看看吧!
串口通信编程实例
前言串行接口(Serial port),也称串行接口或串行端口,串行通信接口,COM接口,简称串口。主要用于串行式逐位数据传输。
串口通信(Serial Communication),是一种非常常见的设备间的通信方式。串口通信协议是指双方约定一致的数据包格式规范(包含起始位、数据、校验位及停止位)。
1.串口常见的电气标准和协议1.1 RS-232CRS-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-422RS-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位停止位)
一个逻辑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校验
数据传输结束的标志,一般由 1、1.5、2 个逻辑1(高电平)的数据位表示
,