欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    可编程串行接口芯片.ppt

    • 资源ID:6555599       资源大小:871KB        全文页数:82页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    可编程串行接口芯片.ppt

    第6章 可编程串行接口芯片16550,6.1 串行接口系统概述,6.2 可编程串行接口芯片16550,6.1 串行接口系统概述,串行通信方式用于远程通信。数据在单条传输线上,一位接一位地按顺序传送的方式称为串行通信。串行通信主要优点是节省通信线路,但具有数据传输效率低的特点。因此,串行通信适合于远距离传送,可以从几米到数千公里。对于长距离、低速率的通信,串行通信往往是唯一的选择。,6.1 串行接口系统概述,6.1.1 串行I/O接口,6.1.2 串行通信基础,6.1.3 串行通信协议,串行I/O接口,串行通信方式异步方式 串行异步接口 通用异步收发器同步方式 串行同步接口 通用同步收发器,一、串行接口的基本功能,串行接口与输入输出设备之间以串行方式传送数据,与CPU之间以并行方式传送数据。,CPU,串行接口,外部设备,串行,并行,串行I/O接口,功能1 实现串行和并行数据格式之间的转换。,功能2 实现数据缓冲功能。,功能3 控制功能。接收CPU的命令,输出接口的状态等。,串行I/O接口,串行接口的基本功能如下:,二、串行接口的基本结构,串行I/O接口,串行接口的基本结构如下:,输出缓冲寄存器:接收CPU从数据总线上送来的并行数据,并加以保存。,输出移位寄存器:它接收从输出缓冲器送来的并行数据,以发送时钟的速率把数据逐位移出,即将并行数据转换为串行数据输出。,输入移位寄存器:它以接收时钟的速率把出现在串行数据输入线上的数据逐位移入,当数据装满后,并行送往输入缓冲寄存器,即将串行数据转换成并行数据。,输入缓冲寄存器:它从输入移位寄存器中接收并行数据,然后由CPU取走。,控制寄存器:它接收CPU送来的控制字,由控制字的内容,决定通信时的传输方式以及数据格式等。例如采用异步方式还是同步方式,数据字符的位数,有无奇偶校验,是奇校验还是偶校验,停止位的位数等参数。,串行接口的基本结构如下(续):,状态寄存器:状态寄存器中存放着接口的各种状态信息,例如输出缓冲区是否空,输入字符是否准备好等。在通信过程中,当符合某种状态时,接口中的状态检测逻辑将状态寄存器的相应位置“1”,以便让CPU查询。,三、串行接口的工作过程,接收,发送,串行接口将CPU送来的并行数据转换成串行数据,并对有效数据“包装”,即加上起始位、产生奇偶校验位和停止位,再发送出去。,发送数据,接收数据,串行接口将串行输入的数据转换成并行数据,同样要对有效数据进行处理(去掉起始位、校验位和停止位)和奇偶校验,然后等待CPU取走。,串行I/O接口,有效数据由CPU写入接口中的输出缓冲寄存器,再送到输出移位寄存器。同时将状态寄存器中的“发送准备好”位置“1”,并发出中断请求信号(用中断方式时),表示接口可以接收CPU写入下一个有效数据。在输出移位寄存器中。由发送控制逻辑对有效数据进行“包装”,即加上起始位、奇偶校验位和停止位。经包装后的数据由输出移位寄存器按选定的传输率逐位移出,变成串行数据发送到串行输出线上去。,发送过程,串行I/O接口,接收控制电路不断地监视串行数据输入线上的电平,一旦出现持续一个位周期的低电平(异步方式下),则开始采样有效数据位,并使数据进入输入移位寄存器。采样重复进行,直至采样到停止位。接收控制逻辑对接收的数据进行格式检查,若不正确,则将状态寄存器中的相应位置“1”;若正确,则将有效数据位并行传送到输入缓冲器。然后,将状态寄存器中的“接收数据准备好”位置“1”;若接口处于中断允许状态,则还向CPU发出中断请求信号。CPU可以通过查询或中断方式读取输入缓冲寄存器中的有效数据。,接收过程,串行I/O接口,9.1 串行接口系统概述,串行I/O接口,接收 过程,CPU,外部设备,6.1.2 串行通信基础,1.波特率(Baud),一、数据传输率,数据传输率是指单位时间内传输的信息量,可用比特率和波特率来表示。,比特率:比特率是指每秒传输的二进制位数,单位为bit/s(bps)表示。,波特率:波特率是指每秒传输的符号数,若每个符号所含的信息量为1比特,则波特率等于比特率。单位为Baud。,在计算机中,一个符号的含义为高低电平,它们分别代表逻辑1和逻辑0,所以每个符号所含的信息为1位,因此在计算机通信中,常将比特率称为波特率,即 1(Baud)=1 bit/s 传送一个二进制位所需的时间为位时间,用Td表示。位时间与波特率的关系是Td=1/B,2.发送/接收时钟(Txc/Rxc),发送数据时,发送器在发送时钟作用下,将“发送移位寄存器”的数据按位串行移位输出;,接受数据时,接受器在接收时钟作用下,对来自通信线上的串行数据按位串行移入“接收移位寄存器”。,6.1.2 串行通信基础,2.发送/接收时钟(Txc/Rxc),波特率:单位时间内传送的二进制数据的位数,以位/秒(b/s)表示,也称为数据位率。它是衡量串行通信速率的重要指标。,收/发时钟直接决定了通信线路上数据传输的速率,对于收/发双方之间数据传输的同步有十分重要的作用。,一般在发送端是由发送时钟的下降沿使送入移位寄存器的数据串行移位输出。而接收端则是在接收时钟的上升沿作用下将传输线上的数据逐位打入移位寄存器。,6.1.2 串行通信基础,二、串行通信的连接方式,串行,并行,6.1.2 串行通信基础,三、信号的调制和解调,原因:如果数字信号直接在公用电话网的传输线上传送,高次谐波的衰减会很厉害,从而使信号到了接收端后将发生严重畸变和失真解决:发送方使用调制器(Modulator),把要传送的数字信号调制转换为适合在线路上传输的音频模拟信号;接收方则使用解调器(Demodulator)从线路上测出这个模拟信号,并还原成数字信号,6.1.2 串行通信基础,四、串行通信的检错和纠错,信息的正确性对计算机的可靠工作具有极其重要的意义,但在信息的存储与传输过程中,常可能由于某种干扰或其他不可靠因素的存在而发生差错。在串行通信中,由于线路长和噪声干扰的存在,会导致信息传输过程中出现错误。为保证信息传输的正确性,必须对传输的数据信息进行差错检查和校正,即检错和纠错。检错是如何发现传输中的错误,而纠错是发现 错误后如何消除错误。在基本通信协议中,一般采用奇偶检验或方阵码检错,以反馈重发方式纠错。在高级通信协议中,一般采用循环冗余码(CRC)检错,以自动纠错方式来纠错。,6.1.2 串行通信基础,奇偶校验的基本原理,这种利用信息位中“1”的个数的奇偶性来达到检验目的的编码称为奇偶校验码。使整个信息位“1”的个数为奇数的编码叫奇校验码;而使整个信息位“1”的个数为偶数的编码叫偶校验码。附加的信息位称为奇偶校验位,简称校验位。需要传送的数据位本身称为有效信息位。,在所传输的有效数据中附加冗余位(即检验位),使整个信息位(包括有效位和检验位)中“1”的个数具有奇数或偶数的特性。整个信息位经过线路传输后,若原来所具有的“1”的个数的奇偶性发生了变化,则说明出现了传输错误,可由专门的检测电路检测出来。,6.1.2 串行通信基础,有效信息位是1011101,采用偶校验,则附加的校验位是1。最后得到的信息是10111011,有效信息位是1011011,采用奇校验,则附加的校验位是0。最后得到的信息是10110110,例1,例2,6.1.2 串行通信基础,2.方阵码校验,基本原理:先在每个7位编码的字符后附加1位奇偶校验位,使整个字符的“1”的个数为偶数或奇数。然后使若干个字符组成一个数据块,列成方阵,再在纵向按位加,产生一个字符的检验字符,并将它附在数据的末尾。,这一检验字符是所有数据字符“异或”的结果,反映了整个数据的奇偶性。在数据接收过程中,数据块读出产生一个检验字符,并与发送来的检验字符进行比较,若两者不同,说明出现差错,则以反馈重发来纠错。若两者相同,表示接收数据正确。,6.1.2 串行通信基础,3.CRC校验,CRC是利用编码原理,对传送的二进制码序列以一定的规则产生一定的校验码,并将校验码放在二进制序列之后,形成符合一定规则的新的二进制码序列(称为编码),并将新的二进制码序列发送出去。在接收时,就根据信息和校验码之间所遵循的规则进行检测(称为译码),从而检测出传输过程中是否发生差错。CRC校验是对整个数据块进行校验,同步串行通信都采用CRC校验。,6.1.2 串行通信基础,一、概述,在串行通信中,发送端发送数据时,一位一位往外发送,没有问题,问题是接收端,一根线传送过来的信息0110110表示什么意思?不知道.所以发、收双方一定要有约定。1、接收方怎么知道数据传送的开始和结束?2、接收方怎么判断所接收数据的正确性。所以,串行通信中,如何使收发双方同步工作是关键。,为了实现同步,互相通信的双方必须就数据传输方式、同步控制方式、差错处理、应答方式和信号格式等问题作出共同遵守的一组规定,这种规定称为通信协议。常用的串行通信中数据传输的同步方法有2种,即异步方式和同步方式,相应的有异步通信协议同步通信协议。,6.1.3 串行通信协议,1、串行异步通信时的数据格式,二、异步通信协议,异步方式通信是以字符为单位进行传输的,字符之间没有固定的时间间隔要求,而每个字符中的各位则以固定的时间传送。收、发双方取得同步的方法是采用在字符格式中设置起始位和停止位。(把一个字符看作是一个独立的信息单元,并且字符出现在数据流中相对时间是任意的。)在一个有效字符正式发送前,发送器先发送一个起始位,然后发送有效字符位,在字符结束时再发送一个停止位,起始位至停止位构成一帧。,6.1.3 串行通信协议,起始位每个字符开始传送的标志,起始位采用逻辑0电平,数据位数据位紧跟着起始位传送。由58个二进制位组成,低位先传送,校验位用于校验是否传送正确;可选择奇检验、偶校验或不传送校验位,停止位表示该字符传送结束。停止位采用逻辑1电平,可选择1、1.5或2位,空闲位传送字符之间的逻辑1电平,表示没有进行传送,6.1.3 串行通信协议,比如ASCII 字符 A,二进制是0100 0001(8位),它们在起始位和2位停止位之间传送,并使用了1位奇偶校验位。,6.1.3 串行通信协议,2、串行异步通信时的数据接收,接收端采样时钟频率为位频率的16倍,采样时间基准应确保采样时刻在每一位的中间。,注意,在接收端设置一采样时钟频率计数器,当检测到起始位下降沿时,将其清零,并开始对采样时钟计数。当计数器计到8时,表示已到达起始位的中间位置,此时采样值为0,说明是真正的起始位,同时将计数器清零;若采样值不为0,则说明一开始检测到的下降沿不是真正的起始位前沿,而是一次干扰,此次检测应作废,计数器清零,并重新开始检测起始位。,6.1.3 串行通信协议,2、串行异步通信时的数据接收,检测到真正的起始位后,计数器清零,以后每次计到16时,便采样收到的信号波形(即每一位的中间),将采到的数值暂存起来,同时将计数器清零,重新计数,直至最后的停止位被采样。如果停止位采样正确(为1),则字符被接收,并由暂存器装入寄存器。若停止位采样值为0,说明同步或传输有问题,此次采样所得字符作废,不被接收。,6.1.3 串行通信协议,3、串行异步通信的特点,起止式异步通信协议传输数据对收发双方的时钟同步要求不高,发送器和接收器可以不用共同的时钟。,串行异步通信的数据格式可以根据实际需要,通过可编程串行接口电路,用软件命令的方式进行设置。在不同传输系统中,这些通信格式的设定完全可以不同。,附加信息位(额外开销),使通信效率降低。,6.1.3 串行通信协议,例题:异步传输7位ASCII码,如果需要数据传输速率为240字符/秒,使用1位奇偶校验位和1位停止位,则:1)波特率应该是多少?2)有效数据位传输位是多少?3)传输效率是多少?,解:1)波特率是(7位数据位+1位起始位+1位校验位+1位停止位)240=2400b/s2)有效数据位传输位是:7240=1680b/s3)传输效率是:1680/2400=70%,6.1.3 串行通信协议,1、串行同步通信的特点,三、串行同步通信协议,要求对传送数据的每一位都必须在收、发两端严格保持同步,即所谓“位同步”。因此,收、发两端需用同一个时钟源作为时钟信号。,没有起始位和停止位,它不是用起始位表示字符的开始。,(3)通信时,字符数据不允许有空隙。当线路空闲或没有字符可发送时,可发送收、发双方约定的同步字符。,6.1.3 串行通信协议,(4)传输效率高,适合于快速、大量数据的传送。,三、串行同步通信协议,外同步法是在发送数据之前向接收端发送一串时钟脉冲,接收端按这个时钟频率调整自己的时序,使接收时钟频率锁定在接收到的时钟频率上,并作为同步时钟来接收数据。(没有同步字符,靠外部时钟同步),内同步法是接收端从接收到的数据信息波形本身提取同步的方法。(有一个(单同步)或两个(双同步)同步字符),6.1.3 串行通信协议,2、同步通信协议概述,三、串行同步通信协议,面向字符的同步通信协议 面向比特的同步通信协议,6.1.3 串行通信协议,6.1.4 RS-232C串行通信标准,一、RS-232C串行通信标准,EIA Electronic Industry Association,美国电子工业协会RS Recommended standard,推荐标准232 标识号C RS232的最新一次修改(1969年),EIA-RS-232C,全称,RS-232C串行通信标准定义说明:,当初制定此标准的目的是为了使不同厂家生产的设备能达到接插的“兼容性”。也就是说不同厂家所生产的设备,只要它们都有具有RS-232C标准接口,则不需要任何转换电路,就可以互相插接起来。这个标准仅保证硬件兼容而没有软件兼容。此外,用它进行数据传输时,由于线路的损耗和噪声干扰,传输距离一般不超过15m。通常两计算机的近距离通信可以通过RS-232C标准接口连接起来。,最初是为远程通信连接数据终端设备DTE(Data Terminal Equipment)与数据通信设备DCE(Data Communication Equipment)而制定的。,RS-232C标准包括机械指标和电气指标。,6.1.4 RS-232C串行通信标准,1.电气特性,一、RS-232C串行通信标准,逻辑电平,逻辑1(MARK)=-3V-15V逻辑0(SPACE)=+315V,在TxD和RxD上,信号有效(接通,ON状态,正电压)=+3V+15V信号无效(断开,OFF状态,负电压)=-3V-15V,在RTS、CTS、DSR、DTR和DCD等控制线上,!RTS:为请求发送信号。DTEDCE!CTS:为允许发送信号。DCE DTE!DSR:为数据装置准备好信号。有效时,表明DCE可以使用!DTR:为数据终端准备好信号。有效时表明DTE可以使用。!DCD:载波检测输出。,6.1.4 RS-232C串行通信标准,1.电气特性,一、RS-232C串行通信标准,TTL-EIA电平转换,为了能够同计算机接口或终端的TTL器件连接,必须在EIA-RS-232C与TTL电路之间进行电平和逻辑关系的变换。,集成转换器件TTLEIAMC1488、SN75150EIATTLMC1489、SN75154TTLEIA MAX232,232C接口采用EIA电平高电平为3V15V低电平为3V15V实际常用12V或15V,标准TTL电平高电平:2.4V5V低电平:0V0.4V,相互转换,6.1.4 RS-232C串行通信标准,2.连接器的机械特性,一、RS-232C串行通信标准,DB-25,异步通信的9个电压信号(含信号地SG):2,3,4,5,6,7,8,20,22 20mA电流环信号 9个:12,13,14,15,16,17,19,23,24 空引脚6个:9,10,11,18,21,25 保护地(PE)1个,作为设备接地端:1,DB-9,AT机以后(不支持20mA电流环接口),使用DB-9连接器,作为提供多功能I/O卡或主板上COM1和COM2两个串行接口的连接器。它只提供异步通信的9个信号。,DB-9型连接器的引脚分配与DB-25型引脚信号完全不同。因此,若与配接DB-25型连接器的DCE设备连接,必须使用专门的电缆线。,6.1.4 RS-232C串行通信标准,3.RS-232C的接口信号,4条数据线、11条控制线、3条定时线、7条备用和未定义线,常用的只有9根,6.1.4 RS-232C串行通信标准,(1)联络控制信号线,TxD:发送数据串行数据的发送端RxD:接收数据串行数据的接收端,6.1.4 RS-232C串行通信标准,RTS:请求发送当数据终端设备准备好送出数据时,就发出有效的RTS信号,用于通知数据通信设备准备接收数据CTS:清除发送(允许发送)(请求响应)当数据通信设备已准备好接收数据终端设备的传送数据时,发出CTS有效信号来响应RTS信号RTS和CTS是数据终端设备与数据通信设备间一对用于数据发送的联络信号(握手信号),6.1.4 RS-232C串行通信标准,DTR:数据终端准备好通常当数据终端设备一加电,该信号就有效,表明数据终端设备准备就绪DSR:数据装置准备好通常表示数据通信设备(即数据装置)已接通电源连到通信线路上,并处在数据传输方式DTR和DSR也可用做数据终端设备与数据通信设备间的联络信号,例如表示设备的状态,6.1.4 RS-232C串行通信标准,SG:信号地为所有的信号提供一个公共的参考电平DCD:载波检测(DCD)当本地调制解调器接收到来自对方的载波信号时,该引脚向数据终端设备提供有效信号RI:振铃指示当调制解调器接收到对方的拨号信号期间,该引脚信号作为电话铃响的指示、保持有效,6.1.4 RS-232C串行通信标准,PG:保护地(机壳地)起屏蔽保护作用的接地端,一般应参照设备的使用规定,连接到设备的外壳或大地TxC:发送器时钟控制数据终端发送串行数据的时钟信号RxC:接收器时钟控制数据终端接收串行数据的时钟信号,6.1.4 RS-232C串行通信标准,二、串行口互连,微机利用232C接口连接调制解调器,用于实现通过电话线路的远距离通信,6.1.4 RS-232C串行通信标准,9.1 串行接口系统概述,9.1.4 RS-232C串行通信标准,1.零Modem 的最简连线(3线制),微机利用232C接口直接连接进行短距离通信。这种连接不使用调制解调器,所以被称为零调制解调器(Null Modem)连接。,6.1.4 RS-232C串行通信标准,2.零Modem标准连接,6.1.4 RS-232C串行通信标准,6.2 可编程串行接口芯片16550,6.2.1 16550介绍,6.2.2 16550编程举例,9.2 可编程串行口控制器8250,9.2.1 8250的逻辑结构和引脚功能,PC微机异步通信适配器是微机与微机、微机与MODEM及微机与外设之间进行异步通信的接口。其核心是UART。常见的UART主要有INS8250、PC16450和PC16550。此外,还有带更大缓冲的UART,称为PC16650和PC16750。,16550引脚简介数据信号D7-D0:8根数据线和CPU数据总线连接。与地址有关的信号:CS0、CS1、!CS2、!ADS。当CS0=CS1=1、!CS2=0时,16550可被CPU访问,并由A2-A0选择要访问的寄存器。地址选通信号!ADS为低电平时,锁存三个片选信号以及A2-A0的输入状态。读写控制信号。16550有两对读写控制信号,两对信号功能完全相同,只不过是信号电平不同而已。RD、WR为高电平有效,!RD、!WR为低电平有效。,中断控制和复位信号。16550具有中断控制和中断优先级处理能力,INTR引脚产生高电平有效地中断请求信号。PC中,使用OUT2来控制中断请求信号INTR的输出,而OUT1没有使用。MR是复位信号,通常与系统RESET信号连接,在系统复位时对16550复位。时钟信号。XIN和XOUT是16550的主时钟引脚,晶体振荡器可连接在它们两者之间,或者XIN与外部时钟源连接。BAUDOUT输出是由发送器的波特率发生器产生的时钟信号,它常与RCLK输入连接,产生与发送器相等的接收器时钟。,与通信设备连接的信号。请求发送RTS、允许发送CTS、数据终端准备好DTR、数据装置准备好DSR、振铃RI、载波检测DCD、串行数据信号RxD和TxD。这些信号经过EIA驱动器驱动后与9脚D型连接器相连。数据就绪信号。RxRDY和 TxRDY是接收器和发送器的就绪信号,常用于DMA方式控制数据传送。,16550内部有12个8位寄存器,但是只有8个端口地址,用8个地址表示12个寄存器,所采取的措施如下:发送保持寄存器THR 和 接收数据寄存器RBR 共用一个地址,以读写信号来加以区分。以读方式访问RBR,以写方式访问THR波特率除数寄存器的高字节TLH与中断允许寄存器IER使用相同的地址;波特率除数寄存器的低字节TLL与接收数据寄存器RBR和发送保持寄存器THR使用相同的地址,为了区分,借用线路控制寄存器LCR的最高位DLAB位来区分,16550内部寄存器地址及其选择方法,表 LCR格式,1,线路控制寄存器(LCR:Line Control Register)用于指定异步串行通信的数据格式,2,线路状态寄存器(LSR:Line Status Register):只读存储器,用来向CPU提供数据接收和发送时的状态。这些状态可以被CPU查询,也可以触发中断请求。LSR格式,3,波特率除数寄存器(TLH与TLL),波特率除数寄存器分为高字节寄存器TLH和低字节寄存器TLL该寄存器用于存放除数寄存器值,从而确定波特率。除数寄存器值不同,则波特率不同。(分频系数:在基准时钟频率的基础上所作的分频。)除数寄存器值=基准时钟频率(16波特率)注:16为分频系数,即每16个基准时钟频率才会发送一位二进制数据在写入除数之前,应将线路控制寄存器的最高位DLAB置1,只有这样才可以访问到除数寄存器由于除数是16位的,所以应分别向TLH和TLL两个端口分别写入除数值的高8位和低8位。16550芯片输入的基准时钟频率为1.18432MHz,常用波特率常数,4,中断允许寄存器(IER:Interrupt Enable Register):16550有4级中断,按优先级从高到低依次为:接收出错中断、接收缓冲器满中断、发送保持寄存器空中断和MODEM输入状态改变中断。这些中断的允许或屏蔽由IER来控制,IER格式,只要IER寄存器的相应位写“1”就允许中断请求,写“0”就禁止中断请求,5,中断标识寄存器(IIR:Interrupt identifier Register):如果16550工作于中断方式,IIR指出有无待处理的中断发生及其类型,并封锁比此类优先级低的所有类型中断。IIR格式,为了具体识别究竟是哪种事件引起的中断(即中断源),UART内部设置了中断识别寄存器IIR。它保存着在请求中断的中断类型编码。IIR是只读寄存器,它的内容随中断源而改变。,6,发送保持寄存器(THR:Transmit Holding Register):该寄存器寄存CPU写入的一字节数据,在发送移位寄存器空闲时,自动转存到发送移位寄存器。按照编程制定的帧格式,发送移位寄存器为每一个数据添加起始位、校验位和停止位,转换成串行数据,在发送器时钟的控制下,经SOUT端一位一位地发送出去。7,接收缓冲寄存器(RBR:Receive Buffering Register):在接收器时钟的控制下,接收移位寄存器从SIN端子接收的一帧数据,去掉起始位、校验位和停止位,转换成并行数据送接收缓冲寄存器等待cpu读取。,16550芯片数据传输过程,由于CPU与接口之间按并行方式传输,接口与外设之间按串行方式传输,因此,在串行接口中,必须要有“接收移位寄存器”(串并)和“发送移位寄存器”(并串)。,8,MODEM控制寄存器(MCR)。控制芯片的4个管脚的输出和芯片的环路检测。MCR的格式如表7所示。MCR格式,9,MODEM状态寄存器(MSR)。反映UART与通信设备(如MODEM)之间联络信号的当前状态以及这些信号的变化情况。MSR格式,10,FIFO控制寄存器(FCR)。16550有一个FIFO缓冲器,用于缓冲正在发出或接收的数据。FCR格式,6.2.2 16550编程举例,1初始化串行通信口,一 查询方式异步串行通信编程,在查询方式下异步通信编程一般有三个部分:初始化、发送一个字符及接收一个字符。下面以串行口COM1(端口地址3F8H)为例,分别说明这三个部分的编程方法。,初始化串行通信口的内容是:确定数据传输帧格式(包括数据位长度、停止位长度及有无奇偶校验和校验的类型)、确定传输波特率以及确定INS8250操作方式。操作方式是指自发自收的循环反馈方式(用于诊断)还是通常的两点之间的通信方式,是程序查询方式传送还是中断方式传送。,1初始化串行通信口,初始化的一般方法是按一定的步骤分别对线路控制寄存器LCR、波特率除数寄存器TLL、TLH 和 MODEM控制寄存器MCR等进行参数写入操作,其参数是在程序中由指令分散设定的;通过写除数寄存器TLL与TLH设置波特率通过写线路控制寄存器LCR设置通信数据格式通过写MODEM控制寄存器MCR设置MODEM控制字通过写中断允许寄存器IER设置中断允许控制字,1初始化串行通信口,MOVDX,LCR;线路控制寄存器地址MOVAL,80HOUTDX,AL;使DLAB=1,以便下面写除数寄存器MOVDX,DLL;低位除数寄存器MOVAL,0CH;9600波特率的除数低8位OUTDX,ALMOVAL,00HINCDX;高位除数寄存器OUTDX,AL,1初始化串行通信口,MOV AL,00011011b;偶校验、1位停止位;8位数据位MOV DX,LCR;线路控制寄存器地址OUTDX,ALMOVAL,03H;MOVDX,MCR;MODEM控制寄存器地址OUTDX,ALMOVAL,0;禁止中断MOVDX,IER;中断允许寄存器地址OUTDX,AL,6.2.2 16550编程举例,1发送一个字符程序,一 查询方式异步串行通信编程,采用查询方式下的字符发送编程,有两种方法:第一种方法,近距离传送不考虑RS-232C的MODEM控制信号,CPU只要检测到INS8250发送保持寄存器为空(即线路状态寄存器D5=1),即可向发送保持寄存器输出一个字符;第二种方法,考虑到发送持续的通用性,即可能用于远距离通信的要求,故应按照RS-232C配置MODEM时的控制规则去处理。在这种情况下,发送方首先要使RTS和DTR有效,即在MCR中使RTS=DTR=1。然后,检测MODEM状态寄存器MSR,只有当MSR中的CTS和DSR有效,CPU才可按第一种方法向INS8250输出一个字符。按第二种方法编写发送程序的流程图如图5-8所示。,2发送一个字符程序,自行思考与实现:如果采取第一种方法发送一个字符,程序该如何编写,3接收一个字符程序,采用查询方式接收一个字符的编程,也有两种方法第一种方法是不考虑RS-232C的MODEM控制信号,CPU只要检测到INS8250的接收数据寄存器准备好(即线路状态寄存器D0=1),即可从接收数据寄存器读取一个字符;第二种方法,考虑到发送持续的通用性,即可能用于远距离通信的要求,故应按照RS-232C配置MODEM时的控制规则去处理。在这种情况下,接收方首先要在MCR中设置数据终端就绪信号(DTR=1),然后,检测MODEM状态寄存器MSR。只有当MSR中的数据设备就绪信号DSR=1有效,CPU才可按第一种方法从INS8250接收一个字符。按第二种方法编写接收程序的流程图见下页。,6.2.2 16550编程举例,一 查询方式异步串行通信编程,3接收一个字符程序,自行思考与实现:如果采取第一种方法发送一个字符,程序该如何编写,REV_SHOW子程序流程图,1通信中断初始化,二.中断方式异步串行通信编程,(1)修改中断向量,使新的中断向量指向自行编制的通信中断程序。(2)确定16550的操作方式,设置中断允许寄存器相应位的允许或禁止(选择中断源类型),并允许中断操作(置MCR的OUT2有效(该步骤原因详见教材P274)。(3)确定起止式通信协议,设置通信波特率及数据桢传输格式。(4)开放通信中断,对8259A中断控制器的屏蔽寄存器编程(OCW1),开放串口中断。,2通信中断主程序,该程序没有统一的模式,完全随用户应用的要求自行编制。,3通信中断服务程序,该程序是中断处理的核心,一般分成以下3段:(1)判断发生中断的中断源类型,通过读取中断识别寄存器(IIR)的标识位,找到相应中断服务程序的入口地址。(2)中断处理,对不同的中断类型,进行不同的处理:如果是接收数据寄存器就绪中断则从INS8250数据寄存器读取数据如果是发送保持寄存器空中断,则从内存读取字符写到16550发送保持寄存器如果是接收数据出错引起的中断,则从16550线路状态寄存器读取状态进行分析,根据错误终止或作出相应的处理;如果是MODEM状态变化引起的中断,则从16550的MODEM状态寄存器读取状态进行分析,根据状态变化,作出相应的处理。,3通信中断服务程序,(3)判断是否有尚未处理的中断。每种中断源处理后,要继续判别中断识别寄存器的最低位IP是否为0。若为0,则输入标识位指示的相应中断处理;若为1,则结束中断处理(通常发中断结束命令EOI到中断控制器),并以IRET返回被中断的通信程序。,

    注意事项

    本文(可编程串行接口芯片.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开