编辑: qksr | 2019-10-16 |
串行异步通信是目前计算机是计算机之间,计算机与外设之间最常用的通信方式.串行传输只需要一条传输线或信道,能充分利用频带,节省投资,但需要进行串并变换,增加转换设备,而且传输速率低,收发之间还需要同步,异步传输也称起止式传输是利用起止法达到收发同步的,每次只传输或接收一个字符,用起始位和停止位来指示被传输字符的开始和结束. 串行异步通信对接口有一定的要求.IBM PC系列计算机对串行异步通信的支持所有的IBM PC及其兼容机都配有两个以上的串行异步通信接口,用户可以不用增加任何设备就可以与其他计算机进行通信.RS-232-C标准是最具代表性的.它规划了串行异步通信接口的功能,电气,机械特性.RS-232-C标准,可以实现计算机之间的短距离通信,也可以将计算机与之相连,实现远距离通信. 关键字:串行 异步 串行异步通信接口 RS-232-C 基本原理 一串口异步通信的帧格式和波特率?
1 串行异步通信的帧格式? 在串行异步通信中,数据位是以字符为传送单位,数据位的前、后要有起始位、停止位,另外可以在停止位的前面加上一个比特位(bit)的校验位.其帧格式如图1所示.? 起始位是一个逻辑0,总是加在每一帧的开始,为的是提醒数据接收设备接收数据,在接收数据位过程中又被分离出去.数据位根据串行通信协议,允许传输的字符长度可以为
5、
6、7或8位.通常数据位为7位或8位,如果要传输非ASCII数据(假如使用扩展字符设置的文本或者二进制数据),数据位格式就需要采用8位.数据位被传输时从一个字符的最低位数据开始,最高位数据在最后.例如字母C在ASCII表中是十进制67,二进制的01000011,那么传输的将是11000010.校验位是为了验证传输的数据是否被正确接收,常见的校验方法是奇、偶校验.另外校验位也可以为0校验或者1校验,即不管数据位中1的个数是多少,校验位始终为0或者1,如果在传输的过程中校验位发生了变化,这就提示出现了某类错误.不过,在传输数据的时候,也可以不用校验位.停止位,为逻辑1,总在每一帧的末尾,可以是1位、1.5位或者2位.最常用的是1位,超过1位的停止位通常出现在这样的场合:在处理下一个即将发送来的字符之前接收设备要求附加时间.?
2 串行异步通信的波特率? 串行口每秒发送或接收数据的位数为波特率.若发送或接收一位数据需要时间为t,则波特率为1/?t,相应的发送或接收时钟为1/t?Hz.发送和接收设备的波特率应该设置成一致,如果两者的波特率不一致,将会出现校验错或者帧错 3?串行发送电路的设计? 为简化电路设计的复杂性,采用的帧格式为:?1位开始位+8位数据位+1位停止位,没有校验位,波特率为1200.? 3.1?波特率发生器的设计? 要产生1200波特率,要有一个不低于1200?Hz的时钟才可以.为产生高精度的时钟,我选了6MHz(6M能整除1200)的晶振来提供外部时钟.当然,你也可以选其它频率的时钟来产生1200?Hz的时钟.对于6MHz时钟,需要设计一个625进制的分频器来产生1200波特率的时钟信号.? 3.2?发送电路的设计? 根据采用的帧格式,需要发送的数据为10位(1位开始位、8位数据位、1位停止位),在发送完这10位后,就应该停止发送,并使发送端电平处于逻辑1,然后等候下次的发送. 二8251A可编程通信接口 1.串行通信的特点 ?串行通信是主机与外设交换信息的一种方式.、 ?串行通信中字节数据经一条传输线按位串行发送与串行接收. ?串行通信节省通信线路,可远距离传送,成本低,广泛应用在通信及计算机网络系统中. ?串行通信中,数据传输速率低,控制较复杂.光纤技术的出现与发展,为串行通信开辟了美好前景. 2.串行通信的术语 ?全双工、半双工、单工 ?全双工: 通信双方均有发送器和接收器,经两条独立的传输线相连, 双方可同时接收与发送 ?单工:通信一方为发送器,另一方为接收器,一条传输线相连, 进行单向传输. ?半双工:通信双方均有发送器和接收器,经一条传输线相连, 在某一时刻双方只能一个方向传输信息,线路切换后可改变传输方向. ?调制与解调(Modulation/Demodulation,MODEM) ?数字(脉冲)信号传输对线路频宽要求高,无法在普通电话线上传输数字信号. ?利用已存在的巨大的电话网传送数字信号是一种经济实用的方法.办法是把数字信号变换成相应的正弦模拟信号,其频率适合电话线传输. ? 调制解调器(MODEM)可把数8250外部总线结构: 8250是40脚双列直插封装.根据其功能,印脚可分为四类:与系统连接的I/O接口线;
与RS-232-C连接的I/O接口线;
时钟线;
电源线. 8250是一个可编程的串行通信控制器. 一.8250内部寄存器功能
8250 10个寄存器中,发送保持寄存器和接受数据寄存器分别用于装载要发送的字符和接受到的字符,其内容随发送和接受的数据而变化.其余8个寄存器则具有确切含义. 线控制寄存器(3FBH) 线控制寄存器各位含义如下: D1 D0字符长度 00=5位01=6位10=7位11=8位D2 停止位长度 0=1位1=1.5位(D1 D0=00) =2位(D1 D0=01,10,11) D3 奇偶校验开关 0=不校验 1=校验 D4 奇偶校验选择 0=奇校验 1=偶校验 D5 固定校验开关 0=不用 1=校验位恒为1(D4 D3=01) 0=校验位恒为0(D4 D3=11) D6 停顿设置开关 0=不设置 1=设置停顿(使MODEM发出连续1的停顿信号) D7 访问波特率分频器开关 0=不访问波特率分频器,允许访问具有相同地址的寄存器 1=访问波特率分频器 该寄存器有两种功能:一是作为波特率分频器的选择开关,由D7=1来选通;
二是设置8250通信参数.因此,该寄存器必须至少被编程两次.需要说明的是,通信双方必须选择同样的通信参数,如字符长度停止位长度及校验位选择等等,才能保证数据的正确传输. 2.波特率分频器(3F8H和3F9H) 这两个寄存器分别用来设置产生波特率时钟的分频器的分频系数,该系数为16位,其高位置于3F8H. 波特率系数可由以下公式计算: 波特率系数=振荡时钟/16*波特率 8250的振荡时钟一般选择1.8432Mhz,故上式可改写为: 波特率系数=115200/波特率 3.线状态寄存器(3FDH) 该寄存器的主要功能是提供当前接受和发送数据的状态以及线路情况.各位为1有效.线状态寄存器的各位含义如下: D0=1 接受数据准备好,表示接受数据缓冲区有接收到的字符尚未取走;
D1=1 数据被冲出错,表示接受缓冲区数据尚未读出时,又收到新的数据;
D2=1 奇偶校验错;
D3=1 没有收到正确的停止位;
D4=1 收到停顿信号;
D5=1 发送保持寄存器空,表示8250可以接收新的发送字符;
D6=1 发送移位寄存器空,表示8250现在可以发送字符;
D7 不用. 采用查询方式编写通信程序时,必须读取该寄存器的内容.只有当D0=1时才能从接收数据寄存器中读取数据,而只有当D5=1时,才能向发送保持寄存器写入新的数据.D1~D3描述了三种可能的接收错误信息.D6在半双工通信中必须予以考虑,只有当D5=1且D6=1时,才能转换接受/发送开关,以保证发送字符的完整性. 4. MODEM控制寄存器(3FCH) 该寄存器各位功能如下: D0=1 数据终端准备好(DTR) D1=1 请求发送(RTS) D2 输出端(OUT1),为用户保留 D3=1 允许使用中断(OUT2=1) D4=1 允许内部输入输出短接,构成反馈测试方式. MODEM控制寄存器共有以下三部分功能: 控制RS-232-C的两个输出端DTR和RTS的状态.当计算机准备好向MODEM发送数据时,就应当编程使D0=1且D1=1. 允许或者禁止8250向计算机发出中断请求信号.8250的中断请求信号INTR是内部中断请求经过一个三态门后形成的.该三态门的控制信号由该寄存器的D3位即OUT2提供.如果要采用中断方式,就必须编程使该寄存器的OUT2=1;
如果要采用查询方式,则应编程使OUT2=0. 内部循环反馈测试功能.当D4=1时,8250将完成以下动作:发送器的输出(SOUT)断被置为逻辑
1 状态;
接收器的输入(SIN)被断开;
发送器的移位寄存器的输出直接与接收器的移位寄存器相连;
四个RS-232-C控制输入端都短接到RS-232-C的下列输出端上:CTS连到RTS,DSR连到DTR,DCD连到UOT2,R1连到OUT1. 这样,通过8250发送出去的数字又被直接接收回来,并且中断可照样产生.这是检测8250功能的最简单的办法. 5. MODEM状态寄存器(3FEH) 该寄存器提供来自MODEM的控制信号的状态,各位含义如下: D0=1 D4位已由
1 变为
0 ;
D1=1 D5位已由
1 变为
0 ;
D2=1 D6位已由
1 变为
0 ;
D3=1 D7位已由
1 ........