第5章可编程接口片2_第1页
第5章可编程接口片2_第2页
第5章可编程接口片2_第3页
第5章可编程接口片2_第4页
第5章可编程接口片2_第5页
已阅读5页,还剩75页未读, 继续免费阅读

下载本文档

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

文档简介

1、第第5章章 可编程接口芯片可编程接口芯片(2)5.3 串行通信的基本概念串行通信的基本概念5.4 可编程串行通信接口可编程串行通信接口165505.5 可编程串行通信接口可编程串行通信接口8251a5.3 串行通信的基本概念串行通信的基本概念计算机与外部设备之间或计算机与计算机之间计算机与外部设备之间或计算机与计算机之间的信息交换称为的信息交换称为“通信通信”。通信方式可分为并行通信和串行通信两种:通信方式可分为并行通信和串行通信两种:并行通信:数据的各位同时传送并行通信:数据的各位同时传送串行通信:按照一定的格式一位一位地顺序传串行通信:按照一定的格式一位一位地顺序传送数据。信号在一根信号线

2、上传输。送数据。信号在一根信号线上传输。计算机计算机“主机主机”部件之间,如部件之间,如cpu与存储器、与存储器、cpu与接口电路,多采用并行方式传输数据与接口电路,多采用并行方式传输数据串行数据传输主要出现在接口与外部设备、计算机与串行数据传输主要出现在接口与外部设备、计算机与计算机之间。计算机之间。并行通信:数据有多少位,就需要多少根传输线,传并行通信:数据有多少位,就需要多少根传输线,传送速度快。数据位数多、传输距离远时传输成本高。送速度快。数据位数多、传输距离远时传输成本高。串行通信:只需一对传输线,可以利用现有的电话线串行通信:只需一对传输线,可以利用现有的电话线作为传输介质,降低传

3、输线路的成本,远距离数据传作为传输介质,降低传输线路的成本,远距离数据传送时更加突出。送时更加突出。图图5-235.3.1 串行数据通信串行数据通信 1 1 数据传送方式数据传送方式(1 1)单工方式)单工方式只允许数据按照一个固定的方向传送只允许数据按照一个固定的方向传送(2 2)半双工方式)半双工方式收发双方均具备接收和发送数据的能力,只有一对传收发双方均具备接收和发送数据的能力,只有一对传输线,同一时刻只能有一个站发送输线,同一时刻只能有一个站发送(3 3)全双工方式)全双工方式有两对传输信号线,每个站任何时刻既可以发送,又有两对传输信号线,每个站任何时刻既可以发送,又可以接收可以接收图

4、图5-242. 通信速率通信速率(1)传输率)传输率每秒钟传送二进制数码的位数,单位:位每秒钟传送二进制数码的位数,单位:位/秒秒 (bps)。(2)波特率)波特率 每位传送时间的倒数每位传送时间的倒数 每次传送每次传送1位时,波特率大小和传输率相等位时,波特率大小和传输率相等 使用调相技术可以同时传输使用调相技术可以同时传输2位或位或4位,这时传输率大位,这时传输率大于波特率于波特率 时钟频率可选为波特率的时钟频率可选为波特率的1倍、倍、16倍或者倍或者64倍。倍。3. 信号的调制信号的调制/解调解调 信号的调制:信号的调制: 用一个信号控制另一个信号的某个参数(幅值,频率,相用一个信号控制

5、另一个信号的某个参数(幅值,频率,相位)位), ,使之随之变化的过程称为调制。使之随之变化的过程称为调制。信号的解调:信号的解调: 从已调制信号中还原出被调制信号的过程称为解调。从已调制信号中还原出被调制信号的过程称为解调。发送端,调制器把数字信号变成模拟信号送到传输线发送端,调制器把数字信号变成模拟信号送到传输线路上。路上。接收端,解调器把模拟信号还原成数字信号,送到数接收端,解调器把模拟信号还原成数字信号,送到数据处理设备。据处理设备。调制器和解调器做在一起称为调制解调器,即调制器和解调器做在一起称为调制解调器,即modem。计算机称为数据终端设备计算机称为数据终端设备dte(data t

6、erminal equipment)调制解调器(调制解调器(modem)和其他通讯设备称为数据通)和其他通讯设备称为数据通信设备信设备dce(data communication equipment)。)。图图5-255.3.2 串行通信的方式串行通信的方式 1. 1. 同步传送方式同步传送方式 1)1) 发送方发送数据信号的同时发送一个用于同步的发送方发送数据信号的同时发送一个用于同步的时钟信号。时钟信号。2)2) 同步时钟信号的一个周期和一位数据是对应的。同步时钟信号的一个周期和一位数据是对应的。在同步时钟信号一个周期的时间里,数据线上同在同步时钟信号一个周期的时间里,数据线上同步地发送步

7、地发送1bit1bit数据。数据。3)3) 数据连续传送。若干个数据组成一个数据块。数据连续传送。若干个数据组成一个数据块。同步通讯格式同步通讯格式面向字符同步方式:面向字符同步方式: 用一个或者两个同步字符作为数据块的开始。用一个或者两个同步字符作为数据块的开始。 同步字符由用户约定,经常采用同步字符由用户约定,经常采用ascii码中代码为码中代码为16h的的“sync(同步)(同步)”字符。字符。 随后是由字符组成的信息,随后是由字符组成的信息, 字符之间没有间隔。字符之间没有间隔。面向比特同步方式面向比特同步方式: 以二进制信息以二进制信息“01111110”开始开始 随后是需要发送的各

8、位二进制信息随后是需要发送的各位二进制信息 最后以最后以“01111110”结束结束图图5-262. 异步传送方式异步传送方式 异步传送的数据以字符为单位异步传送的数据以字符为单位数据传输的速率由双方事先约定数据传输的速率由双方事先约定以以“帧(帧(frame)”为传送单位为传送单位一帧信息由一帧信息由712位二进制组成:位二进制组成: 起始位:起始位:1位逻辑位逻辑0 数据位:数据位:58位,由收发双方约定,先发送低位。位,由收发双方约定,先发送低位。 奇偶校验位:可约定采用奇校验,偶校验,无校验传奇偶校验位:可约定采用奇校验,偶校验,无校验传输。输。 停止位:停止位:1位、位、1.5位或位

9、或2位的逻辑位的逻辑1信号信号图图5-275.3.3 串行通讯接口串行通讯接口把计算机的并行数据转换成串行数据发送出去把计算机的并行数据转换成串行数据发送出去把接收到的外部串行数据转换成并行数据送入计算机把接收到的外部串行数据转换成并行数据送入计算机(1 1) 数据总线收发器数据总线收发器双向的并行数据通道,传送数据、状态和控制命令。双向的并行数据通道,传送数据、状态和控制命令。(2 2)控制寄存器)控制寄存器 接收接收cpu的各种控制信息。的各种控制信息。(3 3)状态寄存器)状态寄存器 串行通信过程中的状态信号串行通信过程中的状态信号图图5-28(4 4)输入、输出移位寄存器)输入、输出移

10、位寄存器 完成完成“并行并行”和和“串行串行”二种数据的相互转换二种数据的相互转换(5 5)数据输入寄存器)数据输入寄存器输入移位寄存器每次接收一位外部输入的数据,接收的数输入移位寄存器每次接收一位外部输入的数据,接收的数据填满后,将完整的并行数据送入数据输入寄存器暂存。据填满后,将完整的并行数据送入数据输入寄存器暂存。(6 6)数据输出寄存器)数据输出寄存器接收来自接收来自cpu输出的数据,并行送往输出移位寄存器,输出的数据,并行送往输出移位寄存器,逐位右移输出。逐位右移输出。(7 7)控制信号逻辑)控制信号逻辑 接收接收cpu发来的控制信号,产生内部各寄存器的读写信号。发来的控制信号,产生

11、内部各寄存器的读写信号。(8 8)移位脉冲时钟)移位脉冲时钟 从外部输入时钟信号,用作发送和接收数据的移位时钟。从外部输入时钟信号,用作发送和接收数据的移位时钟。5.3.4 rs-232c标准标准为了使通信能够顺利地进行,通信双方必须就为了使通信能够顺利地进行,通信双方必须就通信的规则事前进行约定,通信的规则事前进行约定,约定好的并在通信过程中双方共同遵守的通信约定好的并在通信过程中双方共同遵守的通信规则称为通信协议。规则称为通信协议。1 1 信号电平信号电平rs-232c标准采用负逻辑标准采用负逻辑逻辑逻辑“1”在在-3v-15v之间之间逻辑逻辑“0”在在+3v+15v之间之间通常使用通常使

12、用12v作为作为rs-232c电平电平mc1488和和mc1489进行进行rs232和和ttl之间的电平转换之间的电平转换2 2信号定义信号定义表表5-6给出了给出了rs-232c接口部分常用信号的定义。接口部分常用信号的定义。3 3接插件接插件使用使用25个引脚或个引脚或9个引脚的个引脚的d型接插件进行连接。型接插件进行连接。rtsctsdsrdcddtrri符符 号号方方 向向功功 能能9针连接器引针连接器引脚号脚号25针连接器引针连接器引脚号脚号txd输出发送数据32rxd输入接收数据23输出请求发送74输入发送允许85输入数据设备就绪66gnd信号地57输入载波检测18输出数据终端就绪

13、420输入响铃指示9225.4 可编程串行通信接口可编程串行通信接口16550通用的可编程异步通信接口芯片。通用的可编程异步通信接口芯片。内部有时钟产生电路、可编程波特率发生器、内部有时钟产生电路、可编程波特率发生器、双缓冲通信数据寄存器和多种中断处理功能。双缓冲通信数据寄存器和多种中断处理功能。对外有调制解调器控制信号,可直接与对外有调制解调器控制信号,可直接与modem相连。相连。与早期与早期ibm/pc机使用的异步通信接口机使用的异步通信接口8250兼容,兼容,最高波特率提高到最高波特率提高到1.5mb/s,具有,具有16字节字节fifo(先进先出缓冲)发送和接收功能。(先进先出缓冲)发

14、送和接收功能。5.4.1 16550的内部结构与外部引脚的内部结构与外部引脚1. 1. 数据总线缓冲器数据总线缓冲器连接连接16550与与cpu数据总线数据总线2. 2. 选择和读选择和读/ /写控制逻辑写控制逻辑接收来自接收来自cpu的地址、片选和控制信息,产生内部各的地址、片选和控制信息,产生内部各端口的读写操作命令。端口的读写操作命令。3. 3. 发送器发送器由发送保持寄存器、发送移位寄存器和发送同步控制由发送保持寄存器、发送移位寄存器和发送同步控制组成。组成。待发送的数据写入发送保持寄存器。发送保持寄存器待发送的数据写入发送保持寄存器。发送保持寄存器的内容自动转存到发送移位寄存器,在发

15、送器时钟的的内容自动转存到发送移位寄存器,在发送器时钟的控制下,由控制下,由sout引脚发送出去。引脚发送出去。4. 接收器接收器由接收移位寄存器、接收缓冲寄存器和接收同步控制由接收移位寄存器、接收缓冲寄存器和接收同步控制器组成。器组成。在接收时钟控制下,由在接收时钟控制下,由sin引脚输入的串行数据逐位存引脚输入的串行数据逐位存入移位寄存器,转换后的并行数据存入接收缓冲寄存入移位寄存器,转换后的并行数据存入接收缓冲寄存器,等待器,等待cpu读取。读取。5. 5. 调制调制/ /解调器控制电路解调器控制电路提供一组控制信号,直接与调制解调器相连,完成远提供一组控制信号,直接与调制解调器相连,完

16、成远程通信任务。程通信任务。6. 6. 通信线控制寄存器和通信线状态寄存器通信线控制寄存器和通信线状态寄存器控制寄存器保存控制寄存器保存cpu写入的通讯数据格式。写入的通讯数据格式。状态寄存器提供串行数据发送和接收时的状态状态寄存器提供串行数据发送和接收时的状态7. 波特率发生控制电路波特率发生控制电路由波特率发生器、分频系数寄存器组成。由波特率发生器、分频系数寄存器组成。16550对对18.432mhz的输入时钟进行分频,产生所要的的输入时钟进行分频,产生所要的发送器和接收器时钟信号。发送器和接收器时钟信号。分频系数在初始化时分两次写入除数寄存器的高分频系数在初始化时分两次写入除数寄存器的高

17、8位和位和低低8位,分频系数可由下式算出:位,分频系数可由下式算出:除数除数=18432000(波特率(波特率16)8. 中断控制逻辑中断控制逻辑由中断允许寄存器、中断识别寄存器和中断控制逻辑由中断允许寄存器、中断识别寄存器和中断控制逻辑三部分组成。三部分组成。实现中断优先权管理、中断申请等功能。实现中断优先权管理、中断申请等功能。9. 16550的引脚的引脚(1 1)数据信号)数据信号 双向数据线双向数据线d7d0,与数据总线相连,与数据总线相连(2)地址信号)地址信号片选信号:片选信号:cs0、cs1、cs2#。cs0=cs1=1,cs2#=0时,时,表明芯片被选中。表明芯片被选中。a2a

18、0 :具体访问哪个寄存器,由:具体访问哪个寄存器,由a2a0确定。确定。ads# :地址选通信号:地址选通信号ads#为低电平时,锁存三个片选为低电平时,锁存三个片选信号以及信号以及a2a0的输入状态。的输入状态。(3)读)读/写控制信号写控制信号两对读写控制信号,每对信号功能相同,电平不同。两对读写控制信号,每对信号功能相同,电平不同。rd=1或或rd#=0中一个有效且中一个有效且16550被选中时,可读;被选中时,可读;wr和和wr#=0中一个有效且中一个有效且16550被选中,可写。被选中,可写。图图5-3016550a2intrctsa1a0rclksinsoutcs1cs0xoutx

19、indsrrddcdrdrtsd0d1d2d3d4d5d6d7vccout1adsout2mrriddisdtrtxrdycs2baudoutwrwrvssrxrdy1402021(4)中断控制和复位信号)中断控制和复位信号intr:发送保持寄存器空或接收数据有效,:发送保持寄存器空或接收数据有效,16550的中的中断允许寄存器相应位置断允许寄存器相应位置1时,时,16550的中断请求引脚的中断请求引脚intr变为高电平,用作中断请求信号。变为高电平,用作中断请求信号。mr:复位信号,输入,它与系统:复位信号,输入,它与系统reset信号连接,系信号连接,系统复位同时也对统复位同时也对1655

20、0复位。复位。out1和和out2 :这两个输出引脚可以通过用户编程来改:这两个输出引脚可以通过用户编程来改变输出电平。变输出电平。图图5-31(5)时钟信号)时钟信号xin和和xout:16550的时钟信号输入引脚。的时钟信号输入引脚。从从xin输入的基准时钟,经过输入的基准时钟,经过16550内部波特率发生器(分内部波特率发生器(分频器)分频后产生发送器时钟,并经过频器)分频后产生发送器时钟,并经过baudout引脚输出。引脚输出。rclk:接收时钟,输入,常与:接收时钟,输入,常与baudout相连。相连。(6)与外设)与外设/调制解调器之间的联络信号调制解调器之间的联络信号rts#:

21、请求发送信号,输出。输出给外设或请求发送信号,输出。输出给外设或modemcts#: 允许发送信号,输入。外设或允许发送信号,输入。外设或modem对对rts#的应的应答。答。dtr#: 数据终端准备好。输出给外设或数据终端准备好。输出给外设或modem的,的,dtr#=0表示表示16550已经就绪。已经就绪。dsr#:数据设备准备好。对:数据设备准备好。对dtr信号的应答,信号的应答,dsr#=0,表示外设或表示外设或modem已经就绪。已经就绪。 dcd#: 载波检测输入载波检测输入, 表示表示modem已经接收到载波信号已经接收到载波信号ri#: 振铃指示输入信号振铃指示输入信号, 表示

22、表示modem已经接收到振铃已经接收到振铃信号。信号。 sin:串行数据输入。:串行数据输入。sout:串行数据输出。:串行数据输出。(7)数据就绪信号)数据就绪信号rxrdy:接收器就绪信号:接收器就绪信号txrdy:发送器就绪信号。:发送器就绪信号。5.4.2 16550的内部寄存器的内部寄存器1. 16550内部寄存器内部寄存器有有10个可寻址的个可寻址的8位寄存器,由地址线位寄存器,由地址线a0a2和和读读/写控制信号选择要访问的寄存器。写控制信号选择要访问的寄存器。内部寄存器分为三组:内部寄存器分为三组:数据传输:发送保持寄存器和接收缓冲寄存器。数据传输:发送保持寄存器和接收缓冲寄存

23、器。工作方式、参数设置:通信线控制寄存器、除数寄存工作方式、参数设置:通信线控制寄存器、除数寄存器、器、modem控制寄存器和中断允许寄存器。控制寄存器和中断允许寄存器。状态寄存器:通信线状态寄存器、状态寄存器:通信线状态寄存器、modem状态寄存状态寄存器和中断识别寄存器。器和中断识别寄存器。dlaba2 a1 a0访问的寄存器访问的寄存器主串口地址主串口地址辅串口地址辅串口地址0 0 0 0接收缓冲器(读)接收缓冲器(读)3f8h2 f8h0 0 0 0发送保持寄存器(写)发送保持寄存器(写)3f8h2 f8h0 0 0 1中断允许寄存器中断允许寄存器3f9h2 f9h 0 1 0中断识别

24、中断识别/ /fifo寄存器寄存器3fah2 fah 0 1 1通信线控制寄存器通信线控制寄存器3fbh2 fbh 1 0 0modem控制寄存器控制寄存器3fch2 fch 1 0 1通信线状态寄存器通信线状态寄存器3fdh2 fdh 1 1 0modem状态寄存器状态寄存器3feh2 feh1 0 0 0除数寄存器(低字节除数寄存器(低字节)3f8h2 f8h1 0 0 1除数寄存器(高字节除数寄存器(高字节)3f9h2 f9h(1)发送保持寄存器()发送保持寄存器(3f8h/2f8h)保存保存cpu送来的并行数据,送到发送移位寄存器,发送来的并行数据,送到发送移位寄存器,发送移位寄存器在

25、发送器时钟的作用下,把并行数据转送移位寄存器在发送器时钟的作用下,把并行数据转换成串行数据从换成串行数据从sout引脚输出。引脚输出。只有在发送保持寄存器空时,只有在发送保持寄存器空时,cpu才可以向发送保持才可以向发送保持寄存器写入下一个要发送的数据。寄存器写入下一个要发送的数据。(2)接收缓冲寄存器()接收缓冲寄存器(3f8h/2f8h)在接收时钟的作用下,从在接收时钟的作用下,从sin引脚输入的串行数据被引脚输入的串行数据被送到接收移位寄存器。送到接收移位寄存器。去掉起始位、校验位和停止位后,串行数据转换成并去掉起始位、校验位和停止位后,串行数据转换成并行数据并存入接收缓冲寄存器,等待行

26、数据并存入接收缓冲寄存器,等待cpu接收。接收。(3)通信线控制寄存器()通信线控制寄存器(3fbh/2fbh)用来设置串行异步通信的数据格式用来设置串行异步通信的数据格式d7位:位:dlab寻址位寻址位d7=1,访问除数寄存器,访问除数寄存器d7=0,访问接收缓冲器、发送保持寄存器。,访问接收缓冲器、发送保持寄存器。d6位:位:d6=1,发送方连续发送长时间中止信号(空,发送方连续发送长时间中止信号(空号),空号发送的时间超过一个完整的字符传送时号),空号发送的时间超过一个完整的字符传送时间时,接收方就认为发送方已中止发送。间时,接收方就认为发送方已中止发送。d3d5位:选择奇偶校验方式。位

27、:选择奇偶校验方式。d2位:规定一帧数据中停止位的位数。位:规定一帧数据中停止位的位数。d0位、位、d1位:定义一帧数据中数据位的位数。位:定义一帧数据中数据位的位数。图图5-32通信线控制寄存器(通信线控制寄存器(3fbh/2fbh)(4)中断识别寄存器)中断识别寄存器/ fifo控制寄存器控制寄存器(3fah/2fah)16550内部有四级中断,但只有一根中断请求信号。中断发生内部有四级中断,但只有一根中断请求信号。中断发生后,后,cpu通过查询中断识别寄存器来辨别中断类型。通过查询中断识别寄存器来辨别中断类型。fifo控制寄存器和中断识别寄存器占用相同的端口地址。中控制寄存器和中断识别寄

28、存器占用相同的端口地址。中断发生时读出该寄存器的内容,它作为中断识别寄存器来使断发生时读出该寄存器的内容,它作为中断识别寄存器来使用;写入用;写入fifo控制字时,作为控制字时,作为fifo控制寄存器。控制寄存器。图图5-33中断识别寄存器中断识别寄存器图图5-34(5)通信线状态寄存器()通信线状态寄存器(3fdh/2fdh)图图5-35(6)中断允许寄存器()中断允许寄存器(3f9h/2f9h) 低低4位代表中断允许控制位,置位代表中断允许控制位,置1,则允许相应的中断源请,则允许相应的中断源请求中断,否则禁止中断。求中断,否则禁止中断。(7)modem控制寄存器(控制寄存器(3fch/2

29、fch)设置与调制解调器连接的联络信号:设置与调制解调器连接的联络信号:d7d5位规定为位规定为0;d4位:位: =1,正常发送,正常发送/接收;接收; =0,内部循环方式(用于芯片检测)。,内部循环方式(用于芯片检测)。d0d3位的状态直接控制相关引脚的输出电平:位的状态直接控制相关引脚的输出电平: d0=1,使引脚,使引脚dtr#= 0 ,dtr#信号有效。信号有效。 d1=1,使引脚,使引脚rts#= 0,rts#信号有效。信号有效。 d2=1,使引脚,使引脚out1 # = 0,该引脚留给用户使用。,该引脚留给用户使用。 d3=1,使引脚,使引脚out2 # = 0,使,使16550能

30、送出中断请求。能送出中断请求。dctsdcddsr cts ddcdteriddsrd7d6d5d4d3d2d1d0cts#发生变化0=无变化1=有变化dsr#发生变化0=无变化1=有变化ri#变化0=无变化1=有变化dcd#发生变化0=无变化1=有变化dcd#引脚0=引脚为11=引脚为0dsr#引脚0=引脚为11=引脚为0cts#引脚0=引脚为11=引脚为0riri#引脚0=引脚为11=引脚为0(8)modem状态寄存器(状态寄存器(3feh/2feh)图图5-36(9)除数寄存器()除数寄存器(3f8h, 3f9h/2f8h, 2f9h)16550发送或接收的移位时钟,是在它的基准时钟发送

31、或接收的移位时钟,是在它的基准时钟(18.432mhz)基础上分频而来的。)基础上分频而来的。根据所需的波特率来确定分频系数,并在初始化时根据所需的波特率来确定分频系数,并在初始化时存入除数寄存器。存入除数寄存器。表表5-8给出了给出了9种波特率所需设置的除数寄存器的值。种波特率所需设置的除数寄存器的值。波特率波特率除数高除数高8位位除数低除数低8位位120003h0c0h180002h80h200002h40h240001h0e0h360001h40h480000h0f0h720000h0a0h960000h78h1920000h3ch表5-8波特率与分频系数对照表5.4.3 串行通信接口串

32、行通信接口16550的应用的应用1. 16550的初始化的初始化计算机硬件或软件复位后,要对计算机硬件或软件复位后,要对16550进行初进行初始化。始化。初始化主要包括:初始化主要包括:1)对通信线控制寄存器进行设置,确定异步通信的数对通信线控制寄存器进行设置,确定异步通信的数据格式。据格式。2)设置除数寄存器,确定通信速率。设置除数寄存器,确定通信速率。3)对对fifo控制寄存器、中断允许寄存器和控制寄存器、中断允许寄存器和modem控控制寄存器进行设置。制寄存器进行设置。初始化步骤初始化步骤:(1)80h送通信线控制寄存器,使寻址位送通信线控制寄存器,使寻址位d7=1。(2)除数高)除数高

33、8位位/低低8为分别送除数寄存器高为分别送除数寄存器高8位位/低低8位,确定通信速率。位,确定通信速率。(3)将)将d7=0的命令字写入通信线控制寄存器,的命令字写入通信线控制寄存器, 确确定串行异步通信一帧数据帧的格式。定串行异步通信一帧数据帧的格式。图5-32图图5-32通信线控制寄存器(通信线控制寄存器(3fbh/2fbh)(4)设置)设置fifo控制寄存器(控制寄存器(3fah) 。fifo控制寄存器与中断识别寄存器的地址都是控制寄存器与中断识别寄存器的地址都是3fah;读出时是中断识别寄存器;写入时是读出时是中断识别寄存器;写入时是fifo控制寄存器。控制寄存器。fifo控制寄存器中

34、各位的功能如图控制寄存器中各位的功能如图5-37。(5)设置中断允许寄存器设置中断允许寄存器(3f9h/2f9h) 设置成查询方式:中断允许寄存器中的命令字为设置成查询方式:中断允许寄存器中的命令字为0 0。 设置为中断方式:设置中断允许寄存器中的相应位为设置为中断方式:设置中断允许寄存器中的相应位为1 1,该位所控制的中断请求允许中断。该位所控制的中断请求允许中断。(6)设置)设置modem控制寄存器(控制寄存器(3fch/2fch)d4=0:设置:设置16550为正常接收为正常接收/发送方式。发送方式。d4=1:设置:设置16550工作在内部循环自检方式。工作在内部循环自检方式。d3=0:

35、16550工作在查询方式。工作在查询方式。d3=1:16550工作在中断方式。工作在中断方式。modem控制寄存器控制寄存器例例:16550端口地址为端口地址为3f8h-3ffh,使,使16550以以19200波特率进行异步通信,每字符为波特率进行异步通信,每字符为8比特,比特,1个停止位,采用奇校验,允许所有个停止位,采用奇校验,允许所有中断,则初始化程序为:中断,则初始化程序为:movdx,03fbh ;16550控制寄存器地址送控制寄存器地址送dxmoval,80h;置;置dlab=1,设置除数寄存器,设置除数寄存器outdx,almovdx,03f8h ;除数低;除数低8位寄存器地址送

36、位寄存器地址送dxmovax,003ch ;波特率为;波特率为19200bpsoutdx,al;送除数低;送除数低8位位moval,ahinc dx;产生除数高;产生除数高8位寄存器地址位寄存器地址outdx,al;送除数高;送除数高8位位movdx,03fbh ;16550控制寄存器地址送控制寄存器地址送dxmoval,0bh;8位数据位位数据位,奇校验奇校验,1位停止位位停止位outdx,almovdx,03fah ;fifo控制寄存器地址送控制寄存器地址送dxmoval,47h;允许;允许fifo并清除并清除outdx,al ; 设设fifo中断触发值为中断触发值为4字节字节movdx,

37、03f9h ;中断允许寄存器地址送;中断允许寄存器地址送dxmoval,0fh;允许所有中断;允许所有中断outdx,al; 设置中断允许控制字设置中断允许控制字movdx,03fch ; modem控制字寄存器地址控制字寄存器地址moval,0bh;正常收发,;正常收发,out1,out2有效有效outdx,al;设置;设置modem控制字控制字2. 16550应用举例应用举例两台计算机通过两台计算机通过16550实现异步通信实现异步通信16550的接收和发送数据均采用查询工作方式的接收和发送数据均采用查询工作方式通信波特率通信波特率9600bit/s每字符为每字符为8比特,比特,1个停止位

38、个停止位采用奇校验采用奇校验; 计算机计算机a_16550查询方式发送程序查询方式发送程序data segmentsend_data db num1,num2,;要发送的数据;要发送的数据times dw n;发送的数据个数;发送的数据个数 data endscode segmentassume cs : code, ds : databegin1:movax,datamov ds,ax;初始化;初始化16550movdx,03fbh ;16550控制寄存器地址送控制寄存器地址送dx moval,80h;置;置dlab=1,设置除数寄存器,设置除数寄存器outdx,almovdx,03f8h

39、;除数寄存器地址送;除数寄存器地址送dxmovax,0078h ;波特率为;波特率为9600bit/soutdx,almoval,ah inc dxoutdx,almovdx,03fbh ;16550控制寄存器地址送控制寄存器地址送dxmoval,0bh;8位数据位位数据位,奇校验奇校验,1位停止位位停止位outdx,alcall transmovah,4ch;程序结束,返回操作系统;程序结束,返回操作系统int21h ;查询方式发送子程序;查询方式发送子程序trans proc nearleabx,send_datamov cx,times ;要发送的数据个数送;要发送的数据个数送cxaga

40、in: movdx,03fdh ;通信状态寄存器地址送;通信状态寄存器地址送dxinal,dxtestal,20h;检测发送器是否准备就绪;检测发送器是否准备就绪jzagainmov dx,03f8hmov al,bx;取出发送区域的待发送数据;取出发送区域的待发送数据outdx,alincbx;指向下一个待发送数据;指向下一个待发送数据loopagain;n个数据传送完了吗?个数据传送完了吗?rettransendpcodeends end begin1 ; 计算机计算机b_16550查询方式接收程序查询方式接收程序data segment rec_data db 100 dup ( ? )

41、 ;存放接收的数据;存放接收的数据times dw n;要接收的数据个数;要接收的数据个数data endscode segmentassume cs:code,ds:databegin2:mov ax,datamov ds,ax;初始化;初始化16550mov dx,03fbh ;16550控制寄存器地址送控制寄存器地址送dxmov al,80h;置;置dlab=1,设置除数寄存器,设置除数寄存器 outdx,al mov dx,03f8h ;除数寄存器地址送;除数寄存器地址送dxmov ax,0078h ;波特率为;波特率为9600bit/soutdx,almov al,ahinc dxo

42、utdx,almov dx,03fbh ;16550控制寄存器地址送控制寄存器地址送dxmov al,0bh;8位数据位位数据位,奇校验奇校验,1位停止位位停止位outdx,alcall receive mov ah,4ch ;程序结束,返回操作系统;程序结束,返回操作系统int 21h;查询方式接收子程序;查询方式接收子程序receive procnearleabx,rec_data;接收缓冲区首址送;接收缓冲区首址送bx mov cx,times;要接收的数据个数送;要接收的数据个数送cxrepin: mov dx,03fdh;通信状态寄存器地址;通信状态寄存器地址inal,dxtest

43、al,1eh;检测接收的数据有无错误;检测接收的数据有无错误jnzerror test al,01h;检测接收缓冲器中是否有数据;检测接收缓冲器中是否有数据jzrepin movdx,03f8h ;数据接收寄存器地址送;数据接收寄存器地址送dxinal,dxmovbx,alincbxlooprepinclc;接收成功,清;接收成功,清cy标志位标志位jmp doneerror: stc;接收不成功,置;接收不成功,置cy标志位标志位done: retreceive endpcodeendsend begin2 5.5 可编程串行通信接口可编程串行通信接口8251a (1)可用于串行异步通信,也

44、可用于串行同步通信。)可用于串行异步通信,也可用于串行同步通信。 (2)接收、发送数据分别有各自的缓冲器,可以进行全双)接收、发送数据分别有各自的缓冲器,可以进行全双工通信。工通信。 (3)提供与外部设备特别是调制解调器的联络信号,便于)提供与外部设备特别是调制解调器的联络信号,便于直接和通信线路相连接。直接和通信线路相连接。 (4)每个字符的位数可以是)每个字符的位数可以是58位,可以设定奇校验或偶位,可以设定奇校验或偶校验,也可以不设校验。校验位的插入、检错及剔除都校验,也可以不设校验。校验位的插入、检错及剔除都由芯片自动完成。由芯片自动完成。 (5)异步通信时,停止位可选)异步通信时,停

45、止位可选1位、位、1.5位或位或2位,波特率为位,波特率为019.2k,时钟频率可设为波特率的,时钟频率可设为波特率的1倍、倍、16倍或倍或64倍。倍。(6)同步通信时,波特率的范围为)同步通信时,波特率的范围为056k波特。可设为单同波特。可设为单同步、双同步或者外同步,同步字符可由用户自行设定。步、双同步或者外同步,同步字符可由用户自行设定。 5.5.1 8251a的外部引脚的外部引脚d0d1d2d3d4d5d6d7resetrdwrc/dcstxrdytxerxrdytxdtxcrxdrxcstndetctsrtsdsrdtrclk+5vgnd2728125678211310121115

46、18148251a199325161723222420264与cpu连接与外设连接1.与cpu连接的引脚 d7d0:数据线,与系统数:数据线,与系统数据据 总线相连。总线相连。 reset:复位信号,输入,:复位信号,输入, 高电平有效。复位后高电平有效。复位后 8251a处于空闲状态处于空闲状态 直至被初始化编程。直至被初始化编程。 rd#:读选通信号,输入,:读选通信号,输入, 低电平有效。低电平有效。 wr#: 写选通信号,输入,写选通信号,输入, 低电平有效。低电平有效。 c/d#:控制:控制/数据端口选择输入线。数据端口选择输入线。8251a内部占用两个端口内部占用两个端口 地址,为

47、地址,为“0”时选择数据端口,传输数据(读或写),时选择数据端口,传输数据(读或写), 为为“1”时选择控制端口,时选择控制端口, 传输的是控制字(写)或状传输的是控制字(写)或状态态 信息(读)。由于该引脚信号用于选择内部端口,通信息(读)。由于该引脚信号用于选择内部端口,通 常把它和地址总线的常把它和地址总线的a0(8088)或)或a1(8086)相连。)相连。 cs#: 选片信号,输入,低电平有效。为低电平时选片信号,输入,低电平有效。为低电平时cpu才能才能 对对8251a操作。操作。 txrdy:发送准备好状态,输出,高电平有效。发送寄存器:发送准备好状态,输出,高电平有效。发送寄存

48、器 空且允许发送(脚电平为低,同时命令字中空且允许发送(脚电平为低,同时命令字中txen位位 为为1)时)时txrdy为高电平。为高电平。cpu向向8251a写入一个字写入一个字 符后符后txrdy恢复为低电平。恢复为低电平。txrdy可以用来向可以用来向 8259a申请发送中断。申请发送中断。 txe:发送缓冲器空闲状态,输出。高电平有效,:发送缓冲器空闲状态,输出。高电平有效, txe=1,表示发送缓冲器中没有要发送的,表示发送缓冲器中没有要发送的 字符,字符,cpu把要发送的下一个数据写入把要发送的下一个数据写入 8251a后,后,txe自动复位。自动复位。 rxrdy:接收准备好状态,

49、输入,高电平有效。:接收准备好状态,输入,高电平有效。 接收器接到一个字符后接收器接到一个字符后rxrdy为为“1”, 字符被字符被cpu读取后恢复为读取后恢复为“0”。rxrdy 可用来向可用来向8259a申请接收中断。申请接收中断。 2. 与外设或调制解调器连接的引脚与外设或调制解调器连接的引脚 txd:发送数据输出。:发送数据输出。cpu并行输出给并行输出给8251a的数据从这的数据从这个个 引脚串行发送出去。引脚串行发送出去。 rxd:串行数据输入,高电平表示数字:串行数据输入,高电平表示数字1,低电平表示数,低电平表示数字字 0。 syndet:同步状态输出,或者外同步信号输入。此引

50、脚:同步状态输出,或者外同步信号输入。此引脚 仅对同步方式有意义。仅对同步方式有意义。以下以下4根引脚用来连接调制解调器根引脚用来连接调制解调器dtr#:数据终端准备好,输出,低电平有效。:数据终端准备好,输出,低电平有效。8251a命令命令 字位字位d1为为1时有效,用于向调制解调器表示数据终时有效,用于向调制解调器表示数据终 端(计算机)已准备好。端(计算机)已准备好。dsr#:数据设备准备好,输入,低电平有效。调制解调:数据设备准备好,输入,低电平有效。调制解调 器准备好时有效,向器准备好时有效,向8251a表示表示modem(数据设(数据设 备)已准备就绪。备)已准备就绪。cpu可通过

51、读取状态寄存器的可通过读取状态寄存器的 d7位检测该信号。位检测该信号。rts#:请求发送信号,输出,低电平有效。:请求发送信号,输出,低电平有效。8251a命令字命令字 位位d5为为1时有效,请求调制解调器作好发送准备(时有效,请求调制解调器作好发送准备( 建立载波)。建立载波)。cts#:清除发送(允许传送)信号,输入,低电平有效。:清除发送(允许传送)信号,输入,低电平有效。 调制解调器作好传送准备时有效,作为对调制解调器作好传送准备时有效,作为对8251a的的 信号的响应。信号的响应。注意注意: 如果如果8251a不使用调制解调器直接和外界不使用调制解调器直接和外界 通信,应将通信,应

52、将8251a的的dsr#、cts#接地接地。 3. 时钟信号时钟信号 clk:时钟信号,输入,用于产生:时钟信号,输入,用于产生8251a内部时序。内部时序。clk的的 周期为周期为0.42s1.35s 。要求。要求clk的频率至少应是的频率至少应是 接 收 、 发 送 时 钟 的接 收 、 发 送 时 钟 的 3 0 倍 ( 对 同 步 方 式 ) 或倍 ( 对 同 步 方 式 ) 或 4 . 5 倍倍 (对异步方式)。(对异步方式)。 rxc#:接收器时钟输入,它控制接收器接收字符的速率,在:接收器时钟输入,它控制接收器接收字符的速率,在 它的上升沿采集串行数据输入线。的频率应等于波特率它

53、的上升沿采集串行数据输入线。的频率应等于波特率 (同步方式)或等于波特率的(同步方式)或等于波特率的1倍倍/16倍倍/64倍(异步方式)倍(异步方式) txc#:发送器时钟输入,在的下降沿数据由:发送器时钟输入,在的下降沿数据由8251a移位输出。移位输出。 对频率的要求同对频率的要求同rxc#。48251a的工作过程的工作过程(1)接收器的工作过程)接收器的工作过程 异步方式中,接收器接收到有效的起始位后,开始接收异步方式中,接收器接收到有效的起始位后,开始接收后续的数据位、奇偶校验位和停止位。然后将数据送入寄后续的数据位、奇偶校验位和停止位。然后将数据送入寄存器。此后存器。此后rxrdy输

54、出高电平,表示已收到一字符,输出高电平,表示已收到一字符,cpu可以来读取。可以来读取。 同步方式中,若程序设定同步方式中,若程序设定8251a外同步接收,则外同步接收,则syndet脚用于输入外同步信号(来自脚用于输入外同步信号(来自modem),),syndet脚上的电平正跳变启动接收数据。若程序设定脚上的电平正跳变启动接收数据。若程序设定8251a内同步接收,则内同步接收,则8251a先搜索同步字符(同步字符事先搜索同步字符(同步字符事先由程序装在同步字符寄存器中)。先由程序装在同步字符寄存器中)。rxd线上每收到一位线上每收到一位信息就移入接收寄存器并和同步字符寄存器内容比较,若信息就

55、移入接收寄存器并和同步字符寄存器内容比较,若不相等则接收下一位后再比较,直到两者相等。此后不相等则接收下一位后再比较,直到两者相等。此后syndet输出高电平,表示已搜索到同步字符。接下来便输出高电平,表示已搜索到同步字符。接下来便把接收到的数据逐个地装入接收数据寄存器。把接收到的数据逐个地装入接收数据寄存器。 48251a的工作过程的工作过程(2)(2)发送器的工作过程)发送器的工作过程 异步方式中,发送器在数据前加上起始位,并异步方式中,发送器在数据前加上起始位,并根据程序的设定在数据后加上校验位和停止位,根据程序的设定在数据后加上校验位和停止位,组成组成“一帧一帧”信息。然后从低位开始,

56、从信息。然后从低位开始,从txd引引脚逐位发送。脚逐位发送。 同步方式中,发送器先发送同步字符,然后逐同步方式中,发送器先发送同步字符,然后逐位地发送数据。若位地发送数据。若cpu没有及时把数据写入发送没有及时把数据写入发送缓冲器,则缓冲器,则8251a用同步字符填充,直至用同步字符填充,直至cpu写入写入新的数据。新的数据。5.5.2 8251a的内部寄存器的内部寄存器8251a芯片占用芯片占用2个端口地址,由个端口地址,由c/d#引脚上输入的电平引脚上输入的电平 进行选择。进行选择。c/d#=0数据端口数据端口 数据输入寄存器数据输入寄存器读操作读操作数据输出寄存器数据输出寄存器写操作写操

57、作c/d#=1控制端口控制端口方式控制字寄存器方式控制字寄存器写操作写操作命令字寄存器命令字寄存器写操作写操作同步字符寄存器同步字符寄存器写操作(仅同步方式)写操作(仅同步方式)状态寄存器状态寄存器读操作读操作1.方式控制字寄存器方式控制字方式控制字确定确定8251a的通信方式(同步的通信方式(同步/异步)、校验方异步)、校验方式(奇校验式(奇校验/偶校验偶校验/不校验)、数据位数(不校验)、数据位数(5/6/7/8位)及波位)及波特率参数等。方式控制字的格式如图特率参数等。方式控制字的格式如图5 5-39所示。它应在复所示。它应在复位后写入,且只需写入一次。位后写入,且只需写入一次。d 7d

58、 6d 5d 4d 3d 200字 符 长 度00 5位01 6位10 7位11 8位01: 奇 校 验11: 偶 校 验x 0: 禁 止 校 验(a)同 步 方 式 下 的 方 式 字d 7d 6d 5d 4d 3d 2d 1d 0字 符 长 度00 5位01 6位10 7位11 8位01: 奇 校 验11: 偶 校 验x 0: 禁 止 校 验停 止 位 :00: 无 效01: 1个 停 止 位10: 1.5个 停 止 位11: 2个 停 止 位(b)异 步 方 式 下 的 方 式 字0: 内 同 步1: 外 同 步0: 双 同 步 字 符1: 单 同 步 字 符波 特 率 系 数01: (

59、1x)10: (16x)11: (64x)2 命令字寄存器命令控制字使命令控制字使8251a处于规定的状态以准备发送或接收处于规定的状态以准备发送或接收数据。它应在写入方式控制字后写入,用于控制数据。它应在写入方式控制字后写入,用于控制8251a的工作,的工作,可以多次写入。可以多次写入。 图5-408251a命令控制字格式d7d6d5d4d3d2d1d0eni rrtsersbrkrxedtrtxen进入搜索方式1:进行sync搜索发送允许1:允许,0:禁止数据终端准备好1:迫使dtr输出0接收允许1:允许,0:禁止内部复位1:8251a内部复位发送断点字符1:迫使txd为低,0:正常请求发

60、送1:迫使rts输出0出错复位1:复位错误标志3 同步字符寄存器8251a工作在工作在“内同步内同步”方式时,需要由程方式时,需要由程序员把使用的序员把使用的“同步字符同步字符”存入该寄存器,供搜存入该寄存器,供搜寻同步字符使用。可以有寻同步字符使用。可以有“单同步字符单同步字符”和和“双双同步字符同步字符”两种选择。两种选择。4 状态寄存器 状态寄存器存放状态寄存器存放8251a的状态信息,供的状态信息,供cpu查询。查询。图5-418251a状态字格式d7d6d5d4d3d2d1d0同引脚定义同引脚定义dsrsyndetfeoepetxerxrdytxrdy1:奇偶错帧格式出错1:表示未检

温馨提示

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

评论

0/150

提交评论