您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第6章串并行通信和接口技术
第6章串并行通信和接口技术6.1串行接口和串行通信基本的通信方式有两种:并行通信——数据的各位同时传送;串行通信——数据一位一位顺序传送。6.1.1串行通信涉及的几个问题在串行通信中引出了一系列的约定和概念;双方约定以何种速率进行数据的发送和接收(波特率);约定采用何种数据格式(帧格式),如果包含控制信息,其定义是什么;接收方如何得知一批数据的开始和结束(帧同步);接收方如何从位流中正确地采样到位数据(位同步);接收方如何判断收到数据的正确性(数据校验);收发出错时如何处理(出错处理)。1.串行通信的特点串行通信:通信线路简单,适用于远距离通信,但传输速度慢。6.1.1串行通信涉及的几个问题2.数据传送方向站B站B站B全双工方式站A站A站A半双工方式单工方式接收和发送用同一的通路接收和发送用不同通路6.1.1串行通信涉及的几个问题同步通信同步通信是以数据块(字符块)为单位传送的,形成一帧数据,作为一个整体进行发送与接收,因此,每一帧的开始需加同步字符,它要求有时钟来实现发送端与接收端之间的同步,故而硬件复杂。3.两种基本形式6.1.1串行通信涉及的几个问题异步通信异步通信以一个字符为传输单位,用起始位表示字符的开始,用停止位表示字符结束。6.1.1串行通信涉及的几个问题同步通讯:字符间和字符内部的位与位之间都需要严格同步,所以收发双方需用同一个时钟源。异步通讯:以字符为单位,传输时字符间可以异步,字符内部各位同步,所以收发双方不需要同一时钟源,只需用同频率的收发时钟。6.1.1串行通信涉及的几个问题串行传输速率也称波特率(BaudRate)每秒传输的二进制位数bps4.串行通信的传输率例1:异步传输过程假如数据传送的速率是120字符/秒,设每个字符对应1个起始位、7个信息位、1个奇偶校验位和1个停止位,则波特率为1200bps每一位的传送时间即为:Td=1/1200=0.833(ms)6.1.1串行通信涉及的几个问题异步通讯中,二者的关系为:发送/接收时钟频率=n发送/接收波特率其中n称为波特率因子,一般n=16,32,64例2:要求异步通讯传输速率为1200bps当选择n=16时,表明一位数字信号中有16个时钟脉冲,故发送/接收时钟频率为:120016=19.2kHz5.时钟频率•同步通讯中,接收和发送的波特率分别和发送、接收时钟的频率相等。6.信号的调制和解调计算机通信是一种数字信号的通信,如下图所示。在进行远程数据通信时,通信线路大多数借用电话线传送。为此,在发送时需要将数字信号(二进制信号)调制成适合在电话线上传输的音频信号。在接收时,需要解调还原成数字信号。6.1.1串行通信涉及的几个问题6.1.1串行通信涉及的几个问题要用调制器(Modulator)把数字信号转换为模拟信号;用解调器(Demodulator)检测此模拟信号,再把它转换成数字信号。6.1.1串行通信涉及的几个问题7.串行通信接口标准:EIARS-232C控制信号的定义:6.1.1串行通信涉及的几个问题信号电平标准EIARS-232C6.1.1串行通信涉及的几个问题计算机和远方以及当地终端(用查询方式交换信号)的连接的示意图如下:6.1.2串行接口微型计算机与I/O设备的接口按照数据传送格式的不同,可分为并行接口和串行接口两种。实现并行通信的接口就是并行接口实现串行通信的接口就是串行接口6.1串行接口和串行通信可编程串行接口的典型结构6.2可编程串行通信接口8251A可以工作在同步或异步方式。在同步方式时,能用5、6、7或8位代表字符能自动检测同步字符,允许奇偶校验。在异步方式下能用5、6、7或8位代表字符,用1位作为奇偶校验。能增加1个启动位能增加1个、1.5个或2个停止位。波特率:异步最高为19.2K,同步最高为64K。完全双工、双缓冲器发送和接收器。错误检测:具有奇偶、溢出和帧错误等检测电路。6.2.18251A的基本性能6.2.28251A的基本工作原理1.8251A的功能结构由7个模块组成。8251A的内部工作原理见下图所示。6.2.28251A的基本工作原理6.2.28251A的基本工作原理2.8251A的发送和接收6.2.28251A的基本工作原理6.2.28251A的基本工作原理6.2.38251A的对外信号8251A和CPU之间的连接信号片选信号数据信号读/写控制信号收发联络信号图6.68251A与CPU及外设的连接关系6.2.38251A的对外信号C/D、RD、WR的编码和对应的操作6.2.38251A的对外信号8251A与外设之间的连接信号数据信号调制解调器的联络信号6.2.48251A的编程1.8251A的初始化硬件或软件设置复位复位之后的第一个奇地址6.2.48251A的编程2.模式寄存器的格式D7D6D5D4D3D2D1D0字符长度00:5位01:6位10:7位11:8位波特率系数00:同步方式01:异步X110:异步X1611:异步X64奇偶校验X0:无校验01:奇校验11:偶校验SYN?同步控制X0:内同步X1:外同步0X:两同步字符1X:单同步字符Y帧控制00:不确定01:1停止位10:1.5停止位11:2停止位N异步:8位数据,1位起始位,2位停止位,奇校验,因子是16。指定通信方式及数据格式6.2.48251A的编程4.控制寄存器的格式EHIRRTSERSBRKRXEDTRTXEN发送允许0:屏蔽1:允许接收允许0:屏蔽1:允许数据终端准备好1:迫使DTR输出低送中止字符1:迫使TXD输出低0:正常工作错误标志复位1:全部错误标志复位请求发送1:迫使RTS输出低内部复位1:返回方式指令格式外部搜索方式1:启动搜索同步字符使8251内部复位?6.2.48251A的编程5.状态寄存器的格式DSRSYNDETFEOEPETXERXRDYTXRDY与引脚TXRDY有差别奇偶错误溢出错误帧错误(仅异步)与8251的同名引脚同定义例3:若要查询8251A接收器是否准备好,可用下列程序实现:MOVDX,3FAH;状态口NEXT:INAL,DX;读状态口ANDAL,02H;查询D1=1?JZNEXT;未准备好,转NEXT等MOVDX,3F8H;数据口地址送DXINAL,DX6.2.48251A的编程例4:接收时检查出错信息:MOVDX,3FAH;状态口NEXT:INAL,DX;读状态口TESTAL,38H;查询是否有三类错误JNZERROR;有,跳转6.2.58251A编程举例MOVDX,3FAHMOVAL,7AH;送模式字OUTDX,ALMOVAL,15H;设控制字OUTDX,AL1.异步模式下的初始化程序举例例5:设8251A工作于异步方式,波特率系数为16,具有7位数据位,1位停止位,偶校验,发送、接收允许,设端口地址为3F8H和3FAH,试编程初始化。6.2.58251A编程举例2.同步模式下的初始化程序举例例6:设8251A工作于同步方式,控制口的端口地址为3FAH,采用双同步字符,同步字符为16H,奇校验,7位数据位,试编程初始化。MOVDX,3FAHMOVAL,00011000B;模式字OUTDX,ALMOVAL,16HOUTDX,AL;送第一个同步字符16HOUTDX,AL;送第二个同步字符16HMOVAL,97H;设置操作命令字OUTDX,AL6.2.58251A编程举例MOVDX,209HMOVAL,7BHOUTDX,ALMOVAL,14HOUTDX,AL3.使用查询式接收数据,要求:异步方式,波特率因子是64,7个数据位,偶校验,1个停止位,地址是208H,209H。LOP:INAL,DXTESTAL,02HJZLOPMOVDX,208HINAL,DX6.2.68251A的使用实例图6.12用8251A作为CRT接口的实际例子6.2.68251A的使用实例INIT:XORAX,AXMOVCX,0003MOVDX,00DAHOUT1:CALLKKKLOOPOUT1MOVAL,40HCALLKKKMOVAL,4EHCALLKKKMOVAL,27HCALLKKK……KKKprocOUTDX,ALPUSHCXMOVCX,0002ABC:LOOPABCPOPCXRETKKKendp6.2.68251A的使用实例往CRT输出一个字符的例子CHAROUT:MOVDX,0DAHSTATE:INAL,DXTESTAL,01JZSTATEMOVDX,0D8HPOPAXOUTDX,AL8251A实验用到8253A的程序片段:datasegmentinportequed4llh-280hio8253aequioport+280hio8253bequioport+283hio8251aequioport+2b8hio8251bequioport+2b9hmes1db‘youcanplayakeyonthebeybord!’,0dh,0ah,24hmes2ddmes1dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovdx,io8253bmoval,16houtdx,almovdx,io8253amoval,52outdx,al•给8251送三个0,一个40H进行复位。•对8251进行初始化:先送模式字,再送控制字。•显示上述字符串。以下为发送数据程序段:•查询TXRDY状态位。•从键盘输入字符,并判断是否为ESC(表示退出程序)。•发送数据,并延时。以下为接收数据程序段:•查询RXRDY状态位。•接受数据并显示。•子程序编写。movdx,;初始化8251?movcx,03;向8251控制端口送3个0next:callout1loopnextmoval,;向8251控制端口送?,使其复位callout1moval,;设置为1个停止位,8个数据位,波特率因子为16callout1moval,;向8251送控制字允许其发送和接收callout1ldsdx,mes2;显示提示信息movah,09int21h•对8251进行软件复位。•对8251进行初始化:先送模式字,再送控制字。•显示上述字符串。waiti:movdx,?inal,dxtestal,;发送是否准备好waitimovah,01;是,从键盘上读一字符int21hcmpal,27;若为ESC,结束?movdx,?incal;发送movcx,0F00hs51:loop?以下为发送数据程序段:•查询TXRDY状态位。•从键盘输入字符,并判断是否为ESC(表示退出程序)。•发送数据,并延时。next:movdx,??testal,;检查接收是否准备好jznext;没有,等待movdx,?;准备好,接收movdl,almovah,02;将接收到的字符显示在屏幕上int21hjmp?exit:movah,4ch;退出int21h•以下为接收数据程序段:•查询RXRDY状态位。•接受数据并显示。out1procnear;向外发送一字节的子程序?pushcxmovcx,0F00hgg:loop;延时popcx?out1?code?start子程序的编写。6.4并行通信和并行接口并行通信:是指利用多条数据传输线将一个数据的各位同时传送。实现并行通信的接口就是并行接口。串行通信:利用一条传输线将数据一位位地顺序传送。方式数据线数使用串行一条数据线速度慢、远距离并行数据的位数速度快、近距离6.4并行通信和并行接口典型的并行接口和外设连接的示意图。使用查询方式使用中断方式T2T1数据输入准备好T3AL6.4并行通信和并行接口典型的并行接口和外设连接的示意图。使用查询方式使用中断方式T2T1输出准备好T2ALT36.5.18255A的内部结构8255A的内部结构6.5.28255A的芯片引脚信号A1A0说明00A端口01B端口10C端口11控制6.5.38255A的控制字8255A有两种控制字:•工作方式选择控制字•
本文标题:第6章串并行通信和接口技术
链接地址:https://www.777doc.com/doc-4072410 .html