微机系统串行通信接口.ppt

上传人:小飞机 文档编号:6572861 上传时间:2023-11-13 格式:PPT 页数:101 大小:1.94MB
返回 下载 相关 举报
微机系统串行通信接口.ppt_第1页
第1页 / 共101页
微机系统串行通信接口.ppt_第2页
第2页 / 共101页
微机系统串行通信接口.ppt_第3页
第3页 / 共101页
微机系统串行通信接口.ppt_第4页
第4页 / 共101页
微机系统串行通信接口.ppt_第5页
第5页 / 共101页
点击查看更多>>
资源描述

《微机系统串行通信接口.ppt》由会员分享,可在线阅读,更多相关《微机系统串行通信接口.ppt(101页珍藏版)》请在三一办公上搜索。

1、,微型计算机接口技术第十章 微机系统串行通信,2023/11/13,2,内容简介,10.1 串行通信基础,10.2 可编程串行异步通信接口芯片8250,10.3 8250初始化编程,10.4 串行通信的外部环境,10.5 串行通信程序设计举例,第十章 微机系统串行通信,10.1 串行通信基础,2023/11/13,4,一、计算机的通信方式,CPU与外部的信息交换称为通信。从数据的传送方式上,通信可分为:并行通信:数据所有位同时被传输;串行通信:数据被逐位顺序传送。串行通信根据收发双方同步方式划分为:串行同步通信;串行异步通信。同等条件下的通信速度:并行通信 串行同步通信 串行异步通信,2023

2、/11/13,5,二、串行通信数据传输方式,串行通信系统模型,对于一个通信系统,必须要考虑的问题有以下几个方面:信道的带宽和数据的传输速率;信号的调制与解调;串行通信的信号格式等。,2023/11/13,6,1、单工方式单工方式只允许数据按照一个固定的方向传送;2、半双工方式收发双方均具备接收和发送数据的能力,但只有一条信道,数据不能同时在两个方向上传送;3、全双工方式收发双方均可同时进行数据接收和发送。,数据传输方式,2023/11/13,7,并行通信与串行通信,在数据的传送过程中,根据一次传送数据位数的多少,可以划分为并行通信方式和串行通信方式。并行通信方式:所有数据位在一个单位时间同时传

3、送。速度快,但需要传输通道多(8,16,64),成本高。适合近距离、高速数据通信。串行通信方式:在一个方向只需一个传输通道,但一个单位时间只能传输一个数据位,需要多个单位时间才能完成一个数据的传送。相对传输速度较慢,但成本低,适合远距离数据通信。时间换成本。,2023/11/13,8,同步与异步,在数据的传送过程中,为了保证接收数据可靠准确,接收方必须与发送方所发送的数据保持正确的速率和相位关系,即收发双方的同步。位同步:每个数据位都需要准确的同步;字符同步:准确识别每个数据传送开始(字节,字符);数据组同步:准确识别数据块传送开始。串行通信可划分为:串行同步通信:数据组同步,同时实现字符同步

4、;串行异步通信:数据字符同步。不管是同步或异步方式,都需要位同步。,2023/11/13,9,串行异步通信,在发送每一个字符代码(即字符的数据位)时,都要在前面加上一个起始位,表示一个字符的开始;后面加上一个停止位,表示一个字符的结束。字符间隔为任意时间。,异步传输方式以字符为单位传输,每个字符都有起始位和停止位,又称为起止式同步。由于所传输的两个字符之间间隔可以是任意时间长度,因此又称为异步传输方式。接收方可以根据字符之间从停止位到起始位的跳变,即由“1”变“0”的下降沿来识别一个字符的开始,进行取样,直到取样完约定的数据位数,完成整个字符的接收。,串行异步通信,优点:实现字符同步比较简单,

5、同时由于一个字符的数据位数较少(58位),收发双方的同步时钟信号要求不十分严格,允许存在一定的误差,因此时钟信号可以收发双方各自独立产生。每个字符可以使用简单的差错校验方式检测传输时可能的差错。缺点:对每个字符都需加入起始位和终止位,因而传输效率低。,串行异步通信,同步传输(数据组级同步):以一组数据(几百几千字节)为单位进行传输,利用特殊的字符或比特组合标志数据组传输的开始和结束,实现收发双方的同步。这样的数据组称为数据块,数据包或帧。,串行同步通信,以固定的时钟节拍来发送数据信号,因此在一个串行数据流中,各信号码元间隔一定,数据字符间隔一定。数据的发送一般以组(或帧)为单位,采用帧同步方式

6、,同时实现字符同步。优点:不需要单独加起始位和终止位,故具有较高的传输效率。缺点:收发双方必须建立准确的时钟信号,实现起来比较复杂。往往需要专门的时钟传输信号线路。,串行同步通信,2023/11/13,14,三、串行异步通信协议,标准串行异步通信数据帧格式,2023/11/13,15,1、奇偶校验位(可选)奇校验:数据位与校验位中1的总个数为奇数。偶校验:数据位与校验位中1的总个数为偶数。通信双方约定采用一致的奇偶校验方式,由发送方设置校验位,由接收方负责校验。奇偶校验码编码效率较高,能检测出一个码字内的所有奇数个错误,但不能发现偶数个错误,也不能纠错。奇偶校验对于干扰持续时间很短,差错常常为

7、单个状态出现的状态下较为可靠。,2、一帧数据发送时序异步通信时,一帧字符以起始位0开始,紧跟着是数据位(先发数据最低位,后发高位)、奇偶校验位(可选),最后以停止位结束。无数据传送时,通信线保持为逻辑1。,三、串行异步通信协议,2023/11/13,16,3、通信速率(传码速率、数据传输速率)通信速率,一种是传码速率,又称波特率,表示每秒钟传送的信号代码个数(包括起始位、数据位、校验位、停止位),单位为“波特”。(信号代码不一定只有0,1状态)另一种是数据传输速率,又称为比特率,表示每秒钟传送的 0、1二进制信息代码个数,单位为“比特/秒”。(bit/s,bits per second,bps

8、)比特率,异步通信传送中,收、发双方必须约定:收发双方的通信速率必须一致;收发双方的数据帧格式必须一致。,三、串行异步通信协议,2023/11/13,17,例如:传送一个字符“E”,(ASCII码为:1000101B=45H),串行数据帧格式为:7个数据位、奇校验、2个停止位。画出其串行通信帧格式。,三、串行异步通信协议,2023/11/13,18,数据通信传输的是数字信号,要求传送线的频带很宽,而在长距离传送时,有时是利用电话线传送的,而电话线的带宽为 300 3000 Hz,若直接传输数字信号,信号就要发生畸变。因此,需用调制器将数字信号转换成模拟信号传输再用解调器将其转换成数字信号。,四

9、、信号的调制与解调,2023/11/13,19,调制(Modulation):用一个信号控制另一个信号(载波)的某个参数随之变化的过程,叫调制。这两个信号分别叫调制信号和被调信号,被调信号只作为传输过程中信息的载体,也叫载波。解调(Demodulation):将已经调制的信号恢复成原来的数字信号的过程(从已调信号中提取调制信号)。所以,调制解调器的英文名为:MODEM。不同的传输方式和传输介质,使用的调制解调器工作原理各不相同,但都是实现信号的转换。,四、信号的调制与解调,2023/11/13,20,计算机或数据终端设备是多种多样的,由于传输方式、传输线路的不同,调制解调设备也是多种多样的。要

10、进行串行通信,必须要解决一个问题:计算机/终端与MODEM怎样连接?通过串行通信接口连接。通信接口的机械特性、电气特性、功能特性、规程特性都要遵循一定的规范,也就是要有一个统一的标准。目前计算机通信使用最普遍的是RS-232C标准。该标准对串行通信中的关键问题作了规定:接口形状及引脚排列,信号的电平标准,控制信号的功能定义,操作规程。,五、串行通信接口标准,2023/11/13,21,(1)引脚排列和信号的功能定义(机械特性,功能特性)PC系列机有两个串行口:即COM1和COM2,使用9针和25针两种连接器,符合RS-232C接口标准。,五、串行通信接口标准,2023/11/13,22,RS-

11、232C使用25芯连接器和9芯连接器机械特性和功能特性,五、串行通信接口标准,2023/11/13,23,功能特性:标准定义了25针连接器中的信号连接线的功能。(常用的9根信号线),五、串行通信接口标准,2023/11/13,24,常用的9芯串行口的引脚定义如下:,五、串行通信接口标准,2023/11/13,25,(2)信号电平标准(电气特性),标准规定:逻辑“1”信号,电平在 3V-15V 之间;逻辑“0”信号,电平在+3V+15V 之间;因此,使用RS-232C与微机接口时,需要将TTL电平(0 5V)与RS-232C电平进行转换。,五、串行通信接口标准,2023/11/13,26,用RS

12、-232C接口直接连接系统使用RS-232C接口连接系统时,分为直接电缆连接方式和通过调制解调器连接方式两种;直接电缆连接为近程连接,低速(不超过9600bps)下连接距离不超过15米;,五、串行通信接口标准,2023/11/13,27,用RS-232C接口连接系统调制解调器连接称为远程连接,通过Modem接入电话网,可连接世界上任何接入电话网络的主机,理论上连接距离不受限制。,五、串行通信接口标准,2023/11/13,28,MC1488:TTL电平RS232电平(用于发送方)MC1489:TTL电平RS232电平(用于接收方),TTL电平和RS-232电平的转换使用电平转换芯片MC1488

13、、MC1489进行转换,五、串行通信接口标准,2023/11/13,29,TTL电平和RS-232电平的转换使用电平转换芯片MAX232/3232进行转换,另外一组收发信号有时用于RTS/CTS或者DTR/DSR的控制,五、串行通信接口标准,2023/11/13,30,TTL电平和RS-232电平的转换使用MAX3243进行DTE类通信及控制线的电平转换,五、串行通信接口标准,2023/11/13,31,TTL电平和RS-232电平的转换使用MAX3238进行DCE类通信及控制线的电平转换,五、串行通信接口标准,第十章 微机系统串行通信,10.2 可编程串行异步通信接口芯片8250,2023/

14、11/13,33,可编程串行异步通信接口芯片8250,能实现数据串 并变换,实现全双工异步通信支持异步通信协议,数据格式、通信速率等由初始化 编程设定内部有MODEM控制器,可直接和MODEM相连内部有中断机制,CPU可用查询、中断方式与之交换信息,PC机有2个串行口:主串口3FXH、辅串口2FXH 高档微机中,8250的功能被一些多功能芯片取代,如16C550,16C552(2串1并口),2023/11/13,34,发送保持寄存器,发送移位寄存器并串,接收移位寄存器串并,接收缓冲寄存器,波特率发生器,发送器时钟 f TXC,接收器时钟 f RXC,Sout,Sin,CPUD7D0,8,8,8

15、250内部结构,2023/11/13,35,发送保持寄存器,发送移位寄存器并串,波特率发生器,发送器时钟 f TXC,Sout,CPUD7D0,8,8250工作原理,2023/11/13,36,Sin,接收器时钟 f RXC,接收缓冲寄存器,接收移位寄存器串并,波特率发生器,CPUD7D0,8,8250工作原理,8250的内部结构,2023/11/13,38,8250内部寄存器从使用角度来说有10个,分成3类一类:2个数据寄存器在系统机中的口地址 发送保持寄存器(THR)3F8H/2F8H 写入 接收缓冲寄存器(RHR)3F8H/2F8H 读出二类;5个命令字寄存器 通信线控制寄存器(LCR)

16、3FBH/2FBH 2个除数寄存器3F8H/2F8H(除数的低8位)3F9H/2F9H(除数的高8位)中断允许寄存器(IER)3F9H/2F9H MODEM控制寄存器(MCR)3FCH/2FCH三类:3个状态寄存器 通信线状态寄存器(LSR)3FDH/2FDH 中断识别寄存器(IIR)3FAH/2FAH MODEM 状态寄存器(MSR)3FEH/2FEH,8250内部结构,2023/11/13,39,8250内部控制寄存器地址安排,对于串口1,BASE=3F8H 对于串口2,BASE=2F8H,8250内部结构,2023/11/13,40,(1)BASE+0:接收数据缓冲寄存器(只读),(2)

17、BASE+0:发送数据暂存寄存器(只写),对于串口1,BASE=3F8H 对于串口2,BASE=2F8H,8250内部寄存器功能,2023/11/13,41,(3)BASE+1:中断允许寄存器IER(只写),ERBI=1允许接收数据准备好中断ETBEI=1允许发送缓冲器空中断ELSI=1允许线路状态变化中断EMSI=1允许Modem状态变化中断,对于串口1,BASE=3F8H 对于串口2,BASE=2F8H,8250内部寄存器功能,2023/11/13,42,(4)BASE+2:中断识别寄存器IIR(只读),IID 2,1,0表示中断源类型,具体内容见下页表,8250内部寄存器功能,对于串口1

18、,BASE=3F8H 对于串口2,BASE=2F8H,2023/11/13,43,(4)BASE+2:中断识别寄存器IIR(只读),8250内部寄存器功能,对于串口1,BASE=3F8H 对于串口2,BASE=2F8H,2023/11/13,44,MOV DX,3FAHIN AL,DXCMP AL,0JZ MODEM中断CMP AL,2JZ 发送中断CMP AL,4JZ 接收中断CMP AL,6JZ 字符错中断,8250内部寄存器功能,8250中断源的识别,对于串口1,BASE=3F8H 对于串口2,BASE=2F8H,2023/11/13,45,中断识别寄存器的特点:低3位反映中断的发生情况

19、,高5位始终固定 为0 此特点用于检测系统中I8250是否存在 MOV DX,3FAHIN AL,DXTEST AL,0F8HJZ 有8250JNZ 没有8250,8250内部寄存器功能,2023/11/13,46,(5)BASE+3:线路控制寄存器LCR(只写),WLS1,WLS0 数据位长度选择,四种编码对应数据位长度分别为5,6,7,8bitSTB停止位长度选择,为0选择停止位为1位,为1停止位为2位(当数据位为5bit时停止位为1.5bit)PEN校验位允许,当 PEN=1 时允许8250产生/接收校验位,8250内部寄存器功能,对于串口1,BASE=3F8H 对于串口2,BASE=2

20、F8H,2023/11/13,47,(5)地址3:线路控制寄存器LCR(只写),EPS偶校验选择。当EPS=1且PEN=1时,8250对收发的数据进行偶校验,否则进行奇校验。SP附加校验位(Stick parity),即由此位来控制选择Space(bit3,4,5=1)或Mark方式的校验(bit3,5=1,bit4=0)。Space模式下校验位总为0,Mark模式下校验位总为1。DLAB除数锁存器访问控制。当置DLAB=1后,紧随其后的对8250地址0,1的访问都针对除数锁存器,而不是RBR,THR.,8250内部寄存器功能,对于串口1,BASE=3F8H 对于串口2,BASE=2F8H,2

21、023/11/13,48,分频器,波特率发生器,发送器时钟fTXC=16通信速率,基准时钟fOSC=1.8432MHZ,8250内部的波特率发生器是软件控制的可编程的分频器,波特率发生器的作用?,8250内部寄存器功能,2023/11/13,49,如果接收器时钟和发送器时钟相同,只需把引脚9和15相连(书 P306的内部结构图)即可16 被称为波特率因子,可选1,16,64,8250内部寄存器功能,2023/11/13,50,8250接收时钟RCLK使用16倍波特率的时钟信号对输入信号进行检测;当检测到输入信号有“1”变“0”时将继续检测;若连续8个时钟周期内检测结果都为“0”,则确定检测到起

22、始位;一个字符的接收开始;以16个时钟周期(等于位宽)采样一次数据的位值;采样至停止位止。,8250内部寄存器功能,2023/11/13,51,除数寄存器 存放分频系数,由两部分组成,高8位送入MSB,低8位送入LSB。8250 波特率与分频系数(除数锁存器中的值)的关系:,8250内部寄存器功能,2023/11/13,52,问题:DLAB位的作用?D7=1 表明后继写入复用端口的数据存入除数寄存器。D7=0 表明后继写入复用端口的数据存入非除数寄存器。合用口地址除数寄存器高8位 3F9H/2F9H中断允许寄存器除数寄存器低8位 3F8H/2F8H 发送保持寄存器接收缓冲寄存器,MOV DX,

23、3F9HOUT DX,AL写入哪个寄存器?,8250内部寄存器功能,2023/11/13,53,EG:MOVDX,3FBHMOVAL,80H;10000000BOUTDX,ALMOVDX,3F9HMOVAL,NOUTDX,AL N 写入除数寄存器高8位,8250内部寄存器功能,2023/11/13,54,EG:MOVDX,3FBHMOVAL,01111111BOUTDX,ALMOVDX,3F8HMOVAL,NOUTDX,AL N 写入发送保持寄存器,8250内部寄存器功能,2023/11/13,55,(6)BASE+4:Modem控制寄存器MCR(只写),Loop内部自环。D4=1时,发送移位

24、寄存器的输出在芯片内部被回送到接收移位寄存器的输入DTR控制8250的#DTR引脚的输出。当DTR位=1时,#DTR引脚输出低电平,否则输出高电平;RTS控制8250的#RTS引脚的输出。当RTS位=1时,#RTS引脚输出低电平,否则输出高电平;OUT1,OUT2用于控制8250的#OUT1,#OUT2引脚,控制方法及逻辑关系同上;#OUT1在PC系统中未使用,#OUT2=0将使8250的中断请求引脚和总线INTR引脚连通。,8250内部寄存器功能,对于串口1,BASE=3F8H 对于串口2,BASE=2F8H,2023/11/13,56,说明:,D0位,D1位,MC1488,MC1488,2

25、0,4,8250,DTR,RTS,DTR,RTS,在PC机中OUT1引脚没有用,初始化时D2=0/1皆可,D0、D1位直接控制RS232的DTR和RST引脚,向外部表明8250是否做好了收/发的准备,8250内部寄存器功能,2023/11/13,57,说明1 引脚OUT1,OUT2外接器件由硬件决定 现状:OUT1 空,OUT2接线如下:,8250内部寄存器功能,2023/11/13,58,说明 2 程序员欲与8250之间采用中断方式交换信息,应采取以下措施:(1)中断允许寄存器相应位置1(2)MODEM控制寄存器D3=1,即OUT2=0,打通8250 的中断请求通道。(3)8259相应中断屏

26、蔽位置1(主8259 IR3,IR4)(4)CPU处于开中断(STI),8250,8259,CPU,8250内部寄存器功能,2023/11/13,59,发送移位寄存器接收移位寄存器,SOUT,SIN,RS232接口芯片,23,内环:自动将发送移位寄存器和接收移位寄存器短接。,外环:人为将RS-232接口芯片端子2和端子3用线连接起来。,外环:人为,内环:自动,属正常通信,说明 3 8250的自发自收,8250内部寄存器功能,2023/11/13,60,(7)BASE+5:线路状态寄存器LSR(只读),DR接收数据完成。当数据接收完成并已传到RBR或FIFO时,DR=1。读RBR或FIFO中的所

27、有数据后该位清零;OE重叠错误,表示RBR中字符被读出之前,已被下一个字符覆盖。此标志在CPU读LSR后即复位;PEParity Error,奇偶校验错。PE=1表示所接收的数据的奇偶校验出错。当CPU读LSR后,PE复位。,8250内部寄存器功能,对于串口1,BASE=3F8H 对于串口2,BASE=2F8H,2023/11/13,61,FEFraming Error,帧错误,表示接收的字符没有有效的停止位。当CPU读LSR后,此位复位;BIBreak Interrupt,断开中断,为1时表示线路上有超过 一个完整字符时间的持续低电平。当CPU读LSR后,此位复位;THRE发送保持缓冲器空,

28、为1时表示THR空,可以接收 下一个待发数据。若允许THRE中断,8250会向CPU 申请中断。当CPU向THR写入数据或THR中数据送 到TSR时,此位复位。,(7)BASE+5:线路状态寄存器LSR(只读),8250内部寄存器功能,2023/11/13,62,TEMT发送器空指示位,表示THR和TSR均为空。当THR或TSR任何一个中有数据的时候,此位复位;RFEReceive FIFO Error,接收FIFO错误指示,表示在接收FIFO中至少有一个奇偶校验错、帧或断开错。当CPU读LSR或FIFO中没有后续错误时,RFE复位。,(7)BASE+5:线路状态寄存器LSR(只读),8250

29、内部寄存器功能,2023/11/13,63,EG:利用主串口查询方式发送一个“A”SCANT:MOVDX,3FDHINAL,DX;LSRALTESTAL,20H;00100000JZSCANT;THR空?MOVDX,3F8HMOVAL,AOUTDX,AL;ATHR,8250内部寄存器功能,2023/11/13,64,EG:利用辅串口查询方式接收一个字符 SCANR:MOVDX,2FDHINAL,DX;LSRALTESTAL,01H;00000001JZSCANR;Data Ready?MOVDX,2F8HINAL,DX;RBRAL,8250内部寄存器功能,2023/11/13,65,EG:利用

30、辅串口查询方式接收一个字符 SCANR:MOVDX,2FDHINAL,DX;LSRALTEST AL,00011110B;是否出错?JNZ ERRORTESTAL,01H;没出错,数据准备好?JZSCANR;没准备好,继续查询MOVDX,2F8HINAL,DX;RBRAL,8250内部寄存器功能,2023/11/13,66,(8)BASE+6:Modem状态寄存器MSR(只读),dCTS,dDSR,dDCD表示自上次CPU读MSR后,对应的Modem状态线发生过变化。如果允许Modem状态变化中断,则将引发此中断;TERI表示已检测到RI脉冲的后沿,说明RI信号已有效。如果允许Modem状态变

31、化中断,则将引发此中断。,8250内部寄存器功能,对于串口1,BASE=3F8H 对于串口2,BASE=2F8H,2023/11/13,67,(8)BASE+6:Modem状态寄存器MSR(只读),CTS,DSR,RI,DCD对应8250的Modem状态信号线当前状态的补码(即负逻辑)。如果系统不需要控制Modem,这四个引脚可用作输入,输入状态可通过MSR的高4 bit读入(负逻辑)。该寄存器反映8250与通信设备(如MODEM)之间联络信号的当前状态以及这些信号的变化情况。,8250内部寄存器功能,对于串口1,BASE=3F8H 对于串口2,BASE=2F8H,2023/11/13,68,

32、(9)MODEM状态寄存器(3FEH/2FEH)D7D4记录了4个输入引脚的状态电平:D71 表示输入引脚 RLSD0,MODEM收到来自电话线的载波信号。D61 表示输入引脚 RI0,MODEM收到振铃信号。D51 表示输入引脚 DSR0,MODEM做好了发送准备,请8250 准备接收。D41 表示输入引脚 CTS0,MODEM做好了接收准备,8250 可以发送数据。D3D0记录了上一次读取该寄存器后,上述引脚是否发生过电平变化。D31 表示输入引脚RLSD有电平变化。D21 表示输入引脚RI有电平变化。D11 表示输入引脚DSR有电平变化。D01 表示输入引脚CTS有电平变化。,8250内

33、部寄存器功能,第十章 微机系统串行通信,10.3 8250初始化编程,2023/11/13,70,直接对8250端口操作利用BIOS中断设置通信端口(INT 14H),8250初始化编程,直接对8250端口进行初始化编程 步骤:确定波特率 设置除数锁存器;确定数据格式 设置通信线路控制寄存器;若使用中断方式 需设置中断允许寄存器 的相应位(置“1”);设置MODEM 控制寄存器,2023/11/13,71,通常,这个寄存器的值设置为 03H 使 8250 输出 DTR、RTS 两个 MODEM 控制信号,即使系统中不用这两个信号,这样的设置也不会带来问题。若要使用中断,则 OUT2 应设置为“

34、1”,这样,8250 中断信号可以通过系统总线 送至8259中断控制器。,8250初始化编程,8250的MODEM控制寄存器,2023/11/13,72,【例】编写子程序,对PC系列机主串口进行初始化,要求:通信速率=1200波特,一帧数据包括:8个数据位,1个停止位,无校验 查询方式,完成内环自检分析:(1)速率=1200 分频系数=1.8432M/(16*1200)=0060H(也可查表得到)(2)一帧数据结构命令字:00000011B=03H(3)中断允许命令字=0(4)MODEM控制字00010000H=10H,8250初始化编程,2023/11/13,73,I8250 PROC MO

35、V DX,3FBH MOV AL,80H OUT DX,AL MOV DX,3F9H MOV AL,0 OUT DX,AL MOV DX,3F8H MOV AL,60H OUT DX,AL MOV DX,3FBH MOV AL,03H OUT DX,AL MOV DX,3F9H MOV AL,0 OUT DX,AL MOV DX,3FCH MOV AL,10H OUT DX,AL RET I8250 ENDP,寻址位=1,置分频系数=0060H,定义一帧数据格式,置中断允许寄存器,置MODEM控制寄存器,2023/11/13,74,例:要求以 9600 bps 进行异步串行通信,每个字符 7

36、位,2个停止位,奇校验,允许所有中断。假设 端口地址的高位为:0 0 1 1,1 1 1 1,1 A2 A1 A0 MOV DX,3FBH;置除数锁存器(分频系数)MOV AL,80H OUT DX,AL;通讯线路控制寄存器最高位置“1”MOV DX,3F8H MOV AL,0CH OUT DX,AL;除数低位送入 除数锁存器 LSB(低8位)MOV DX,3F9H MOV AL,0;除数高位送入 除数锁存器 MSB(高8位)OUT DX,AL MOV DX,3FBH;置通信线路控制寄存器(数据格式)MOV AL,00001110B;7 个字符位,2个停止位,奇校验 OUT DX,AL MOV

37、 DX,3F9H;置中断允许寄存器 MOV AL,0FH;允许所有中断 OUT DX,AL MOV DX,3FCH;置MODEM控制器 MOV AL,0BH;使 OUT2、DTR、RTS 有效 OUT DX,AL,8250初始化编程,2023/11/13,75,使用BIOS软件中断设置通信端口和通信,通过BIOS软件中断 INT 14H对串行接口进行设置和通过串行接口通信,比较方便,但不能清楚地了解8250芯片各个寄存器的作用和BIOS对串行通信的处理过程。,BIOS通过软件中断 INT 14H 向用户提供了4个中断子程序分别完成:串口初始化编程;发送一帧数据;接收一帧数据;测试通信线状态。,

38、2023/11/13,76,功能 入口参数 出口参数(1)AH=0 初始化串行口 AL=初始化参数 AH=通信线路状态 DX=串行口号(0-2)AL=MODEM状态,AL中需设置参数为:,使用BIOS软件中断设置通信端口和通信,2023/11/13,77,功能 入口参数 出口参数(2)AH=1 发送字符 AL=欲发送字符 AH=通信线路状态 DX=串行口号(0-2)(AH)7=1 表示传送失败(3)AH=2 接收字符 DX=串行口号(0-2)AH=通信线路状态(AH)7=1 表示传送失败 AL=接收到的字符(4)AH=3 读串行口状态 DX=串行口号(0-2)AH=通信线路状态 AL=MODE

39、M状态,使用BIOS软件中断设置通信端口和通信,2023/11/13,78,(2)INT 14H 0号子功能的执行流程:截取AL7AL5查表,取出相应的波特率除数 除数寄存器。截取AL4AL0通信线控制寄存器。0中断允许寄存器。取通信线状态寄存器内容AH。取MODEM状态寄存器内容AL。执行IRET返回。,使用BIOS软件中断设置通信端口和通信,2023/11/13,79,(3)调用注意事项调用INT 14H 0号子功能初始化串行口,通信波特率只有8种选择,奇偶校验也只有3种选择。从执行流程可以看出,使用 0 号功能初始化之后,8250 的内部中断将被禁止。只能采用查询方式发送和接收数据 如果

40、在0号子功能初始化之后,再对中断允许寄存器和MODEM控制寄存器写入相应的命令字,仍然能使其工作在中断方式。,注,使用BIOS软件中断设置通信端口和通信,2023/11/13,80,基于以上分析,当使用BIOS通信程序发送和接收数据时,必须具备相应的外部环境。,外部环境:RS232引脚的连接方式RS232怎样连线,与串口的通信方式有关,与编程时使用的编程手段有关。(对端口直接操作?or 调用BIOS中断 1#、2#?),使用BIOS软件中断设置通信端口和通信,第十章 微机系统串行通信,10.4 串行通信的外部环境,2023/11/13,82,串行通信的外部环境,1.短距离(无MODEM)点点全

41、双工通信,所谓串行通信的外部环境,实际就是计算机串行接口外部线路的连接情况。由于计算机终端DTE与DCE设备连接情况、种类众多,串行接口电路的连接也是多种多样的。,2023/11/13,83,有联络线:7线方式 对端口直接操作 调用BIOS通信软件 调用INT 21H的4#、3#,但只能用主串口,串行通信的外部环境,有联络线的串行接口连接,2023/11/13,84,2.短距离单工通信,无联络线适用:对端口直接操作编程,串行通信的外部环境,2023/11/13,85,有联络线:对端口直接操作 调用BIOS通信软件 调用INT 21H的4#、3#,但只能用主串口,串行通信的外部环境,2023/1

42、1/13,86,3.外环自发/自收,串行通信的外部环境,第十章 微机系统串行通信,10.5 串行通信程序设计举例,2023/11/13,88,设计考虑:,题型:单端自发自收,点点通信(全双工、单工)CPU与串口交换信息的方式:查询?中断?编程手段:对端口直接编程?调用BIOS通信软件,根据题目要求组织相应的外部环境,串行通信程序设计举例,2023/11/13,89,1、对端口直接操作发送和接收数据,程序中查询联络线,可以按“有联络线”方式接线 程序中不查询联络线,可以按“无联络线”方式接线2、BIOS通信软件是一个全双工的通信软件,发送和接收之前都要使用联络线与对端“握手”,只有联络畅通,才能

43、发送或接收数据!3、当8250设置为内环自检方式的时候,只能采用查询方式,而且只能采用对端口直接操作的编程手段,完成数据的发送和接收。,串行通信程序设计举例,2023/11/13,90,EG:A、B两机利用主串口,查询方式,进行单工通信,A机发送电文“HELLO”至B机。试为A机编写发送程序。要求:波特率=2400,奇校验,停止位1位,数据位7位,采用查询方式。,DATA SEGMENT USE16BUF DB HELLOLEN EQU$-BUFDATA ENDSCODE SEGMENT USE16 ASSUME CS:CODE,DS:DATABEG:MOV AX,DATA MOV DS,AX

44、,串行通信程序设计,2023/11/13,91,CALLI8250LEABX,BUFMOVCX,LENS SCAN:MOVDX,3FDHTESTAL,20HJZSCANMOVDX,3F8HMOVAL,BX,OUT DX,AL INC BX LOOP SCANNEXT:MOV DX,3FDH IN AL,DX TEST AL,40H JZ NEXT MOV AH,4CH INT 21H,串行通信程序设计,2023/11/13,92,I8250PROCMOVDX,3FBHMOVAL,80HOUTDX,ALMOVDX,3F9HMOVAL,0OUTDX,ALMOVDX,3F8HMOVAL,30HOUT

45、DX,AL,MOVDX,3FBHMOVAL,00001010BOUTDX,ALMOVDX,3F9HMOVAL,0OUTDX,AL MOVDX,3FCHMOVAL,0OUTDX,ALRETI8250ENDPCODEENDSENDBEG,串行通信程序设计,2023/11/13,93,【例】对主串口进行外环自动测试,将下列测试电文10行,经主串口发出,通过外环短路线接收,显示在屏幕上,测试电文如下:THE QUICK BROWN FOX JUMPS OVER A LAZY DOG,串行通信程序设计,2023/11/13,94,设计思路(1)在一条报路上,长时间的循环发送这条电文,接收方统计在一定时间

46、内的差错率即可知道该报路的通信质量。(2)电文必须逐个字符发送,为了简化程序设计,发送字符和接收字符均采用查询方式,发送前,先读取通信线状态寄存器,查询发送保持寄存器空否?接收前先读取通信线状态寄存器,查询一帧数据收完否?(3)本例采用两种方法编程:1031_1.ASM,直接访问8250端口寄存器,程序运行前 RS232 连接器按图9.12(a)接线,没有使用联络线。1031_2.ASM,调用BIOS通信软件,程序运行前需按图10.12(b)接线,准备好自发自收的外部环境。,串行通信程序设计,2023/11/13,95,程序清单;FILENAME:931_1.ASMDATA SEGMENTTE

47、XT DB THE QUICK BROWN FOX JUMPS OVER A LAZY DOG DB 0DH,0AHLLL EQU$-TEXTERROR DB COM1 BAD!,0DH,0AH,$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATABEG:MOV AX,DATA MOV DS,AX CALL I8250;主串口初始化 MOV CH,10;10行送CHAGAIN:MOV CL,LLL;电文长度送CL MOV BX,OFFSET TEXT,串行通信程序设计,2023/11/13,96,TSCAN:MOV DX,3FDH IN AL,DX TES

48、T AL,20H;发送保持寄存器空?JZ TSCAN;否 MOV AL,BX;取字符SEND:MOV DX,3F8H OUT DX,AL;送主串口数据寄存器 MOV SI,0RSCAN:MOV DX,3FDH IN AL,DX TEST AL,01H;一帧数据收完否?JNZ REVEICE;收完转 DEC SI JNZ RSCAN;延时 JMP DISPERR;超时,转出错处理REVEICE:MOV DX,3F8H IN AL,DX;读数据寄存器 AND AL,7FH,串行通信程序设计,2023/11/13,97,DISP:MOV AH,2 MOV DL,AL INT 21H;屏幕显示 INC

49、 BX DEC CL;计数 JNZ TSCAN DEC CH;行计数 JNZ AGAIN JMP RETURNDISPERR:MOV AH,9 MOV DX,OFFSET ERROR INT 21H;显示出错信息RETURN:MOV AH,4CH INT 21H;返回 DOS;-,串行通信程序设计,2023/11/13,98,I8250 PROC;主串口初始化子程序 MOV DX,3FBH MOV AL,80H OUT DX,AL;寻址位置1 MOV DX,3F9H MOV AL,00H OUT DX,AL;写除数高8位 MOV DX,3F8H MOV AL,60H OUT DX,AL;写除数

50、低8位 MOV DX,3FBH MOV AL,03H OUT DX,AL;无校验传送,8位数据 MOV DX,3F9H MOV AL,00H OUT DX,AL;禁止8250内部中断 MOV DX,3FCH MOV AL,0 OUT DX,AL;8250收发方式,禁止中断 RETI8250 ENDPCODE ENDS END BEG,2023/11/13,99,931_2.ASM程序清单;FILENAME:931_2.ASMDATA SEGMENTTEXT DB THE QUICK BROWN FOX JUMPS OVER LAZY DOG DB 0DH,0AHLLL EQU$-TEXTERR

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号