第11章串行通信接口_第1页
第11章串行通信接口_第2页
第11章串行通信接口_第3页
第11章串行通信接口_第4页
第11章串行通信接口_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、接口与通讯技术接口与通讯技术武汉科技大学武汉科技大学计算机科学与技术学院计算机科学与技术学院第第11 11章串行通信接口章串行通信接口 本章内容本章内容11.1 11.1 串行通信的基本概念串行通信的基本概念11.2 11.2 串行通信中的传输速率控制串行通信中的传输速率控制11.3 11.3 串行通信中的数据格式串行通信中的数据格式11.4 11.4 串行通信接口标准串行通信接口标准11.5 11.5 串行通信接口电路串行通信接口电路11.6 11.6 用户扩展的串行通信接口用户扩展的串行通信接口11.7 11.7 系统配置的串行通信接口系统配置的串行通信接口11.1 11.1 串行通信的基

2、本概念串行通信的基本概念11.1.1 串行通信的基本特点串行通信的基本特点 在1根信号线上分时传送多位信息;既传数据又传联络信息 为了区分数据和联络信息,有固定的数据格式(同步和异步) 对信号的逻辑定义与TTL不兼容 传输速率需要控制:双方约定波特率 串行通信易受干扰,需进行差错的检测和控制既适用于近距离,又可用于远程;远程时需MODEM11.1.2 11.1.2 串行通信传输的工作方式串行通信传输的工作方式( (制式制式) )单工单工:数据只能单向传送全双工:全双工:可同时进行双向传送半双工:半双工:可分时进行双向传送方向切换发送器接收器接收器发送器A站B站信号地全双工全双工发送器接收器A站

3、B站信号地单工单工发送器接收器发送器接收器A站B站信号地半双工半双工11.1.3 11.1.3 串行通信中的差错检测串行通信中的差错检测1. 1.误码率的控制误码率的控制误码率误码率数据经传输后发生错误的位数与总传输位数之比;一般要求达到10-6数量级减少误码率措施减少误码率措施进行可靠性设计(软硬件);检纠错编码2.2.检错纠错编码的使用检错纠错编码的使用基本通信规程:基本通信规程:奇偶校验、方阵码检错 反馈重发高级通信规程:高级通信规程:循环冗余码(CRC)检错 自动纠错3.3.错误状态的分析与处理错误状态的分析与处理奇偶校验错:奇偶校验错:请求重发溢出错:溢出错:降低发送速率或在接收方设

4、置FIFO缓冲器帧格式错:帧格式错:核对双方的数据格式超时错:超时错:由于硬件接口电路速度跟不上产生4.4.错误检测只在接收方进行错误检测只在接收方进行11.1.4 11.1.4 串行通信的同步方式串行通信的同步方式1. 1.串行通信中的同步问题串行通信中的同步问题(1)(1)字符同步方案字符同步方案双同步(BISYNC)通信:12个特定的同步字符高级数据链路控制同步通信HDLC:特定0/1序列(01111110)起止式异步通信:起始位(2)(2)位同步方案位同步方案接收时钟控制每一位数据的接收2.2.串行通信的基本方式串行通信的基本方式(1)(1)异步通信方式异步通信方式以字符为单位传输,每

5、个字符随机出现在数据流中字符与字符之间是异步的,而字符内位与位之间是同步的(2)(2)同步通信方式同步通信方式以数据块(字符块)为单位传输字符与字符之间以及字符内位与位之间都是同步的11.1.5 11.1.5 串行通信中的调制与解调串行通信中的调制与解调 电话线电话线: 3003400Hz的音频模拟信号调制解调器调制解调器(MODEM,调制器+解调器)的作用作用:发送时将二进制数据调制成音频模拟信号接收时对音频模拟信号进行解调还原成数字信号数据通信设备数据通信设备(DCE)或数传机数传机(DATA SET)调制解调器的种类调制解调器的种类幅移键控(ASK)、频移键控(FSK)、相移键控(PSK

6、)频率f01+-输出S1S0数字信号频率f1频率f0FSK:11.2 11.2 串行通信中的传输速率控制串行通信中的传输速率控制11.2.1 11.2.1 数据传输速率控制的实现方法数据传输速率控制的实现方法 数字通信中的传输速率称为波特率,单位波特 数据传输率的控制波特率时钟发生器和波特率因子11.2.2 11.2.2 波特率与发送波特率与发送/ /接收时钟接收时钟1. 1.波特率波特率:单位时间内传输串行数据的位数,1波特=1b/s位周期2.2.发送发送/ /接收时钟接收时钟(1)执行数据的发送和接收:发送时钟的下降沿从发送移位寄存器输出;接收时钟的上升沿移入接收移位寄存器(2)进行位同步

7、发送发送/ /接收时钟对数据发送接收时钟对数据发送/ /接收的控制接收的控制0111000111000起始位发送的数据接收的数据收/发时钟理想情况理想情况在码元中心采样 收发时钟频率严格相等 采样错位采样错位(f收f发)111000111000起始位发送的数据接收的数据发送时钟1接收时钟11.2.2 11.2.2 波特率与发送波特率与发送/ /接收时钟接收时钟3.3.波特率因子波特率因子:发送/接收1位数据所需的时钟脉冲个数TXC(RXC)=BaudFactor同步:Factor=1;异步:Factor=1、16、641/0起始位1/0接收时钟数据检测到起始位前沿8个16个16个起始位中心位采

8、样位采样1616倍波特率时钟的作用倍波特率时钟的作用提高了采样定位的分辨率提高可靠性提高了通信的抗干扰能力11.2.2 11.2.2 波特率与发送波特率与发送/ /接收时钟接收时钟4.4.波特率时钟发生器波特率时钟发生器:不是所有串行接口芯片内都包含5.5.波特率时钟的使用波特率时钟的使用Factor一定,改变TXC控制Baud例例8.18.1 Factor=16个/位,第一次采样TXC1=38400Hz,第二次TXC2=19200Hz;两次通信的波特率各为多少解:解:Baud1=TXC1Factor=3840016=2400b/sBaud2=TXC2Factor=1920016=1200b/

9、s例例8.28.2 甲乙两机通信,甲机发送时钟TXC=38400Hz,Factor1= 16个/位;乙机Factor2=64个/位,求乙机的接收时钟频率RXC解:解:RXC=BaudFactor2=(TXCFactor1)Factor2=384001664=153600Hz6.6.传输距离与传输速率的关系传输距离与传输速率的关系传输线电气特性一定情况下,直接传输最大距离随速率的增加而减小11.2.3 11.2.3 波特率时钟发生器设计波特率时钟发生器设计( (略略) )例例8.38.3 设计一个波特率时钟发生器,输入时钟CLK=1.19318MHz, Factor=16,输出Baud=9600

10、b/s,按ESC退出解:解:通常用82C54A输出方波作为串行通信的发送/接收时钟N=CLKOUT=CLK(BaudFactor)=1.19318106(960016)8硬件设计硬件设计(选用T2)8251ATXDRXDSGTXCRXC三总线92582C54A82C55ACLK2GATE2OUT2PC6扩展总线1.19318MHz波特率时钟发生器的软件编程波特率时钟发生器的软件编程DATASEGMENTTC EQU 8;82C54A的T2初值DATA54EQU 306H;82C54A的T2地址CTRL54EQU 307H;82C54A控制口地址CTRL55EQU 303H;82C55A控制口地

11、址DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,CTRL54MOV AL,0B6H;82C54A方式字OUT DX,ALMOV DX,CTRL55MOV AL,80H;82C55A方式字OUT DX,ALMOV AL,0CHOUT DX,AL;PC6=0,关82C54ACALL LOAD;装入计数初值波特率时钟发生器的软件编程波特率时钟发生器的软件编程( (续续) );给82C54A装入计数初值的子程序LOADPROC NEARPUSH AXPUSH DXMOV DX,DATA54MOV AX

12、,TCOUT DX,ALMOV AL,AHOUT DX,ALPOP DXPOP AXRETLOADENDPCODEENDSEND STARTMOV DX,CTRL55MOV AL,0DH;PC6=1,启动82C54AOUT DX,ALNOPLOP:MOV AH,08HINT 21HCMP AL,1BH;检测ESC键JNE LOPMOV DX,CTRL55MOV AL,0CH;关闭82C54AOUT DX,ALMOV AX,4C00HINT 21H11.3 11.3 串行通信中的数据格式串行通信中的数据格式通信控制规程通信控制规程(传输控制规程、通信协议传输控制规程、通信协议)数据格式、同步方式

13、、传输速度、检错纠错方式、控制字符定义等11.3.1 11.3.1 起止式异步通信数据格式起止式异步通信数据格式1. 特点特点字符随机出现在数据流中字符之间有不定长的空闲位靠起始位和停止位定界1帧数据高可靠高可靠 低效率低效率11.3.1 11.3.1 起止式异步通信数据格式起止式异步通信数据格式( (续续) )2. 2. 起止式数据帧格式起止式数据帧格式起始位:起始位:1位,低电平数据位:数据位:58位,先低位后高位校验位:校验位:1位/0位,奇偶校验停止位:停止位:1位、1.5位或2位,高电平空闲 位停止位 1,1.5奇偶校验数据位(58位)起始位不限或2位有/无(先低后高位)1位0/10

14、1110/10/10/10/10/10LSBMSB第n个字符第n+1个字符712位位3. 3. 起起/ /止位的作用止位的作用定界一帧数据定界一帧数据建立收发双方同步:建立收发双方同步:起始位标志一帧开始,停止位标志着结束11.3.2 11.3.2 面向字符的同步通信数据格式面向字符的同步通信数据格式特点:特点:u一帧由一个数据块(若干字节)组成,以12个同步字符开始u控制字符定界数据和控制传输SYNCSYNC:同步字符,单同步加1个,双同步加2个SOHSOH:序始,引导标题标题:标题:源地址、目标地址、路由等附加信息STXSTX:文始,引导正文ETB/ETXETB/ETX:组终/文终,当正文

15、很长,分n帧传送时,前n-1帧用ETB,最后1帧用ETXBCCBCC:块校验(从SOH到ETB/ETX),纵横奇偶校验或CRC校验 SYNCSYNCSOH标题STX数据块ETB/ETXBCC11.4 11.4 串行通信接口标准串行通信接口标准11.4.1 RS-232C11.4.1 RS-232C接口标准接口标准1. 关于关于RS-232C接口标准的说明接口标准的说明EIA与BELL公司1969年公布,020000b/s,数据终端设备(DTE)与数据通信设备(DCE)通信;接收和发送针对终端而言2. 信号线定义信号线定义数据线:数据线:TXDTXD(发送数据),DTEDCE;RXDRXD(接收

16、数据),DCEDTE状态线:状态线:DTRDTR(DTE准备好),DTEDCE;DSRDSR(DCE准备好),DCEDTE联络线:联络线:RTSRTS(请求发送),DTEDCE;CTSCTS(允许发送),DCEDTE振铃信号:振铃信号:RIRI(MODEM已收到交换台的呼叫信号),DCEDTE载体检出信号:载体检出信号:DCDDCD(MODEM已收到数据载波信号),DCEDTE信号地线:信号地线:SGSG(公共地线)11.4.1 RS-232C11.4.1 RS-232C接口标准接口标准3.3.信号线的使用信号线的使用(1)远程通信使用MODEM和电话线TxDRxDRTSCTSDTRDSRRI

17、DCDSG串口调制解调器计算机TxDRxDRTSCTSDTRDSRRIDCDSG串口调制解调器计算机电话线注:注:若不通过交换式电话系统,而使用专用线,则不用RI11.4.1 RS-232C11.4.1 RS-232C接口标准接口标准3.3.信号线的使用信号线的使用(2)近程通信(15m以内)零MODEM方式,微机通信中常用DTETxDRxDDTRDSRRTSCTSSGDTETxDRxDDTRDSRRTSCTSSGuTxD与RxD交叉相连:可实现全双工通信uDTR与DSR反馈相连:只要终端准备好就认为DTE和DCE都准备好uRTS与CTS反馈相连:随时都可以发送11.4.1 RS-232C11

18、.4.1 RS-232C接口标准接口标准4.4.电气特性电气特性(1)RS-232C标准对信号的逻辑定义(EIA逻辑)逻辑逻辑1 1:-5V-15V,负载端要求小于-3V逻辑逻辑0 0:+5V+15V,负载端要求大于+3V(2)EIA与TTL之间的转换EIA:电压极性、负逻辑TTL:电压幅值、正逻辑不兼容不兼容发送:TTL EIA,MC1488,SN75150接收:EIA TTL,MC1489,SN75154MAX232可双向转换11.4.1 RS-232C11.4.1 RS-232C接口标准接口标准( (续续) )RXDTXDRTSCTSDSRSGDCD发送电流(+)发送电流(-)13142

19、34567891120222518接收电流(-)接收电流(+)RIDTRRXDTXDRTSCTSDSRSGDCD43267891RIDTR55. 5. 机械特性机械特性(1)连接器连接器DB-25型(还支持20MA电流环接口)DB-9型(2)通信电缆长度通信电缆长度速率低于20kb/s,误码率4%15米实际误码率允许10%20%,15米保守RS-232C缺点:缺点:单端发送和接收,易受共模干扰直接传输距离短,速率低;只能单点对单点通信11.4.2 RS-48511.4.2 RS-485接口标准接口标准1. RS-4851. RS-485接口标准的新概念与新定义接口标准的新概念与新定义(1)(1

20、)采用双线平衡方式传输采用双线平衡方式传输(2)(2)采用电位差值定义信号逻辑采用电位差值定义信号逻辑逻辑逻辑1 1:AA电平比BB高200mV;逻辑逻辑0 0:AA电平比BB低200mV(3)(3)允许多点对多点通信允许多点对多点通信(4)(4)采用采用4 4芯水晶头连接器芯水晶头连接器更方便方便且便宜便宜MAX491RS-485电平MAX491AABB平衡发送器差动接收器11.4.2 RS-48511.4.2 RS-485接口标准接口标准2. 2. 平衡发送器平衡发送器/ /差动接收器的作用差动接收器的作用MAX485用于半双工;MAX491可用于全双工(1)(1)收发器芯片收发器芯片MA

21、X485MAX485和和MAX491MAX491的引脚功能的引脚功能引脚引脚名称名称功能功能MAX485MAX49112RO接收器输出:当VA-VB+200mV时,RO=1;当VA-VB-200mV时,RO=023RE接收器输出允许:当RE=0时,允许输出;当RE=1时,输出呈高阻(三态)34DE驱动器输出允许:当DE=1时,允许输出;当DE=0时,输出呈高阻(三态)45DI驱动器输入:当DI=0时,Y=0,Z=1;当DI=1时,Y=1,Z=056, 7GND接地-9Y驱动器非反向输出-10Z驱动器反向输出6-A接收器非反向输入和驱动器非反向输出-12A接收器非反向输入7-B接收器反向输入和驱

22、动器反向输出-11B接收器反向输入814VCC正电源:4.75V VCC 5.25V11.4.2 RS-48511.4.2 RS-485接口标准接口标准2. 2. 平衡发送器平衡发送器/ /差动接收器的作用差动接收器的作用(2)(2)信号的逻辑定义信号的逻辑定义当差动输入VA-VB+200mV时,输出为逻辑1当差动输入VA-VB-200mV时,输出为逻辑0发送端发送端(驱动器驱动器)接收端接收端(接收器接收器)输入(DI)输出输入输出(RO)Y(A)Z(B)VA-VB110+0.2V1001-0.2V011.4.2 RS-48511.4.2 RS-485接口标准接口标准3. RS-4853.

23、RS-485接口标准的特点接口标准的特点采用差动发送/接收和双绞线共模抑制比高,抗干扰能力强传输速率高,可达10Mb/s(传输15m),传输信号摆幅小(200mV)传输距离长,不使用MODEM,采用双绞线,传输距离为1.2km(100kb/s)能实现多点对多点通信4. RS-4854. RS-485接口标准在多点对多点通信中的应用接口标准在多点对多点通信中的应用在一对平衡传输线的两端配置终端电阻后,最多可实现32个驱动器和32个接收器共用同一传输线的多点对多点通信11.4.3 RS-232C11.4.3 RS-232C与与RS-485RS-485的转换的转换发送端:发送端:将TXD发出的数据经

24、MAX485/491转换为差动信号通过双绞线送出接收端:接收端:将双绞线传来的差动信号经MAX485/491转换为单根数据信号由RXD接收进来11.5 11.5 串行通信接口电路串行通信接口电路11.5.1 11.5.1 串行通信接口的基本任务串行通信接口的基本任务(1)实现数据格式化异步:起止位的处理;同步:SYN等的处理(2)进行串-并转换发送:并串;接收:串并(3)进行错误检测(4)提供符合RS-232C接口标准的信号线远程9根,近程3根(5)进行TTL与EIA逻辑关系及逻辑电平的转换(6)进行数据传输速率的控制选择和控制波特率11.5.2 11.5.2 串行通信接口电路的组成串行通信接

25、口电路的组成可编程串行通信接口芯片(同步收/发器、异步收/发器)、波特率时钟发生器、EIA与TTL转换器、地址译码电路常用串行通信接口芯片:常用串行通信接口芯片:16450、8250、16550、8251A11.6 11.6 用户扩展的串行通信接口用户扩展的串行通信接口8251A8251A支持异步起止式和同步面向字符的数据格式11.6.1 8251A11.6.1 8251A的外部特性的外部特性(28引脚)1. 面向面向CPU的引脚的引脚(13)D07、CS、RD、WRC/D:端口选择;=0,数据口;=1命令口或状态口RESET:复位,高有效,复位后等待接收方式字2. 面向面向MODEM的引脚的

26、引脚(6)6根RS-232C标准信号线:TXD、RXD、DTR、DSR、RTS、CTS3. 状态及时钟信号状态及时钟信号(7) TXRDY/RXRDY发送/接收准备好,高有效,引发中断或供CPU查询TXEMPTY发送器空,高有效,半双工方式用于传输方向切换SYNDETSYN检出,同步通信中表示接收端已收到同步字符TXC/RXC发送/接收时钟;CLK工作时钟11.6.2 8251A11.6.2 8251A的编程模型的编程模型1. 1. 内部结构内部结构发送器和接收器:发送器和接收器:串-并转换;格式化;奇偶校验;接收/发送读读/ /写控制逻辑:写控制逻辑:方式命令/工作命令/状态字/数据扩展扩展

27、8251A8251A的地址:的地址:数据口308H,控制口/状态口309H读/写控制 逻辑数据总线缓冲器D0D7CLKRDWR调制控制CSC/DRESETDTRCTSDSRRTS发送缓冲器发送控制接收缓冲器接收控制发送器接收器TxDTxEMPTYTxRDYTxCRxDSYNDETRxRDYRxC11.6.2 8251A11.6.2 8251A的编程模型的编程模型2. 2. 通信方式命令通信方式命令指定8251A的通信方式及数据帧格式S1S0EPPENL1L0B1B0停止位奇偶校验字符长度波特率因子00:同步 01:1 10:16 11:64异步00:5位 01:6位 10:7位 11:8位 0

28、:无校验 01:奇校验 11:偶校验00:不用 01:1位 10:1.5位 11:2位 异步:停止位0:内同步 1:外同步 0:双同步 1:单同步 同步:同步方式MOV DX,309HMOV AL,0DAHOUT DX,AL例:例:异步通信,7位数据位, 奇校验,2位停止位,波特率因子16 同步通信,字符长度8位,双同步字符,内同步,奇校验MOV DX,309HMOV AL,1CHOUT DX,AL11.6.2 8251A11.6.2 8251A的编程模型的编程模型3. 3. 工作命令工作命令控制串口内部复位、发送、接收、清除错误标志等EHIRRTSERSBRKRxENDTRTxEN进入搜索方

29、式内部复位1:复位发送请求错误标志复位1:复位发中止符接收允许DTE准备好发送允许异步通信,允许发送和接收异步通信,允许发送和接收MOV DX,309HMOV AL,05HOUT DX,AL利用利用IR=1IR=1,对芯片进行内部复位,对芯片进行内部复位MOV DX,309HMOV AL,40H;只要IR=1即可实现复位OUT DX,AL11.6.2 8251A11.6.2 8251A的编程模型的编程模型4. 4. 状态字状态字向CPU提供何时能发送/接收及接收是否有错误的信息FEFE=1,格式错,只用于异步方式,即停止位接收错OEOE=1,溢出错,溢出的字符丢失PEPE=1,奇偶校验错由ER

30、=1的工作命令字复位DSRSYNDETFEOEPETXERXRDYTXRDYDCE就绪同步字符检出格式错溢出错奇偶错发送器空接收准备好发送准备好; ;发送一个数据发送一个数据(SI)(SI) MOV DX,309HL: IN AL,DX AND AL,01H JZ L ;TXRDY=0等待 MOV DX,308H ;TXRDY=1发送 MOV AL,SI OUT DX,AL; ;接收一个数据接收一个数据( (存入存入DI)DI) MOV DX,309HL: IN AL,DX TEST AL,38H JNZ ERR ;出错转出错处理 AND AL,02H JZ L ;RXRDY=0等待 MOV

31、DX,308H ;RXRDY=1接收 IN AL,DX MOV DI,AL11.6.3 8251A11.6.3 8251A的初始化的初始化1. 1. 初始化内容初始化内容(空操作)、内部复位、方式命令、工作命令2. 2. 初始化顺序初始化顺序8251A的方式命令和工作命令写入同一端口,且无特征位 区分方式区分方式:按规定的顺序写入,复位方式命令字工作命令字1(D61)工作命令字2注:注:同步方式同步方式的初始化还要设置同步字符复位操作方式命令字同步?双同步?同步字符工作命令字D6=1?同步字符YNNYYN对C/D=1写异步方式下命令字写入流程异步方式下命令字写入流程复位操作方式命令字工作命令字

32、D6=1?YN例:例:异步通信,7位数据位,奇校验,2位停止位,波特因子16,写入方式字的程序段MOV DX,309HMOV AL,01H;方式命令或工作命令OUT DX,ALMOV AL,40H;内部复位命令OUT DX,ALMOV AL,0DAH;方式命令OUT DX,AL11.6.4 11.6.4 基于基于8251A8251A的串行通信接口设计的串行通信接口设计RS-232C标准例例8.48.4 甲向乙发送2DH个字节,异步方式,8位数据,2位停止位,无校验,波特率因子64,波特率4800b/s;查询方式,零MODEM连接,8251A地址308H、309H硬件设计:硬件设计:甲、乙机方式

33、命令:0CFH甲机发送工作命令:37H; 乙机接收工作命令:14H波特率发生器甲 CPU乙 CPUEIA/TTL转换EIA/TTL转换8251ATxDRxDSGRxCTxC8251ATxDRxDSGRxCTxC波特率发生器8251A8251A应用的软件编程应用的软件编程甲机发送程序DATASEGMENTBUF_T DB 45 DUP(?)DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,309HMOV AL,01H;空操作OUT DX,ALMOV AL,40H;内部复位OUT DX,ALNOPM

34、OV AL,0CFH;方式命令OUT DX,ALMOV AL,37H;工作命令OUT DX,ALMOV SI,OFFSET BUF_TMOV CX,2DHL1:MOV DX,309HIN AL,DXAND AL,01HJZ L1 ;TXRDY=0等待MOV DX,308H;TXRDY=1发送MOV AL,SIOUT DX,ALINC SIDEC CXJNZ L1;未发完继续MOV AX,4C00HINT 21HCODEENDSEND START8251A8251A应用的软件编程应用的软件编程乙机接收程序DATASEGMENTBUF_R DB 45 DUP(?)DATAENDSCODESEGME

35、NTASSUME CS:CODE,DS:DATABEGIN: MOV AX,DATAMOV DS,AXMOV DX,309HMOV AL,01H;空操作OUT DX,ALMOV AL,40H;内部复位OUT DX,ALNOPMOV AL,0CFH;方式命令OUT DX,ALMOV AL,14H;工作命令OUT DX,ALMOV DI,OFFSET BUF_RMOV CX,2DHL2:MOV DX,309HIN AL,DXTEST AL,38H;是否有错误JNZ ERR;转出错处理AND AL,02HJZ L2 ;RXRDY=0等待MOV DX,308H;RXRDY=1接收IN AL,DXMOV

36、 DI,ALINC DILOOP L2;未收完继续JMP EXITERR:(略)EXIT:MOV AX,4C00HINT 21HCODEENDSEND BEGIN8.6.4 8.6.4 基于基于8251A8251A的串行通信接口设计的串行通信接口设计RS-485标准( (略略) )例例8.58.5 甲乙全双工方式异步通信,零MODEM连接,双方将各自键盘上的按键发给对方,按ESC键退出,7位数据位,1位停止位,无校验,波特率因子16,8251A地址308H、309H硬件设计:硬件设计:ZCPU总线插槽OSCRXD8251ATXDTXCRXC82C54AOUT2CLK2GATE282C55APC

37、612MAX491RODEREDIVCCGNDABYBYZAREDIDEROTXDVCCGNDRXDMAX491接线盒BYZAREDIDEROTXDVCCGNDRXDMAX491三总线RS-485RS-485全双工异步串行通信程序流程图全双工异步串行通信程序流程图开始结束8251A初始化查键盘有键按下?是ESC键?显示发送字符发送准备好?发送1个字符是ESC?接收1个字符接收准备好?显示接收字符返回DOSTXRDY=1?YNYNYYYNRXRDY=1?NNRS-485RS-485全双工异步串行通信汇编语言程序全双工异步串行通信汇编语言程序DATASEGMENTDATA51EQU 308HCTR

38、L51EQU 309HERROR_MESS DB DATA IS BAD!,0DH,0AH,$DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATABEGIN:MOV AX,DATAMOV DS,AXMOV DX,CTRL51;8251A初始化XOR AX,AX;空操作LL:CALL CHAR_OUTMOV AL,40H;8251A内部复位OUT DX,ALMOV AL,4AH;8251A方式命令OUT DX,ALMOV AL,37H;8251A工作命令OUT DX,ALKB_TR:MOV AL,0BHINT 21H;有按键?CMP AL,0JE RECEIVE;没

39、按键,判能否接收MOV AH,1INT 21HCMP AL,1BH;按下ESC键?JZ OVERRS-485RS-485全双工异步串行通信汇编语言程序全双工异步串行通信汇编语言程序( (续续) )ERROR:LEA DX,ERROR_MESSMOV AH,09HINT 21H;出错提示JMP KB_TROVER:MOV AX,4C00HINT 21HCHAR_OUTPROC NEAR;输出并延时子程序OUT DX,ALPUSH CXMOV CX,100;延时GG:LOOP GGPOP CXRETCHAR_OUTENDPCODEENDSEND BEGINMOV BL,ALTRANSMIT: MO

40、V DX,CTRL51IN AL,DXTEST AL,01H;TXRDY=1?JZ TRANSMITMOV DX,DATA51MOV AL,BLOUT DX,AL;发送1个数JMP KB_TRRECEIVE:MOV DX,CTRL51IN AL,DXTEST AL,38H;是否有错JNZ ERRORTEST AL,02H;RXRDY=1?JZ KB_TRMOV DX,DATA51IN AL,DXMOV DL,ALMOV AH,02HINT 21H;显示字符JMP KB_TR11.7 11.7 系统配置的串行通信接口系统配置的串行通信接口( (略略) )1655016550支持RS-232C标准

41、;可实现异步全双工通信;更强的中断控制能力;内置波特率时钟发生器和16B的FIFO数据存储器11.7.1 1655011.7.1 16550的外部引脚特性的外部引脚特性(40引脚)引脚名称引脚名称方方向向功能说明功能说明D0D7双向系统与16550传输数据、命令和状态的数据线A0A2输入16550内部寄存器寻址信号,可寻址8个端口CS0 CS1 CS2输入3个片选信号全部有效才选中16550TXRDY输出发送器准备好,用于申请DMA方式发送数据RXRDY输出接收器准备好,用于申请DMA方式接收数据ADS输入地址选通,低有效可锁存地址信号RD RD输入读,2个信号中只要1个有效即可进行读操作WR

42、 WR输入写,2个信号中只要1个有效即可进行写操作DDIS输出驱动器禁止,高有效用于禁止外部驱动器对系统总线的驱动MR输入主复位,高有效,迫使16550进入复位状态INTR输出中断请求,高有效SIN输入串行数据输入SOUT输出串行数据输出XIN输入16550工作的基准时钟RCLK输入接收时钟XOUT输出是XIN的输出,可作为其他定时信号BAUDOUT输出波特率输出信号,是XIN分频后的输出,常与RCLK相连OUT1 OUT2输出用于用户自定义功能(如开放/禁止中断)DTR DSR RTS CTS RI DCDRS-232C接口标准的同名引脚11.7.2 1655011.7.2 16550的编程

43、模型的编程模型1. 165501. 16550的内部寄存器的内部寄存器11个可访问的寄存器2. 2. 内部寄存器的端口地址共用问题内部寄存器的端口地址共用问题波特率除数寄存器访问位DL(LCR的D7位)读/写RBR与THR;IIR与FCRDL被访问的寄存器被访问的寄存器A2 A1 A0COM1端端口口COM2端端口口0接收缓冲寄存器RBR(读)与发送保持寄存器THR(写)0 0 03F8H2F8H0中断允许寄存器IER0 0 13F9H2F9H1波特率除数寄存器低字节DLL0 0 03F8H2F8H1波特率除数寄存器高字节DLM0 0 13F9H2F9H中断识别寄存器IIR(读)与FIFO控制

44、寄存器FCR(写)0 1 03FAH2FAH线路控制寄存器LCR0 1 13FBH2FBHMODEM控制寄存器MCR1 0 03FCH2FCH线路状态寄存器LSR1 0 13FDH2FDHMODEM状态寄存器MSR1 1 03FEH2FEH暂存Scratch1 1 13FFH2FFH11.7.2 1655011.7.2 16550的编程模型的编程模型3. 165503. 16550内部寄存器的格式内部寄存器的格式(1)(1)线路控制寄存器线路控制寄存器LCRLCR例:例:8位数据位,2位停止位,偶校验,无附加位,无间隔发送,禁除数锁存MOV DX,3FBHMOV AL,1FHOUT DX,AL

45、(2)(2)线路状态寄存器线路状态寄存器LSRLSRDLSBSTPPESL1L0允许除数锁存1:允许发送间隔1:SOUT上发间隔附加位1:有校验类型1:偶校验校验允许1:允许停止位0:1位;1:1.5或2位数据长度0011:58位ERTETHBIFEPEOEDR1:FIFO中至少一个错误1:发送器空1:发送器就绪1:接收间隔1:帧错误1:奇偶错1:超限错1:FIFO中有数据例:例:收发处理的程序段START:MOV DX,3FDHIN AL,DXTEST AL,1EH ;有错?JNZ ERRTEST AL,01H ;接收?JNZ RECEIVETEST AL,20H ;发送?JNZ TRANS

46、JMP START11.7.2 1655011.7.2 16550的编程模型的编程模型3. 165503. 16550内部寄存器的格式内部寄存器的格式(3)(3)中断允许寄存器中断允许寄存器IERIER例如:例如:只允许接收和发送中断01H(4)(4)中断识别寄存器中断识别寄存器IIRIIRID2ID1ID0PN无效中断识别码0:有未决中断例如:例如:检查是否有接收中断MOV DX,3FAHIN AL,DXCMP AL,04HJE RECV_INT0000EMELETER不用,写01:允许MODEM中断1:允许接收器错误中断1:允许发送器中断1:允许接收器中断 16550的中断类型及优先级的中

47、断类型及优先级ID2 ID1 ID0 PN优先级类型复位控制0 0 0 1没有中断0 1 1 01接收器错误(奇偶校验、帧、超限)通过 读线路寄存器复位0 1 0 02接收器准备好通过读数据复位1 1 0 02字符超时通过读数据复位0 0 1 03发送器准备好通过写发送器复位0 0 0 0MODEM状态中断通过读MODEM状态复位11.7.2 1655011.7.2 16550的编程模型的编程模型3. 165503. 16550内部寄存器的格式内部寄存器的格式(5)FIFO(5)FIFO控制寄存器控制寄存器FCRFCR是否允许使用FIFO及FIFO产生中断的深度(6)(6)波特率除数寄存器波特

48、率除数寄存器16位分频系数,分高字节DLM和低字节DLL除数除数= = CLKCLK ( (波特率波特率 16)16)例如:例如:16550对1.8432MHz进行分频,要求波特率为19200b/s,则除数=6MOV DX,3FBHMOV AL,80H;除数寄存器访问位DL=1OUT DX,ALMOV DX,3F8HMOV AL,06H;写除数低字节OUT DX,ALMOV DX,3F9HMOV AL,0;写除数高字节OUT DX,ALRT1RT000DMAXMIT RSTRECV RSTEN接收器触发器值00:FIFO中有1B01:4B;10:8B;11:14BDMA方式控制0:奇校验;1:偶校验1:复位发送器FIFO1:复位接收器FIFO1:允许FIFO11.7.2 1655011.7.2 16550的编程模型的编程模型3. 165503. 16550内部寄存器的格式内部寄存器的格式(7)(7)数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论