前言


在微机系统中,微处理器的强大控制功能必须通过外部设备(简称外设)才能实现,而外设与微处理器之间的信息交换及通信又是靠接口来实现的。在实际应用中,人们总是通过接口加入自己的设备或模块,构成应用系统,所以,接口技术是微机应用系统研究与开发的重要基础,是当代理工科大学生应当掌握的通用技术。为此,对不同类型的接口的工作原理与基本组成进行系统学习是必要的。但是,接口技术涉及的知识面较广,尤其是必须与硬件打交道,课程的实践性很强,这些都给学习和掌握微机接口技术带来了一定的困难,需要相关的教材提供帮助。本书就是为此而编写的。
微机接口技术的基本任务有两个: 一是接口要实现I/O设备与总线的连接;二是CPU通过接口对I/O设备进行控制或通信。接口技术的发展是随着微机体系结构和被连接的对象的发展而发展的,它经历了固定式简单接口、可编程复杂接口和智能接口3个发展阶段。
目前,在嵌入式微机应用系统以及物联网系统中,接口的结构形式已经发生了很大变化,由原来外接式独立接口电路发展为与微控制器融为一体的内嵌式接口,但接口的功能与工作原理并未改变。初学者最好从基本接口电路开始,充分理解独立的接口芯片或模块的工作原理、方法及特点,才能更好地了解并掌握高集成度的组合接口的设计方法。
影响接口变化的因素主要有两个: 一是总线结构不同,这属于硬件上的变化;二是操作系统不同,这属于软件上的变化。这两种变化使接口在完成连接和操作设备的任务时产生了不同的处理方法,形成了接口的层次概念,从而把接口分为上层与下层两个层次。上层包括设备接口及应用程序,构成接口的基本内容;下层包括总线接口及设备驱动程序,构成接口的高级内容。这两部分是现代接口技术的完整内容。限于篇幅,本书只讨论接口技术的基本内容。
接口技术要与各种芯片、器件、设备打交道,这也是有些读者学习接口技术时颇感困难的部分,但是,要学习接口,就要与硬件打交道。那么,应采用何种方法学习庞杂的硬件知识,就成为掌握现代接口技术必须考虑的问题。
本书编者根据多年教学经验总结出一种行之有效的方法,称为接口设计的编程模型方法。编程模型包含两个层次。
首先,根据接口技术课程的特点,对任何一种硬件对象,如一个接口芯片,主要了解与掌握芯片的功能、外部特性和编程使用方法3方面,而不过多关注其内部的详细结构。因为芯片的功能是制定接口设计方案时选择芯片的依据,芯片的外部特性是进行接口硬件设计时确定连接方式的依据,芯片的编程使用方法是进行接口软件设计时编程的依据。
其次,所谓编程模型是指芯片内部可访问的寄存器、寄存器的端口地址以及寄存器的写入命令或读出状态的数据格式。了解与掌握了芯片的这3个元素,也就可以利用它进行接口的软件编程设计了。由于设备接口是连接CPU与I/O设备的桥梁,在分析接口设计的需求时,显然应该从接口的两侧入手。在CPU一侧,接口面对的是本地的数据总线、地址总线和控制总线(简称三总线),因此,主要任务是使接口电路的信号线满足三总线在时序逻辑上的要求,并进行“对号入座”连接。而在I/O设备一侧,接口面对的是类型、信号、工作速度各异的外设,情况复杂,因此重点是分析I/O设备的外部特性,即I/O设备信号引脚的功能与特点,以便在进行接口硬件设计时提供这些信号线,以满足I/O设备在连接上的要求;同时需分析I/O设备的工作过程,以便在设计接口软件时按照这种过程编写程序,以满足I/O设备的工作条件与要求。
设备接口电路的设计,是以硬件为基础,采用硬件与软件相结合的综合设计方法。对于硬件设计,通常采用可编程通用/专用接口芯片,因而需要深入了解并熟练掌握各类芯片的功能、特点、工作原理、使用方法及编程技巧,以便合理地选择芯片,把它们与微处理器正确地连接起来。对于软件设计,应该包括上层的用户应用程序和下层的设备驱动程序。一般用户只须编写用户态应用程序,而对原创性开发,就要涉及核心态的设备驱动程序设计。所谓接口电路设计的解决方案,是指在微机接口电路总体设计时,对接口电路的配置方式、接口电路的构成和芯片的选择进行分析与认定。解决方案的制定与微处理器类型有关,台式微机桌面系统、嵌入式系统、微控制器、单片机以及各种片上系统SoC的解决方案各不相同。接口电路的配置方式是指把接口电路安排在微机系统的什么地方,有外置方式与内置方式之分。本书以外置式接口芯片和支持芯片为主,内置式接口电路重点在第4、5、7、9、12章有所介绍或应用。
接口电路的构成有多种选择,如一般的IC电路、可编程通用/专用接口芯片或可编程逻辑阵列器件。其中,可编程通用/专用接口芯片功能强,可靠性高,通用性好,针对性强,接口设计的周期短,并且使用灵活方便。FPGA器件可以实现复杂的接口功能,并且可以将接口功能模块与其他应用电路集成在一起,结构紧凑,灵活多样,可满足不同复杂度的接口电路的要求,因此成为嵌入式微机系统和微控制器接口设计的首选。
目前,在实际应用中,采用FPGA进行微机应用系统开发时,将多种外设接口功能模块与CPU集成于一体,构成内嵌式接口电路,已成为ARM和微控制器接口设计的一种趋势。但在校学生作为初学者学习接口技术原理与方法时,采用各种分立接口芯片构建外置式接口电路的解决方案是可取的,因此本书以外置式接口电路为主。各章在讨论各类接口电路设计之前,都要介绍解决方案中所采用的外置式接口芯片。同时,考虑到嵌入式设备的广泛应用,本书还介绍了基于MIPSfpga处理器的FPGA接口设计与应用,第12章详细介绍了基于MIPSfpga的GPS定位显示系统设计。通过该应用系统接口设计过程的学习,读者可以举一反三,为设计用户需要的其他嵌入式应用系统提供借鉴。
本书由陈进才、胡迪青主编,第1、3、6、8、11章由刘乐善编写,第2、9章由刘乐善、胡迪青编写,第4章由胡迪青编写,第5、7章由刘乐善、陈进才、张胜编写,第10章由李畅、王海卫编写,第12章由卢萍、罗可、谭支鹏编写。全书由陈进才统稿。华中科技大学研究生鲍锦星、柳栋栋、熊阳、许欣怡、刘涛等为本书的编写做了许多技术性工作。本书的出版得到了华中科技大学的大力支持,在此表示衷心感谢。同时特别要感谢本书参考文献的作者,他们为本书的编写提供了丰富的技术文献支持。
计算机接口技术是一门实践性很强的课程,除了课堂理论学习之外,还需要强有力的实践性环节与之配合。编者在计算机接口技术课程中设置了课程设计、毕业设计、实习和实训等多种实践环节,并积累了丰富的实践教学资料,可对有兴趣的读者开放。
由于计算机技术发展迅速,加之编者水平有限,书中肯定存在不少不足,恳切希望各位专家和读者赐正。

编者2021年4月于喻园