资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第,7,章 面向外设的输入/输出接口,面向外设的输入/输出接口输入输出接口是,连接,CPU,与外部设备的逻辑电路。它的功能是:,(1)把,CPU,送出的数据传送给外设;,(2)采集外设的信息传送给,CPU;,(3),协调快速,CPU,与慢速的外设之间数据传送的矛盾;,(4)识别,CPU,要访问的外设;,(5)接收,CPU,发出的控制命令及启动外设工作。,为了完成,CPU,与外部设备数据信息的交换,接,口电路必须具备输出缓冲寄存器和输入缓冲寄存,器,暂存输出和输入的数据。,为协调快速,CPU,与慢速的外设之间的矛盾,接口电路还必须具有与外设的握手信号,与,CPU,的联络信号,以便把外设的状态,如忙与不忙、准备好与未准备好等信息传送给,CPU,,决定,CPU,是否传送数据给外设,是否接收外设送来的数据。此外,为识别不同的外部设备,接口电路还应当具备对所访问外部设备的寻址能力。,接口电路与外部设备交换数据的方式,可分为并行传送方式和串行传送方式。前者可同时传送若干位数据,例如8位、16位或32位;后者则是每次传送一位。显然,在同样传输率的情况下,并行传送速度快。但对于远距离通信,为节省传输线,经常采用串行传送。对于串行通信接口,必须具备把从,CPU,接收到的8位数据,经并行数据转换成串行数据,一位一位向外设发送的功能。,同样,串行通信接口必须具备把外设送来的串,行数据转换成并行数据,传送给,CPU,的功能。典型,的,I/O,接口电路如图,7.1,所示。,图,7.1,7.1,可编程并行接口芯片8255,A,与,Intel,公司的8255,A,相类似的可编程并行接口芯,片有,Motorola,公司生产的,MC6820、ZILOG,公司生产,的,Z80PIO。,7.1.1 8255A,的内部结构和引脚信号,8255,A,的内部结构如图,7.2,所示。它包括四个部,分:数据总线缓冲器、读写控制逻辑、,A,组控制器和,B,组控制器、端口,A、B、C。,1.端口,A、,端口,B,和端,口,C,8255A,芯片内部有三个8位端口,分别为,A,口、,B,口和,C,口。这三个端口可与外部设备相连接,可用来,与外设进行数据信息、控制信息和状态信息的交换。,图8.20,端口,A,包含一个8位数据输出锁存器缓冲器和一个,8位数据输入锁存器。所以用端口,A,作为输入端口或输出,端口时,数据均受到锁存。,端口,B,包含一个8位的数据输入缓冲器和一个8位的,数据输出锁存器缓冲器。所以端口,B,作为输入端口时,不能对数据进行锁存,作为输出端口时能对数据进行锁,存。,端口,C,包含一个8位数据输入缓冲器和一个8位的数,据输出锁存器缓冲器。所以端口,C,作为输入端口时不,能对数据进行锁存,作为输出端口时能对数据进行锁,存。端口,C,可以分成两个4位端口,分别定义为输入端口,或输出端口,还可定义为控制、状态端口,配合端口,A,和端口,B,工作。,PA7PA0:A,端口数据信号引脚;,PB7PB0:B,端口数据信号引脚;,PC7PC0:C,端口数据信号引脚。,2.,A,组和,B,组,端口,A,和端口,C,的高4位(,PC7PC4),构成,A,组,由,A,组控制部件来对它进行控制;端口,B,和端口,C,的低4位(,PC3PC0),构成,B,组,由,B,组控制部件,对它进行控制。这两个控制部件各有一个控制单,元,接收来自数据总线送来的控制字,并根据控制,字确定各端口的工作状态和工作方式。,3.数据总线缓冲器,数据总线缓冲器是一个双向三态的8位缓冲器,它与,CPU,系统数据总线相连,是8255,A,与,CPU,之间传输数据的必,经之路。输入数据、输出数据、控制命令字都是通过数,据总线缓冲器进行传送的。,D7D0:8255A,的8位数据线,和,CPU,系统数据总线相连。,4.读写控制逻辑,读写控制逻辑接收来自,CPU,地址总线的信号和控制,信号,并发出命令到两个控制组(,A,组和,B,组),把,CPU,发,出的控制命令字或输出的数据通过数据总线缓冲器送到,相应的端口,或者把外设的状态或输入的数据从相应的,端口通过数据总线缓冲器送到,CPU。,CS:,片选信号。,CS,为低电平时,表示8255,A,被选中。通常该信号的控制是通过译码电路的输出端提供。,RD:,读信号,低电平有效,与,CPU,的,RD,控制线相连。当,CPU,执行,IN,输入指令时,该信号有效,将数据信息或状态信息从8255,A,读至,CPU。,WR:,写信号,低电平有效,与,CPU,的,WR,控制线相连。当,CPU,执行,OUT,输出指令时,该信号有效,将数据信息或控制字从,CPU,写入8255,A。,A1、A0:,端口选择信号,用来指明哪一个端口被选中。8255,A,有三个数据端口和一个控制端口。数据端口用来传送数据,控制端口用来接受,CPU,传送来的控制字。,数据和控制字都是通过,CPU,的数据总线传送给8255,A,的。8255,A,根据端口选择信号,A1、A0,的组合把数据总线,传送来的信息传送到相应的端口。,当,A1A000,时,选中端口,A;,当,A1A001,时,选中端口,B;,当,A1A010,时,选中端口,C;,当,A1A011,时,选中控制端口。,8255,A,接口芯片的地址译码电路设计需考虑的问题,是:对于8086系统,由于采用16位数据总线,,CPU,在进,行数据传送时,总是将低8位数据送往偶地址端口,而,将高8位数据送往奇地址端口;反过来,从偶地址端口,取得数据总是通过低8位数据线传送到,CPU,,从奇地址端,口取得数据总是通过高8位数据线传送到,CPU。,8255,A,接口芯片是8位并行接口芯片,一般8255,A,的,D7D0,数据线接到系统总线的低8位,这就要求8255,A,端口,地址的设置为偶地址,才能接收到,CPU,对8255,A,的访问信,号。又由于8255,A,芯片的端口有,A,口、,B,口、,C,口和控制口,,端口地址数需要4个,且要满足8255,A,的,A1、A0,分别为00、,01、10、11的要求。因此,对于8086系统,将8255,A,的,A1,引脚和地址总线的,A2,线相连,,A0,引脚和地址总线的,A1,线相,连,将地址线的,A0,设置为0,这既保证了,CPU,能发出4个连,续偶地址,又保证了8255,A,四个端口地址的要求。,假设地址值分别为04,A0H,04A2H,04A4H,04A6H,,对,8255,A,寻址电路的设计如图,7.3,所示。,图,7.38255A,寻址电路设计,图8.21,RESET:,复位信号,高电平有效。当,RESET,有效时,内部所有寄存器均被清零,同时,A,口、,B,口和,C,口被自动设为输入数据工作方式。,8.5.2 8255,A,的控制字,8255,A,是可编程接口芯片。可编程就是用指令的,方法先对芯片进行初始化,决定芯片的端口是处于,输入数据状态还是处于输出数据状态,以及每个端,口的工作方式。工作方式和工作状态的建立是通过,向8255,A,的控制口写入相应的控制字完成的。,8255,A,共有两个控制字,即工作方式控制字和对,C,口置位复位控制字。,1.工作方式控制字,8255,A,的工作方式控制字格式和各位的含义如图,7.4,所示。工作方式控制字用来设定,A,口、,B,口和,C,口,的数据传送方向和工作方式。工作方式分别是方式,0、方式1和方式2。,A,口可工作在三种方式中的任何,一种方式下,,B,口只能工作在前两种工作方式下,,C,口只能工作在方式0下。,2.端口,C,的置位复位控制字,端口,C,的置位复位控制字可实现对端口,C,的每,一位进行控制。置位是使该位为1,复位是使该位为,0。控制字的格式如图,7.5,所示。,图,7.4,图,7.5,D3、D2、D1,三位用来选择对端口,C,的哪一位进行操,作。,D0,位用来选择对所选定的端口,C,的位是置位还是复,位。,D4、D5、D6,三位无意义,可是任意值。,D7,位是特征位,用来区分该控制字是工作方式控制字,还是置位复位控制字。,D71,,为工作方式控制字;,D70,为置位复位控制字。,使用8255,A,芯片前,必须先对其进行初始化。初始化,的程序很简单,只要,CPU,执行一条输出指令,把控制字写,入控制寄存器就可以了。,例,7.1,按下述要求对8255,A,进行初始化。要求,A,口设定为,输出数据,工作方式为方式0;,B,口设定为输入数据,工作,方式为方式1;,C,口设定为高四位输入,低四位输出。,(地址为04,A0H04A6H),MOV DX,04A6H;,控制口地址送,DX,MOV AL,8EH;,写工作方式控制字,OUT DX,AL;,控制字送到控制口例8.7要求通过,8255,A,芯片,C,口的,PC2,位产生一个方脉冲信号。,(地址为04,A0H04A6H)MOVDX,04A6H;,控制口,地址送,DX,AA MOV AL,05H;,对,PC2,置位的控制字,OUT DX,AL,CALL DELAY;,调用延时程序,MOV AL,04H;,对,PC2,复位的控制字,OUT DX,AL,JMP AA,7.1.3 8255A,的工作方式,1.方式0基本输入输出方式在这种工作方式下,可以通过,CPU,向控制端口写入方式控制字,决定各端口是输入数据还是输出数据。传送数据的方法一般采用无条件传送方式或查询传送方式。,例,7.3,设8255,A,端口,A,工作在方式0下,通过,A,口输出数据控制8个指示灯轮流点亮。电路连接如图,7.6,所示。,例,7.3,电路连接图(地址为,3A0H3A6H),MOV DX,3A6H;,控制口地址送,DX,MOV AL,80H;,写工作方式控制字,图8.24,OUT DX,AL,MOV DX,3A0H;A,端口地址送,DX,MOV AL,0FEH;,低电平灯亮,AA1 OUT DX,AL;,输出数据,CALL DELAY;,延时,ROL AL,1;,轮流点亮,JMP AA1,执行此段程序时要注意延时子程序的延时时,间,若延时时间不够,指示灯会全亮或全灭。,例,7.4,假定8255,A,的端口,A、B,都工作在方式0下,端,口,A,作为输入口,采集一组开关的状态,端口,B,作为,输出口,把开关的状态通过指示灯显示。电路连接,如图,7.7,所示。,图,7.7,(地址为,3A0H3A6H),MOV DX,3A6H;,控制口地址送,DX,MOV AL,90H;,写工作方式控制字,OUT DX,AL,MOV DX,3A0H;A,端口地址送,DX,IN AL,DX;,采集开关值,MOV DX,3A2H;B,端口地址送,DX,OUT DX,AL;,输出开关值当采用查询方式传送数据时,利用,端口,C,的高4位和低4位能分别作为输入或输出的特,点,配合端口,A,和端口,B,进行输入数据和输出数据的,操作,即,A,口和,B,口传送数据,图,7.7,电路连接图,图,7.8,C,口的高4位和低4位分别用来传送控制外设的控,制信息和采集外设的状态信息。,例,7.8,假定8255,A,的,A,口、,B,口都工作在方式0下,采,用查询方式,通过纸带读入机读入数据,再输出给,字符打印机和纸带穿孔机。,(地址为,3A0H3A6H),分析:,(1),A,口为连接读入机输入数据口,,B,口为连接打,印机和穿孔机输出数据口。,C,口低4位作输出控制,口,分别作为对读入机、打印机、穿孔机的控制信,号。,C,口高4位作输入状态口,分别用来采集读入,机、打印机、穿孔机所处的状态。电路连接如图,7.9,。,(2)在软件编制中应注意控制信号的使用。对于读入机的控制,在采集数据前应启动读入机,采集数据后应关闭读入机。对于打印机和穿孔机的控制是在8255,A,执行输出数据后,再启动打印机或穿孔机。,(3)输出控制信号的方法采用对,C,口置位和复位的方法。,启动读入机00000001,关闭读入机00000000,启动打印机00000011,关闭打印机00000010,启动穿孔机00000101,关闭穿孔机00000100,MOV DX,3A6H;,控制口地址送,DX,MOV AL,98H;,写工作方式控制字,OUT DX,AL,AA0 MOV AL,01H;,启动读入机,OUTDX,AL,MOV DX,3A4H;C,口地址送,DX,AA1 INAL,DX;,采集端口,C,高4位数据,TEST AL,10H;,检测读入机数据是否准备好,JZAA1,MOVDX,3A0H;A,口地址送,DX,INAL,DX;,采集数据,MOV AH,AL;,保存数据,MOV DX,3A6H,MOV AL,00H;,关闭读入机,OUTDX,AL,MOVDX,3A4H,AA2 INAL,DX,TESTAL,20H;,检测打印机是否忙,JZAA2,MOVAL,AH;,恢复采集数据,MOVDX,3A2H;B,口地址送,DX,OUTDX,AL;,输出数据给打印机,MOVDX,3A6H,MOVAL,03H;,启动打印机,OUTDX,AL,MOVAL,02H;,关闭打印机,OUTDX,AL,MOVDX,3A4H,AA3 INAL,DX,TESTAL,40H;,检测穿孔机是否忙,JZ AA3,MOVDX,3A2H,MOVAL,AH,OUTDX,AL;,输出数据给穿孔机,MOVDX,3A6H,MOVAL,05H;,启动穿孔机,OUTDX,AL,MOV AL,04H;,关闭穿孔机,OUTDX,AL,JMPAA0,2.,方式1选通式输入输出方式,在这种工作方式下,端口,A,和端口,B,为数据传输,口,可通过工作方式控制字设定为数据输入或数据,输出。端口,C,某些位作为控制位,配合,A,口和,B,口进,行数据的输入和输出。方式1通常用于查询方式或中,断方式传送数据。,C,口某些位作为控制位时,根据输入和输出工,作状态不同,各位所代表的意义不同,现分为输入,和输出两种情况进行介绍。,(1)方式1输入,端口,C,配合端口,A,和端口,B,输入数据时,分别指,定了3位用作外部设备和,CPU,之间的应答信号,电路,如图,7.10,所示。,STB:,选通输入信号,低电平有效。当它有效时,数据从输入设备输入到,A,口或,B,口锁存器。,STB,是由外设输入给8255,A,的控制信号。,IBF:,输入缓冲器满信号,高电平有效。它是对,STB,信号的响应信号。当,STB,有效时,把数据传送到输入锁存器,输入锁存器锁存数据后,发出输入缓冲器满,IBF,信号。,图,7.10,IBF,信号是由8255,A,发出的状态信号,通常供,CPU,查询使用。当查询到,IBF,为高电平时,说明输入锁存器已有数据,执行输入指令,读信号有效,数据由8255,A,锁存器传送到,CPU,,同时读信号,RD,的后沿使,IBF,置0,等待下一个数据的输入。,INTR:,中断请求信号,高电平有效。当外部设备把数据输入到输入锁存器锁存后,且对输入数据的端口(,A,口或,B,口)是不屏蔽的,即,INTE,置1时,8255,A,用,INTR,信号向,CPU,发出中断申请,请求,CPU,将输入锁存器中的数据取走。当,CPU,响应中断,执行输入指令,读信号,RD,的后沿将,INTR,降为低电平,等待下一个数据的输入。,INTE:,中断屏蔽信号,高电平有效。此信号用于决定端口,A,和端口,B,是否允许申请中断。当,INTE,为1时,使端口处于中断允许状态;当,INTE,为0时,使端口处于禁止中断状态。,INTE,的置位复位是通过对,C,口置位复位控制字实现的。具体说,,INTEA,的置位复位是通过,PC4,的置位复位控制字来控制,,INTEB,的置位复位是通过对,PC2,的置位复位控制字来控制。,在方式1输入时,端口,C,的,PC6,和,PC7,两位是空,闲的,他们具有置位/复位功能,也可用作输入或输,出数据,由方式选择控制字的,D3,位为1还是为0来决,定。,(2)方式1输出,按方式1输出数据时,端口,C,各位的含义如图,7.11,所示。,图,7.11,按方式1输出数据时对应的控制信号,OBF:,输出缓冲器满信号,低电平有效。当,CPU,把数据输入到8255,A,的输出锁存器时,使,OBF,信号置0,通知外部设备取走数据。,OBF,可作为启动外部设备的控制信号。,ACK:,外设响应信号,低电平有效。当外部设备从8255,A,的输出锁存器取走数据时,向8255,A,发回通知信号,并使,OBF,信号置为高电平。若为查询式输出数据方式,,OBF,信号可作为查询外设忙还是不忙的检测信号。,图,7.11,INTR:,中断请求信号,高电平有效。当8255,A,的输出锁存器空的时候,且对该端口的数据输出申请是不屏蔽时,向,CPU,发出中断申请信号,请求,CPU,输出下一个数据。,INTE:,中断屏蔽信号,与方式1输入数据时,INTE,的含义一样。但使,INTE,置位/复位的控制信号是,PC6,和,PC2。PC6,是端口,A,允许还是禁止中断申请的控制信号,,PC2,是端口,B,允许还是禁止中断申请的控制信号。,在方式1输出时,端口,C,的,PC4,和,PC5,未使用,如,果利用这两位进行数据的输入或输出,可通过方式,选择控制字的,D3,位控制。他们也具有置位/复位功,能。,3.方式2双向选通输入输出方式,仅,A,口可以采用这种工作方式。在这种方式下,,可以使外部设备利用端口,A,的8位数据线与,CPU,之间,分时进行双向数据传送,也就是既可以输出数据给,外部设备,也可以从外部设备输入数据。输入或输,出的数据都是锁存的。工作时既可采用查询方式,,也可采用中断方式传输数据。,当端口,A,工作在方式2时,使用,PC3PC7,作为输,出控制信号和采集状态信号位,也就是把方式1输入,数据和方式1输出数据的控制信号组合起来。端口,B,可工作在方式0或方式1,如果工作在方式1,可利用,PC0PC2,作为控制和状态信号位。,按方式2工作时,端口,C,各位的定义如图,7.12,所示。,图,7.12,PC4PC7,分别定义为输入缓冲器满,IBFA、,外设输入选通信号,STBA、,外设接收到数据后回答信号,ACKA,和输出缓冲器满,OBFA。,有效电平及含义同方式1输入数据和方式1输出数据时相同,只有,INTRA,有双重定义。在输入时,,INTRA,为输入缓冲器满,且中断允许触发器,INTE1,为1时,INTRA,有效,向,CPU,发出中断申请;在输出时,,INTRA,为输出缓冲器空,且中断允许触发器,INTE2,为1时,,INTRA,有效,向,CPU,发出中断申请。中断允许触发器,INTE1,的置位复位控制通过对端口,C,的,PC6,写入置位复位控制字来实现;中断允许触发器,INTE2,的置位复位控制通过对端口,C,的,PC4,写入置位复位控制字来实现。,.,A,工作于方式的例子,8255,A,作为打印机接口的示意,采用查询方式,应用方式2进行数据传送的例子如下:,例,7.11,使用两台,CPU,系统,传送100个数据,一台为主机,CPU,,其相应的接口称为主侧,另一台为从机,CPU,,其相应的接口称为从侧。主机,CPU,以中断方式输入输出数据,主侧8255,A,工作在方式2,从机,CPU,采用查询式输入输出数据。从侧8255,A,工作在方式0(两侧8255,A,地址都是,3A0H3A6H)。,分析:,(1)输入数据时,由从侧8255,A,发给主侧8255,A,的控制信号,STB,有效时,打开主侧8255,A,输入锁存器,当数据被锁存后,主侧8255,A,输出信号,IBF,才有效。,(2)输出数据时,主机,CPU,把数据输入给主侧8255,A,输出锁存器,发出,OBF,信号,通知从侧8255,A,,从侧8255,A,发回,ACK,信号,用来启动三态输出缓冲器输出数据。,表,7.1,列出了主系统和从系统工作关系。,从,CPU,执行输入指令硬件电路设计如图8.30所示。,图,7.13,电路接线图,程序流程图如图,7.14,所示。,程序如下:,图,7.12,图,7.13,;主程序,MOVBL,64H ;,输入100个数计数器,MOVCL,64H ;,输出100个数计数器,MOVSI,0100H;,输出数据所在内存单元首址送,SI,MOVDI,0200H;,输入数据存放内存单元首址送,DI,MOVDX,04A6H;8255A,控制口地址送,DX,MOVAL,0C0H;,工作方式2控制字写入,A,口,MOVDX,AL,MOVAL,09H;PC41,,允许输入中断,MOVDX,AL,MOVAL,0DH;PC61,,允许输出中断,STI;,开中断,AA5 CMPBL,00H,JNZAA5,CMPCL,00H,JNZAA5,CLI;,关中断,HALT,;,中断服务程序,INT MOVDX,04A4H;8255,状态口地址(,C,口)送,DX,INAL,DX;,采集8255状态口的状态值,MOVAH,AL;,保存状态,ANDAL,20H;,判断输入缓冲器是否满(,PC),JZAA1;IBF0,,无数据,转走,MOVDX,04A0H;A,口地址送,DX,INAL,DX;,输入缓冲器满,IBF=1,,取数据,MOVDI,AL;,保存数据,INCDI;,修改地址指针,DECBL,JMPAA2,AA1 MOVAL,AH,ANDAL,80H;,判断输出缓冲器是否满,JZAA2;OBF0,,满,有数据,转向,AA2,MOVDX,04A0H;A,口地址送入,DX,MOVAL,SI;OBF=1,输入缓冲器空,取数据,OUTDX,AL;,输出数据,INCSI;,修改地址指针,DECCL,AA2 STI,IRET,;,从机程序,MOVSI,0100H;,源数所在的存储单元首地址送,SI,MOVDI,0200H;,目标数所在的存储单元首地址送,DI,MOVBL,64H;,设置输入数据个数计数器,MOVCL,64H;,设置输出数据个数计数器,MOVDX,04A6H;8255,控制口地址送,DX,MOVAL,83H;,写工作方式选择控制字(口输出,,B,口输入),OUTDX,AL,AA4 MOVDX,04A4H;C,口地址送,DX,MOVAL,0F0H;,初始化,C,口高4位,OUTDX,AL,INAL,DX;,检测,C,口低4位状态,MOVAH,AL,ANDAL,01H;,检测主系统,IBF,状态,JNZAA1;,主侧8255,A,输入缓冲器满转走到,AA1,MOVAL,SI;,主侧8255,A,输入缓冲器空,可以取数,向主,CPU,传送数据,MOVDX,04A0H;,口地址送,DX,OUTDX,AL;,输出数据给主侧8255,MOVDX,04A4H;C,口地址送,DX,MOVAL,0D0H;,选通主侧8255,A,OUTDX,AL,MOVAL,0F0H;,关闭选通信号,OUTDX,AL,INCSI;,修改数据区地址指针,DECCL,JNZAA4,CMPBL,00H,JNZAA4,AJMPAA3,AA1MOVAL,AH,ANDAL,02H;,检测主侧8255,AOBF,状态,JNZAA4;OBF1,,主侧8255,A,输出缓冲器无数据,转向,AA4,MOVDX,04A4H,MOVAL,0E0H;,从侧8255,A,发,ACK,信号,启动主侧8255,A,输出缓冲器,OUTDX,AL,MOVDX,04A2H;B,口地址选,DX,INAL,DX;,从主侧8255,A,取数,MOVDI,AL;,保存数据,MOVDX,04A4H,MOVAL,0E0H;,从侧8255,AACK,信号无效,OUTDX,AL,INCDI;,修改数据区地址指针,DECBL,JNZAA4,CMPCL,00H,JNZAA4,AA3 HALT,7.2,串行接口通信的基本概念,在计算机系统中,有两种数据传送方式:串行传送和并行传送。,并行数据传送的特点是8位、16位,甚至32位数据同时从一个设备传送到另一个设备。串行数据传送的特点是在传输过程中,数据一位一位地沿着一条传输线从一个设备传到另一个设备。以传送8位数据01101010为例,并行传送与串行传送的过程如图,7.14,所示。,从并行与串行的数据传送示意图可以看出,并行数据传送所需传输线的条数与位数有关,位数越多所需传输线越多;而串行数据传送只需一根线即可。,图,7.14,对于计算机系统内部或近距离设备之间数据传,送,可采用并行数据传送,并行通信数据线的传送,速度快,工作效率高。对于远距离的设备之间的数,据传送,经常采用串行数据传送。目前远距离通信,利用电话线,比并行电缆和放大器更经济、方便。,7.2.1,传送过程,微型计算机系统向外传送数据或者接收外面传,送来的数据是以并行方式传送的,这是计算机内部,数据所固有的特征。若要在计算机和外部设备之间,进行串行通信,就需要一种接口电路,它具有把,CPU,传送来的并行数据转换为串行数据发送出去的,功能,还具有把接收到外部设备传送来的串行数据,转换成并行数据传送给,CPU,的功能。这种接口电路,称为串行接口电路。,串行接口电路的工作过程是:接收数据时,移,位寄存器接收输入线传送来的每一位,并把串行数,据转换成并行数据存入接收数据寄存器,供,CPU,读,取;发送数据时,,CPU,把数据传送给发送缓冲器,,再通过移位寄存器在发送时钟的触发下一位一位地,进行移位,把数据发送到输出线上。串并行互相转,换如图,7.17,所示。,7.2.2,传送速率,传送速率是指每秒钟传送的二进制位数,通常,称为波特率(,Band Rate)。,国际上规定了标准波特,率系列,最常用的标准波特率是:110波特、300波,特、600波特、1200波特、1800波特、2400波特、,4800波特、9600波特和19200波特。,图,7.17,例如,在某个异步串行通信系统中,数据传送速率,为960字符/秒,每个字符包括一个起始位、8个数据,位和一个停止位,则波特率为10960=9600(位/,秒)=9600(波特)。,在进行串行通信时,根据传送的波特率来确定,发送时钟和接收时钟的频率。在异步传送中每发送,一位数据的时间长度由发送时钟决定,每接收一位,数据的时间长度由接收时钟决定,它们和波特率之,间有如下关系:,时钟频率=,n,波特率,式中的,n,叫做波特率系数或波特率因子,它的取,值可以为1、16、32或64。,7.2.3,数据传送的工作方式,在串行通信中,按照在同一时刻数据流的方向,可分为三种基本传送模式:单工传送、半双工传送,和全双工传送。,单工传送方式仅支持在一个方向上的数据传,送。即由设备,A,传送到设备,B。,在这种传送模式中,,A,只作为发送器,,B,只作为接收器。,半双工传送方式支持在设备,A,和设备,B,之间交替,地传送数据。即设备,A,为发送器发送数据到设备,B,,设备,B,为接收器。也可以设备,B,做发送器发送数据到,设备,A,,设备,A,为接收器。由于,A、B,之间仅一根数,据传送线,它们都有独立的发送器和接收器,所以,在同一个时刻只能进行一个方向的传送。,全双工传送方式支持数据在两个方向同时传,送。即设备,A,可发送数据到设备,B,,设备,B,也可以发,送数据到设备,A,,它们都有独立的发送器和接收器,,并有两条传送线。,7.2.4,串行通信的方式,串行通信按通信约定的格式分为两种:异步通,信方式和同步通信方式。,1.异步通信方式,异步通信所采用的信息格式如图,7.18,所示。,图,7.18,一个字符正式发送之前,先发送一个起始位,,低电平,宽度为1位;结束时发一个停止位,高电,平,宽度是1位、1.5位或2位;数据位占58位,可,在数据位内设1位奇偶校验位。字符之间可有空闲,位,它们都是高电平。,异步传送过程中的起始位和停止位起着重要的,作用。起始位标志着每一个字符的开始,停止位标,志着每一个字符的结束。由于串行通信采用起始位,为同步信号,接受端总是在接收到每个字符的头部,即起始位处进行一次重新定位,保证每次采样对应,一个数位。所以异步传送的发送器和接收器不必用,同一个时钟,而是各有自己的局部时钟,只要是同,一标称频率,略有偏差不会导致数据传送错误。,图,7.18,异步通信采用的信息格式,2.同步通信格式,同步通信不是用起始位来标识字符的开始,而,是用一串特定的二进制序列,称为同步字符,去通,知接收器串行数据第一位何时到达。串行数据信息,以连续的形式发送,每个时钟周期发送一位数据。,数据信息间不留空隙,数据信息后是两个错误校验,字符。同步通信采用的同步字符的个数不同,存在,着不同的格式结构,具有一个同步字符的数据格式,称为单同步数据格式,有二个同步字符的数据格式,称为双同步数据格式,如图,7.19,所示。在同步传送,中,要求用时钟来实现发送端与接收端之间的同,步。,图,7.18,图,7.19,串行接口部件有,4,个主要寄存器,即:,控制寄存器,状态寄存器,数据输入寄存器,数据输出寄存器。,7.3,串行通讯的方式,串行通讯的基本连接,并行通讯的基本连接,多机系统,多机系统的相互通道两种结构,:,主从分布式,串行总线式,主从分布式是目前由应用系统构成较大规模测、控系统的典型结构。,一、主从分布式,二、串行总线式,相互通道接口设计应解决的问题,根据不同要求,接口设计的内容:,(,1,)通道接口形式选择。,(,2,)总线接口标准选择。标准接口通用,性强,编程方便。,(,3,)通道接口的通信协议。,(,4,)长线驱动与匹配。,7.3.1,并行接口技术,一、并行通信接口的结构,并行通信接口可用,CPU,本身的,I/O,口,也可用扩展的可编程,I/O,口或简单,I/O,口,传送数据,在加上两根握手信号线构成。,1,、可编程并行口实现的并行通信,2,、,简单,I/O,口实现的并行通信,3,、,用,I/O,口实现的并行通信,二、并行通信的程序设计,并行通信程序设计,通常用查询方式发送,用查询方式或中断方式接收。以用,I/O,口实现的并行通信为例。,信号定义如下,CPUA,:,I4=0,输出数据有效;,=1,输出数据无效。,I2=0,对方空闲;,=1,对方忙。,CPUB,:,I4=0,本机空闲;,=1,本机忙。,I2=0,对方有数据输入,;,=1,对方无数据输入。,时序,7.3.2,串行接口技术,一,、串行接口选择原则,接口标准的选择、通信控制芯片的选择、通信介质的选择以及接口信号电平的调整。考虑的原则:,(,1,)可靠性,信号传送,不允许有传输错误。对不同的环境选择接口标准和器件。,(,2,)通信速度和通信距离,一般地,通信速度与传输距离成反比。,对,RS232C,:最大数据传输速率为,19.2KB/S,,最大传输距离为,15m,。最小数据传输速率为,300B/S,,最大传输距离为,100m,。,对,RS422,:最大数据传输速率为,10MB/S,,最大传输距离为,300m,。最小数据传输速率为,300B/S,,最大传输距离为,2000m,。,(,3,)通道的抗干扰能力,电流型器件比电压型器件的抗干扰能力强,同时采用光电隔离技术,增强抗干扰能力。,三、标准接口,1,、,RS232C,(,1,)接口信号,25,针插座:,2TXD 3RXD 7GND,9,针插座:,2RXD 3TXD 5GND,(,2,)电气特性,“,0”:+5V,+15V,“1”:-5V,-15V,RS232,电平与,TTL,、,CMOS,电平不兼容,必须经过电平转换。,(,3,)接口器件,-MAX202,(,4,)连接,2,、,RS485,(,1,)电气特性,A,、,B,:,2V,6V,传输“,1”,:,A,B 200mV,;,传输“,0”,:,A,B 200mV,。,RO=1 A=“1”B=“0”,;,=0 A=“0”B=“1”,;,DI=1 A=“1”B=“0”,;,=0 A=“0”B=“1”,;,(,2,)接口器件,RE=0 OUTPUT ENABLE,DE=1 INPUT ENABLE,RO RECEIVE DATA,DI SEND DATA,A,、,B,传输平衡信号,(,3,)连接方法,(,4,)与,CPU,的连接,给每台从机分配一个地址:,1,n,主机采用呼叫方式、被呼叫的从机,响应后发送数据。,主机、从机发送一般采用查询方,式,接收采用查询方式或中断方式。,3,、,RS422,RS422,与,RS485,电气特性相似,为全双工通讯。,(,1,)接口器件,不带控制端,电气特性,RO RECEIVE DATA,DI SEND DATA,A,、,B,:,Y,、,Z,传输平衡信号,2V,6V,传输“,1”,:,A,B,,,Y,Z 200mV,;,传输“,0”,:,A,B,,,Y,Z 200mV,。,RO=1 A=“1”B=“0”,;,=0 A=“0”B=“1”,;,DI=1 Y=“1”Z=“0”,;,=0 Y=“0”Z=“1”,;,(,2,)带控制端,RE=0 OUTPUT ENABLE,DE=1 INPUT ENABLE,RO RECEIVE DATA,DI SEND DATA,A,、,B,,,Y,、,Z,传输平衡信号,A,、,B,,,Y,、,Z 2V,6V,传输“,1”,:,A,B,,,Y,Z 200mV,;,传输“,0”,:,A,B,,,Y,Z 200mV,。,RO=1 A=“1”B=“0”,;,=0 A=“0”B=“1”,;,DI=1 Y=“1”Z=“0”,;,=0 Y=“0”Z=“1”,;,(,3,)连接方法,(,1,)不带控制端,带控制端,
展开阅读全文