您好,欢迎来到划驼旅游。
搜索
您的当前位置:首页实验七 生物信号的数据采集

实验七 生物信号的数据采集

来源:划驼旅游
实验七 生物信号的数据采集

一、实验要求

利用8位串行控制模数转换器TLC0832做A/D转换器,采用实验板上的电位器,或其它信号(如心电仿真仪信号)提供模拟量输入,编制程序,将模拟量转换成二进制数字量。存放在RAM区,以供查阅。

二、实验目的

1、 1、 熟悉串行外围设备接口SPI总线技术的结构和原理。

2、 2、 掌握8位串行控制模数转换器TLC0832的转换性能及编程。 3、 3、 掌握TLC0832与80C51单片机的接口方法。 4、 4、 通过实验了解如何使用单片机进行数据采集。

三、 实验设备

1 PC机 一台 2 实验面包板 一个 3 80C51仿真器 一套 4 元件:TLC0832 一片 4 导线 若干

四、实验说明

一个微处理器系统中除了作为核心部件的微处理器外,多少要使用一些外围设备(通常被简称为“外设”)。微处理器外设之间的连接方式基本上可以分为并行和串行2大类,也就是通过并行或串行接口连接。

并行接口设备使用了多根数据线,一次同时可以传递多个BIT的数据,所以传递速度较快,单器件之间的连线复杂。而串行接口设备仅使用了一根数据线,每次只能传递一个BIT的数据,所以传递速度较慢,但由于使用串行接口的系统中器件之间的连线比较简单,在微型化的系统中倍受重视。随着器件时钟速度的不断提高,串行接口的数据交换率同样可以做得很高。另外基于异步串行接口电路的技术的器件因其相当高的效率,在DSP 系统中被广泛采用。

(1)SPI总线介绍

串行外围设备接口SPI(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口。SPI总线是一种三线制同步式串行总线,其物理结构是相当典型的。因其硬件配备(在各种串行接口中)较为“完整”,所以,与SPI有关的软件就相对简单,使CPU有更多的时间处理其他事务。

它基本上由3根连线构成,即:DI,DO,CLK,故称为三线制串行总线。除了这3条基本信号线以外,当系统使用多个SPI器件时,为区别各个器件,往往还要加上一条片选信号线“/CS”。使用了/CS信号后,所有的SPI器件可以使用公共的DI,DO,CLK信号,而只有/CS有效的芯片才被主控器件操纵。

各信号线的意义为:

信号符号 DI DO CLK /CS 信号名称 数据输入线 数据输出线 时钟信号 片选信号 信号意义 外设的数据输入端,其电平表示当前输入的数据 外设的数据输出端,其电平表示当前输出的数据 主控器件提供的同步时钟,以保证数据的正确 用来选通所操纵的器件 除了上述引线之外,由于各种外设控制功能的不同,采用SPI接口,有时还要添加一些

辅助的控制线,例如复位信号、中断信号等。

(2)实际SPI器件TLC0832

实际的SPI器件品种繁多,本次实验使用的TLC0832是一种基于SPI接口的双路A/D转换器。该器件的详细资料参见参考文献[1]和文献[2]

TLC0832是一种2通道逐次逼近似方式的A/D转换器。基本性能如下:

  8位分辨率   可以“满量程”工作或使用5V基准电压   单通道或多路器选择的双通道,可单端或差分输入选择   当时钟频率为250kHz时,转换时间为32s   总非调整误差为1LSB

TLC0832的引脚及其功能:

实验用的TLC0832芯片为8脚的“双列直插”(DIP)式封装。其引线方式参见下图。

各引脚的意义参见下表: 序号 引脚名称 1 2 3 4 5 6 7 8 /CS CH0 CH1 GND DI DO CLK

意义 片选信号。当该信号为高电平时,芯片未被选中,所有信号引线均为高阻态。芯片的任何功能必须当该信号为低电平时方能实现。 模拟通道0的输入端。可以作为的输入通道使用,也可以由程序控制,与CH1配合实现差分输入方式。 模拟通道1的输入端。可以作为的输入通道使用,也可以由程序控制,与CH0配合实现差分输入方式。 地线。 数据输入端。来自主控器件(CPU)的控制命令由此输入。 数据输出端。转换结果由此输出。 时钟信号。 VCC/REF 电源/参考电压输入端。 TLC0832的动作时序:

TLC0832的动作时序见下图。图中可见TLC0832的全部动作过程。应当注意以下要点: 1. 1. 任何有效操作均必须在/CS为低电平时才能实现。所以,开始对TLC0832作任

何操作都必须首先将/CS由高电平置为低电平,一次完整的操作结束后,应当及时地将/CS置为高电平;

2. 2. 时钟信号CLK是由主控器件(CPU)主动提供的,它控制了转换的节拍; 3. 3. 一个完整的转换过程分2个基本步骤:A. 由CPU向器件发出控制命令;B. CPU

从器件读出转换后的数据; 4. 4. 控制命令由CPU通过DI线向器件发出,包括3个BIT。第1个BIT为启动位,

后2个BIT为配置位;

5. 5. 2个BIT的配置位的名称为SGL/DIF和ODD/EVEN,共同决定了器件的输入

性质(参见附表);

6. 6. CLK信号是由CPU操纵下“人为制造”出高低电平变化而形成的。每当需要

向器件写入命令时,应当首先将所需要的数据加到DI脚上,然后让CLK由低电平向高电平变化(上升沿),这时器件会自动保持DI上的数据,之后,应当将CLK恢复到低电平,以便下一个节拍的操作;

7. 7. 由器件中读出数据时有些不同,此时应当首先将CLK置为高电平,然后,再

将CLK由高电平置为低电平,在由高电平向低电平变化的“下降沿”后,器件的DO端会出现有效的数据信号。CPU可以在此时检测DO端的状态,读出有效的数据;

8. 8. 命令BIT发送之后,便可以开始读出转换结果,事实上,器件内部的逐次近

似转换过程是在CLK的控制下一拍、一拍地进行,每一拍完成一个BIT的转换,转换的结果同时就出现在DO上,这就是所谓的“外部时钟方式”。特点是简单,但是对于外部时钟的“占空比”有较严格的控制,否则精度将受到影响——有些串行A/D器件内部自己配备了时钟系统,无须CPU的CLK信号,而是利用自身的时钟系统完成转换,这样的器件精度比较有保障。使用这种器件时,在启动器件开始转换后,CPU应当等待“转换完成(EOC)”信号,当EOC出现后,才开始读取数据;

9. 9. 数据读出时,器件首先以“高位在前”(MSB-First)方式输出数据,然后再以

“低位在前”(LSB-First)方式输出数据。事实上,应用系统的设计人员可以根据自己的需要选择适当的方式读取数据,如果只需要MSB-First方式,则启动转换后只需要8个CLK就可以完成全部操作,这时,从图中的第12个CLK后面的操作可以不必进行;

10. 10. 全部操作完成后应当将/CS置为高电平。

使用TLC0832需要注意:

TLC0832要求在转换数据时CLK占空比为40%~60%,否则会导致转换结果不正确,CLK可由单片机的一根I/O口线驱动,用软件控制脉冲的频率和占空比。

TLC0832的模拟输入信号的的功能比较齐备,可以通过控制命令灵活地配置为差分或单端方式。即,2个输入通道CH0和CH1可以作为一对差分输入的互补信号线,也可以配置为各自的单端输入信号线。

请注意以下要点: 1、 1、 配置命令由信号SGL/DIF 和ODD/EVEN 2个BIT组成,排列顺序是SGL/DIF

在前,ODD/EVEN在后,2个控制BIT组合的意义参见附表;

2、 2、 差分输入方式是指一对大小相同方向相反的输入方式,它需要2个输入端,而

且这2个输入端有极性之分;

3、 3、 单端输入实际上也需要2个输入端,一个是信号端,另一个是参考端,即所谓

的“地”。但是应当注意,地线作为参考端被假定为稳定不变的,输入信号完全由

输入端上的电压变化而决定;

4、 4、 TLC0832配置为差分输入方式时只能组成一路输入;配置为单端输入方式时,

可以提供2路的输入。

TLC0832 输入信号地址控制逻辑表 地址选择 通道号 操作意义 SGL/DIF ODD/EVEN CH0 CH1 L L + – CH0 为正极性,CH1 为负极性的差分输入方式 L H – + CH0 为负极性,CH1 为正极性的差分输入方式 H L + 选择 CH0 的单极性,单通道方式 H H + 选择 CH1 的单极性,单通道方式 H = 高电平, L = 低电平, – – or + = 所选择的输入端的终端极性

五、实验电路及连线

LC0832与51系列微处理器的连接相当简单,具体的参考电路参见下图:

实验中,我们采用选择 CH0 的单极性,单通道方式。因此,CH1端应接地,CH0端为输入电压。我们采用通过可调电位器的方法改变输入电压,以观察A/D转换结果。 配置命令由信号SGL/DIF 和ODD/EVEN 2个BIT组成,在本实验中应设置为:SGL/DIF =1;ODD/EVEN=0

六、软件流程及编程

1、A/D转换的软件流程图

开始选通器件/CS=0置启动条件DI=1发出一个时钟CALL sCLK送控制命令的第1个BITDI=S/D发出一个时钟CALL sCLK送控制命令的第2个BITDI=O/E发出一个时钟CALL sCLK检测DO的状态No由DO读出一个BIT将读出的BIT用于字节输出到指定的BYTE选通器件读完8次?检查是否读完了所有BITYes放弃对于器件的控制/CS=1结束

sCLK入口发出时钟的高电平CLK=1适当地延时片刻CALL DELAY1发出时钟的低电平CLK=0适当延时CALL DELAY2RET

图中绘出了A/D转换的基本过程。必须说明,这个流程图并不是最优化的,而仅仅表现了A/D转换的主要步骤。流程图的右侧绘出了每个步骤相应的注释。

图中使用了sCLK子程序,该子程序的流程图附在本小节的后部。这里应当注意的是,

sCLK子程序中使用了2个延时子程序,DELAY1和DELAY2,其目的是为了调整时钟信号的频率和占空比,实际的延时子程序可以用不同长度的循环来实现,或者简单地插入若干个NOP来解决。具体的延时长度应当视实际需要而定。延时时间的确定原则在于使得CLK信号处于高电平和低电平的时段基本相等,而且必须考虑到sCLK子程序返回后,A/D程序进行其它操作时CLK处于低电平的时段长度。

2、A/D转换程序:( 见源程序文件TLC0832.ASM)

BEGIN:

CLR P1.4 ; /CS=0,选通器件 SETB P1.1 ;DI=1,置启动条件 CALL SCLK ;发出一个时钟

SETB P1.1 ;DI=S/D=1,送控制命令的第1个BIT CALL SCLK ;发出一个时钟

CLR P1.1 ;DI=O/E=0,送控制命令的第2个BIT

MOV A, #00H ;设存放转换结果的寄存器A初值 MOV R0, #08H ;读8位BIT GETDATA:

CALL SCLK ;发出一个时钟

MOV C, P1.0 ;由DO读出一个BIT,检测DO的状态

RLC A ;将读出的BIT用于字节输出到指定的BYTE,选通器件 DJNZ R0, GETDATA;读完8次了吗?未读完,继续

SETB P1.4 ;/CS=1. 读完,放弃对于器件的控制 SJMP $

;SCLK入口 SCLK:

SETB P1.2 ;CLK=1,发出时钟的高电平 NOP ;适当延时片刻 NOP NOP NOP

CLR P1.2 ;CLK=0,发出时钟的低电平 NOP ;适当延时片刻 NOP NOP NOP RET END

; 查指令表可知NOP指令需用1个机器周期,在12MHz晶振时,一个机器周期时间长度为12/(12MHZ)=1us

; 所以该段延时程序执行时间为:2*1us=2us

; 因此,若取CLK的时钟占空比为50%,则高低电平延时时间相同,即总共的时钟周期为:2*2us=4us,

; 即CLK时钟频率为1/(4us)=250KHz

; 同学们可以编写两个不同的延时程序,实现不同的CLK时钟频率和占空比, ; 但是要注意CLK必须在10KHz~600KHz之间,占空比必须在40%~60%之间.

参考文献

[1] 武汉力源电子股份有限公司. TLC0831C/I,TLC0832C/I 8位串行控制模数转换器产品资料. 1998.6 武汉

[2] Texas Instruments Incorporated. Data Sheet of TLC0831C, TLC0831I, TLC0832C, TLC0832I 8-BIT ANALOG-TO-DIGITAL CONVERTERS WITH SERIAL CONTROL. APRIL 1996, USA

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo6.com 版权所有 湘ICP备2023023988号-11

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务