Linux终端控制台体系及串口驱动分析详解

需积分: 6 0 下载量 115 浏览量 更新于2024-07-26 收藏 220KB DOC 举报
"串口驱动分析" 本文主要讲述了Linux终端控制台体系及串口驱动分析,包括串口驱动、控制台、串口和伪终端的概念和实现机制。 **串口通信方式** 串口通信方式可以分为并行通信和串行通信两种。并行通信利用多条数据线路将数据的各位同时传送,特点是传输速度快,适用于短距离通信。串行通信利用一条数据线将数据一位位顺序传送,特点是通信线路简单,利用简单的线缆就可实现通信,低成本,适用于远距离通信。 **异步通信** 异步通信以一个字符为传输单位,通信中的两个字符间的时间间隔是不固定的,然而同一个字符中的两个相邻位之间的时间间隔是固定的。在使用异步串口传送一个字符信息时,对数据格式有如下规定:规定有空闲位、起始位、资料位、奇偶校验位、停止位。起始位:先发一个逻辑“0”信号,表示传输字符的开始;数据位:紧接在起始位之后,数据位的个数可以是4、5、6、7、8,从最低位开始传送,靠时钟定位;奇偶校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此校验数据传送的正确性;停止位:它是一个字符数据的结束标志;空闲位:处于逻辑“1”状态,表示当前线路上没有数据传送。 **波特率** 波特率是衡量数据传送速率的指针,表述每秒钟传送的二进制位数。 **终端概述** 在Linux中,TTY(终端)是一类字符设备的统称,它包括了3种类型:控制台、串口和伪终端。控制台:供内核使用的终端为控制台。控制台在Linux启动时,通过命令console=…指定,如果没有指定控制台,系统把第一个注册的终端(tty)作为控制台。控制台是一个虚拟的终端,它必须映射到真正的终端上。控制台可以简单的理解为printk输出的地方。控制台是个只输出的设备,功能很简单,只能在内核中访问。 **伪终端** 伪终端设备是一种特殊的终端设备,由主-从两个成对的设备构成,当打开主设备时,对应的从设备随之打开,形成连接状态。输入到主设备的数据成为从设备的输出,输入到从设备的数据成为主设备的输出,形成双向管道。伪终端设备通常用于远程登录服务器来建立网络和终端的关联。当通过telnet远程登录到另一台主机时,telnet进程与远程主机的telnet服务器相连接。telnet服务器使用某个主设备并通过对应的从设备与用户终端建立连接。 **串口驱动** 串口驱动是Linux系统中的一种驱动程序,负责控制串口的输入输出操作。串口驱动程序通常包括了串口初始化、数据传输、错误处理等功能。 Linux中串口驱动的实现机制是通过TTY设备来实现的,每个TTY设备都对应一个串口驱动程序。