《可编程串行接口芯片.ppt》由会员分享,可在线阅读,更多相关《可编程串行接口芯片.ppt(82页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第6章 可编程串行接口芯片165506.1 串行接口系统概述6.2 可编程串行接口芯片165506.1 串行接口系统概述串行通信方式用于远程通信。数据在单条传输线上,一位接一位地按顺序传送的方式称为串行通信。串行通信主要优点是节省通信线路,但具有数据传输效率低的特点。因此,串行通信适合于远距离传送,可以从几米到数千公里。对于长距离、低速率的通信,串行通信往往是唯一的选择。6.1 串行接口系统概述6.1.1 串行I/O接口6.1.2 串行通信基础6.1.3 串行通信协议串行I/O 接口u串行通信方式u异步方式 串行异步接口 通用异步收发器u同步方式 串行同步接口 通用同步收发器一、串行接口的基本
2、功能一、串行接口的基本功能串行接口与输入输出设备之间以串行方式传送数据,与CPU之间以并行方式传送数据。CPU串行接口外部设备串行 并行串行I/O 接口u功能1 实现串行和并行数据格式之间的转换。u功能2 实现数据缓冲功能。u功能3 控制功能。接收CPU的命令,输出接口的状态等。串行I/O 接口u串行接口的基本功能如下:二、串行接口的基本结构串行I/O 接口串行接口的基本结构如下:输出缓冲寄存器:接收CPU从数据总线上送来的并行数据,并加以保存。输出移位寄存器:它接收从输出缓冲器送来的并行数据,以发送时钟的速率把数据逐位移出,即将并行数据转换为串行数据输出。输入移位寄存器:它以接收时钟的速率把
3、出现在串行数据输入线上的数据逐位移入,当数据装满后,并行送往输入缓冲寄存器,即将串行数据转换成并行数据。输入缓冲寄存器:它从输入移位寄存器中接收并行数据,然后由CPU取走。控制寄存器:它接收CPU送来的控制字,由控制字的内容,决定通信时的传输方式以及数据格式等。例如采用异步方式还是同步方式,数据字符的位数,有无奇偶校验,是奇校验还是偶校验,停止位的位数等参数。串行接口的基本结构如下(续):状态寄存器:状态寄存器中存放着接口的各种状态信息,例如输出缓冲区是否空,输入字符是否准备好等。在通信过程中,当符合某种状态时,接口中的状态检测逻辑将状态寄存器的相应位置“1”,以便让CPU查询。三、串行接口的
4、工作过程CPU串行接口外部设备接收发送串行接口将CPU送来的并行数据转换成串行数据,并对有效数据“包装”,即加上起始位、产生奇偶校验位和停止位,再发送出去。发送数据接收数据串行接口将串行输入的数据转换成并行数据,同样要对有效数据进行处理(去掉起始位、校验位和停止位)和奇偶校验,然后等待CPU取走。串行I/O 接口n有效数据由CPU写入接口中的输出缓冲寄存器,再送到输出移位寄存器。n同时将状态寄存器中的“发送准备好”位置“1”,并发出中断请求信号(用中断方式时),表示接口可以接收CPU写入下一个有效数据。n在输出移位寄存器中。由发送控制逻辑对有效数据进行“包装”,即加上起始位、奇偶校验位和停止位
5、。n经包装后的数据由输出移位寄存器按选定的传输率逐位移出,变成串行数据发送到串行输出线上去。发送过程串行I/O 接口n接收控制电路不断地监视串行数据输入线上的电平,一旦出现持续一个位周期的低电平(异步方式下),则开始采样有效数据位,并使数据进入输入移位寄存器。n采样重复进行,直至采样到停止位。n接收控制逻辑对接收的数据进行格式检查,若不正确,则将状态寄存器中的相应位置“1”;若正确,则将有效数据位并行传送到输入缓冲器。n然后,将状态寄存器中的“接收数据准备好”位置“1”;若接口处于中断允许状态,则还向CPU发出中断请求信号。CPU可以通过查询或中断方式读取输入缓冲寄存器中的有效数据。接收过程串
6、行I/O 接口9.1 9.1 串行接口系统概述串行接口系统概述串行I/O接口接收 过程CPU外部设备6.1.2 串行通信基础1.波特率(Baud)一、数据传输率 数据传输率是指单位时间内传输的信息量,可用比特率和波特率来表示。比特率:比特率是指每秒传输的二进制位数,单位为bit/s(bps)表示。波特率:波特率是指每秒传输的符号数,若每个符号所含的信息量为1比特,则波特率等于比特率。单位为Baud。在计算机中,一个符号的含义为高低电平,它们分别代表逻辑1和逻辑0,所以每个符号所含的信息为1位,因此在计算机通信中,常将比特率称为波特率,即 1(Baud)=1 bit/s 传送一个二进制位所需的时
7、间为位时间,用Td表示。位时间与波特率的关系是Td=1/B2.发送/接收时钟(Txc/Rxc)发送数据时,发送器在发送时钟作用下,将“发送移位寄存器”的数据按位串行移位输出;接受数据时,接受器在接收时钟作用下,对来自通信线上的串行数据按位串行移入“接收移位寄存器”。6.1.2 串行通信基础2.发送/接收时钟(Txc/Rxc)波特率波特率:单位时间内传送的二进制数据的位数,以位/秒(b/sb/s)表示,也称为数据位率。它是衡量串行通信它是衡量串行通信速率的重要指标速率的重要指标。收收/发时钟发时钟直接决定了通信线路上数据传输的速率,对于收/发双方之间数据传输的同步有十分重要的作用。一般在发送端是
8、由发送时钟的下降沿下降沿使送入移位寄存器的数据串行移位输出。而接收端则是在接收时钟的上升上升沿沿作用下将传输线上的数据逐位打入移位寄存器。6.1.2 串行通信基础二、串行通信的连接方式1.单工(simplex)连接2.半双工(half-duplex)连接3.全双工(full-duplex)连接CPU串行接口外部设备串行 并行T RTRRTTTRR6.1.2 串行通信基础三、信号的调制和解调原因:原因:如果数字信号直接在公用电话网的传输线上传送,高次谐波的衰减会很厉害,从而使信号到了接收端后将发生严重畸变和失真解决:解决:发送方使用调制器 调制器(Modulator),把要传送的数字信号 数字信
9、号调制转换为适合在线路上传输的音频模拟信号 音频模拟信号;接收方则使用解调器 解调器(Demodulator)从线路上测出这个模拟信号,并还原成数字信号6.1.2 串行通信基础四、串行通信的检错和纠错信息的正确性对计算机的可靠工作具有极其重要的意义,但在信息的存储与传输过程中,常可能由于某种干扰或其他不可靠因素的存在而发生差错。在串行通信中,由于线路长和噪声干扰的存在,会导致信息传输过程中出现错误。为保证信息传输的正确性,必须对传输的数据信息进行差错检查和校正,即检错和纠错。检错是如何发现传输中的错误,而纠错是发现 错误后如何消除错误。在基本通信协议中,一般采用奇偶检验或方阵码检错,以反馈重发
10、方式纠错。在高级通信协议中,一般采用循环冗余码(CRC)检错,以自动纠错方式来纠错。6.1.2 串行通信基础奇偶校验的基本原理这种利用信息位中“1”的个数的奇偶性来达到检验目的的编码称为奇偶校验码。使整个信息位“1”的个数为奇数的编码叫奇校验码;而使整个信息位“1”的个数为偶数的编码叫偶校验码。附加的信息位称为奇偶校验位,简称校验位。需要传送的数据位本身称为有效信息位。在所传输的有效数据中附加冗余位(即检验位),使整个信息位(包括有效位和检验位)中“1”的个数具有奇数或偶数的特性。整个信息位经过线路传输后,若原来所具有的“1”的个数的奇偶性发生了变化,则说明出现了传输错误,可由专门的检测电路检
11、测出来。6.1.2 串行通信基础有效信息位是1011101,采用偶校验,则附加的校验位是1。最后得到的信息是10111011有效信息位是1011011,采用奇校验,则附加的校验位是0。最后得到的信息是10110110例1例26.1.2 串行通信基础2.方阵码校验 基本原理:先在每个7位编码的字符后附加1位奇偶校验位,使整个字符的“1”的个数为偶数或奇数。然后使若干个字符组成一个数据块,列成方阵,再在纵向按位加,产生一个字符的检验字符,并将它附在数据的末尾。这一检验字符是所有数据字符“异或”的结果,反映了整个数据的奇偶性。在数据接收过程中,数据块读出产生一个检验字符,并与发送来的检验字符进行比较
12、,若两者不同,说明出现差错,则以反馈重发来纠错。若两者相同,表示接收数据正确。6.1.2 串行通信基础3.CRC 校验CRC是利用编码原理,对传送的二进制码序列以一定的规则产生一定的校验码,并将校验码放在二进制序列之后,形成符合一定规则的新的二进制码序列(称为编码),并将新的二进制码序列发送出去。在接收时,就根据信息和校验码之间所遵循的规则进行检测(称为译码),从而检测出传输过程中是否发生差错。CRC校验是对整个数据块进行校验,同步串行通信都采用CRC校验。6.1.2 串行通信基础一、概述 在串行通信中,发送端发送数据时,一位一位往外发送,没有问题,问题是接收端,一根线传送过来的信息01101
13、10表示什么意思?不知道.所以发、收双方一定要有约定。1、接收方怎么知道数据传送的开始和结束?2、接收方怎么判断所接收数据的正确性。所以,串行通信中,如何使收发双方同步工作是关键。为了实现同步,互相通信的双方必须就数据传输方式、同步控制方式、差错处理、应答方式和信号格式等问题作出共同遵守的一组规定,这种规定称为通信协议。常用的串行通信中数据传输的同步方法有2种,即异步方式和同步方式,相应的有异步通信协议同步通信协议。6.1.3 串行通信协议1、串行异步通信时的数据格式二、异步通信协议异步方式通信是以字符为单位进行传输的,字符之间没有固定的时间间隔要求,而每个字符中的各位则以固定的时间传送。收、
14、发双方取得同步的方法是采用在字符格式中设置起始位和停止位。(把一个字符看作是一个独立的信息单元,并且字符出现在数据流中相对时间是任意的。)在一个有效字符正式发送前,发送器先发送一个起始位,然后发送有效字符位,在字符结束时再发送一个停止位,起始位至停止位构成一帧。6.1.3 串行通信协议起始位 校验位 停止位 空闲位 数据位低位高位字符0/1 0/1 0/1 0/11 0 1 1 1起始位每个字符开始传送的标志,起始位采用逻辑0电平数据位数据位紧跟着起始位传送。由58个二进制位组成,低位先传送校验位用于校验是否传送正确;可选择奇检验、偶校验或不传送校验位停止位表示该字符传送结束。停止位采用逻辑1
15、电平,可选择1、1.5或2位空闲位传送字符之间的逻辑1电平,表示没有进行传送6.1.3 串行通信协议比如ASCII 字符 A,二进制是0100 0001(8位),它们在起始位和2位停止位之间传送,并使用了1位奇偶校验位。6.1.3 串行通信协议2、串行异步通信时的数据接收接收端采样时钟频率为位频率的16倍,采样时间基准应确保采样时刻在每一位的中间。注意在接收端设置一采样时钟频率计数器,当检测到起始位下降沿时,将其清零,并开始对采样时钟计数。当计数器计到8时,表示已到达起始位的中间位置,此时采样值为0,说明是真正的起始位,同时将计数器清零;若采样值不为0,则说明一开始检测到的下降沿不是真正的起始
16、位前沿,而是一次干扰,此次检测应作废,计数器清零,并重新开始检测起始位。6.1.3 串行通信协议2、串行异步通信时的数据接收检测到真正的起始位后,计数器清零,以后每次计到16时,便采样收到的信号波形(即每一位的中间),将采到的数值暂存起来,同时将计数器清零,重新计数,直至最后的停止位被采样。如果停止位采样正确(为1),则字符被接收,并由暂存器装入寄存器。若停止位采样值为0,说明同步或传输有问题,此次采样所得字符作废,不被接收。6.1.3 串行通信协议3、串行异步通信的特点 起止式异步通信协议传输数据对收发双方的时钟同步要求不高,发送器和接收器可以不用共同的时钟。串行异步通信的数据格式可以根据实
17、际需要,通过可编程串行接口电路,用软件命令的方式进行设置。在不同传输系统中,这些通信格式的设定完全可以不同。附加信息位(额外开销),使通信效率降低。6.1.3 串行通信协议例题:异步传输7位ASCII码,如果需要数据传输速率为240字符/秒,使用1位奇偶校验位和1位停止位,则:1)波特率应该是多少?2)有效数据位传输位是多少?3)传输效率是多少?解:11)波特率是)波特率是(77位数据位位数据位+11位起始位位起始位+11位校验位位校验位+11位停止位位停止位)240240=24002400b/sb/s22)有效数据位传输位是)有效数据位传输位是:7240=1680b/s7240=1680b/
18、s33)传输效率是:)传输效率是:1680/2400=70%1680/2400=70%6.1.3 串行通信协议1、串行同步通信的特点三、串行同步通信协议 要求对传送数据的每一位都必须在收、发两端严格保持同步,即所谓“位同步”。因此,收、发两端需用同一个时钟源作为时钟信号。没有起始位和停止位,它不是用起始位表示字符的开始。(3)通信时,字符数据不允许有空隙。当线路空闲或没有字符可发送时,可发送收、发双方约定的同步字符。6.1.3 串行通信协议(4)传输效率高,适合于快速、大量数据的传送。三、串行同步通信协议外同步法是在发送数据之前向接收端发送一串时钟脉冲,接收端按这个时钟频率调整自己的时序,使接
19、收时钟频率锁定在接收到的时钟频率上,并作为同步时钟来接收数据。(没有同步字符,靠外部时钟同步)外同步法内同步法同步方法内同步法是接收端从接收到的数据信息波形本身提取同步的方法。(有一个(单同步)或两个(双同步)同步字符)6.1.3 串行通信协议2、同步通信协议概述三、串行同步通信协议 面向字符的同步通信协议 面向比特的同步通信协议6.1.3 串行通信协议6.1.4 RS-232C串行通信标准一、RS-232C串行通信标准EIA Electronic Industry Association,美国电子工业协会RS Recommended standard,推荐标准232 标识号C RS232的最
20、新一次修改(1969年)EIA-RS-232C全称RS-232C串行通信标准定义说明:当初制定此标准的目的是为了使不同厂家生产的设备能达到接插的“兼容性”。也就是说不同厂家所生产的设备,只要它们都有具有RS-232C标准接口,则不需要任何转换电路,就可以互相插接起来。这个标准仅保证硬件兼容而没有软件兼容。此外,用它进行数据传输时,由于线路的损耗和噪声干扰,传输距离一般不超过15m。通常两计算机的近距离通信可以通过RS-232C标准接口连接起来。最初是为远程通信连接数据终端设备DTE(Data Terminal Equipment)与数据通信设备DCE(Data Communication Eq
21、uipment)而制定的。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:载波检测输
22、出。6.1.4 RS-232C串行通信标准1.电气特性一、RS-232C串行通信标准为了能够同计算机接口或终端的TTL器件连接,必须在EIA-RS-232C与TTL电路之间进行电平和逻辑关系的变换。集成转换器件TTLEIA MC1488、SN75150EIATTL MC1489、SN75154TTLEIA MAX232 l 232C 接口采用EIA 电平 高电平为3V 15V 低电平为3V 15V 实际常用12V 或15Vn 标准TTL电平n 高电平:2.4V5Vn 低电平:0V0.4V相互转换6.1.4 RS-232C串行通信标准2.连接器的机械特性一、RS-232C串行通信标准131251
23、41131425 异步通信的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 B-9型连接器与DB-25型引脚信号定义DCD RxD TxD DTR SG DSR RTS CTS RIDB-9 1 2 3 4 5 6 7 8 9DB-25 8 3 2 20 7 6 4 5 22AT机以后(不支持20mA电流环接口),使用DB-9连接器,作为提供多功能I/O卡或主板上COM1和COM2两个串行接口的连接器。它只提
24、供异步通信的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)联络控制信号线n TxD:发送数据n 串行数据的发送端n RxD:接收数据n 串行数据的接收端6.1.4 RS-232C串行通信标准n RTS:请求发送n当数据终端设备准备好送出数据时,就发出有效的RTS信号,用于通知数据通信设备准备接收数据n CTS:清除发送(允
25、许发送)(请求响应)n当数据通信设备已准备好接收数据终端设备的传送数据时,发出CTS有效信号来响应RTS信号n RTS和CTS是数据终端设备与数据通信设备间一对用于数据发送的联络信号(握手信号)6.1.4 RS-232C串行通信标准n DTR:数据终端准备好n通常当数据终端设备一加电,该信号就有效,表明数据终端设备准备就绪n DSR:数据装置准备好n通常表示数据通信设备(即数据装置)已接通电源连到通信线路上,并处在数据传输方式n DTR和DSR也可用做数据终端设备与数据通信设备间的联络信号,例如表示设备的状态6.1.4 RS-232C串行通信标准n SG:信号地n为所有的信号提供一个公共的参考
26、电平n DCD:载波检测(DCD)n当本地调制解调器接收到来自对方的载波信号时,该引脚向数据终端设备提供有效信号n RI:振铃指示n当调制解调器接收到对方的拨号信号期间,该引脚信号作为电话铃响的指示、保持有效6.1.4 RS-232C串行通信标准l PG:保护地(机壳地)起屏蔽保护作用的接地端,一般应参照设备的使用规定,连接到设备的外壳或大地l TxC:发送器时钟 控制数据终端发送串行数据的时钟信号l RxC:接收器时钟 控制数据终端接收串行数据的时钟信号6.1.4 RS-232C串行通信标准二、串行口互连微机利用232C接口连接调制解调器,用于实现通过电话线路的远距离通信6.1.4 RS-2
27、32C串行通信标准MODEM微机2345678202223456782022数据装置准备好DSR数据终端准备好DTR发送数据TxD接收数据RxD请求发送RTS允许发送CTS信号地GND载波检测DCD振铃指示RI9.1 9.1 串行接口系统概述串行接口系统概述 9.1.4 RS-232C串行通信标准电话线MODEM微机2345678202223456782022MODEM23456782022数据装置准备好DSR数据终端准备好DTR发送数据TxD接收数据RxD请求发送RTS允许发送CTS信号地GND载波检测DCD振铃指示RI微机234567820221.零Modem 的最简连线(3 线制)微机利
28、用232C接口直接连接进行短距离通信。这种连接不使用调制解调器,所以被称为零调制解调器(Null Modem)连接。6.1.4 RS-232C串行通信标准2.零Modem 标准连接TxD 2RxD 3SG 7RTS 4CTS 6DCD 8DSR 6RI 22DTR 202 TxD3 RxD7 SG4 RTS6 CTS8 DCD6 DSR22 RI20 DTR微机 微机6.1.4 RS-232C串行通信标准6.2 可编程串行接口芯片165506.2.1 16550介绍6.2.2 16550编程举例9.2 9.2 可编程串行口控制器 可编程串行口控制器8250 82509.2.1 8250的逻辑结
29、构和引脚功能 PC微机异步通信适配器是微机与微机、微机与MODEM及微机与外设之间进行异步通信的接口。其核心是UART。常见的UART主要有INS8250、PC16450和PC16550。此外,还有带更大缓冲的UART,称为PC16650和PC16750。16550引脚简介l 数据信号D7-D0:8根数据线和CPU数据总线连接。l 与地址有关的信号:CS0、CS1、!CS2、!ADS。当CS0=CS1=1、!CS2=0时,16550可被CPU访问,并由A2-A0选择要访问的寄存器。地址选通信号!ADS为低电平时,锁存三个片选信号以及A2-A0的输入状态。l 读写控制信号。16550有两对读写控
30、制信号,两对信号功能完全相同,只不过是信号电平不同而已。RD、WR为高电平有效,!RD、!WR为低电平有效。l 中断控制和复位信号。16550具有中断控制和中断优先级处理能力,INTR引脚产生高电平有效地中断请求信号。PC中,使用OUT2来控制中断请求信号INTR的输出,而OUT1没有使用。MR是复位信号,通常与系统RESET信号连接,在系统复位时对16550复位。l 时钟信号。XIN和XOUT是16550的主时钟引脚,晶体振荡器可连接在它们两者之间,或者XIN与外部时钟源连接。BAUDOUT输出是由发送器的波特率发生器产生的时钟信号,它常与RCLK输入连接,产生与发送器相等的接收器时钟。l
31、与通信设备连接的信号。请求发送RTS、允许发送CTS、数据终端准备好DTR、数据装置准备好DSR、振铃RI、载波检测DCD、串行数据信号RxD和TxD。这些信号经过EIA驱动器驱动后与9脚D型连接器相连。l 数据就绪信号。RxRDY和 TxRDY是接收器和发送器的就绪信号,常用于DMA方式控制数据传送。u 16550内部有12个8位寄存器,但是只有8个端口地址,用8个地址表示12个寄存器,所采取的措施如下:u 发送保持寄存器THR 和 接收数据寄存器RBR 共用一个地址,以读写信号来加以区分。u 以读方式访问RBR,以写方式访问THRu 波特率除数寄存器的高字节TLH与中断允许寄存器IER使用
32、相同的地址;波特率除数寄存器的低字节TLL与接收数据寄存器RBR和发送保持寄存器THR使用相同的地址,为了区分,借用线路控制寄存器LCR的最高位DLAB位来区分 16550内部寄存器地址及其选择方法DLAB A2 A1 A0被访问的寄存器0 000 接收数据寄存器RBR(读);发送保持寄存器THR(写)0 001 中断允许寄存器IER1 000 波特率除数寄存器(低字节)1 001 波特率除数寄存器(高字节)X 010 中断识别寄存器IIR(只读);FIFO 控制器FCR(只写)X 011 线路控制寄存器LCRX 100 MODEM 控制寄存器MCRX 101 线路状态寄存器LSRX 110
33、MODEM 状态寄存器MSRX 111 暂存表 LCR格式D7D6D5D4D3D2D1D0DLAB SB SP EPS PEN STB WLS1 WLS0除数寄存器访问允许中止设定附加奇偶标志位选择奇偶校验选择奇偶校验允许停止位选择 字符长度选择1-允许0-禁止1-中止0-正常1-附加1位0-不附加11-偶校验01-奇校验X0-无校验0-1位停止位1-1.5或2位停止位根据D1 D0区分00-5位01-6位10-7位11-8位1,线路控制寄存器(LCR:Line Control Register)用于指定异步串行通信的数据格式 2,线路状态寄存器(LSR:Line Status Registe
34、r):只读存储器,用来向CPU提供数据接收和发送时的状态。这些状态可以被CPU查询,也可以触发中断请求。LSR格式D7D6D5D4D3D2D1D0ER TEMT THRE BI FE PE OE DR错误标志发送器空发送保持寄存器中止识别指示接收格式错接收奇偶错越限出错接收数据准备0-无错误1-FIFO至少有一个错误0-发送器不空1-发送器空0-等待发送器1-发送器就绪0-无中止状态1-进入中止状态0-正常1-出错0-正常1-出错0-正常1-出错0-数据未准备好1-FIFO或接收缓冲器中有数据3,波特率除数寄存器(TLH与TLL)u波特率除数寄存器分为高字节寄存器TLH和低字节寄存器TLLu该
35、寄存器用于存放除数寄存器值,从而确定波特率。除数寄存器值不同,则波特率不同。(分频系数:在基准时钟频率的基础上所作的分频。)除数寄存器值=基准时钟频率(16波特率)注:16为分频系数,即每16个基准时钟频率才会发送一位二进制数据u在写入除数之前,应将线路控制寄存器的最高位DLAB置1,只有这样才可以访问到除数寄存器u由于除数是16位的,所以应分别向TLH和TLL两个端口分别写入除数值的高8位和低8位。u16550芯片输入的基准时钟频率为1.18432MHz 常用波特率常数速率(b/s)波特率高8位(写入TLH)波特率低8位(写入TLL)2400 00H 30H4800 00H 18H9600
36、00H 0CH19200 00H 06H38400 00H 03H57600 00H 02H115200 00H 01H4,中断允许寄存器(IER:Interrupt Enable Register):16550有4级中断,按优先级从高到低依次为:接收出错中断、接收缓冲器满中断、发送保持寄存器空中断和MODEM输入状态改变中断。这些中断的允许或屏蔽由IER来控制IER格式D7D6D5D4D3D2D1D00 0 0 0 I0E I3E I1E I2E类型0中断:MODEM状态改变1-允许0-屏蔽类型3中断:接收出错1-允许0-屏蔽类型1中断:发送保持器空(数据发送完毕)1-允许0-屏蔽类型2中断
37、:接收缓冲区满(数据接收完毕)1-允许0-屏蔽只要IER寄存器的相应位写“1”就允许中断请求,写“0”就禁止中断请求5,中断标识寄存器(IIR:Interrupt identifier Register):如果16550工作于中断方式,IIR指出有无待处理的中断发生及其类型,并封锁比此类优先级低的所有类型中断。IIR格式D7D6D5D4D3D2D1D0FIFO 指示标志0 0 超时中断 中断类型标识 未决中断指示00-无FIFO01-允许FIFO,但不可用11-允许FIFO0-不超时1-超时11-接收出错10-接收缓冲器满01-发送保持器空00-MODEM 状态改变0-中断有待处理1-无中断为
38、了具体识别究竟是哪种事件引起的中断(即中断源),UART内部设置了中断识别寄存器IIR。它保存着在请求中断的中断类型编码。IIR是只读寄存器,它的内容随中断源而改变。6,发送保持寄存器(THR:Transmit Holding Register):该寄存器寄存CPU写入的一字节数据,在发送移位寄存器空闲时,自动转存到发送移位寄存器。按照编程制定的帧格式,发送移位寄存器为每一个数据添加起始位、校验位和停止位,转换成串行数据,在发送器时钟的控制下,经SOUT端一位一位地发送出去。7,接收缓冲寄存器(RBR:Receive Buffering Register):在接收器时钟的控制下,接收移位寄存器
39、从SIN端子接收的一帧数据,去掉起始位、校验位和停止位,转换成并行数据送接收缓冲寄存器等待cpu读取。16550芯片数据传输过程由于CPU与接口之间按并行方式传输,接口与外设之间按串行方式传输,因此,在串行接口中,必须要有“接收移位寄存器”(串并)和“发送移位寄存器”(并串)。8,MODEM控制寄存器(MCR)。控制芯片的4个管脚的输出和芯片的环路检测。MCR的格式如表7所示。MCR格式D7D6D5D4D3D2D1D00 0 0 环路检测输出2 输出1 请求发送数据终端就绪0-正常收发1-内部自循环1-OUT2引脚有效1-OUT1引脚有效1-RTS信号有效1-DTR 信号有效9,MODEM状态
40、寄存器(MSR)。反映UART与通信设备(如MODEM)之间联络信号的当前状态以及这些信号的变化情况。MSR格式D7D6D5D4D3D2D1D0RLSD RI DSR CTSRLSDTERIDSR CTS收到“接收线载波检测”收到“振铃指示”收到“数传机就绪”收到“清除发送”RLSD位发生改变收到“振铃指示后沿”DSR 位发生变化CTS 位发生变化10,FIFO控制寄存器(FCR)。16550有一个FIFO缓冲器,用于缓冲正在发出或接收的数据。FCR格式位 意 义 位 意 义0允许FIFO缓冲器工作4保留1清除接收FIFO缓冲器5不用2清除发送FIFO缓冲器6接收端中断触发器值(低位)3 DM
41、A 7接收端中断触发器值(高端)6.2.2 16550编程举例 1 初始化串行通信口一 查询方式异步串行通信编程 在查询方式下异步通信编程一般有三个部分:初始化、发送一个字符及接收一个字符。下面以串行口COM1(端口地址3F8H)为例,分别说明这三个部分的编程方法。初始化串行通信口的内容是:确定数据传输帧格式(包括数据位长度、停止位长度及有无奇偶校验和校验的类型)、确定传输波特率以及确定INS8250操作方式。操作方式是指自发自收的循环反馈方式(用于诊断)还是通常的两点之间的通信方式,是程序查询方式传送还是中断方式传送。1 初始化串行通信口初始化的一般方法是按一定的步骤分别对线路控制寄存器LCR、波特率除数寄存器TLL、TLH 和 MODEM控制寄存器MCR等进行参数写入操作,其参数是在程序中由指令分散设定的;1.通过写除数寄存器TLL与TLH设置波特率2.通过写线路控制寄存器LCR设置通信数据格式3.通过写MODEM控制寄存器MCR设置MODEM控制字4.通过写中断允许寄存器IER设置中断允许控制字