Bridge619

Bridge619

Bridge619

命定的局限尽可永在,不屈的挑战却不可须臾或缺!

101 文章数
11 评论数
来首音乐
光阴似箭
今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

7. 数字信号的采集 7.1-7.4

Bridge619
2022-11-21 / 0 评论 / 466 阅读 / 0 点赞

7. 数字信号的采集

7.1 8255A的引脚和内部结构

数字信号的采集与其传送方式有关。

7.1.1 用途和结构

  • 用途: 用于接收并行传输的数字信号、脉冲信号和开关信号。
  • 结构: 其引脚和内部结构如图所示。

Intel系列的8位并行接口芯片

  • 通用性强,使用灵活

  • 可用程序设置和改变芯片的工作方式

  • 是一种典型的可编程并行接口芯片

  • 40个引脚,双列直插式

(1)数据端口A、B、C

  • 每个端口8位,通过编程设定其为输入口或输出口
  • 可用来和外设传送信息
  • 端口A: 有3种工作方式(方式0、方式1、方式2),对外8根引脚$PA7$ ~ $PA0$
  • 端口B: 有2种工作方式(方式0、方式1),对外8根引脚$PB7$ ~ $PB0$
  • 端口C: 对外8根引脚$PC7$ ~ $PC0$

当端口A在方式1或方式2、端口B在方式1时,端口C的某些位用于传送联络信号,以适应CPU与外设间的各种数据传送方式的要求,如查询传送的应答信号、中断传送的中断申请信号等;C口未被用作联络信号的其它位可工作在方式0。

(2)控制端口D(A组和B组控制电路)

  • 8位端口,无对外引脚
  • 控制端口的内容决定$A$口、$B$口、$C$口工作状态(输入或输出)和工作方式(方式$0$、$1$、$2$),起控制作用。

(3)数据总线缓冲器(引脚D0 ~ D7)

  • 由1个8位双向三态缓冲器构成
  • 8255A内各端口通过数据缓冲器与系统总线相连。CPU与端口A、B、C间传送的数据,以及CPU写入控制端口D中的控制字均通过数据缓冲器传送。

(4)读写控制电路(引脚CS、RD、WR)

  • 控制数据总线缓冲器的状态有三种:输入、输出、高阻态。

(5)片内译码电路(引脚A1、A0)

选择被操作的端口

由CS、A1、A0、RD、WR引脚的不同组合,实现各种不同的功能。

7.2 8255A的控制字

  1. 方式控制字
  2. C口按位置位/复位控制字
  • 8255A控制口D的内容对数据端口A、B、C起控制作用,故称为8255A的控制字。

  • 通过编程向控制口写入不同的控制字,可灵活的改变端口A、B、C的工作状态和工作方式。

  • 8255A有两种控制字,由写入内容的D7位区分:

    • D7=1,方式控制字

      设定A口、B口、C口的工作状态和工作方式。

      • 工作状态:输入或输出
      • 工作方式:方式0、方式1、方式2
    • D7=0,C口按位置位/复位控制字

      使C口中的某一位为1(置位)或0(复位)。

(1)方式控制字

设定A口、B口、C口的工作状态和工作方式。

  • 工作状态:输入或输出
  • 工作方式:方式0、方式1、方式2

例: 8255A与系统的连线如下,片选译码地址为F0 ~ F3h,(1)确定各端口地址;(2)编程设置8255A:A口方式0输入,PC7 ~ PC4输出;B口方式0输出,PC3 ~ PC0输入

解:

  • 确定端口地址

    由8255A编程结构知:由8255A的$C\overline{S}$与系统总线的连线知,地址在F0 ~ F3h可使$C\overline{S}$有效,故:4个端口的地址在F0 ~ F3h中。结合8255A与系统总线的连线:

​ 最后得出结论:A口地址为F0H,B口地址为F1H,C口地址为F2H,D口地址为F3H

  • 确定方式控制字

​ 要求设置:A口方式0输入,PC7 ~ PC4输出;B口方式0输出,PC3 ~ PC0输入

所以,方式控制字为$1001\ 0001B$,即$91H$。

(2)C口按位置位/复位控制字

  • 作用是:使C口中的某一位为1(置位)或0(复位);或在A口、B口采用中断方式时,通过向C口的指定位置位,允许8255A的中断信号发出。

  • C口按位置位/复位控制字各位含义:

7.3 8255A的工作方式

在8255A内部结构中:A口和B口之间没有硬件关系,即可分别作为独立的输入或输出端口;C口和A口,C口和B口之间有硬件联系,通过向控制口设置控制字可以改变这种关系。

根据A口和C口、B口和C口之间硬件关系的不同,可以有三种不同的工作方式,分别称为方式0、方式1、方式2。

  • 方式0:与C口之间 没有硬件联系
  • 方式1:C口的 某3根引脚作为端口与外设的联系信号。
  • 方式2:C口的 某5根引脚作为端口与外设的联络信号。

7.3.1 方式0(基本输入输出方式)

  • A口工作在方式0时,A口和C口之间没有硬件联系

    B口工作在方式0时,B口和C口之间没有硬件联系

  • 工作方式0的端口,为单向传送端口,由方式控制字决定是输入还是输出。

  • 工作在方式0的端口:

    • 作为输入口相当于普通的三态门
    • 作为输出口相当于普通的锁存器
  • CPU可利用方式0下的端口,直接对端口进行读写操作,实现CPU与外设间的数据传送。

7.3.2 方式1(选通输入输出方式)

  • A、B口工作在方式1时,C口的某3根引脚作为A、B口的联络信号

  • 工作在方式1的端口,为单向传送端口。由方式控制字决定是输入还是输出。

  • 在方式1下,C口作为A口、B口联络信号的引脚,其动作关系在芯片设计和制造时已固定,不由用户自己安排,也不能编程改变。

    即C口作为联络信号的引脚:

    • 不受方式控制字的控制。该出则出,该入则入
    • 不受C口按位置位/复位控制字控制

    即对这些位的置位/复位不影响这些引脚信号。

  • 利用方式1下的联络信号,可方便地实现查询或中断方式地硬件设计,使CPU能够有效、可靠地与外设改进数据传送。

  • A口、B口在输入或输出不同地工作状态时,C口联络信号地引脚和意义也不同。

7.3.3 方式2(双向传送方式)

  • 端口工作在方式2时,C口地某5根引脚作为端口地联络信号,8255A只有A口可以工作在方式2下。

  • 与方式0、方式1地单向传送不同,工作在方式2下的端口,具有双向传送功能。

  • A口工作在方式2下,C口未做联络信号的3条引脚,可作为B口在方式1下的联络线,也可和B口一样工作在方式0下。由方式控制字决定其输入/输出。

  • 工作在方式2时,C口有5根引脚作为A口的联络信号,是方式1下A口输入、输出联络信号的组合。

7.4 8255的应用

7.4.1 车速脉冲信号的采集计数

问题提出: 在对车辆的车速进行路面测试时,如何得到车辆的直线行驶速度?

解决方法: 一般在车辆的后部增加一个测量轮。测量轮的旋转轴上套装一个有60个齿的齿盘。

  • 在齿盘上:①在侧面装反射式光电传感器 ②面对周围装磁阻式传感器

工作原理:

当齿盘旋转一个节距时,传感器转换输出一个近似于正弦波的信号,该信号经滤波、放大和整形后,变成一个脉冲信号,齿盘旋转一周,传感器转换输出60个脉冲。

由于测量轮是一个从动轮,即车辆前进时带动该轮旋转。测量轮的圆周速度就是车辆的车速,因此有如下关系:

$$v=\pi · D·N\ \ (1)$$

式中 $D -$测量轮直径(min)、$N-$测量轮转速(r/min)

由式(1)可知,只要测量出测量轮的转速,就可以得到车辆的车速。那么,如何得知测量轮转速 N呢?

由于测量轮每转一周输出60个脉冲,只需用计数器对脉冲信号在一秒钟内计数,然后按一定关系式可算出转速。

7.4.2 脉冲信号的处理

设计数器的计数值为C,测量轮每转一周传感器输出的脉冲数为P,计数时间为t,测量轮转速为N(r/min),则有如下关系式成立:

$$C=\frac{P·t·N}{60} \ \ (2)$$

整理式(2),可得到测量轮转速的公式:

$$N=\frac{60C}{P·t} \ \ (3)$$

用式(3)计算出测量轮的转速N,然后将N代入式(1),即可得到车辆的车速。由此可知,关键是知道 t 秒内的脉冲计数值。

7.4.3 脉冲信号的采集计数

采集计数方法:①硬件采集计数 ②软件采集计数

软件采集计数

该方法只需要很简单的接口电路,再配以相应的程序,就能完成脉冲信号的采集计数。

(1)脉冲信号采集接口

接口电路如图所示:

软件脉冲信号采集计数接口

(2)脉冲信号采集计数程序的编程

在用程序对脉冲信号计数时,仅在脉冲上升沿到来时计数,其它时候均不计数,如图所示。

设从C口位对脉冲信号不断采集计数,每隔1秒钟显示脉冲信号的计数值,则可编出相应的计数程序。

计数程序采用以下变量:

  • S —— 统计脉冲数(计数)
  • A —— 反映$PC_0$位电平的变化
    • A=1 表示$PC_0$位是高电平
    • A=0 表示$PC_0$位是低电平
  • B —— 计数标志变量,表示计数与否
    • B=1 表示已计数
    • B=0 表示未计数

计数条件: 当 A=1 且 B=0 时,S=S+1 ;其他情况不计数。

文章不错,扫码支持一下吧~
上一篇 下一篇
评论