数字信号的采集与其传送方式有关。
Intel系列的8位并行接口芯片
通用性强,使用灵活
可用程序设置和改变芯片的工作方式
是一种典型的可编程并行接口芯片
40个引脚,双列直插式
(1)数据端口A、B、C
当端口A在方式1或方式2、端口B在方式1时,端口C的某些位用于传送联络信号,以适应CPU与外设间的各种数据传送方式的要求,如查询传送的应答信号、中断传送的中断申请信号等;C口未被用作联络信号的其它位可工作在方式0。
(2)控制端口D(A组和B组控制电路)
(3)数据总线缓冲器(引脚D0 ~ D7)
(4)读写控制电路(引脚CS、RD、WR)
控制数据总线缓冲器的状态有三种:输入、输出、高阻态。
(5)片内译码电路(引脚A1、A0)
选择被操作的端口
由CS、A1、A0、RD、WR引脚的不同组合,实现各种不同的功能。
8255A控制口D的内容对数据端口A、B、C起控制作用,故称为8255A的控制字。
通过编程向控制口写入不同的控制字,可灵活的改变端口A、B、C的工作状态和工作方式。
8255A有两种控制字,由写入内容的D7位区分:
D7=1,方式控制字
设定A口、B口、C口的工作状态和工作方式。
D7=0,C口按位置位/复位控制字
使C口中的某一位为1(置位)或0(复位)。
(1)方式控制字
设定A口、B口、C口的工作状态和工作方式。
例: 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口按位置位/复位控制字各位含义:
在8255A内部结构中:A口和B口之间没有硬件关系,即可分别作为独立的输入或输出端口;C口和A口,C口和B口之间有硬件联系,通过向控制口设置控制字可以改变这种关系。
根据A口和C口、B口和C口之间硬件关系的不同,可以有三种不同的工作方式,分别称为方式0、方式1、方式2。
A口工作在方式0时,A口和C口之间没有硬件联系
B口工作在方式0时,B口和C口之间没有硬件联系
工作方式0的端口,为单向传送端口,由方式控制字决定是输入还是输出。
工作在方式0的端口:
CPU可利用方式0下的端口,直接对端口进行读写操作,实现CPU与外设间的数据传送。
A、B口工作在方式1时,C口的某3根引脚作为A、B口的联络信号。
工作在方式1的端口,为单向传送端口。由方式控制字决定是输入还是输出。
在方式1下,C口作为A口、B口联络信号的引脚,其动作关系在芯片设计和制造时已固定,不由用户自己安排,也不能编程改变。
即C口作为联络信号的引脚:
即对这些位的置位/复位不影响这些引脚信号。
利用方式1下的联络信号,可方便地实现查询或中断方式地硬件设计,使CPU能够有效、可靠地与外设改进数据传送。
A口、B口在输入或输出不同地工作状态时,C口联络信号地引脚和意义也不同。
端口工作在方式2时,C口地某5根引脚作为端口地联络信号,8255A只有A口可以工作在方式2下。
与方式0、方式1地单向传送不同,工作在方式2下的端口,具有双向传送功能。
A口工作在方式2下,C口未做联络信号的3条引脚,可作为B口在方式1下的联络线,也可和B口一样工作在方式0下。由方式控制字决定其输入/输出。
工作在方式2时,C口有5根引脚作为A口的联络信号,是方式1下A口输入、输出联络信号的组合。
问题提出: 在对车辆的车速进行路面测试时,如何得到车辆的直线行驶速度?
解决方法: 一般在车辆的后部增加一个测量轮。测量轮的旋转轴上套装一个有60个齿的齿盘。
工作原理:
当齿盘旋转一个节距时,传感器转换输出一个近似于正弦波的信号,该信号经滤波、放大和整形后,变成一个脉冲信号,齿盘旋转一周,传感器转换输出60个脉冲。
由于测量轮是一个从动轮,即车辆前进时带动该轮旋转。测量轮的圆周速度就是车辆的车速,因此有如下关系:
$$v=\pi · D·N\ \ (1)$$
式中 $D -$测量轮直径(min)、$N-$测量轮转速(r/min)
由式(1)可知,只要测量出测量轮的转速,就可以得到车辆的车速。那么,如何得知测量轮转速 N呢?
由于测量轮每转一周输出60个脉冲,只需用计数器对脉冲信号在一秒钟内计数,然后按一定关系式可算出转速。
设计数器的计数值为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 秒内的脉冲计数值。
采集计数方法:①硬件采集计数 ②软件采集计数
软件采集计数
该方法只需要很简单的接口电路,再配以相应的程序,就能完成脉冲信号的采集计数。
(1)脉冲信号采集接口
接口电路如图所示:
(2)脉冲信号采集计数程序的编程
在用程序对脉冲信号计数时,仅在脉冲上升沿到来时计数,其它时候均不计数,如图所示。
设从C口位对脉冲信号不断采集计数,每隔1秒钟显示脉冲信号的计数值,则可编出相应的计数程序。
计数程序采用以下变量:
计数条件: 当 A=1 且 B=0 时,S=S+1 ;其他情况不计数。