您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 微机原理与接口技术第10章_串行通信和可编程接口芯片8251A
第十章串行通信和可编程接口芯片8251A10-1串行通信的基本概念通信:计算机与外部的信息交换。串行通信并行通信两种方式两种通信方式串行通信:数据按bit,依次传送TXDTXDRXDRXD计算机外设或计算机状态控制D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7计算机外设或计算机并行通信:数据各bit同时传送•逐位依次顺序传送,通信双方需严格同步;•适于长距离(30M)通信—传送线路少,成本低;•速度慢。•n位数据同时传送;•速度快;•长距离通信时传送线路多,成本高。并行通信和串行通信的特点:串行通信是逐位传送数据,所以一个多位数据需要多次传送。比如一个8位的字节型数据至少需要8次传送。它有如下特点:速度较慢;引线少;距离长。现在的台式PC机一般至少有两个RS-232串行口COM1和COM2,通常COM1使用的是9针D形连接器,而COM2使用的是老式的DB25针连接器。串行通信的硬件条件在硬件上,串行通信系统的核心部件是移位寄存器,其中在发端要有一个并入串出移位寄存器,在收端要有一个串入并出移位寄存器。DQDQCLKDQCLK…………D0D6并入串出移位寄存器DQDQCLKDQCLK…………D7D1并出串入移位寄存器001100000000110000000010001D7D0串行通信的同步为了可靠的串行通信,同步信号起到至关重要的作用。在理想情况下,同步信号应该在数据信号线上出现有效数据期间的中心点有效,因为这时数据线上的数据是最稳定的。D7D6D5D4D3D2D1D0同步脉冲但在典型的串行通信系统中,是不存在同步信号线的!如何实现串行通信的中数据传送的同步呢?系统从软件和硬件两方面采取了如下三个措施:(1)设置波特率波特率是指单位时间内传送的位数,单位是比特/秒。(2)设置数据的传送格式,一般地串行通信在传送数据时,并不是单纯地传送数据位信息。为了使数据传送可靠,还设定了其他一些辅助位。(3)设置波特率因子在异步通信方式进行通信时,发送端需要用时钟来决定每1位对应的时间长度,接收端也需要用一个时钟来测定每1位的时间长度,前一个时钟叫发送时钟,后一个时钟叫接收时钟。这两个时钟的频率可以是波特率的数倍,一般取16倍、32倍或64倍。这个倍数就称为波特率因子。一、数据传送的方向1.单工TRAB2.半双工TRABTR3.全双工TRABTR二、串行通信的两种基本工作方式1.异步方式数据传输效率相对较低!异步方式是指以字符为单位传送数据,用起始位和停止位标识每个字符的开始和结束字符,两次传送时间隔不固定。2.同步方式同步字符1同步字符2数据字符注意:接收发送双方时钟必须同步!!!异步方式为了可靠地传送数据,在每次传送数据的同时,附加了一些标志位。在大量数据传送时,为了提高速度,就去掉这些标志,这就是同步通讯。采用同步传送,在数据块开始处要用同步字符来指示,并在发送端和接收端之间要用时钟来实现同步。三、串行传输速率(波特率)波特率:每秒所传送数据的位数。单位为波特(即比特/秒:bps)例如一个串行字符由1个起始位、7个数据位、1个奇偶校验位和1个停止位这10位构成,每秒传送120个这样字符,则数据传送的波特率为:10位/字符×120字符/秒=1200bps传送1位数据需要多长时间??波特率因子:在异步通信方式进行通信时,发送端需要用时钟来决定每1位对应的时间长度,接收端也需要用一个时钟来测定每1位的时间长度,前一个时钟叫发送时钟,后一个时钟叫接收时钟。这两个时钟的频率可以是波特率的数倍,一般取16倍、32倍或64倍。这个倍数就称为波特率因子。四、异步串行收发器UART串行接口的基本结构主要是异步接收/发送器(UART),它不仅包括并行数据和串行数据之间的相互转换,还有检测串行通信在传送过程中可能发生错误的逻辑部件。通用的硬件UART的电路如下图所示。五、调制解调器(MODEM)能将数字信号转换成音频信号和能将音频信号转换成数字信号的器件称为调制解调器。调制的主要形式有幅度调制、频率键移FSK、相位键移PSK和多路载波几种。10-2可编程串行通信接口芯片8251A主要基本性能:1.可用于同步和异步传送2.波特率,DC-19.2K(异步);DC-64K(同步)。3.完全双工,与8080/8085CPU完全兼容。一、8251A的内部结构和外部引脚D0D1D2D3D4D5D6D7GNDRXDTXD12345678910111213141516171819202122232425262728CLKVCCRESETTxRDYRxRDYSYNDET/BRKDETTxENPTYCTSDSRRTSDTRRXCTXCWRCSRDC/D8251A发送和接收电路调制解调控制电路总线接口部分1.数据总线缓冲器用作8251A与系统数据总线之间的接口,内部包含3个三态、双向、8位缓冲器,它们是状态缓冲器、接收数据缓冲器和发送数据/命令缓冲器。2.接收缓冲器和接收控制电路接收数据的速率取决于接收端时钟频率。在异步方式下,它可以是波特率的1、16或64倍。(即波特率因子是1、16或64)。RxC在异步方式下,若波特率因子为16,则8251A对数据的采样过程如下图所示。16T启动位启动检测采样数据确定已检测到启动位DATACLOCKT内同步:8251A自身先检测一个或两个字节数据与同步字符寄存器中的内容进行比较,若一样,则表示达到同步,从8251A的SYNDET引脚输出一个高电平。外同步:由外部电路来检测同步字符,若检测到同步字符,就输入一个高电平到8251A的SYNDET引脚,通知8251A。在同步方式下:内同步和外同步。3.发送缓冲器和控制电路并行数据通过发送缓冲器中的移位寄存器转换成串行数据,经TXD引脚发出。异步方式:按起始位、数据位、奇偶校验位和停止位顺序发送,发送速率取决于引脚上的时钟频率,它可以是波特率的1倍、16倍或64倍。TxC同步方式:先发送1个或2个同步字符,然后再发送数据。在同步发送时,字符之间不允许存在空隙!!4.读/写控制电路用来接收CPU的控制信号和控制命令字,决定8251A的工作状态以及向内部部件发出控制信号。(1)RESET:复位(2)CLK:时钟输入(5):控制/数据端口选择信号(A0)DC/(3),:读,写信号WRRD(4):片选信号CS5.8251A与CPU及外设的连接D7~D0D7~D0A7A6A5A4A3A2A1A0CC/DWRWRRDRDCSY0BAG1G2AG2BM/IORESETRESET8086TxRDYRxRDYBRKDETTxE&RxCTxCRXDTXD波特率产生器RS-232C接口外设8251A数据端口地址:E0H控制端口地址:E2H二、8251A的编程对8251A的编程主要包括:写入方式字:用来确定8251A的工作方式,如同步或异步方式、波特率、字符长度及是否需要奇偶校验等。写入命令字:用来控制允许或禁止8251A收发数据,启动搜索同步字符,迫使8251A内部复位等。读入状态字:了解8251A的工作状态。1.方式字格式S1S2EPPENL2L1B2B101:异步方式×111:异步方式×6410:异步方式×1600:字符长度为5位01:字符长度为6位10:字符长度为7位11:字符长度为8位01:奇校验11:偶校验x0:无校验00:无效01:1个停止位10:1.5个停止位11:2个停止位(a)异步方式ESDSCSEPPENL2L100与异步方式相同0:内同步(SYNDET为输出)1:外同步(SYNDET为输入)0:单字符同步1:双字符同步(b)同步方式2.命令字格式IREHRTSERSBRKRxEDTRTxEN1:使错误标志PE、OE、FE复位1:内部复位,使8251A回到方式选择格式1:允许发送0:禁止发送1:使DTR引脚输出低电平1:允许接收0:禁止接收0:正常工作1:使TxD线变低,发送空白字符1:使RTS引脚输出低电平1:启动搜索同步字符3.状态字格式SYNDET/BRKDETDSRFEOEPETxERxRDYTxRDY发送器准备好同引脚含义奇偶校验错溢出错误帧错误(只用于异步方式)数据装置准备好TxRDY是发送器准备好状态位,它与引脚信号有些区别。4.8251A的编程流程图复位操作写入方式字写入第一个同步字符写入第二个同步字符写入命令字传送数据读状态字出错处理同步方式?双同步?有错?传送完?复位?YYNNNNNYYY三、8251A初始化编程举例1.异步方式初始化程序软件复位:连续3次向8251A控制端口写入00H数据,然后再写入1次数据40H。写恢复时间:16个Tclk。(写入数据字符可以不考虑)例如要求8251A工作于异步方式,波特率因子为16,7个数据位,1个停止位,偶校验,控制字端口为E2H,写恢复时间程序为REVTIME,则对8251A的初始化程序为:MOVAL,00H;软件复位OUT0E2H,ALREVTIMEOUT0E2H,ALREVTIMEOUT0E2H,ALREVTIMEMOVAL,40HOUT0E2H,ALREVTIMEMOVAL,01111010B;写入方式字OUT0E2H,ALREVTIMEMOVAL,00010101B;写入命令字OUT0E2H,AL2.同步方式初始化程序流程:软件复位→写入方式字→写入同步字符→写入命令字例如要求8251A工作于同步方式,双同步字符,两个同步字符都为16H,7个数据位,奇校验,控制字端口为E2H,写恢复时间程序为REVTIME,则对8251A写入软件复位以后的初始化程序为:;软件复位┊MOVAL,00011000B;写入方式字OUT0E2H,ALREVTIMEMOVAL,16H;写入同步字符OUT0E2H,ALREVTIMEOUT0E2H,ALREVTIMEMOVAL,10010101B;写入命令字OUT0E2H,AL10.3EIARS-232C串行口和8251A应用举例一、RS-232C电器特性及接口信号1.电气特性在数据线TXD和RXD上:逻辑1=-3V~-15V逻辑0=+3V~+15V在控制线和状态线RTS、CTS、DSR、DTR和DCD上:信号有效=+3V~+15V信号无效=-3V~-15V2.RS-232C与TTL转换RS-232C是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。因此,为了能够使计算机接口与终端的TTL器件连接,必须在RS-232C与TTL电路之间进行电平和逻辑关系变换。MAX2323.RS-232C的接口信号可以用电缆线直接连接标准RS232端口,但通信距离较近(12m)。若距离较远,可附加调制解调器(MODEM)。RS-232C规标准接口有25条线,最常用的信号线有9根。二、RS-232C应用举例1.RS-232C串口通信接线方法(三线制)RS-232MAX232MCS51TXDRXDTXDRXD2.BIOS串行通信口功能IBMPC及其兼容机提供了比较灵活的关于串行口的BIOS中断调用方法,即通过INT14H调用ROMBIOS串行通信口例行程序。该例行程序包括将串行口初始化为指定的字节结构和传输速率,检查控制器的状态,读写字符等功能3.举例设通信双方有一台计算机为PC机,使用COM1端口。在串行通信中,必须首先设定通信双方所使用字符串的数据结构,才能进行软件编程。这里我们设数据在接收和发送的字符串中,序号为0的字节为数据长度,其后的字节为所接收的数据。接收数据子程序:receiveprocfar;这是接收数据子程序,;出口AL,AHrec_check:movah,3;读通讯口状态字movdx,0int14htestah,20H;测试数据准备好位jzrec_check;数据未准备好,再读状态字movah,2;读通信端口数据movdx,0int14hretreceiveendp发送数据子程序:sendprocfar;这是发送数据子程序,;输入参数:AL,输出参数:AL,AHpushaxsend_check:movah,3;读通讯口状态字movdx,0int14hte
本文标题:微机原理与接口技术第10章_串行通信和可编程接口芯片8251A
链接地址:https://www.777doc.com/doc-2435623 .html