1 / 50

6.3 串行通信接口

6.3 串行通信接口. 学习重点 异步通信协议和 RS232C 接口 8250 的内部结构和编程 异步通信程序. 6.3.1 串行通信基础. 串行通信:用一根信号线将数据逐位顺序传送 串行通信的优势:通信线路少,在远距离通信时可以极大地降低成本;适合于远距离数据传送,也常用于速度要求不高的近距离数据传送 PC 系列机上有两个串行异步通信接口,键盘 / 鼠标器 / 显示器与主机间亦采用串行数据传送。. 串行通信的种类:. 串行异步通信 —— 不传送时钟信号 串行同步通信 —— 传送时钟信号 自同步:发送时将传送数据与时钟进行编码,接收时解码 单同步

damon
Download Presentation

6.3 串行通信接口

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 6.3 串行通信接口 • 学习重点 • 异步通信协议和RS232C接口 • 8250的内部结构和编程 • 异步通信程序 1

  2. 6.3.1 串行通信基础 • 串行通信:用一根信号线将数据逐位顺序传送 • 串行通信的优势:通信线路少,在远距离通信时可以极大地降低成本;适合于远距离数据传送,也常用于速度要求不高的近距离数据传送 • PC系列机上有两个串行异步通信接口,键盘/鼠标器/显示器与主机间亦采用串行数据传送。 2

  3. 串行通信的种类: • 串行异步通信——不传送时钟信号 • 串行同步通信——传送时钟信号 • 自同步:发送时将传送数据与时钟进行编码,接收时解码 • 单同步 • 双同步 • 外同步:另用一根时钟线专门用来传送时钟信号 3

  4. ~ ~ ~ ~ 1. 同步通信——通信双方使用同一时钟 • 以数据块(帧)为传输单位 • 双方使用同一时钟(主控方提供时钟,被控方接收时钟) • 外同步:时钟信号另外安排一根传输线 • 自同步:发送时将时钟信号与数据混合编码,接收时译码出时钟 • 数据格式:每个数据块前加1~2个同步字符(同步头)进行帧同步,一般采用CRC循环冗余校验码 • 同步通信的数据传输效率和传输速率较高,但硬件电路比较复杂 • 串行同步通信主要应用在网络当中,最常使用的同步通信协议有高级数据链路控制协议(HDLC) 同步字符 数据 数据 数据 校验 同步字符 4

  5. 2. 异步通信——通信双方使用各自的时钟 • 串行通信时的数据、控制和状态信息都使用同一根信号线传送 • 收发双方必须遵守共同的通信协议(通信规程): • 传送速率 • 信息格式 • 位同步 • 帧同步 • 数据校验 • 错误处理 • 串行异步通信以字符为单位进行传输 • 数据格式:起止式异步通信协议 5

  6. 0/1 0/1 0/1 0/1 起止式异步通信协议 • 起始位——每个字符开始传送的标志,起始位采用逻辑0电平 字符 起始位 附加位 空闲位 数据位 停止位 … 1 0 1 1 1 低位 高位 数据位——数据位紧跟着起始位传送。由5~8个二进制位组成,低位先传送 附加位——该位可用于校验或数据标识:可选择奇检验、偶校验或无校验位 停止位——表示该字符传送结束。停止位为逻辑1电平,可选择1、1.5、2位。 空闲位——传送字符之间的逻辑1电平,表示没有进行传送 6

  7. 数据传输速率 • 数据传输速率也称比特率(Bit Rate) • 每秒传输的二进制位数bps • 字符中每个二进制位持续的时间长度都一样,为数据传输速率的倒数 • 当进行二进制数码传输,且每位时间长度相等时,比特率还等于波特率(Baud Rate) • 过去,串行通信(异步)的数据传输速率限制在50 bps到9600 bps之间。 • 现在,串行通信可以达到115200 bps或更高 7

  8. 3. 数据传输方式 全双工 站A 站B 半双工 站A 站B 单工 站A 站B 8

  9. 4. 远距离传输和调制解调器 • 串行数据的远传 • 提高电平摆幅——RS232-C标准 • 采用平衡式传输——RS422/RS485 • 采用电流信号——20mA电流环 • 利用电话线和声频信号——调制/解调 • 调制(Modulating)和解调(Demodulating) • 把数字信号转换为电话线路上可传送的模拟信号 • 将电话线路上的模拟信号转换为数字信号 • 调制解调器(MODEM) • 具有调制和解调功能的联合装置 9

  10. 6.3.2 串行接口标准RS-232C • 美国电子工业协会EIA制定的通用标准串行接口 • 1962年公布,1969年修订 • 1987年1月正式改名为EIA-232D • 设计目的是用于连接调制解调器 • 现已成为数据终端设备DTE与数据通信设备DCE的标准接口 • DTE——数据终端设备,例如计算机 • DCE——数据通信设备(数传机),例如调制解调器) • 可实现远距离通信,也可近距离连接两台微机 • 属于网络层次结构中的最低层:物理层 10

  11. 1、RS-232C接口的使用场合 DTE DCE DCE DTE 电话线 RS-232C 接口 RS-232C 接口 计算机 调制解调器 调制解调器 计算机 11

  12. 2、RS-232C的引脚定义 • 232C接口标准使用一个25针连接器 • 绝大多数设备只使用其中9个信号,所以就有了9针连接器 • 232C接口信号面向使用调制解调器的串行异步通信,可支持两个通信信道: • 主信道:用于数据传送 • 次信道:次信道为辅助串行通道,主要提供通道控制,但其传输速率比主信道要低得多,其他跟主信道相同,通常较少使用 12

  13. RS-232C的引脚(1) • TxD:发送数据(终端→数传机) • 串行数据的发送端 • RxD:接收数据(终端←数传机) • 串行数据的接收端 13

  14. RS-232C的引脚(2) • RTS:请求发送(终端→数传机) • 当数据终端设备准备好送出数据时,就发出有效的RTS信号,用于通知数据通信设备准备接收数据 • CTS:清除发送(允许发送) (终端←数传机) • 当数据通信设备已准备好接收数据终端设备的传送数据时,发出CTS有效信号来响应RTS信号 RTS和CTS是数据终端设备与数据通信设备间一对用于数据发送的联络信号 14

  15. RS-232C的引脚(3) • DTR:数据终端准备好(终端→数传机) • 通常当数据终端设备一加电,该信号就有效,表明数据终端设备准备就绪 • DSR:数据装置准备好(终端←数传机) • 通常表示数据通信设备(即数据装置)已接通电源连到通信线路上,并处在数据传输方式 DTR和DSR也可用做数据终端设备与数据通信设备间的联络信号,例如应答数据接收 15

  16. RS-232C的引脚(4) • GND:信号地 • 为所有的信号提供一个公共的参考电平 • CD:载波检测(DCD) (终端←数传机) • 当本地调制解调器接收到来自对方的载波信号时,该引脚向数据终端设备提供有效信号 • RI:振铃指示(终端←数传机) • 当调制解调器接收到对方的拨号信号期间,该引脚信号作为电话铃响的指示、保持有效 16

  17. RS-232C的引脚(5) • 保护地(机壳地) • 起屏蔽保护作用的接地端,一般应参照设备的使用规定,连接到设备的外壳或大地 • TxC:发送器时钟 • 控制数据终端发送串行数据的时钟信号 • RxC:接收器时钟 • 控制数据终端接收串行数据的时钟信号 17

  18. 3、 RS-232C的连接 • 微机利用232C接口连接调制解调器,用于实现通过电话线路的远距离通信 • 微机利用232C接口直接连接进行短距离通信。这种连接不使用调制解调器,所以被称为零调制解调器(Null Modem)连接 18

  19. 4、 RS-232C的电气特性 • 232C接口采用EIA电平(负逻辑) • “0” 电平为+3V~+15V • “1”电平为-3V~-15V • 实际常用±12V或±15V 相互转换 • 标准TTL电平(正逻辑) • “1”电平:+2.4V~+5V • “0”电平:0V~0.8V 19

  20. 6.3.3 异步通信接收发送器8250 • 串行传输,需要并行到串行和串行到并行的转换,并按照传输协议发送和接收每个字符(或数据块) • 这些工作可由软件实现,也可用硬件实现 • 8250有40支引脚,采用双列直插式封装,使用+5v电源。 20

  21. 一、 8250的内部结构 • 8250实现了起止式串行异步通信协议,支持全双工通信: • 通信字符可选5、6、7、8位数据位 • 停止位可选1、1.5、2位 • 可选择奇校验、偶校验、不校验或校验位强制为“1”/“0” • 具有奇偶校验错、帧错和溢出等错错误检测电路 • 8250支持的数据传输速率为50~9600bps • 8250内部有10个可寻址的8位寄存器,分为3类:数据类,控制类,状态类。P269 21

  22. 0/1 0/1 0/1 0/1 1. 串行数据的发送 双缓冲寄存器结构,保证数据的连续发送 并行数据 CPU 发送保持寄存器 串行数据 发送移位寄存器 SOUT 同步控制 加入起始位、校验位、停止位 8250 22

  23. 0/1 0/1 0/1 0/1 3. 串行数据的接收 CPU 并行数据 接收缓冲寄存器 串行数据 接收移位寄存器 SIN 同步控制 检测接收错误,删除起始位、校验位、停止位 8250 双缓冲寄存器结构,保证数据的连续接收 23

  24. 4. 接收错误的处理 • 奇偶错误PE(Parity Error) • 若接收到的字符的“1”的个数不符合奇偶校验要求 • 帧错误FE(Frame Error) • 若接收到的字符格式不符合规定(如缺少停止位) • 溢出错误OE(Overrun Error) • 若接收移位寄存器接收到一个数据,并送至输入缓冲器时,CPU还未取走前一个数据,就会出现数据溢出 • 若接收缓冲器的级数多,则溢出错误的几率就少 24

  25. 二、 8250的引脚 D 1 40 V • 连接CPU的部分 • 连接外设的部分 • 注意:8250不是Intel公司的产品,所以该芯片引脚名称与前面学习的8253、8255等Intel产品有所不同,但是引脚功能却是类似的 0 CC D 2 39 RI 1 D 3 38 RLSD 2 D 4 37 DSR 3 D 5 36 CTS 4 D 6 35 MR 5 D 7 34 OUT 6 1 D 8 33 DTR 7 RCLK 9 32 RTS SIN 10 31 OUT 11 INTR SOUT 30 CS 12 29 NC 0 CS 13 28 A 1 0 CS 14 27 A 2 1 15 26 A BAUDOUT 2 XTAL 16 25 ADS 1 XTAL 17 24 CSOUT 2 DOSTR 18 23 DDIS DOSTR 19 22 DISTR GND 20 21 DISTR 25

  26. 1. 处理器接口引脚(1) • 数据线D0-D7:在CPU与8250之间交换信息 • 地址线A0-A2:寻址8250内部寄存器 • 片选线:包括 • 3个片选输入信号CS0、CS1、-CS2 • 1个片选输出信号CSOUT。 当3个片选输入都有效时,才选中8250芯片,同时CSOUT输出高电平有效。 • 地址选通信号-ADS:当该信号低有效时,锁存上述地址线和片选线的输入状态,保证读写期间的地址稳定 26

  27. 1. 处理器接口引脚(2) • 读控制线 • 数据输入选通DISTR(高有效)和-DISTR(低有效)中一个信号有效,CPU从8250内部寄存器读出数据 • 相当于I/O读信号 • 写控制线 • 数据输出选通DOSTR(高有效)和-DOSTR(低有效)中一个有效,CPU就将数据写入8250内部寄存器 • 相当于I/O写信号 8250读写控制信号有两对,每对信号作用完全相同,只不过有效电平不同而己 27

  28. 1. 处理器接口引脚(3) • 驱动器禁止信号DDIS:CPU从8250读取数据时,DDIS引脚输出低电平,用来禁止外部收发器对系统总线的驱动;其他时间,DDIS为高电平 • 主复位线MR:硬件复位信号 • 中断请求线INTRPT:8250有4级中断、共10个中断源,当任一个未被屏蔽的中断源有请求时,INTRPT均输出高电平向CPU请求中断 28

  29. 2. 时钟信号 • 时钟输入引脚XTAL1:8250的基准工作时钟 • 时钟输出引脚XTAL2:基准时钟信号的输出端 • 波特率输出引脚-BAUDOUT:基准时钟经8250内部波特率发生器分频后产生发送时钟 • 接收时钟引脚RCLK:接收外部提供的接收时钟信号。 若采用发送时钟作为接收时钟,则只要将RCLK引脚和-BAUDOUT引脚直接相连 29

  30. 3. 串行异步接口引脚 发送数据SOUT 8250 接收数据SIN 请求发送-RTS 允许发送-CTS 数据装置准备好-DSR 9个最常 用的信号 数据终端准备好-DTR 信号地GND 载波检测-RLSD 振铃指示-RI 8250 9个信号的名称与RS232-C信号的名称稍有不同 30

  31. 4. 输出线 • -OUT1和-OUT2: • 两个可由用户定义用途的输出信号 • 由调制解调器控制寄存器的D2和D3位控制其输出 • 使用时,一般低电平有效,复位时恢复为高 31

  32. 8250的内部结构 D 数 据 接收数据 0 ~ 缓冲器 寄存器 D 7 A 0 A 1 A 2 接收移位 DISTR SIN DISTR 片 寄存器 DOSTR DOSTR 读写 内 MR 接收器 控制 XTAL RCLK 1~2 控制逻辑 DDIS 逻辑 总 CSOUT INTR 线 CS 发送控制 0 BAUDOUT CS 逻 辑 1 CS 2 ADS 发送数据 OUT 寄存器 1 OUT 2 DSR MODEM CTS RTS 控制逻辑 发送移位 DTR SOUT 寄存器 RLSD RI 32

  33. 三、 8250的寄存器 • 8250内部有9种可访问的寄存器,其中,除数寄存器是16位的,占用两个地址连续的8位端口 • 内部寄存器通过引脚A0-A2来进行寻址; • 利用通信线路控制寄存器的最高位,即除数寄存器访问位DLAB,来区别共用两个端口地址的不同寄存器(表6.4) • DLAB=1,拟访问除数寄存器的高8位及低8位 • DLAB=0,拟访问其他控制或状态寄存器 33

  34. 1. 接收缓冲寄存器RBR 存放串行接收后转换成并行的数据 CPU 接收缓冲寄存器 接收移位寄存器 SIN 同步控制 8250 34

  35. 2. 发送保持寄存器THR 包含将要串行发送的并行数据 CPU 发送保持寄存器 发送移位寄存器 SOUT 同步控制 8250 35

  36. 3. 除数寄存器 除数寄存器保存设定的分频系数 分频系数=基准时钟频率÷(16×比特率) 16 T 数据线 (SIN) 起 始 位 T 时钟 (RCLK) 8 T 16 T 36

  37. 4. 通信线路控制寄存器LCR D5 D4 D3 D2 D1 D0 D7 D6 指定串行异步通信的字符格式 寄存器选择 0 正常值 1 除数寄存器 中止字符 0 无作用 1 发送中止字符 校验位设置 **0 无校验位 001 设置奇校验 011 设置偶校验 101 校验位为1 111 校验位为0 停止位个数 0 1位 1 1.5位(数据位为5位时) 1 2位(数据位为6~8位时) 数据位个数 00 5位 01 6位 10 7位 11 8位 37

  38. 5. 通信线路状态寄存器LSR D7 D6 D5 D4 D3 D2 D1 D0 提供串行异步通信的当前状态供CPU读取和处理 为1,表示发送移位寄存器空; 当数据由发送保持寄存器移入 发送移位寄存器时,该位为0 为1,表示发送保持寄存器空, 当CPU将字符写入发送保持 寄存器后,该位为0 为1,表示正在传输中止字符 为1,表示出现帧错误 为1,表示出现奇偶错 为1,表示出现溢出错 为1,表示接收数据缓冲器收到 一个数据,既接收数据准备好; 当CPU读走数据后,该位为0 38

  39. 6. 调制解调器控制寄存器MCR D4 D3 D2 D1 D0 D7 –D5 设置8250与数据通信设备之间联络应答的输出信号 为1使8250为循环工作方式 否则为正常工作方式 为1使-OUT2引脚为低 否则为高 为1使-OUT1引脚为低 否则为高 为1使-RTS引脚为低 否则为高 为1使-DTR引脚为低 否则为高 39

  40. RLSD RI DSR CTS dRSLD dRI dDSR dCTS 7. 调制解调器状态寄存器MSR D7 D6 D5 D4 D3 D2 D1 D0 • MSR反映4个控制输入信号的当前状态及其变化 • MSR低4位中任一位置1,均将产生调制解调器状态中断,当CPU读取该寄存器或复位后,低4位被清零 高4位中某位为1,说明相应输入信号当前为低电平有效 低4位中某位为1,则说明从上次CPU读取该状态字后,相应输入信号已发生改变,从高变低或反之 40

  41. 4级中断( 4个优先级、10个源) 优先权高 • 接收线路状态中断 • 奇偶错 • 溢出错 • 帧错 • 收到中止字符 • 接收器数据准备好中断 • 发送保持寄存器空中断 • 调制解调器状态中断 • 清除发送状态改变 • 数据终端准备好状态改变 • 振铃接通变成断开 • 接收线路信号检测状态改变 优先权低 41

  42. 8. 中断允许寄存器IER • 8250设计有4级中断和2个中断寄存器 • 4级中断指优先权的等级位4级,它是按照串行通信过程中事件的紧迫程度安排的、是固定的 • 用户可利用中断允许或禁止进行控制,中断允许寄存器的低4位控制8250这4级中断是否被允许 • 某位为1,则对应的中断被允许 • 否则,被禁止 42

  43. 9. 中断识别寄存器IIR D7-D3 D2 D1 D0 保存正在请求中断的优先权最高的中断级别编码 标识哪一级有中断 0 有中断 1 无中断 43

  44. 6.3.4 异步通信适配器——异步通信卡 • IBM PC/XT机中的串行异步通信适配器 • 以8250为核心 • 完成发送时的并转串和接收时的串转并以及相应的控制工作 • 配置了TTL电平与EIA电平间的转换电路等 • 下面展开异步通信适配器的 • 硬件电路 • 软件编程 44

  45. 异步通信适配器的初始化编程 • 对8250的内部控制寄存器进行编程写入 ⑴ 写入除数寄存器——设置传输率 ⑵ 写入通信线路控制寄存器——设置字符格式 ⑶ 写入调制解调器控制寄存器——设置工作方式 ⑷ 写入中断允许寄存器——设置中断允许或屏蔽 45

  46. 8250内部寄存器的地址 返回 46

  47. 设置传输率 mov al,80h mov dx,3fbh out dx,al ;写入通信线路控制寄存器,使DLAB=1 mov ax,96 ;分频系数:1.8432MHz÷(1200×16)=96 mov dx,3f8h out dx,al ;写入除数寄存器低8位 mov al,ah inc dx out dx,al ;写入除数寄存器高8位 写入除数寄存器 47

  48. 设置字符格式 mov al,00001010b movdx,3fbh outdx,al ;写入通信线路控制寄存器 ;这段程序同时使DLAB=0 写入通信线路控制寄存器 48

  49. 设置工作方式 • 设置查询通信方式 mov al,03h ;控制-OUT2为高, -DTR和-RTS为低 mov dx,3fch out dx,al ;写入调制解调器控制寄存器 • 设置中断通信方式 mov al,0bh ;控制为-OUT2低,允许INTRPT产生请求 mov dx,3fch outdx,al 写入调制解调器控制寄存器 49

  50. 设置中断允许或屏蔽位 moval,0 ;禁止所有中断 mov dx,3f9h outdx,al ;写入中断允许寄存器(此时DLAB=0) 写入中断允许寄存器 50

More Related