预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共75页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第九章串行通信接口二、串行数据传送方向三.波特率与收/发时钟 例2:同步传输 用1200bps的波特率工作,用4个同步字符作为信息帧头部,但不用奇偶校验,那么,传输100个字符所用的时间为7(100+4)/1200=0.6067s,这就是说,每秒钟能传输的字符数可达到100/0.6067=165个。 可见,在同样的传输率下,同步传输时实际字符传输率要比异步传输时高。(2)发送/接收时钟四.串行通信的两种基本方式异步通信以一个字符为传输单位,用起始位表示字符的开始,用停止位表示字符结束(2)同步通信及其协议(4)可自动产生、检测和处理终止字符,可产生1、1.5或2位的停止位 (5)波特率在同步方式时为0~64Kbps,异步方式时为0~19.2Kbps (6)全双工、双缓冲器发送器和接收器 (7)出错检测:具有奇偶、溢出和帧错误等检测电路3.8251A的接口信号④收发联络信号 TXRDY为发送器准备好信号 TXE发送器空信号 RXRDY接收器准备好信号 SYNDET/BD同步检测信号(2)8251A与外部设备之间的连接信号(3)时钟、电源和地4.8251A的编程(1)方式命令字(2)操作命令字(用于控制发/收即数据传送方向)例:若要查询8251A接收器是否准备好,可用下列程序实现: MOVDX,3F9H;状态口 NEXT:INAL,DX;读状态口 ANDAL,02H;查询D1=1? JZNEXT;未准备好, ;转NEXT等待 MOVDX,3F8H;数据口地址 ;送DX INAL,DX三、8251A应用举例2.同步方式下初始化程序MOVDX,3F9H;命令端口地址给DX MOVAL,00011000B;方式命令字 OUTDX,AL MOVAL,16H OUTDX,AL;送第一个同步字符16H OUTDX,AL;送第二个同步字符16H MOVAL,B7H;设置操作命令字 OUTDX,AL3.两台微机之间进行双机串行通信的举例分析:设系统采用查询方式控制串行通信的过程。 初始化程序由两部分组成: ①将一方定义为发送方,发送方CPU查询到TxRDY有效时,则CPU向8251A并行输出一个待发送的字节数据; ②将对方定义为接收方,接收方CPU查询到RxRDY有效时,则从8251A输入一个已接收到的字节数据,直到全部数据传送完毕为止。发送程序如下: START:MOVDX,3F9H MOVAL,7FH;异步方式,8位数据, ;一位停止位,偶校验 OUTDX,AL;波特率因子为64,允许 ;发送 MOVAL,11H;操作命令字 OUTDX,AL MOVDI,1000H;设置地址指针 MOVCX,40H;设置计数器初值 L1:MOVDX,3F9H INAL,DX ANDAL,01H;查询TxRDY是否有效 JZL1;无效则等待 MOVDX,3F8H MOVAL,[DI];向8251A输出一个字节数据 OUTDX,AL INCDI;修改地址指针 LOOPL1;未传送完,则继续下一个 HLT接收程序如下: BEGIN:MOVDX,3F9H MOVAL,7FH;异步方式,8位数据,1位停止位 OUTDX,AL;偶校验,波特率因子64,允许接收 MOVAL,14H;操作命令字(置ER,RxE为1) MOVDX,AL MOVSI,2000H;设置地址指针 MOVCX,40H;设置计数器初值 L2:MOVDX,3F9H INAL,DX;读取状态字 TESTAL,38H;查询接收器是否有错。 JNZERR;有错则转错误处理 ANDAL,02H;无误则查状态位D1(RxRDY) JZL2;接收未准备好则等待 MOVDX,3F8H INAL,DX;接受准备好,则接收1个字 ;节数据 MOV[SI],AL INCSI;修改接收数据区地址 LOOPL2 JMPL3 ERR:CALLERR-OUT(略) L3:MOVAX,4C00H;已接收完,返回DOS INT21H 1.8250的寄存器及编程方法8250内部寄存器端口地址(1)发送保持寄存器THR(3F8H):“写”(1)接收缓冲寄存器RBR(3F8H):“读”(2)波特率除数寄存器BRD(3F8H,3F9H)例【8-11】计算波特率为1200bps的波特率除数。 当使用UART的内部时钟为1.8432MHz时(或由外部通过XTAL1引脚输入), BRD=1843200/(16×1200)=0060H (3)通信线路控制寄存器LCR(3FBH)例【8-13】通信线路控制寄存器(LCR)的编程,设置发送数据字长为8位,2位停止位,偶校验,其程序段为: MOVDX,3FBH ;LCR的地址 MOVAL,00011111B ;LCR内容数 ;据格式参数 OUTDX,AL (4)通信线路状态寄存器LSR(3F