为了尽量减少接口卡的种类(型号)数目,人们总是希望用同一块接口卡能提供出更多的(而不是单独一种)功能,并且能灵活选择其运行功能和运行的控制参数,这样的接口卡被称为通用可编程接口,这里说的可编程,是指可以在程序中通过指令指定接口的功能,指定接口的运行控制参数等。在更早的时候,人们通常是在接口卡上设置一些硬件的开关、跳接线等,通过人工地变更他们的连接状态来指定接口的功能和运行控制参数,很不方便。

  在目前,为了指定(识别)一台设备,通常是通过对指令中给出的I/O端口地址进行译码产生片选信号(/CS)来完成的,把译码得到的信号提供到接口卡上的接口芯片的/CS(低电平有效)引脚,使其正常运行,而那些/CS引脚信号为高电平的芯片则不工作。在更早的时候,人们通常是在接口卡上设置一些硬件的开关、跳接线等,通过人工地变更他们的连接状态来指定接口的的端口地址,CPU把设备地址通过地址总线传送给每个接口,由接口将其与自己的地址编码进行比较,以检测CPU是否要与本设备交换信息,比较繁琐。

  接口卡上通常有接口命令寄存器,存放CPU发来的控制命令;有状态寄存器,由设备运行设置其值,供CPU通过读操作来了解设备(接口)的运行状态。例如,CPU要到设备读数据时,了解设备是否已把数据送到接口的缓冲寄存器中;CPU要向设备写数据时,了解设备是否已把CPU送到接口的缓冲寄存器中的数据取走,以便决定CPU可否开始下一次数据传送。

  接口卡上通常还有一到几个用于(输入、输出)数据缓冲的寄存器,以便适当降低CPU和设备直接偶合的程度,解决他们运行速度不匹配的矛盾。

  接口卡上通常还有处理中断请求、屏蔽和判优等逻辑线路,这是属于总线从设备类型的设备主动向CPU提出自己操作要求的重要机制,当然总线主设备也可以发出中断请求。这一部分的详细内容将到讲解中断的一节进行说明。