串行通信接口技术精.ppt
串行通信接口技术第1页,本讲稿共71页9.1串行通信概述 9.1.1串行通信基本概念 系统与外设之间的信息交换过程称为通信,根据系统与外设之间的连线结构和数据发送方式的不同,通信方式分为并行通信和串行通信两种基本方式。并行通信中,数据的各位同时传送称为并行通信。优点是速度快、效率高,缺点是有多少数据位就需多少根数据线,而且还要收发时钟信号和片选信号,因此传送成本高,且只适用于近距离(相距数米或十数米)的通信。如图9-1(a)所示串行通信中,数据的各位逐位按顺序传送称为串行通信。优点是所需传输线少,适合远距离传输(几米到几千米),成本低,抗干扰能力强。缺点是传送速度慢。如图9-1(b)所示。第2页,本讲稿共71页系统外设b001001001b1b2b3b4b5b6b7GND(a)并行通信 系统b71 1 0 0 1 0 0 1 0 0b6b5b4b3b2b1b0停止位起始位外设GND(b串行通信)图9-1 串行通信与并行通信的区别第3页,本讲稿共71页9.1.2串行通信基本方式串行通信可分为异步传送和同步传送两种方式 1.异步传送方式 异步传送方式采用每个字符都按照一个独立的整体进行发送,字符的间隔时间可以任意变化,即每个字符作为独立的信息单位(帧),可以随机地出现在数据流中。所谓“异步”,就是指通信时两个字符之间的间隔事先不能确定,也没有严格的定时要求。异步传送方式规定字符由起始位、数据位、奇偶校验位和停止位组成。一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始,以“停止位”结束,字符之间没有固定的时间间隔要求。每一个字符的前面都有一位起始位第4页,本讲稿共71页(表示一个字符的开始),接收方可以用起始位使自已的接收时钟与数据同步,字符本身由5-7位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位或一位半或二位停止位,停止位后面是不定长的空闲位。如图9-2所示。图9-2 异步串行通信格式第5页,本讲稿共71页 在异步传送中,CPU与外部设备之间的通信遵循以下规定:(1)字符格式。字符格式是指字符的编码形式及其规定。例如,规定每个串行字符由4个部分组成:1个起始位、58个数据位、1个奇偶校验位以及12个停止位。(2)传输速率。传输速率是指每秒钟传送的二进制位数,通常称为波特率(Band Rate)。国际上规定了标准波特率系列,最常用的标准波特率是:110、300、600、1200、l800、2400、4800、9600、115200/19200波特等。第6页,本讲稿共71页 (3)字符速率。字符速率是指每秒钟传送的字符数,它与波特率是两个相关但表达的意义不相同的概念。例如,若异步通信的数据格式由1位起始位、8位数据位、1位奇偶校验位、2位停止位组成,波特率为 9600b/s,则每秒钟能够最多传送 9600/(1+8+1+2)800 个字符。采用异步通信格式的优点是,控制简单,不需收发双方时钟频率保持完全一致,可以有偏差,纠错方便。其缺点是一旦传输出错,则需要重发,传输效率低,信息冗余大。第7页,本讲稿共71页例9-1:异步传输8位ASCII码,如果需要数据传输速率为200字符/秒,使用1位起始位、1位奇偶校验位和2位停止位,则:波特率应该是多少?有效数据位传输位是多少?传输效率是多少?答:波特率是:(8位数据位+1位起始位+1位校验位+2位停止位)200=2400b/s 有效数据位传输位是:8200=1600b/s 传输效率是:1600/2400=66.7%第8页,本讲稿共71页2同步传送方式 异步通信中,降低了传输效率。因此在大批量数据传送时,为了提高速度,就要设法去掉这些标志,而采用同步传送方式。同步通信是一种数据连续传输的串行通信方式。通信时,发送方把需要发送的多个字节数据和校验信息连接起来,组成数据块。发送时,发送方只需在数据块前插入12个特殊的同步字符,然后按特定速率逐位输出(发送)数据块内的各位数据。接收方在接收到特定的同步字符后,也按相同速率接收数据块内的各位数据。第9页,本讲稿共71页显然,在这种通信方式中,数据块内各字节数据之间没有间隔,传输效率高,但发送、接收双方必须保持同步(使用同一时钟信号),且数据块长度越大,对同步要求就越高。因此,同步通信设备复杂(发送方能自动插入同步字符,接收方能自动检测出同步字符,且发送、接收时钟相同,即除了数据线、地址线外,还需要时钟信号线),成本高,一般只用在高速数字通信系统中。第10页,本讲稿共71页同步字符1同步字符2N个字节的连续数据校验信息1校验信息2图9-3 同步串行通信格式 典型的同步通信数据格式如下,同步传送速度高于异步传送速度,但它要求由时钟来实现发送端及接收端之间的同步,所以,硬件电路比较复杂。通常用于计算机之间的通信,或计算机到CRT等外设之间的通信。第11页,本讲稿共71页 串行通信中,按照同一时刻数据流的方向可分为三种基本传送模式:单工传送、半双工传送和全双工传送。1单工(simplex)方式 单工传送方式仅支持在一个方向上的数据传送。如图9-4(a)所示,由设备A传送到设备B。即在这种传送模式中,A只作为发送器,B只作为接收器,反之不可。2半双工(Half-duplex)方式 半双工传送方式支持在设备A和设备B之间交替相互地传送数据。如图9-4(b)所示,即设备A发送数据到设备B时,B为接收器。接受完后设备B也可以做发送器发送数据到设备A,A为接收器。由于A、B之间仅一根数据传送线,它们都有独立的发送器和接收器,所以在同一个时刻只能进行一个方向的传送。3全双工(Full-duplex)方式 全双工传送方式支持数据在两个方向同时相互传送。如图9-4(C)所示,即设备A可发送数据到设备B,B也可以发送数据到设备A,它们都有独立的发送器和接收器,并有两条传送线。9.1.3 数据传送的工作方式第12页,本讲稿共71页图9-4数据传输方式:(a)单工;(b)半双工;(c)全双工 第13页,本讲稿共71页 1串行接口RS-232C标准 RS-232C是美国电子工业协会EIA于1962年发布,并于1969年修订的串行接口标准,已成为国际上通用的标准。RS是英文“推荐标准”的缩写,232为标识号,C表示修改次数。RS-232-C总线标准采用DB25连接器,设有25条信号线,包括一个主通道和一个辅助通道,在多数情况下主要使用主通道。串行接口目前最普遍的用途是连接鼠制解调器以及工业自动化控制中,常被称为异步通信适配器接口,串行接口插座也可以采用简化的DB9连接器。目前RS-232C已成为数据终端设备DTE与数据通信设备DCE的接口标准。不仅在远距离通信中要经常用到它,就是两台计算机或设备之间的近距离串行连接也普遍采用RS-232C接口。9.1.4 RS-232串行通信标准第14页,本讲稿共71页2RS-232C引脚定义 串行通信RS-232是一种总线标准,这个标准仅保证硬件兼容而没有软件兼容。RS-232C标准接口的引脚排列如图9-5所示。简化标准接口的引脚排列如图9-6所示。图9-5 RS-232C标准DB25接口的引脚排列第15页,本讲稿共71页图9-6 RS-232C简化DB9接口的引脚排列第16页,本讲稿共71页3引脚功能 RS-232C最初设计为计算机(称为数据终端设备DTE-Data Terminal Equipment和数据通信设备DCE-Data Communication Equipment(如MODEM)的连接。引脚功能见表9-1。引脚号引脚号信号名称信号名称缩缩写写传传送方向与功能送方向与功能说说明明25脚脚9脚脚23发送数据TXDDTE DCE 输出数据到Modem32接收数据RXDDTE DCE 由Modem输入数据47请求发送RTSDTE DCE DTE请求发送数据58清除发送CTSDTE DCE Modem表明同意发送66数据传输就绪DSRDTE DCE 表明Modem已准备就绪75信号地GND无方向 所有信号的公共地线81载波检测DCDDTE DCE Modem正在接收载波信号204数据终端就绪DTRDTE DCE 通知Modem DTE已准备好229振铃指示RIDTE DCE 表明Modem已收到拨号呼叫表9-1 RS-232C标准接口的引脚功能定义 第17页,本讲稿共71页4RS-232C的连接 通过PC机的可以连接外围设备,如调制解调器、鼠标等。RS-232C广泛用于数字终端设备,如计算机与调制解调器之间的接口,以实现通过电话线路进行远距离通信,如图9-7 所示。尽管RS-232C使用20个信号线,绝大多数情况下,微型计算机、计算机终端和一些外部设备都配有RS-232C串行接口。在它们之间进行短距离通信时,无需电话线和调制解调器就可以直接相连,如图9-8所示。图9-8(a)是最简单的只用3线实现相连的通信方式。从中可见,为了交换信息,TXD和RXD应当交叉连接。因为不使用联络信号,所以程序中不必使RTS和DTR有效,也不应检测CTS和DSR是否有效。图9-8(b)中RTS和CTS互接,以满足全双工通信的联络控制要求。异步串行通信若采用图 9-8(a)或图 9-8(b)所示的3线连接方式,应注意传输的可靠性。因为发送方根本无法知道接收方什么时候可以接收数据,所以在软件设计时应发送一个字符,等待接收方确认之后(如回送一个响应字符)再发送下一个字符。第18页,本讲稿共71页图9-7 使用Modem的RS-232C接口第19页,本讲稿共71页图9-8 不用Modem的RS-232C接口第20页,本讲稿共71页9-8(a)虽然使用了联络信号,但实际上通信双方并未真正相连。图9-8(c)是另一种利用RS-232C直接互连的通信方式,这种方式下的通信更加可靠,但所用连线较多。由于上述连接不使用调制解调器,所以也称为零调制解调器连接(Null Modem)。5RS-232C的电气特性 为了保证数据正确地传送,必要使所用的信号电平保持一致。为满足此要求,RS-232C标准规定了数据和控制信号的电压范围。由于RS-232C是在TTL集成电路之前制定的,所以它的电平不是+5 V和地。它规定:高电平为+3+15 V,低电平为-15-3 V。在实际应用中,常采用12 V或15V。RS-232C可承受25 V的信号电压。另外,要注意RS-232C数据线TXD和RXD使用负逻辑,即高电平表示逻辑0,用符号SPACE(空号)表示;低电平表示逻辑1,用符号MARK(传号)表示。其它控制线均为正逻辑,高电平有效,为ON状态;低电平无效,为OFF状态。第21页,本讲稿共71页由于发送器/接收器芯片使用TTL电平,但RS-232C却使用上述EIA电平,所以为满足EIA电气特性,必须在发送器/接收器与RS-232C接口之间使用转换器件。如SN75150、MC1488等芯片完成TTL电平到EIA电平的转换,而SN75154、MCI489等芯片可完成EIA电平到TTL电平的转换。电平转换器不仅可以由晶体管分立元件构成,也可以直接使用集成电路。目前美信的MAX232芯片使用较多,该芯片使用单端+5V电源供电实现电平转换。引脚含义说明如下:Vcc(16脚):正+5V电源端。GND(15脚):地。VS+(2脚):VS+=2Vcc-1.5V=8.5V。VS-(6脚):VS-=-2Vcc-1.5V=-11.5V。C2+、C2-(4、5脚):一般接1F的电解电容。C1+、C1-(1、3脚):一般接1F的电解电容。第22页,本讲稿共71页输入输出引脚分两组,基本含义见表9-2。在实际使用时,若只需要一路SCI,可以使用其中的任何一组。表9-2 MAX232芯片输入输出引脚分类与基本接法组别组别TTL电电平引脚平引脚方向方向典型接口典型接口232电电平引脚平引脚方向方向典型接口典型接口11112输入输出接MCU的TxD接MCU的RxD1314输入输出连接到接口与其它设备通过232相接299输入输出同上87输入输出同上第23页,本讲稿共71页图9-9 电平转换电路第24页,本讲稿共71页6RS-232C的缺点 RS-232C既是一种协议标准,又是一种电气标准,缺点如下:(1)传输速率不够快。最高速率为20 kb/s,不能适应高速的同步通信。(2)传输距离不够远标准规定各装置之间电缆长度不超过50英尺(约15m)。实际上,RS-232C能够实现90英尺或200英尺的传输,但在使用前,一定要先测试信号的质量,以保证数据的正确传输。(3)RS-232C接口易产生串扰RS-232C接口采用不平衡的发送器和接收器,每个信号只有一根导线,两个传输方向仅有一个信号线地线,电气性能不佳,易在信号间产生串扰。第25页,本讲稿共71页 随着外围设备日益丰富,人们期盼能简单易行地对外设进行扩充,希望能获得一个高性价比的标准接口,执行灵活的协议,广泛接纳各种设备。串行通信总线USB提供了外设共享接口,解决了个人计算机与周边设备的通用连接,USB和IEEE1394实现了多媒体可视化动态视频与音频信息的实时数据传输,尤其USB,适合低、中、高速外设的通用连接,价廉易用,许多人都期待其实现对计算机外设接口的大一统。1USB(Universal Serial BUS,通用串行总线)传统的接口电路每增加一种设备,就需要为它准备一种接口或插座,还要为它们准备各自的驱动程序。这些接口、插座、驱动程序各不相同,给使用和维护带来了困难。由Intel等公司开发的USB总线采用通用的连接器,采用热插拔技术以及相应的软件,使得外设的连接和使用大大地简化,受到了普遍欢迎,目前已经成为流行的外设接口。9.1.5 其它串行通信标准(USB、1394)第26页,本讲稿共71页(1)USB总线的特点USB全称是通用串行总线,具有以下特点:1)为所有的USB外设提供了单一的、易于操作的连接类型,简化了用户在判断哪个插头对应哪个插槽的任务。2)排除了对鼠标、调制解调器、键盘和打印机不同接口的需求,采用4线电缆,2根作为数据传输线,其余2根用来为设备提供电源,减少了硬件设计的复杂性。3)支持热插拔,在不用关机的情况下可以安全地插上和断开USB设备。其它外部设备连接标准,如SCSI等必须在关掉主机的情况下才能连接或移除外设。4)即插即用,当插入USB设备的时候,主计算机设备检测该外设并巳通过加载相关的驱动程序对该设备进行配置。第27页,本讲稿共71页5)USB在设备供电方面提供了灵活性。USB直接连接的设备可以通过USB电缆提供5V、90mA的电源供USB设备使用,而带电源的USB Hub使得每个接口可以提供500 mA的电流。6)USB V1.1规范提供全速12Mbps的模式和低速1.5Mbps的模式,USB V2.0规范提供高达480Mbps的数据传输速率,可以适应各种不同类型的外设。7)针对突然发生的非连续传输设备,如音频和视频设备,USB在满足带宽的情况下才进行该类型的数据传输。8)为了适应各种不同类型外围设备的要求,USB根供了四种不同的数据传输类型。9)USB使得多个外围设备可以跟主机通信,最多支持127个设备。电脑的USB接口有限,必须使用USB Hub增加分支,根据USB规范,USB Hub最多提供7个分支。第28页,本讲稿共71页 (2)数据传输类型 USB总线上的每个设备都有一个由主机分配的惟一地址,由主机通过集线器在一个自动识别过程中分配。USB总线上的数据传输是一种“主从式”的传输,所有的传输都由USB主机发起,USB设备仅在主机对它提出要求时才进行传输。根据USB设备自身的使用特点和系统资源的不同要求,USB规范中规定了4种不同的数据传输方式。1)同步(isochronous)方式传输。提供了确定的带宽和间隔时间,以固定的传输速率,连续不断地在主机与USB 设备之间传输数据,在传送数据发生错误时,USB并不处理这些错误,数据发生错误时,USB并不处理这些错误而是继续传送新的数据,它被用于时间严格并具有较强容错性的流数据传输或者用于要求恒定的数据传输率的即时应用中。第29页,本讲稿共71页2)中断传输方式(Interrupt)。该方式传送的数据量很小,但这些数据需要及时处理,以达到实时效果。此方式主要用于定时查询设备是否有中断数据要传输。3)控制传输方式(Control)。双向传输,数据量通常较小,用来处理主机到USB设备的数据传输。包括设备控制指令、设备状态查询及确认命令。4)批(Bulk)传输方式。应用在数据大量传输和接受数据上,同时又没有带宽和间隔时间要求的情况下,要求保证传输正确无误的数据。第30页,本讲稿共71页(3)USB总线的电气特性和机械特性1)电气特性。USB总线通过一条4芯电缆传送电源和数据,电缆以点到点方式在设备之间连接。USB接口的4条连接线是VBUS,GND,D+和D-。VBUS和GND这一对线用来向设备提供电源。在源端,VBUS通常为+5V。USB主机和USB设备中通常包含电源管理部件。D+和D-是发送和接收数据的半双工差分信号线,时钟信号也被编码在这对数据线中传输。每个分组中都包含同步字段,以便接收端能够同步于比特时钟。2)机械特性USB连接器分为A系列和B系列两种:A系列用于和主机连接,B系列用于和USB设备的连接。这两种连接器有不同的结构,不会造成误连接。第31页,本讲稿共71页(4)USB总线的拓朴结构总线拓扑结构如图9-9所示。主要有以下几个部件:1)USB主机在整个USB系统中只允许有一个主机,主计算机系统的USB接口称之为USB主控制器。这里USB主控制器可以是硬件、固件或软件的联合体。而根集线器是集成在主机系统中的,它可以提供一个或更多的接入端口。2)USB设备USB设备是USB协议的具体实现,这里从协议的角度再来讲述一下USB设备。主要包括集线器:提供用以访问USB总线的更多的接入点;功能部件:向系统提供特定的功能,如ISDN连接设备、鼠标、显示器等。第32页,本讲稿共71页图9-9 USB的拓扑结构 第33页,本讲稿共71页(5)USB系统的构成USB规范将USB分为5个部分,各部分的主要功能如下:1)控制器:主要负责执行由控制器驱动程序发出的命令。2)控制器驱动程序:在控制器与USB设备之间建立通信信道。3)USB芯片驱动程序:提供对USB的支持。4)USB设备:包括与PC相连的USB外围设备,分为两类:一类设备本身可再接其他USB外围设备,另一类设备本身不可再连接其他外围设备;前者称为集线器(Hub),后者称为设备。或者说,集线器带有连接其他外围设备的USB端口,而设备则是连接在计算机上用来完成特定功能并符合USB规范的设备单元,如鼠标和键盘等。5)USB设备驱动程序,就是用来驱动USB设备的程序。通常由操作系统或USB设备制造商提供,如平常所说的Modem驱动程序和打印机驱动程序等。第34页,本讲稿共71页 21394USB总线价格低廉、性能优良,已经广泛用于各种外设接口,如键盘、鼠标、扫描仪、Modem、打印机、移动存储、游戏杆等。视频音像等多媒体数据传输要求超高速的传输率,这类数据对时间反应极为敏感,USB1.x不能适应这种超高速传输,IEEE1394高速串行总线正好满足了这种高端需求。(1)IEEE1394功能。1394是10多年前由IEEE制定的高速数据传输串行总线标准。1394的数据传输率为90Mbps、200Mbps、400Mbps和800Mbps,适用于消费类电子设备;IEEE1394标准支持的数据传输率将达到1.6Gbps和3.2Gbps,适用于高吞吐量的数据传输。IEEE 1394总线接口适用于DVD播放机、数字电视、数字机顶盒、便携式摄录像机和数字卫星接收装置等。第35页,本讲稿共71页IEEE1394性能如下:1)支持实时同步数据传输和传统的异步传输,同步传输速率高,能提供实时应用的宽频带。2)1394支持对等网络通信,即1394总线可以实现类似网络的功能。3)支持即插即用,支持带电的热插拔。4)1394标准本身包含了数据桥功能,连接时不需要集线器,最多允许连接63个外设,易于整合。5)为外设提供电源。与USB相似,可通过总线向远端的设备提供电能。每个节点既可以作为电能的提供者,也可以作为电能的消耗者。6)允许系统自动优化外设之间的数据传输,可对未经压缩的数字图象进行实时送。7)电缆芯线:6根,其中数字信号线4根、电源线2根。8)传输距离:4.5米。IEEE 1394价格昂贵,主要面向视频图像的高端应用。第36页,本讲稿共71页 (2)IEEE1394三层协议 1394标准包含一组3层(物理层、链路层、业务层)协议,来规范主机与外设通过串行总线的交互方法。1)物理层 规定了传输媒体和连接器的电气和信号特性。物理层把二进制数据转换成数字电信号,并对传输数据的设备提供仲裁服务。物理层定义的数据传输速度为25400Mbps(1394a)。在物理层对所有连接设备进行配置:一个结点被指定为根结点,其它结点以父-子关系组织树的拓扑结构;根结点作为中央仲裁器,离树根近的结点具有较高的优先级,离树根距离相同的结点,其ID数越低优先级越高。优先级相同的总线请求,按先来先服务方式处理。此外,还补充了公平仲裁和紧急仲裁两种附加功能。第37页,本讲稿共71页 2)链路层 定义了以包形式进行的数据传输。在链路层将数据打包,包有包头和数据部分。包头有发送端和接收端的标识符,以及包头类型信息、CRC校验和特定参数;数据部分包括用户传输的数据与CRC组成的数据块。链路层支持异步和等步2种类型传输。异步传输 适用于无固定速率要求的数据传输。默认采用公平仲裁,当数据缓冲区一半已满或有严格的等待要求时可使用紧急仲裁。传输单个包的过程称为子动作,每个子动作过程为:经仲裁后某设备获得父-子关系组织树的拓扑结构;根结点作为中央仲裁器,离树根近的结点具有较高的优先级,离树根距离相同的结点,其ID数越低优先级越高。优先级相同的总线请求,按先来先服务方式处理。此外,还补充了公平仲裁和紧急仲裁2种附加功能。总线控制权,发送端发送数据包,经串行总线传输,目标端收到数据包并进行译码,回送一个响应包(带有接收状况的代码)。传送包和响应包之间有一小段响应间隙,每个子动作之间也有间隙,以保证其它结点在响应包回传前不进行仲裁。第38页,本讲稿共71页 等步传输 以顺序定长的包形式在规则区间传输。用于有规则地产生或接收数据的设备,。等步传输使用简单寻址,保证数据在特定的时间内以一定的传输速率投递数据。与异步包相比,等步包头部较短,包括传输数据的长度和头部CRC。等步传输指定一个结点为周期主结点,周期主结点周期性地向所有其它结点发送一个周期开始包,宣布等步传输周期开始,在这个周期中只有等步包可以发送;每个等步数据源请求总线,经仲裁获胜结点立即发送一个包;当前的等步包传输结束,没有响应回送,其它的等步数据源立即接受总线仲裁,竞争下一个等步包传输;相邻两个等步包之间有段时间延迟,称为等步间隔(小于子动作间隔)。所有等步源传输完毕,总线保持足够长的空闲后出现动作间隔,告知异步源:可以竞争总线了。此后,各数据源再竞争使用总线。第39页,本讲稿共71页3)业务层 定义请求响应协议。这是最高层,面向应用,隐藏了1394较低层的细节。Microsoft公司和Intel公司推出的PC99规范中规定,新型的PC系统中应具有两个USB端口和一个 1394端口,其中一个要支持移动功能。Windows 98以后的操作系统都支持USB和1394技术标准。9.2 串行接口芯片16550 16550是美国国家半导体公司生产的一个通用的异步接收器/发送器UART芯片,型号为NS16550,它与IBM早期推出的个人计算机IBM PC/XT所使用的UART芯片INS8250兼容,但最高波特率提高到1.5Mb/s,且具有接收器和发送器FIFO(first-in first-out先进先出)缓冲区,每个FIFO缓冲区长度均为16个字节。目前16550在PC机的外围芯片组中得到了广泛的应用。第40页,本讲稿共71页16550有16个字节的FIFO发送和接收数据缓冲器,它可以连续发送或接收16个字节的数据,16550的最大通信速率可达115200bps,是高速系统通信接口的理想器件,现在32位PC芯片组中使用的是与l6550兼容的逻辑电路。16550的主要性能特点包括:芯片内部包含发送控制电路和接收控制电路,可实现全双工通信;支持异步通信;16550的数据传输速率可在50115200bps范围内选择;只持控制MODEM功能和完整的状态报告功能;16550增加了FIFO模式。MODEM功能和完整的状态报告功能;16550增加了FIFO模式。MODEM功能和完整的状态报告功能;16550增加了FIFO模式。NS16550与INS8250相比,内部结构、引脚信号和工作方式完全兼容,不同之处主要有两点:第41页,本讲稿共71页1.8250的发送和接收数据缓冲器只有一个字节,每发送或接收一个字节都要求CPU来干预,而16550有16个字节的FIFO发送和接收数据缓冲器,它可以连续发送或接收16个字节的数据;2.8250的最大通信速率为19200bps,而16550的最大通信速率可达115 200bps,因此它是高速系统通信接口的理想器件。INS8250和NS16550的主要性能特点如下。芯片内部包含发送和接收控制电路,可实现全双工通信。支持异步通信。8250的数据传输速率可在5019 200bps范围内选择,16550的数据传输速率可在50115 200bps范围内选择。具有控制MODEM功能和完整的状态报告功能。16550增加了FIFO模式。第42页,本讲稿共71页16550内部结构如图9-11。16550的内部由以下几部分组成:1.数据总线缓冲器。连接16550与CPU数据总线。2.选择和读/写控制逻辑。接收来自CPU的地址、片选和控制信息,产生内部各端口的读写操作 命令。3.发送器。由发送保持寄存器、发送移位寄存器和发送同步控制组成。待发送的数据写入发送保持寄存器。发送保持寄存器的内容自动转存到发送移位寄存器,在发送器时钟的控制下,由SOUT引脚发送出去。4.接收器。由接收移位寄存器、接收缓冲寄存器和接收同步控制器组成。在接收时钟控制下,由SIN引脚输入的串行数据逐位存入移位寄存器,转换后的并行数据存入接收缓冲寄存器,等待CPU读取。9.2.1 16550的内部结构第43页,本讲稿共71页第44页,本讲稿共71页5.调制/解调器控制电路。提供一组控制信号,直接与调制解调器相连,完成远程通信任务。6.通信线控制寄存器和通信线状态寄存器。控制寄存器保存CPU写入的通信数据格式,状态寄存器提供串行数据发送和接收时的状态7.波特率发生控制电路。由波特率发生器、分频系数寄存器组成。16550对18.432MHz的输入时钟进行分频,产生所要的发送器和接收器时钟信号。分频系数在初始化时分两次写入除数寄存器的高8位和低8位,分频系数可由下式算出:除数=18432000(波特率16)8.中断控制逻辑。由中断允许寄存器、中断识别寄存器和中断控制逻辑3部分组成,实现中断优先权管理、中断申请等功能。第45页,本讲稿共71页9.2.216550的引脚信号16550的引脚排列如图9-12所示:图9-12 16550外部引脚示意图第46页,本讲稿共71页1.数据线。D0D7:八位双向三态数据线,与CPU的数据总线连接,用于实现16550与CPU之间的通信,包括数据、控制字及状态信息的双向传输。2.地址线。用来实现让CPU对16550片内寄存器的寻址,含有:(1)CS0、CS1、CS2:片选信号,当输入的CS0、CS1为高电平,CS2为低电平时,16550芯片被CPU选中。(2)A0A2:片内寄存器选择线,CPU用此来选择要访问的16550的内部寄存器中的某一个。(3)ADS:地址选通信号,用于锁存三个片选信号和A2A0的输入状态,若在对16550读写过程中,A2A0稳定(例如用在Intel微处理器上),ADS可直接接地。3.读/写控制逻辑线。第47页,本讲稿共71页(1)RD、RD#:读控制信号(两者可任意用一个),用于控制16550内部寄存器中读出数据或状态信息。(2)WR、WR#:写控制信号(两者可任意用一个),用于控制向16550内部的寄存器写入命令字或数据。(3)DDIS:驱动器禁止信号输出,每当CPU从16550读取数据时,DDIS=0。其余时候均为高电平,禁止挂在CPU与16550之间的数据线上的收发器与16550通信。(4)Xin、Xout:时钟信号输入引脚,有2种方式可以通过这2引脚产生接到Xin引脚上。16550的内部基准时钟,一种方式是将石英晶体振荡器直接连接在这两个引脚之间,另一种是将外部时钟信号连石英晶体振荡器直接连接在这两个引脚之间,另一种是将外部时钟信号连接到Xin引脚上。第48页,本讲稿共71页(5)MR:主复位信号,用于对16550复位操作,一般应将此引脚连接到系统RESET信号上,使16550与系统同时复位。(6)INTR:中断请求信号,由此引脚向CPU申请中断。(7)OUT1、OUT2:用户自定义的输出信号,可由用户编程来改变这两个引脚输出电平,作何用途,由用户自己设计。(8)BAUDOUT:波特输出信号,是16550内部发送器的波特率发生器产生的发送时钟信号。(9)RCLK:接收器时钟输入,此信号将作为16650接收器的基准时钟信号,一般将其与BAUDOUT连接在一起,则16550通信中的发送波特率与接收波特率是相同的。(9)RXRDY:接收器就绪,输出信号。(11)TXRDY:发送器就绪,输出信号。第49页,本讲稿共71页(1)SIN、SOUT:串行数据信号,分别用于接收串行数据和发送串行数据。(2)RTS:请求发送,输出,表明16550希望发送数据给Modem。(3)CTS:允许发送,输入,是对RTS的应答信号,表明Modem已作好接收数据的准备,16550可以发送数据。(4)DTR:数据终端准备好,输出,通知Modem,表明16550已准备就绪。(5)DSR:数据通信装置准备好,输入,是对DTR的应答信号,表明Modem已准备就绪。(6)DCD:载波检测,输入,表明Modem已收到数据载波信号。(7)RI:振铃指示,输入,表明Modem 已收到电话线上的振铃信号。4.串行数据输入/输出线第50页,本讲稿共71页 从用户的角度来看,16550内部有11个可寻址访问的功能寄存器,但只用3根寄存器选择线A2A0来寻址,因此必然有两个寄存器共用一个端口地址的情可寻址访问的功能寄存器,但只用3根寄存器选择线A2A0来寻址,因此必然有两个寄存器共用一个端口地址的情况,对它们的区分是由DLAB位(除数锁存器访问)和读、写信号来实现的,如表9-3所示。表中DLAB是通信线控制寄存器的最高位(D7),x表示取值任意(0或1均可)。按照其用途,可以将表9-3中的寄存器分为如下3组。9.2.316550的内部寄存器及其初始化编程第51页,本讲稿共71页表9-316550的内部功能寄存器DLABA2A1A0寻寻址寄存器址寄存器缩缩写写00 0 0接收寄存器(读)RBR00 0 0发送保持寄存器(写)THR00 0 1中断允许寄存器IERX0 1 0中断识别寄存器(读)IIRX0 1 0FIFO控制寄存器(写)FFCRX0 1 1通信线控制寄存器LCRX1 0 0Modem控制寄存器MCRX1 0 1通信线状态寄存器LSRX1 1 0Modem状态寄存器MSR10 0 0除数寄存器(低字节)DL10 0 1除数寄存器(高字节)DH第52页,本讲稿共71页内部寄存器分为3部分:数据传输部分,包括发送保持寄存器和接收缓冲寄存器;工作方式、参数设置部分,包括通信线控制寄存器、除数寄存器、MODEM控制寄存器和中断允许寄存器;状态寄存器部分,包括通信线状态寄存器、MODEM状态寄存器和中断识别寄存器。1发送保持寄存器(3F8H/2F8H)该寄存器用于保存CPU送来的并行数据,送到发送移位寄存器,发送移位寄存器在发送器时钟的作用下,把并行数据转换成串行数据从SOUT引脚输出。只有在发送保持寄存器空时,CPU才可以向发送保持寄存器写入下一个要发送的数据。2接收缓冲寄存器(3F8H/2F8H)该寄存器用于在接收时钟的作用下,从SIN引脚输入的串行数据被送到接收移位寄存器。去掉起始位、校验位和停止位后,串行数据转换成并行数据并存入接收缓冲寄存器,等待CPU接收。第53页,本讲稿共71页3通信线控制寄存器(3FBH/2FBH)该寄存器用于用来设置串行异步通信的数据格式,如图9-13所示。通信线控制寄存器具体各位的功能定义如下:D7位:DLAB寻址位D7=1,访问除数寄存器D7=0,访问接收缓冲器、发送保持寄存器。D6位:D6=1,发送方连续发送长时间中止信号(空号),空号发送的时间超过一个完整的字符传送时间时,接收方就认为发送方已中止发送。D3D5位:选择奇偶校验方式。D2位:规定一帧数据中停止位的位数。D0位、D1位:定义一帧数据中数据位的位数。第54页,本讲稿共71页图9-13 通信线控制寄存器第55页,本讲稿共71页4中断识别寄存器/FIFO控制寄存器(3FAH/2FAH)16550内部有4级中断,但只有一根中断请求信号。中断发生后,CPU通过查询中断识别寄存器来辨别中断类型。FIFO控制寄存器和中断识别寄存器占用相同的端口地址。中断发生时读出该寄存器的内容,它作为中断识别寄存器来使用;写入FIFO控制字时,作为FIFO控制寄存器。具体位的含义如图9-14。图9-14 中断识别寄存器第56页,本讲稿共71页5通信线状态寄存器(3FDH/2FDH)通信线状态寄存器如图图9-15所示:图9-15 通信线状态寄存器第57页,本讲稿共71页6中断允许寄存器(3F9H/2F9H)中断允许寄存器各位如图图9-16,该寄存器的低4位代表中断允许控制位,置1,则允许相应的中断源请求中断,否则禁止中断。图9-16 中断允许寄存器 第58页,本讲稿共71页7MODEM控制寄存器(3FCH/2FCH)该寄存器用于设置与调制解调器连接的联络信号,具体位的功能定义如下:D7D5位规定为0。D4位:=1,正常发送/接收;=0,内部循环方式。D0D3位的状态直接控制相关引脚的输出电平:D0=1,使引脚DTR#=0,DTR#信号有效。D1=1,使引脚RTS#=0,RTS#信号有效。D2=1,使引脚OUT1#=0,该引脚留给用户使用。D3=1,使引脚OUT2#=0,使16550能送出中断请求。第59页,本讲稿共71页图9-17 MODEM状态寄存器 8 MODEM状态寄存器(3FEH/2FEH)MODEM状态寄存器如图图9-17。第60页,本讲稿共71页9除数寄存器(3F8H,3F9H/2F8H,2F9H)16550发送或接收的移位时钟,是在它的基准时钟(18.432MHz)基础上分频而来的。根据所需的波特率来确定分频系数,并在初始化时存入除数寄存器。下表给出了9种波特率所需设置的除数寄存器的值。波特率波特率除数高除数高8位位除数低除数低8位位120003H0C0H180002H80H200002H40H240001H0E0H360001H40H480000H0F0H720000H0A0H960000H78H1920000H3CH第61页,本讲稿共71页计算机硬件或软件复位后,要对16550进行初始化。主要包括:(1)对通信线控制寄存器进行设置,确定异步通信的数据格式。(2)设置除数寄存器,确定通信速率。(3)对FIFO控制寄存器、中断允许寄存器和MODEM控制寄存器进行设置。1)80H送通信线控制寄存器,使寻址位D7=1。2)除数高8位/低8为分别送除数寄存器,确定通信速率。3)将D7=0的命令字写入通信线控制寄存器,确定串行异步通信一帧数据帧4)设置FIFO控制寄存器(3FAH)。FIFO控制寄存器与中断识别寄存器的地址都是3FAH;读出时是中断识别寄存器;写入