串口通信是一种经典的数字通信方式,在工业控制、嵌入式系统、计算机外设等领域得到广泛应用。它通过一对串行信号线实现数据的按位传输,具有接口简单、成本低廉的优点。
串口通信
串口通信是指将数据按位顺序一位一位地串行传输的通信方式。常见的串口接口包括RS-232、RS-485、TTL串口等。其基本通信结构是点对点,通过发送端和接收端的数据线进行数据交互。
串口通信以异步传输为主,即发送端和接收端各自独立时钟,通过起始位和停止位保证数据帧的同步。
数据发送的原理
1. 数据帧结构
串口发送的数据通常按“起始位 + 数据位 + 校验位(可选) + 停止位”的格式组成一个数据帧。各部分含义如下:
起始位:标志数据开始,通常为逻辑低电平。
数据位:实际传输的有效数据,一般为5~8位。
校验位:用于错误检测(奇偶校验等),可选。
停止位:标志数据结束,通常为逻辑高电平,长度为1或2位。
2. 数据传输过程
在空闲状态下,串口线路电平处于高电平(逻辑1)。
发送数据时,发送器先将线路拉低,发送起始位,通知接收端准备接收。
然后按照预定的波特率(bit rate),逐位将数据位依次发送出去。
若使用校验位,会在数据之后发送。
发送停止位,将线路拉高,表示数据帧结束。
连续发送时,多个数据帧依次传输。
3. 波特率控制
波特率表示每秒钟传输的位数,发送端按照该速率定时发送每一位,保证发送与接收同步。
数据接收的原理
1. 数据接收准备
接收端监听串口线路,当检测到从高电平跳变为低电平(即起始位),开始进入接收过程。
2. 定时采样
接收端根据约定波特率计算采样间隔。
在起始位的中间时刻开始采样,因为此时信号稳定性最好。
之后按照固定间隔模拟“采样点”不断采集数据位。
3. 数据解码与校验
将采集的各个数据位组合成字节。
根据是否使用校验位,进行奇偶校验或其他校验。
如果校验通过,确认数据有效;若校验失败,则数据包被丢弃或请求重传。
4. 停止位确认
检测停止位是否为逻辑高,保证数据帧完整。若停止位异常,表明数据帧无效。
串口发送与接收的同步机制
由于串口属于异步通信,没有共享时钟,发送端与接收端必须预先约定波特率和数据帧格式。通过起始位和停止位划分帧边界,利用严格的时间间隔进行采样,实现数据同步传输。