一种高速单片机数据采集处理系统设计

发布者:快乐奇迹最新更新时间:2012-03-12 来源: 计算机与信息技术 关键字:MAX1241  单片机  数据采集 手机看文章 扫描二维码
随时随地手机看文章

1  MAX1241介绍

    MAX1241是MAXIM公司推出的一种串行A/D转换器,具有低功耗、高精度、高速度、体积小、接口简单等优点.MAX1241是一种单通道12位逐次逼近型串行A/D转换器,功耗低,转换速度快.
1.1  MAX1241功能特点
    (1)2.7~5.25 V单电源供电;
    (2)12位分辨率;
    (3)8脚DIP/SO封装;
    (4)低功耗:Pmax=3mW(73 KSPS),
    (5)内部提供采样/保持电路;
    (6)兼容于SPI/QSPI/MICROWIRE 串行三线外设接口;
    (7)内部提供转换时钟.
1.2  芯片介绍及外围电路


    图 1所示是MAX1241最简单的外围配置电路。其中,1脚是电源输入端,电源电压范围为2.7~5.25V。2脚是模拟信号输入端,输入电压范围是 0V~VREF,1241可以在9μs内实现将输入信号转换为数字信号。3脚是关断控制输入端,利用其可实现1241两种工作模式的切换,将3脚外接低电平,1241工作于关断模式,输入电流可减少至10μA以下,处于节能状态;若外接高电平,1241是标准工作模式,可实现模数转换。管脚4是基准电压,需外接4.7μF的电容。5脚是接地端。管脚6是数据输出端,当其由0翻转为高电平时,表示数据转换完成,可以读数据了。7脚是片选端,低电平有效。管脚 8是外部读数时钟脉冲输入端,最高频率可达2.1MHz,当数据转换完成,输入外部读数时钟,每个读数时钟脉冲的上升沿读出一位数据,数据读出的顺序是由高位到低位,第一个读数时钟脉冲的下降沿表示数据输出开始,1241是12位模-数转换器,所以要完整的读出转换数据,至少需要外部输入13个脉冲。
1.3 工作过程
    其工作时序如图2所示,下面我们结合图2来分析MAX1241的工作过程.


    (1)、在 =1前提下,使片选信号有效,同时保持时钟输入端为低电平;
    (2)、大约9μs后,可在SCLK端送入外部时钟脉冲,读出数据。从时序图中可看出,转换数据是在输入脉冲由高电平变成低电平后有效,上升沿读出。当模数转换完成后,数据输出端DOUT由低电平翻转为高电平,所以也可通过查询DOUT的状态确定转换是否完成;
    (3)、在外部输入13个脉冲后,数据读取完成,将片选信号端置高电平。只要使片选信号再次有效,就可以重新开始一轮新的模数转换和读取过程。
    (4)、数据读取完成后,如果仍然保持片选信号有效,则DOUT端始终输出低电平。

2  数据采集系统设计

    MAX1241的典型配置及与89C51单片机的接口电路如图3所示,采用+3.6V的标准电池E供电,这样,89C51和1241可以共用一个直流电源,从而减小系统体积。关断输入控制端由P1.0控制,这样使1241只有在需要采集数据时才处于标准工作模式,否则就处于节能态。1241的三根数据线,时钟输入端、片选控制端和数据输出端分别由89C51的P3.4、P3.3和P3.5控制。设计时应注意以下几点:
2.1 电源配置 
    VDD供电范围为2.7~5.25V,为减少来自电源的干扰,可在VDD引脚配置4.7μF和0.1μF的滤波电容.
2.2 参考电源的配置 
    由于MAX1241内部没有参考电源提供,需外接参考电压,只需将Vref接在4.7μF电解电容即可;特殊情况下,可根据前面所述的工作方式控制,让 悬空,此时,即可在REF引脚输入参考电压,其范围为1.0~VDD.REF引脚外接电解电容不宜选择过大,电容越大,MAX1241由待机模式到正常工作模式的唤醒时间将越长.
2.3 采样/保持电路 
    MAX1241芯片内部具有采样/保持电路,无需外部保持电容和采样/保持电路.
2.4  SPI接口时序的软件合成 
    由于89C51单片机不具有SPI接口,因而采用软件合成的方式来和MAX1241接口,模拟SPI接口方式.其时序必须严格按照图2所提供的时序图来进行.应当注意,SCLK的个数应比数据的实际位数多1,因第0个SCLK为A/D转换期间所必须提供的.
2.5 MAX1241与89C51的硬件接口 
    MAX1241的控制线SCLK、、DOUT可与89C51的通用I/O口直接相连,无需任何接口变换,其SPI接口由89C51的程序来合成.


                                   图3 数据采集电路
2.6 模拟电压输入 
    模拟电压经前级放大至0~VREF 范围后,由AIN引脚输入.

3  数据处理程序

    为保证数据的准确性,可利用程序来进行数字滤波,通常采用一次延迟数字滤波,其算

为了保证准确度,可采用双字节运算程序来处理数据,并且不考虑符号。这样可以简化程序。常数都表示成16位数据,以便进行双字节运算。在下列数据区中加入本程序所用的常数及运算数据。[page]


4  软件设计

    单片机用C语言编程具有开发周期短、可读性强、可移植性好和修改方便等特点,但是C语言反汇编生成的汇编代码往往较长。直接用汇编语言编程虽然编写的程序较短,在直接对机器配件进行控制方面具有相当的优势,但是开发周期长,修改也不方便。较好的解决办法是程序的框架或主体部分用C语言编写,要求执行效率高的部分用汇编语言编写。这种混合编程的方法将C语言和汇编语言的优点结合起来,所以成为目前单片机开发最流行的编程方法。
    根据设计要求,按照实现功能的分类,系统软件主要完成五项任务:系统初始化、数据采集、数据处理、键盘响应和数据显示。在数据处理中,需要进行大量浮点数的乘除法和正弦、余弦运算,因此数据处理部分采用C语言编写,在Keil环境中模块化编程,充分利用C语言强大的计算能力,系统初始化、键盘响应和数据显示也采用C语言编程,在数据采集部分中,MAX1241对时序要求比较严格,采用汇编语言实现,所有功能模块均为独立的C文件或ASM文件。而实现C语言和汇编语言的混合编程是软件设计中的难点和关键之一。本文中,汇编语言采用单独的文件,通过寄存器传递函数参数,相关具体程序如下所示:
 

5 结束语

    为保证数据的准确性,可多次采样后,利用程序来进行数字滤波,以减少各种噪声和干扰带来的错误数据,提高系统的可靠性和稳定性,而不需增加任何硬件开销.


参考文献

1 MAXIM公司. MAXIM产品资料全集[M/CD]. 1999
2 薛钧义,张彦斌. 单片微型计算机及其应用[D]. 西安:西安交通大学出版社,2001.06
3 (美)Charlie Calvert,et al.著 徐科等译C++Builder应用开发大全[M].北京:清华大学出版社,1999。

关键字:MAX1241  单片机  数据采集 引用地址:一种高速单片机数据采集处理系统设计

上一篇:单片机在串口通信和ICP编程上的应用
下一篇:基于MSP430单片机的智能无功补偿控制器的设计

推荐阅读最新更新时间:2024-03-16 12:55

采用SPCE061A单片机的数控直流电流源方案设计
本文设计的数控直流电流源能够很好地降低因元器件老化、温漂等原因造成的输出误差,输出电流在20mA~2000mA可调,输出电流可预置、具有“+”、“-”步进调整、输出电流信号可直接显示和语音提示等功能。 硬件电路采用凌阳单片机SPCE061A为控制核心,利用闭环控制原理,加上反馈电路,使整个电路构成一个闭环,在软件方面主要利用PID算法来实现对输出电流的精确控制。该系统可靠性高、体积小、操作简单方便、人机界面友好。   系统硬件实现方案   本设计采用单片机作为主要控制部件,通过键盘预置输出电流值并采用液晶模块实时显示。整个系统硬件部分由微控制器、电压-电流转换、键盘、显示、直流稳压电源和语音提示等模块组
[单片机]
采用SPCE061A<font color='red'>单片机</font>的数控直流电流源方案设计
AT89C52单片机八路电压表C程序
/*********************************************************************/ // 八路电压表C程序 /*********************************************************************/ /*使用AT89C52单片机,12MHz晶振,P0口读入AD值,P2口作AD控制,用共阳LED数码管 P1口输出段码,P3口扫描,最高位指示通道(0-7)。*/ #include reg52.h //52系列单片机定义文件 #include intrins.h //调用_nop_();延时函
[单片机]
用PComm开发PC机与单片机的通信程序
摘要:介绍了分布式控制系统中上位PC机与下位单片机异步串行通信的通信协议;同时介绍了在VC++6.0环境下用PComm编写的PC机通信程序来实现上位机和下位机异步串行通信的方法,给出了PComm编程实例和下位机程序模块流程图。 关键词:分布式控制系统;异步;串行通信;PComm 在由一台PC机(上位机)和多台单片机(下位机)构成的分布式控制系统中,单片机主要负责实时数据采集,并将初步处理后的数据通过串行口传送给PC机以便由PC机串行口的命令对单片机进行控制,同时通过打印机或显示器向用户随时提供各种统计报表和整个控制过程的具体数据。在这样的分布式控制系统中,单片机与微机之间的多路通信是整个系统的关键,本文将介绍在提高通信的准
[单片机]
基于单片机与模糊控制的温控仪设计与实现
0 引言 温度控制对于工业和日常生活等领域都具有广阔的应用前景,很多应用领域,需要精度较高的恒温控制,由于其控制具有非线性、时滞性和不确定性,用传统的控制达不到好的控制效果。模糊控制是一种基于规则的控制,它直接采用语言型控制规则,出发点是现场操作人员的控制经验或相关专家的知识,其鲁棒性强,干扰和参数变化对控制效果的影响被大大减弱,所以特别适合于0~100℃温度的精确控制。 MSP430系列单片机是一个16位的、具有精简指令集的、超低功耗的混合型单片机。MSP430F149单片机采用了精简指令(RISC),具有丰富的寻址方式(7种源操作数寻址、4种目的操作数寻址)、简洁的27条内核指令以及大量的模拟指令,大量的寄存器以及片内数据
[单片机]
基于<font color='red'>单片机</font>与模糊控制的温控仪设计与实现
用51单片机体验高阻态的详细步骤讲解
在51单片机的P0口工作在普通IO口模式下,为准双向IO口。而工作在第二功能状态下时,则为标准的双向IO口。由于双向IO口的输出,要求能输出高低电平,通常会采用互补推挽电路。 在第二功能状态下,51单片机P0口采用的是互补推挽的输出方式。何为互补推挽呢?下面是它的等效电路图。 当P0第二功能作为输出时,K1和K2两个开关轮流打开。K2闭合K1打开,就会输出高电平,并且其驱动能力很大,因为电子开关的阻值小(不像上拉电阻的值那么大)。反之K2打开,K1闭合,就会输出低电平。 两个开关交替导通,互为补充,“挽”是“拉”的意思,两个电子开关分别负责在IO口输出处“推”和“拉”电流,所以称为互补推挽。 这种IO口结构的优点很
[单片机]
用51<font color='red'>单片机</font>体验高阻态的详细步骤讲解
51单片机直流电机调速源程序
单片机源程序如下: #include reg52.h sbit IN1=P1^1; sbit IN2=P1^2; sbit IN3=P1^3; sbit IN4=P1^4; unsigned char pwm_val_right=0; unsigned char push_val_right=0; unsigned int time=0; unsigned char pwm_val_left=0; unsigned char push_val_left=0; bit right_moto_stop=1; sbit right_moto_pwm=P2^0; bit left_moto_stop=1; sbit left_mot
[单片机]
基于S3C2410单片机串口应用程序的开发
  0 引言   ARM ADS全称为ARM Developer suite(ARM开发套件)。是ARM公司推出的ARM系列处理器集成开发工具,使用非常广泛,目前最高版本的是1.2,它取代了早期的ADS1.1和 ADS1.0。它除了可以安装在Windows NT4、Windows98和Windows95操作系统下,还支持Windows XP和Windows Me操作系统。ADS由命令行开发工具、ARM实时库、GuI开发环境(CodeWarrior和AXD)、实用程序和支持软件组成。有了这些部件,用户就可以为ARM系列的RISC处理器编写和调试自己的开发应用程序了。命令行开发工具完成将源代码编译,连接成可执行代码的功能,包手舌:a
[单片机]
基于S3C2410<font color='red'>单片机</font>串口应用程序的开发
STM32的一些基本知识总结
Cortex-M3缩略语 AMBA:先进单片机总线架构 ADK:AMBA设计套件 AHB:先进高性能总线 AHB-AP:AHB访问端口 APB:先进外设总线 ARM ARM:ARM架构参考手册 ASIC:行业领域专用集成电路 ATB :先进跟踪总线 BE8:字节不变式大端模式 CPI:每条指令的周期数 DAP:调试访问端口 DSP:数字信号处理(器) DWT:数据观察点及跟踪 ETM:嵌入式跟踪宏单元 FPB:闪存地址重载及断点 FSR:fault状态寄存器 HTM:Core Sight AHB跟踪宏单元 ICE:在线仿真器 IDE:集成开发环境 IRQ:中断请求(通常是外中断请求) ISA:指令系统架构 ISR:中断服务例程 I
[单片机]
STM32的一些基本知识总结
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved