输入/输出接口与主机内部所有模块的连接是通过计算机的系统总线完成的,接口与外部设备连接的部分则是系统总线通过接口向外的延伸,它是采用标准的接口实现连接的。通常,称它为外部接口。相对内部总线,它又被称为外总线。
按数据传送方式,外部接口分为串行接口和并行接口,简称为串口和并口。随着计算机在多媒体技术领域的广泛应用,外设与主机间的高速的并且大数据流的传送需求,推动了接口技术的发展,原来由传统的串、并口完成的功能现在已经越来越多地被新的接口类型所替代。
1.串行接口
串行接口又称之为通信口或com端口,主要用于需要与系统进行双向通信的设备。由于系统总线中的数据均为并行数据,输出的数据必须在串行接口中进行并行数据到串行数据的转换,反之,输入的数据必须在串行接口中进行串行数据到并行数据的转换。
串行接口只需要一对信号线来传输数据,主要用于传输速度不高,传输距离较长的场合。目前几乎所有计算机都采用eia rs-232c作为串行接口标准,它包括了按位串行传输的电气和机械方面的规定。完整的rs-232c接口有25根线,采用一个25芯插头座,但大多数情况下只需使用其中的3至5根即可正常工作,其中最主要的是“发送数据”和“接收数据”线,它们用来在两个系统之间串行传送信息,传送速率在50、75至19200bps之间。
对串行接口的使用是通过对其控制寄存器和状态寄存器进行的。先由主机对串行接口的控制寄存器中发出指令,设置好串行接口的工作方式,如同步还是异步、数据传送速率、奇偶校验方式以及字符长度等,然后,再发送命令使之开始工作。数据传送期间,主机可根据状态寄存器了解串口的工作状态,并据此确定下一步操作。
这里以intel公司的8251芯片为例来说明串行接口芯片的组成和用法,intel 8251的结构如下图所示。从图中可以看到,它由接收器、发送器、调制解调控制、读/写控制逻辑和i/o缓冲器等5部分组成。其中i/o缓冲器又可细划为状态缓冲器、发送数据/命令缓冲器和接收数据缓冲器3部分。从使用角度看,由于intel 8251是一个可编程的多功能通讯接口电路,在使用前必须用方式指令和命令指令对其初始化操作。
方式指令是把规定的8位信息(d7~d0)送入控制寄存器,以指定其工作方式。其中d1和d0确定了同步传送或异步传送的方式及其波特率,d3和d2确定了每个字符的长度,d5和d4确定了对奇偶校验位的规定,d7和d6在异步方式下确定了对停止位的规定及在同步方式下的具体规定。
命令指令是把规定的8位信息(d7~d0)送入控制寄存器,以使其进入运行状态,能执行发送或接收数据的操作。其中d0位为txen(允许发送位,为1允许发送,为0禁止发送),d1位为dtr(数据终端准备好,为1时,将迫使 /dtr输出为0),d2位为rxe(允许接收位,为1允许接收,为0禁止接收),d3位为sbbk(发送中止字符,为1迫使txd为低,为0正常工作),d4位为er(错误标志复位,为1使pe、oe、fe复位),d5位为rts(请求发送,为1迫使/rts输出为低),d6位为ir(内部复位,为1使8251返回到方式指令格式),d7位为eh(同步传送时,使8251进入搜索方式,为1允许搜索同步字符)。如何在程序中使用串行接口将到输入输出方式一节说明。
2.并行接口
串行接口按位传送数据,传送速率较低,且由于主机是按字或字节处理数据,使用串行接口时需要进行并行到串行的转换。对速度较高的设备,如打印机等,采用并行数据传送方式比较合适。我们以intel公司的8255芯片来说明并行接口的组成和用法。
如下图所示的intel 8255a是一种典型的并行输入/输出芯片。它有24根输入/输出信号线,在ibm pc/at中,曾作为连接键盘、开关、喇叭等的接口。
通过对8255a芯片内的状态寄存器写入命令,可使它完成许多功能。但最简单的使用是如图中所示的把它作为三个互相独立的端口a、b和c,这里的每个端口都对应了一个8位的锁存寄存器。要设置某个端口的信号,cpu仅仅需要在数据线上发出并保持一个8位的数据,直到成功地改写了该端口对应的寄存器。为把某个端口用作输入端口,cpu只需要读入对应寄存器的数据。
8255a的另外一种操作模式可以用来和外部设备进行“握手”。例如,为输出数据到某个无法随时接收数据的设备,8255a可以把数据放到某个输出端口,然后等待设备发过来的脉冲,表示设备已经接收了当前数据,并准备接收下一个数据。锁定这些脉冲信号并将其送往cpu所必需的逻辑电路已经包括在8255a的硬件中。
从8255a的功能图中我们可以看到,除了三个端口的24根信号线之外,它还有8根直接和数据总线相连的信号线、片选信号线、读信号线和写信号线、两根地址信号线、以及用来初始化芯片的信号线。两根信号线用于选定分别对应于端口a、b、c和状态寄存器的四个内部寄存器之一。状态寄存器用来指定哪个端口用于输入,哪个端口用于输出,或者是其它功能。一般情况下,两根地址信号和地址总线的低两位连接。
3.usb
usb中文名称是通用串行总线,但它不是一种新的总线标准,而是应用在pc领域的接口技术。它的出现使很多外设不再需要专用的接口,从而大大节省了重要的系统资源。
从1994年发表了usbv0.7版本以后,到现在已经发展为3.0版本,成为目前电脑中的标准扩展接口。目前主板中主要是采用usb2.0和usb3.0,各usb版本间能很好的兼容。usb2.0协议可以提供速率为480mbps的全双工高速传输,而usb3.0协议可以提供高达5gbps全双工高速传输。usb用一个4针插头作为标准插头,采用菊花链形式可以把所有的外设连接起来,最多可以连接127个外部设备,并且不会损失带宽。usb需要主机硬件、操作系统和外设三个方面的支持才能工作。目前的主板一般都采用支持usb功能的控制芯片组,主板上也安装有usb接口插座,而且除了背板的插座之外,主板上还预留有usb插针,可以通过连线接到机箱前面作为前置usb接口以方便使用。而且usb接口还可以通过专门的usb连机线实现双机互连,并可以通过hub扩展出更多的接口。usb具有传输速度快,使用方便,支持热插拔,连接灵活,独立供电等优点,可以连接鼠标、键盘、打印机、扫描仪、手机、数码相机、移动硬盘等几乎所有的外部设备。
4.ieee1394
ieee1394以前称之为火线(fire wire),是1986年由苹果电脑公司针对高速数据传输所开发的一种传输介面,并于1995年获得美国电机电子工程师协会(ieee)认可,成为正式标准。ieee1394可以在一个端口上连接多达63个设备,设备间采用树形或菊花链拓扑结构。
ieee1394标准定义了两种总线模式,即:backplane模式和cable模式。其中backplane模式支持12.5、25、50mb/s的传输速率;cable模式支持100、200、400mb/s的传输速率。早期的ieee1394a标准已经达到了200mb/s的传输速率,目前最新的ieee1394b标准能达到800mb/s的传输速率。
ieee1394是横跨pc及家电产品平台的一种通用界面,适用于大多数需要高速数据传输的产品,如高速外置式硬盘、dvd-rom、扫描仪、打印机、数码相机、摄影机等。ieee1394分为有供电功能的6针a型接口和无供电功能的4针b型接口。a型接口可以通过转接线兼容b型,但是b型转换成a型后则没有供电的能力。6针的a型接口在apple的电脑和周边设备上使用很广,而在消费类电子产品以及pc上多半都是采用的简化过的4针b型接口,需要配备单独的电源适配器。
早期AI企业瓶颈期“求变”
万圣节糖果自动分配器的制作
iphone13pro与12 pro的区别
常见的三维测量方法有哪些(结构光编码原理)
PLC用户程序的执行过程
四种标准输入/输出接口的外部接口
Zilliz 受邀参加 GOTC ,星爵谈向量数据库之于大模型时代的重要性
凌特推出独立双输入950mA锂电充电器
家电大厂跨“人机新世代” 美的、海尔、夏普出新招
HEROTEK隧道二极管探测器特性
蔚来理想小鹏的答卷每个问题里都有特斯拉
售价高昂的Micro-LED,它有什么优势优点
简单分析石英加速度计的工作原理
在直播交友软件市场,开发一个仿抖音运营级的手机直播软件需要多少资金?
无人驾驶汽车平台的机遇和挑战
精确的数据采集其实全是相对的
自动驾驶和半自动驾驶汽车的验证和确认相关的工程挑战和机遇
基于芯原GPU IP 的处理器平台上完成适配及性能优化
博泰车联网智能座舱将采用BlackBerry QNX技术
厌倦城市回归原始生活 VR游戏《Yore VR》增加狩猎功能