第七章通信接口技术7.1概述通信:计算机与外设之间或计算机与计算机之间的信息交换或数据传输。通信的两种基本方式并行通信串行通信一、并行通信与并行接口1、并行通信将数据的各位同时在多根并行传输线上进行传输。D0D1D2D3D4D5D6D7目的D0D1D2D3D4D5D6D7源01010110数据的各位同时由源到达目的地→快多根数据线→距离短、远程费用高并行通信适于短距离、高速通信2、并行接口概述并行接口连接CPU与并行外设,实现两者间的并行通信,在信息传送过程中,起到输出锁存或输入缓冲的作用。并行接口的典型硬件结构包括:1、一个或一个以上具有锁存或缓冲的数据端口2、与CPU进行数据交换所必须的控制和状态信号3、与外设进行数据交换所必须的控制和状态信号4、端口译码电路5、控制电路1、串行通信将数据的各位按时间顺序依次在一根传输线上传输。数据的各位依次由源到达目的地→慢数据线少→远程,费用低串行通信适于长距离、中低速通信RD目的TD源二、串行通信与串行接口2、串行接口•能够完成串行通信任务的接口•功能:1、接受并行数据转换为一定格式的串行数据送出;2、接收串行数据流,并将其转换为并行数据输入。•串行接口的典型硬件结构包括除了包括并行接口芯片所具有端口及控制电路之外,还有串入并出、并入串出移位寄存器。三、串行通信的线路传输方法(数据传输方式)单工方式半双工方式A接收器B接收器数据流发送器发送器A接收器B发送器数据流A接收器B发送器发送器接收器全双工方式四、串行通信类型所有串行通信都需要一个时钟信号来作为数据的定时参考。发送器和接收器用时钟来决定何时发送和读取每一位数据。根据采用统一时钟还是本地局部时钟,分为如下两种类型串行异步通信(异步通信)串行同步通信(同步通信)(一)、异步通信字符与字符之间的传送是异步的,而字符的位与位之间是同步的。以字符为单位进行传输,其通信协议是起止式异步通信协议(Protocol)说明:1、两个字符间的间隔任意2、发送时钟与接收时钟不必完全同步,只要比较接近3、在同一传输系统中,通信双方协议的数据格式是相同的4、可设波特率因子为1、16、64波特率因子指时钟频率是波特率的1倍、16倍、64倍字符低位高位0/10/10/10/110111…空闲位起始位数据位校验位停止位空闲位(二)、同步通信以一个数据块(帧)为传输单位,每个数据块附加1个或2个同步字符,最后以校验字符结束。~~~~同步字符数据数据数据校验1校验2说明:1、分为单同步(1)、双同步(2)、外同步(无)2、字符间不允许有间隔,在没有信息传输时,要填上同步字符3、接收端在收到确定数量的同步字符后,才认为传输开始4、要求通信双方保持完全的同步(三)、波特率(传输率)是指单位时间内传送二进制数据的位数,其单位是位/秒(bit/s)。它是衡量串行数据速度快慢的重要指标。最常用的标准波特率是110、300、600、1200、2400、4800、9600、19200b/s等。注:区分字符速率与波特率概念。例:如果一个串行字符由1个起始位,7个数据位,1个奇偶校验位和1个停止位构成,每秒钟传送120个字符,则数据传送的波特率为10位/字符*120字符/秒=1200波特(bit/s)7.2可编程并行通信接口芯片8255A一、8255A的编程结构及引脚功能二、CPU与8255A的接口三、8255A的初始化编程四、8255A三种工作方式及应用五、键盘和显示接口数据总线缓冲器内部控制线内部数据线D0~D7A组控制A组端口AA组端口C上部B组控制B组端口C下部B组端口B读写控制逻辑PC0~PC3PB0~PB7PC4~PC7PA0~PA7RDWRA0A1CSRESET一、8255A的编程结构及引脚功能VccGNDCS、A1、A0、RD、WR逻辑关系表CSA1A0RDWR功能00001对端口A读00101对端口B读01001对端口C读01101非法,不能对控制口读输入00010对端口A写00110对端口B写01010对端口C写01110对控制口写输出1×××××××11数据缓冲器为三态断开二、CPU与8255A的接口D0~D7RDWRA2A1RESETA9A8A7A6A0M/IOA5A4A3D0~D7RDWRPAA1A0RESETPBPCCSGG2AY6G2BCBA≥18086最小模式8255A&A口B口C口控制口端口地址:1110110000B、3B2H、3B4H、3B6H三、8255A初始化编程8255A的控制字8255A方式选择控制字方式选择控制字置位复位控制字(对C口任一位)D7D6D5D4D3D2D1D0PC3~PC01:输入0:输出00:方式001:方式11x:方式2A端口1:输入0:输出PC7~PC41:输入0:输出B组方式0:方式01:方式1B端口1:输入0:输出B组控制A组控制方式选择控制字识别位,为1选中置位复位控制字D7D6D5D4D3D2D1D0C端口置位识别位,为0有效任意值C口位选择000:PC0001:PC1010:PC2011:PC3100:PC4101:PC5110:PC6111:PC7选中位置1/置0选择0:置01:置1四、8255A三种工作方式及应用根据A口和C口、B口和C口之间硬件关系的不同,可以有三种不同的工作方式,分别称为方式0、方式1、方式2(只针对A口)。A口或B口工作在方式0:与C口之间没有硬件联系。A口或B口工作在方式1:C口的某3根引脚作为端口与外设的联络信号。A口工作在方式2:C口的某5根引脚作为端口与外设的联络信号。1、方式0(基本输入/输出方式)它适用于不需要应答信号的简单输入输出场合,若需要联络时,可自定义C口为联络信号。构成3个8位端口,或2个4位、2个8位端口,以适应不同应用场合。例1:设某8086系统中连接一片8255A,8255A的A口接拨码盘,B口接共阴数码管,设计程序段使数码管显示拨码盘的数字。8255APA0PA1PA2PA3PB0PB1PB2PB3PB4PB5PB6PB7驱动电路abcdefgh+5V控制字:10010000Bhgfedcba设端口地址为3B0H、3B2H、3B4H、3B6HTAB1DB3FH,06H,5BH,4FH,66H,6DHDB7DH,07H,7FH,6FH,77H,7CHDB39H,5EH,79H,31HMOVDX,3B6HMOVAL,90HOUTDX,ALADDR:MOVDX,3B0HINAL,DXANDAL,0FHMOVBX,OFFSETTAB1XLATMOVDX,3B2HOUTDX,AL例2:利用8255A方式0驱动打印机,实现将CL中的ASCⅡ码送打印机。打印机工作过程为:当主机要往打印机输出字符时,①先查询打印机BUSY信号,当BUSY=0时可传送字符,②然后将要打印字符的ASII码(从A口)传送至打印机,③同时发出选通信号(STB)将字符选通到打印机输入缓冲器。设8255的端口地址为:3B0H3B2H3B4H3B6HPAPC6PC2D0~D7STBBUSY控制字:10000001BMOVAL,81HMOVDX,3B6HOUTDX,ALMOVAL,00001101BOUTDX,ALROT:MOVDX,3B4HINAL,DXTESTAL,04HJNZROTMOVAL,CLMOVDX,3B0HOUTDX,ALMOVAL,00001100BMOVDX,3B6HOUTDX,ALINCALOUTDX,AL2、方式1(选通输入/输出方式)PA7~PA0PC4PC5PC3INTEAPC4与门IBFASTBAINTRARDPB7~PB0PC2PC1PC0INTEBPC2与门RDIBFBSTBBINTRBA口输入B口输入对方式1输入的端口,C口提供与外部联络的信号有:①STB选通信号(低电平有效)由外设发出,送给8255A,作用是将外设送来的数据锁存到8255A的输入端口。②IBF输入缓冲器满信号(高电平有效)8255A发出,表示外设送来的数据已进入输入端口。当外设送来的数据送入输入端口后,8255A自动发出。③INTR中断申请信号(高电平或上升沿有效)8255A发出,用来向CPU发出中断申请。STB、IBF、INTE均为1时,8255A自动发出INTR。注意:INTE无引出端,设计规定由软件对PC4或对PC2置1触发中断允许触发器。方式1输入信号时序图从外设来的数据INTRSTBRD3421IBFPA7~PA0PC6PC7PC3INTEAPC6与门OBFAACKAINTRAWRPB7~PB0PC2PC1PC0INTEBPC2与门WROBFBACKBINTRBA口输出B口输出对方式1输出的端口,C口提供与外部联络的信号有:①OBF输出缓冲器满信号(低电平有效)当数据送至8255A输出缓冲器后,8255A自动发出。表示CPU送来的数据已进入8255A输出端口,可用来通知外设把数据取走。②ACK外设响应信号(低电平有效)由外设发出,送给8255A。作用是通知8255A输出端口的数据已被外设取走,可以传送下一个数据。③INTR中断申请信号(高电平或上升沿有效)8255A发出,用来向CPU发出中断申请。当OBF、ACK、INTE均为1时,8255A自动发出INTR。方式1输出时信号时序图INTR送外设的数据数据有效WROBFACK1234例3:利用8255A方式1驱动打印机,把缓冲区BUFF中的400H个字节的ASCⅡ码送打印机打印。设端口地址分别为60H、61H、62H、63H。PAPC7PC6PC4D0~D7STBACKBUSY控制字:10101000BMOVCX,400HMOVAL,0A8HOUT63H,ALMOVDI,OFFSETBUFFROT1:MOVAL,[DI]OUT60H,ALROT2:INAL,62HTESTAL,10HJNZROT2INCDILOOPROT13、方式2(双向传送方式)PA7~PA0PC6PC7ACKAOBFARDWRPC4PC5STBAIBFAINTEA1PC4INTEA2PC6与门PC3INTRA或门与门工作在方式2时,C口有5根引脚作为A口的联络信号,是方式1下A口输入、输出联络信号的组合。五、键盘和显示接口1、LED数码显示接口(8段)LED数码管分共阴LED和共阳LED,发光时通过的平均电流为10mA~20mA、电压为1.5V,实际使用时要加驱动及限流。显示方式静态显示各数码管能稳定地同时显示各自字符。动态显示各数码管轮流地一遍一遍显示各自字符,人们因视觉器官惰性而看到的是各数码管似乎在同时显示不同字型。D0D1D2D3D4D5D6D7位0abcdefgh位1位2……同相驱动器PB2PB1PB08255APA共阴动态显示接口静态显示接口3#MC14495ah2#MC14495ah1#MC14495ah8255APA0PA1PA2PA3PB0PB1PB2MC14495具有译码(BCD—显示码)、锁存、驱动、限流作用。2、键盘及其接口键盘键盘是一组开关的集合,是微型计算机不可缺少的输入设备,人们通过它往计算机传递信息。一般性问题检测是否有键按下;若有键按下,判定是哪一个键;确定被按键的读数;去抖动;不管一次按键持续的时间有多长,仅采用一个数据;处理同时按键。键盘工作原理键盘可以分为独立连接式和矩阵式+5V+5V+5V独立连接式也称为线性结构键盘,是最简单的键盘。每一个引脚连接一个键输入0/1反映健是否高低+5V+5V控制线检测线常用的矩阵结构键盘每行连接一个引脚每列连接一个引脚利用控制线为低、读取检测线来识别闭合键键盘接口及键的识别为了识别键盘上的闭合键,通常采用两种方法,一种为行扫描法,另一种称为行反转法。行扫描法PA0PA1PA2PA3PB0PB1PB2PB310kΩ×45V原理:CPU每次使并行输出端口的某位为零,而其它位为1,然后CPU只要读取输入端口中的数据,就可判别。012C行反转法5VPA0PA1PA2PA3PB0PB1PB2PB310kΩ×8原理:第一步设A口输出B口输入A