Linux tty驱动学习 - 串口通信,UART及UART驱动概述

本文介绍了串行通信的基本概念,包括异步和同步通信方式,并着重讲解了UART在异步串行通信中的作用。内容涵盖RS-232C标准,UART芯片如PC16650的工作原理,以及在Linux系统中如何管理和使用串口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据在单条传输线上,一位接一位地按顺序传送的方式称为串行通信。串行通信有两种方式:异步方式和同步方式。实现串行通信的接口叫串行接口,它主要的功能就是实现CPU与输入输出设备之间的串并行转换。把从CPU传送过来的并行数据转换成串行从输出设备输出,以及把从输入设备输入的串行数据转换成并行数据送给CPU。串行通信中,因为数据是一位一位地传输,所以为了是接收端能够识别接收到的每位数据的具体意思,收发双方就需要遵守相同的约定,即串口通信协议,它用来保证接收方知晓数据传输的开始及结束,以及判断接收数据的正确性。在异步串行通信中,在发送数据之前会先发送一个开始位,表示数据传输的开始,在发送完所有的数据后,会再多发送一个结束位,表示整个传输过程结束。为了保证数据的正确性,通常会采用奇偶校验法来验证接收到的数据,所以在传输的原始数据后面会再加上奇偶校验位。在同步串行通信中,收发双方采用同一个时钟源来双方的同步,所以传输数据时无需起始位和停止位。同步的方法有外同步和内同步两种,外同步法是在发送数据之前向接收端发送一串时钟脉冲,接收端按这个时钟频率调整自己的时序,是接收时钟频率锁定在接收到的时钟频率上,内同步法是接收端从接收到的数据信息波形本身提取同步的方法。

RS-232C定义了串行通信的物理接口,主要包括机械指标和电气指标。RS-232C标准的连接器有DB25和DB9两种,目前PC上常见的COM口就是DB9类型的连接器。DB9包含9个信号Pin,分别是TxD/RxD,RTS/CTS,DTR/DSR,SG/DCD/RI。TxD/RxD是用来发送和接收数据的,RTS/CTS是用来实现硬件流量控制的,当数据终端设备准备好数据时,会发出RTS信号通知数据通信设备,如果数据通信设备已经准备好接收数据,就会发送一个CTS信号来响应RTS信号。DTR/DSR是数据终端设备和数据通信设备之间的联络信号,DTR表明数据终端设备准备就绪,而DSR用来表明数据通信设备准备就绪。SG为信号地,用来提供参考电平。当通信双方之间有接调制解调器的时候,DCD/RI用来反映调制解调器所侦测到的状态。

异步串行通信的核心是通用异步收发

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值