终端I/O

本文详细探讨了终端I/O的工作原理,包括CPU通过接口控制I/O设备的方式,如程序查询、中断处理和DMA传送,以及并行、串行、SCSI和USB接口的特点。此外,还介绍了终端I/O的操作函数和用户操作命令,解释了换行与回车的区别。

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

1.终端I/O的工作方式

CPU通过接口控制I/O设备。通常接口有以下一些功能:

(1)设置数据的寄存、缓冲逻辑,以适应CPU与外设之间的速度差异,接口通常由一些寄存器或RAM芯片组成,如果芯片足够大还可以实现批量数据的传输;

(2)能够进行信息格式的转换,例如串行和并行的转换;

(3)能够协调CPU和外设两者在信息的类型和电平的差异,如电平转换驱动器、数/模或模/数转换器等;

(4)协调时序差异;

(5)地址译码和设备选择功能;

(6)设置中断和DMA控制逻辑,以保证在中断和DMA允许的情况下产生中断和DMA请求信号,并在接受到中断和DMA应答之后完成中断处理和DMA传输。

CPU通过向接口电路中的寄存器发送命令,读取状态和传送数据。外设寄存器也称为“I/O端口”,通常包括:控制寄存器、状态寄存器和数据寄存器三大类。

大多数UNIX使用终端行规程模块进行规范模式处理。行规则程序对输入、输出数据提供格式变换功能。它有两种处理方式:规范方式输入处理。在这种方式中,终端输入以行为单位进行处理。对于每个读要求,终端驱动程序最多返回一行;非规范方式输入处理。输入字符不以行为单位进行装配。

 

CPU通过接口对外设进行控制的方式有以下几种:

(1)程序查询方式

(2)中断处理方式

(3)DMA(直接存储器存取)传送方式

DMA最明显的一个特点是它不是用软件而是采用一个专门的控制器来控制内存与外设之间的数据交流,无须CPU介入,大大提高CPU的工作效率。

在进行DMA数据传送之前,DMA控制器会向CPU申请总线控制 权,CPU如果允许,则将控制权交出,因此,在数据交换时,总线控制权由DMA控制器掌握,在传输结束后,DMA控制器将总线控制权交还给CPU。

 

常见接口

并行接口

目前,计算机中的并行接口主要作为打印机端口,接口使用的不再是36针接头而是25针D形接头。所谓“并行”,是指8位数据同时通过并行线进行传送,这样数据传送速度大大提高,但并行传送的线路长度受到限制,因为长度增加,干扰就会增加,容易出错。

串行接口

计算机的另一种标准接口是串行口,现在的PC机一般至少有两个串行口COM1和COM2。串行口不同于并行口之处在于它的数据和控制信息是一位接一位串行地传送下去。这样,虽然速度会慢一些,但传送距离较并行口更长,因此长距离的通信应使用串行口。通常COM1使用的是9针D形连接器,而COM2有些使 用的是老式的DB25针连接器。

磁盘接口

SCSI接口

SCSI(SmallComputerSystemInterface)小计算机系统接口,在做图形处理和网络服务的计算机中被广泛采用SCSI接口的硬盘。除了硬盘以外,SCSI接口还可以连接CD-ROM驱动器、扫描仪和打印机等。

USB接口 :通用串行总线

 

2. 终端I/O的操作函数

终端设备的特性:

检测和更改的终端设备特性都包含在termios结构中。该结构在头文件<termios.h>中定义。

struct termios {

    tcflag_t    c_iflag; /* input flag */

    tcflag_t    c_oflag; /* output flags */

    tcflag_t    c_cflag; /* control flags */

    tcflag_t    c_lflag; /* local flags */

cc_t        c_cc[NCCS]; /* control characters */

};

 

 

3.终端I/O的用户操作命令

在命令行中用s t t y 命令进行检查和更改终端的参数

 

4.特殊输入字符

换行与回车的区别:

符号    ASCII      意义
\n        10        换行NL
\r        13        回车CR

回车 \r 本义是光标重新回到本行开头,r的英文return,控制字符可以写成CR,即Carriage Return
换行 \n 本义是光标往下一行(不一定到下一行行首),n的英文newline,控制字符可以写成LF,即Line Feed
在不同的操作系统这几个字符表现不同,比如在WIN系统下,这两个字符就是表现的本义,在UNIX类系统,换行\n就表现为光标下一行并回到行首,在MAC上,\r就表现为回到本行开头并往下一行,至于ENTER键的定义是与操作系统有关的。通常用的Enter是两个加起来。

EOL与EOF

Linux:

EOL:结束当前行,ctrl C

EOF:结束该文件,  ctrl D

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值