8.串行接口(8251A)

基本概念

  1. 串行数据传送方式

    1. 单工通信方式
    2. 半双工通信方式
    3. 全双工通信方式:两根独立的传输线
  2. 穿行传送的两种基本工作方式

    1. 异步通信方式
      • 字符为单位,字符间无固定的时间间隔,字符中的各位以固定时间传送
      • 需要起始位停止位,起始位至停止位称为一
      • 空闲位1填充
    2. 同步通信方式
      • 统一时钟控制发送方和接收方,若干字符组成一个信息组
      • 同步传输要求连续,不允许有间隔。无字符时,发送空闲和同步字符
      • 每组信息:1-2个同步字符+8位字符数据
    3. 串行传送速率
      • 波特率:每秒传输数据的位数(位/秒)
      • 例:一个异步串行发送器,发送具有8位数据位的字符,在系统中使用一个奇偶校验位和两个停止位。若每秒发送100个字符,则其波特率为多少
        • 100*(1+8+1+2)=1200bps
    4. 发送时钟和接收时钟
      • 每位持续的时间**固定b
      • 发送方以发送时钟作为数据位的划分界限
      • 接收方以接收时钟作为数据位的检测
      • 波特率因子每位占用的时钟周期数

可编程串行接口8251A

  1. 基本性能

    1. 同步方式:0~64000Bit/s;异步方式:19200Bit/s
    2. 字符可被定义为5、6、7或8位,同步方式下可由内部自动检测同步字符或由外部给出同步信号
    3. 出错检测
      • 奇偶错误
      • 帧错误
      • 溢出(丢失)错误
  2. 编程

    1. 方式字
      1. 同步方式(D1D0=00)
        • D702同步字符;1,1个字符
        • D60内同步;1,外同步
        • D50奇校验;1,偶校验
        • D40无校验;1,有校验
        • D3D2数据位数,5~8位
      2. 异步方式
        • D7D6011停止位;10,1.5个;11,2个
        • D50奇校验;1,偶校验
        • D40无校验;1,有校验
        • D3D2数据位数,5~8位
        • D1D0波特率因子01~11:1、16、64
    2. 命令字
      • D71搜索同步字符
      • D618251A内部复位
      • D51请求发送,/RTS输出0
      • D41清除错误标志,如PE、OE、FE
      • D31中止,TxD输出0
      • D21接收允许;0,屏蔽
      • D11数据终端就绪,/DTR输出0
      • D01发送允许;0,屏蔽
    3. 状态字
      • D71数据设备就绪
      • D61S/BDET
      • D51FE
      • D41OE
      • D31PE
      • D21发送器TxEMPTY=1
      • D11接收器就绪
      • D01发送器就绪
    4. 初始化程序
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      XOR AX,AX
      MOV CX,0003H
      MOV DX,PORTC

      NEXT:OUT DX,AL
      LOOP:NEXT

      MOV AL,40H
      MOV DX,AL
      OUT DX,AL

例题


  1. 8251A工作在异步方式下的初始化编程。要求字符用7位二进制表示,采用奇校验,1.5个停止位,波特率系数为16。清除出错标志,让各出错标志处于初始状态,使请求发送有效电平,命令控制字使数据终端就绪(DTR)处于有效电平,发送允许和接收允许均为有效电平。设端口地址为208H和20AH

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    XOR AX,AX
    MOV CX,0003H
    MOV DX,20AH

    NEXT:OUT DX,AL
    LOOP: NEXT

    MOV AL,40H
    OUT DX,AL

    MOV AL,10011010B
    OUT DX,AL
    MOV AL,37H
    OUT DX,AL

  2. 8251A工作在同步方式下的初始化编程。要求采用内同步方式,同步字符为两个相同的16H值,字符长度为8位二进制,采用偶校验,要求对同步字符进行检索复位3个出错标志允许发送和接收,命令控制字使数据终端就绪(DTR)处于有效电平。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    MOV AL,00111100B //方式字
    OUT DX,AL

    MOV AL,16H //写入同步字符
    OUT DX,AL
    OUT DX,AL

    MOV AL,10010111B
    OUT DX,AL

    3.设8251A数据口和控制口地址分别为1F0H和1F2H,异步方式,7位数据,1位停止位,偶校验,波特率系数16,
    方式字:7AH
    发送与接收程序如下:

    1. image-20220523112532677
    • 方式字:01111010B->7AH

    • 命令字:00010001B->11H //清除错,发送

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      MOV AL,40H
      MOV DX,1F2H
      OUT DX,AL

      MOV AL,7AH
      OUT DX,AL
      MOV AL,11H
      OUT DX,AL

      LEA DI,BUFF-T
      MOV CX,COUNT-T

      NEXT-T: MOV DX,1F2H
      IN AL,DX
      TEST AL,02H
      JZ NEXT-T
      MOV DX,1F0H
      MOV AL,[DI]
      OUT DX,AL
      INC DI
      LOOP NEXT-T
    1. image-20220523112550731

      • 方式字:01111010B->7AH

      • 命令字:00010001B->11H //清除错,发送

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        MOV AL,40H
        MOV DX,1F2H
        OUT DX,AL

        MOV AL,7AH
        OUT DX,AL
        MOV AL,11H
        OUT DX,AL

        LEA DI,BUFF-G
        MOV CX,COUNT-G
        NEXT-G: MOV DX,1F2H
        IN AL,DX
        TEST AL,02H
        JZ NEXT-G
        TEST AL 38H
        JNZ NEXT-G
        MOV AL,[DI]
        MOV DX,1F0H
        IN AL,DX
        INC DI
        LOOP NEXT-G