概念
定义
- 是一种非常通用设备通信的协议,全称串行通信接口或串行通讯接口(通常指COM接口);
- 是一种常用于电子设备间通讯的全双工扩展接口,串口按位(bit)发送和接收字节,是采用串行通信方式的扩展接口;
- 是一种常用于电子设备间通讯的全双工扩展接口。
传输
串行通信,串口通讯的技术基础,指一位一位地按顺序传送数据。其特点是线路简单,只需一对传输线,即可实现双向通信,大大降低成本。适用于远距离通信,但速度较慢。
USART
串行收发模块,串口的现实载体,负责实现串行通讯,被集成到各种计算机设备中。其中,应用最广的是 USART(Universal Synchronous/Asynchronous Receiver/Transmitter) —— 通用同/异步串行接收/发送器。
如:RS-232 D型9针连接器
各编号线名称以及相应的说明,如下表所示:
脚位 | 简写 | 意义 | 信号 | 说明 |
---|---|---|---|---|
1 | DCD | Data Carrier Detect | 数据载波检测(DCD) | 调制解调器通知电脑有载波被侦测到。 |
2 | RXD | Receiver Data | 接受数据(RD、RXD) | 接收数据。 |
3 | TXD | Transmit Data | 发送数据(TD、TXD) | 发送数据。 |
4 | DTR | Data Terminal Ready | 数据终端准备(DTR) | 电脑告诉调制解调器可以进行传输。 |
5 | GND | Ground | 公共接地 | 地线。 |
6 | DSR | Data Set Ready | 数据准备好(DSR) | 调制解调器告诉电脑一切准备就绪。 |
7 | RTS | Request To Send | 请求发送(RTS) | 电脑要求调制解调器将数据提交。 |
8 | CTS | Clear To Send | 清除发送(CTS) | 调制解调器通知电脑可以传数据过来。 |
9 | RI | Ring Indicator | 振铃指示(RI) | 调制解调器通知电脑有电话进来。 |
接线方式
RTS/CTS最初是设计为电传打字机和调制解调器半双工协作通信的,每次它只能一方调制解调器发送数据。终端必须发送请求发送信号然后等到调制解调器回应清除发送信号。尽管 RTS /CTS是通过硬件达到握手,但它有自己的优势。
1、RS232的标准连线法
当 A端的设备准备好后,发出 DTR(数据设备就绪)信号, 传至 B端的 RI(响铃)和 DSR(通讯设备就绪)。 这样,只要 A准备好(DTR),B端就会产生呼叫(RI)并准备好(DSR)。
注意到 A端的RTS(请求发送)、CTS(允许发送)和 B端的 CD(载波检测)连在一起, 则说明 A一旦请求发送(RTS)将立即得到允许(CTS), 并使 B端检测到载波信号(CD)。 A端的 TXD与 B端的 RXD相连,A发送,B接收。
2、RS232的简化连线法
原来 RTS和 CTS是用来询问和回答是否可以传输数据。 但在这种连接方式下,就成了纯粹告诉对方自己是否可以进行通讯。 此时 RTS和 DTR都可以用来对数据流进行控制。
A端的 DTR(数据设备就绪)发出信号, 当 B端准备好后,B端的 DTR(数据设备就绪)向 A端的 DSR(通讯设备就绪)发出信号。 接下来就可以通过 RTS(请求发送)和 DTR(允许发送)来控制通信。
3、进一步简化(也就是以 RTS /CTS为主)
从上面的流程可以看到,硬件流控制主要是 RTS /CTS和 DTR /DSR来控制,但是,人嘛,能懒就懒,因此现在很多时候都只是用 RTS /CTS告诉对方自己是否可以进行通讯,而直接跳过了 DTR /DSR的就绪状态检测
在使用 RTS /CTS时,它们都是低电平有效,因此,一般在上位机中一旦打开串口,RTS会拉置高电平,然后等待数据发送,使得低电平有效
软件协议
在RS-232的通讯中,定义了信号的软件协议标准。双方必须按照约定,以一致的通讯速率、包格式进行交互,否则将会出现数据异常。
1 波特率
每秒钟传送的码元个数(注意: 不是bit位个数),严格来说,波特率描述的是单位时间内调制(数模转换)信号的能力,而不是传输速率。
拓展:
码元,是指信息传输通道中,携带数据信息的模拟信号单元。通过不同的调制(数模转换)方式,一个码元符号可能负载多个bit位信息,所以不能说“一个码元等于一个bit”。当采用“两相调制”处理时,比特率等于波特率;
串口的传输速率,一般由比特率(单位时间内传输的二进制代码的有效位(bit)数) 来进行衡量。
2 起始位与停止位
每个通讯的串口数据包,都是从起始位开始,结束于停止位。起始位是一个逻辑0的数据位;而停止位可由0.5、1、1.5 或 2 个逻辑1的数据位表示,只要双方约定一致即可。
3 有效数据
紧跟着起始位之后,便是串口数据包的主体内容,也称为有效数据,有效数据的长度可以是5、6、7、8个数据位,通讯开始前需要双方约定。
4 校验位
校验位是一个可选的数据位,紧跟在有效数据之后,用来校验,以防止因外部干扰而导致的传输偏差。校验方法有奇校验(odd)、偶校验(even)、0校验(space)、1校验(mark)以及无校验(noparity)。
奇校验:令传输的数据(有效数据和校验位)中1的个数为奇数(例如:某个串口数据包中,有效数据共有偶数个位为1,则校验位取“1”,使整体1的个数为奇数)
偶校验:与奇校验相反;
0校验:无论主体数据是什么,校验位保持为0;
1校验:无论主体数据是什么,校验位保持为1。