基于FPGA和单片机的位移测量装置的设计

发布者:创意驿站最新更新时间:2012-02-22 来源: 与非网 关键字:位移传感器  FPGA  单片机  测试测量 手机看文章 扫描二维码
随时随地手机看文章

  位移传感器广泛应用于工业和控制领域,如过程检测、物理测量和自动控制等。由于其测量精度不高,往往满足不了社会需求,也**了传感器的应用。因此,这里设计了一套基于单片机FPGA的位移测量装置,能够实现较高的精度测量,同时也能够达到较高的线性度,能够在各种恶劣环境下替代人工工作,实现较高精度的测量,并具有一定的实用价值。


  1 整体设计方案及实现框图


  系统整体实现框图如图1所示,由信号产生部分、差分放大部分、变压器耦合部分、信号处理部分、数据采样部分和处理及显示部分组成。利用DDS技术产生的信号经THS4503的差分放大之后送入差动变压器,差动变压器输出的信号经放大、整流以及滤波处理之后送入MAXl97采样,采样得到的数据经处理单元处理后在LCD上显示测得的位移量。

  2 理论分析与计算
  2.1 DDS信号产生理论分析

  在系统时钟频率和相位累加器位数一定的情况下,输出波形频率由频率控制字决定。设M为所设计的相位累加器的位数,N为频率控制字,则DDS系统输出信号的频率为

  实验中,激励信号的频率是100 kHz,采用的时钟频率是40 MHz,频率控制字是24位,相位累加器的位数是29位。然后经过D/A转换器,输出的信号经一个截止频率是150 kHz的有源低通滤波器输出,得到稳定、连续平滑的波形。

  2.2 数据处理方法分析

  差动变压器是开磁路,原、副边间的互感随磁芯移动而做相应的变化,使输出的两次级线圈的电压随之发生变化,将位移的变化转化为输出的电压的变化,整流后采集数据,并进行数据处理,得到d值,图2所示为差动变压器数据处理采用查表法:首先采用游标卡尺测量若干组位移值,测量的组数根据测量范围以及测量结果来确定,并记录下相应的d值,绘制成一张表格。在实际测量时,根据测得的d值通过查表确定位移范围,并在这一范围内采用分段折线法处理得到精确的位移值。采用查表法可精确定位移范围,得到的数据误差较小,精度较高。

  3 单元模块电路设计
  3.1 线性可变差动变压器的设计

  设计时应该考虑以下两方面因素:1)能保证衔铁工作时不会超出线圈之外;2)差动变压器灵敏度。当按匝数增加时,可使灵敏度S增加,但按匝数的增加将受到线圈导线允许电流密度、导线发热的散热情况及磁饱和等因素的约束。

  综合以上分析,线圈分为上、中、下3段式,长度各为2 cm,中间部分线圈为初级线圈,上下两部分为次级线圈。初、次级线圈的匝数比均为1:1,与之配套的磁棒长度也为2 cm。此线圈在线性移动范围内效果较好,但是当移动到边缘部分时由于磁力线分散,测得非线性的数据,但通过校准后仍能达到很高的精度。

  3.2 差分放大电路

选用THS4503来做差分放大电路。由于激励信号的频率固定为100 kHz,故在差分放大器的反馈电阻上加上电容,达到滤波与避免自激的效果。从低通滤波器输出的信号需经过差分放大器放大后输出一对差分信号为变压器的初级线圈提供电压。电源采用±5 V双电源供电,THS4 503的2个输出端经2个阻值为12 Ω的隔离电阻与变压器的初级线圈的两端相连接。具体电路图如图3所示。

3.3 检波电路

图4为检波电路。差动变压器将位移量转换成电压信号,测量信号幅值或有效值再进行数据处理,便可得到相应的位移值。对于有效值的检测,选用真有效值测量芯片AD637实现。平均电容C1设定平均时间常数,并决定低频准确度,输出纹波大小和稳定时间。信号经放大后输入到AD637进行有效值检波,两电位器分别进行调零和调幅,以使AD637的输出更准确。[page]

    3.4 A/D采样电路

铁芯在移动的过程中,输出的电压值变化范围较大,因此,接入程控放大器,先通过A/D转换器采样,按照事先划分的幅度带对待处理信号进行幅度定位,然后控制放大器的档位,以提高A/D转换器的采样精度,从而减小测量误差。MAXl97采用的是内部时钟和内部基准源,几乎不需要外围电路,电路结构简单,应用方便。具体电路图如图5所示。

3.5 直流电机驱动电路

采用专用芯片L298HN作为电机驱动。电机起动时需要较大的电流,为了保证电机起动时对单片机控制板的供电系统不至于产生影响而产生掉电现象,需要采用光电耦合器TLP521-2GB进行电源隔离,同时应注意需要对L298HN的供电电压进行去耦,以保证驱动电路的工作稳定。电机驱动电路如图6所示。[page]

4 系统软件程序设计

本系统由单片机与FPGA共同控制实现,FPGA主要用于ADC时序的控制以及数据的运算,单片机则用来实现人机的交互。程序采用结构化设计思想,软件采用模块化设计,主程序中调用各子程序,有专门的数据处理子程序、信号发生器子程序、扫描键盘子程序等。除了数据运算和显示外,本系统还附加了自校正功能,即通过比较两路信号的幅值控制电机的正转和反转,最终使铁芯停在参考零的位置。图7为程序流程。

5 系统测试与结果分析
  5.1 使用仪器及型号

PC机:Intel奔腾D,主频:2.5 G,内存:1 G;伟福仿真机:E51/S;直流稳压稳流电源:SGl733SB3A;双踪数字存储示波器:TEKT-RONLX TDS1002。

  5.2 测试内容与结果

  在电路调试的过程中,针对各个模块分别进行调试,调试结果效果不错,调试数据表格省略。进行整机调试时,测 量了A、B、C 3点的信号波形。其中C处的信号波形良好,无失真。A、B 2点的输出的直流信号无纹波抖动,而且数值准确。对于位移测量,实验数据如表l和表2所示。对该位移测量结果进行分析,可以看出位移测量的精度较高,最大误差是0.5 mm,测量范围是-20~20 mm,总体来说,整个系统的完成情况较好。


  6 结束语

  该系统测量位移范围扩展到-20~20 mm,实际测量到自制差动变压器的近似线性范围约为-24~24 mm,能够实现较高的精度测量,同时也能够达到不错的动态范围,但线性度不是很好,这主要是受线圈绕制的非理想均匀、对称以及铁芯规格不理想等因素的**,但通过软件校正可大大提高位移测量的精度,而且线性度的稳定性也会有提高。

关键字:位移传感器  FPGA  单片机  测试测量 引用地址:基于FPGA和单片机的位移测量装置的设计

上一篇:基于PPP协议单片机拔号上网的设计与实现
下一篇:基于ADSP-TS201S的多DSP并行系统设计

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

AVR单片机是什么
什么是AVR单片机?AVR单片机是什么意思?   单片机又称单片微控制器,它是把一个计算机系统集成到一个芯片上,概括的讲:一块芯片就成了一台计算机。单片机技术是计算机技术的一个分支,是简易机器人的核心元件。    1997年,由ATMEL公司挪威设计中心的A先生与V先生利用ATMEL公司的Flash新技术, 共同研发出RISC精简指令集的高速8位单片机,简称AVR。    AVR单片机的优势特征   单片机已广泛地应用于军事、工业、家用电器、智能玩具、便携式智能仪表和机器人制作等领域,使产品功能、精度和质量大幅度提升,且电路简单,故障率低,可靠性高,成本低廉。单片机种类很多,在简易机器人制作和创新中,为什么选
[单片机]
基于单片机的电动模型汽车自动控制系统设计
全国大学生电子设计竞赛中的C题,要求设计一个以单片机为核心器件实现对行驶中的电动模型汽车自动控制系统,控制过程是利用反射式光电检测器采集数据,通过软件完成对电动模型汽车在不同路段的行驶速度实时控制,用数码管对指定行程和所用的时间进行显示,同时利用红外数传方式将在限速区、终点区和返回到起点区后的时间和距离数据向手持显示装置单向传送。系统将键盘设在小汽车中对其速度的控制调整更加方便、更加精确。 方案论证 根据题目的基本要求,设计任务主要是完成电动小汽车在规定行驶路线中的速度控制,根据不同的行驶路段采用变速行进,对行程中的有关数据进行处理显示。为了使汽车与固定点保持联络,本系统加装了红外数码传感器装置,以实现对汽车的行驶过程定位。下面对
[单片机]
基于<font color='red'>单片机</font>的电动模型汽车自动控制系统设计
搭配高阶演算法 FPGA加速抢进逆变器
  随着逆变器转向三级拓扑架构,系统控制难度也大幅提高,因此欧美逆变器大厂已开始改搭系统单晶片现场可编程闸阵列(SoC FPGA),从而导入更先进的数位演算法,进一步提高系统即时控制能力与电源管理效率。   Altera亚太区工业市场开发经理江允贵表示,以往逆变器控制方案大多以微控制器(MCU)或数位讯号处理器(DSP)为核心,整合周边介面与电源管理零组件组成特定应用积体电路(ASIC);然而,随着太阳能系统与智慧电网整并速度加快,加上逆变器拓扑结构与功率半导体的开关控制复杂度加剧,全球主要逆变器业者已研拟转搭SoC FPGA,以提升能源管理效率,并透过软体编程快速满足各国智慧能源系统发展的不同需求。   据悉,欧美逆变器大厂已
[电源管理]
搭配高阶演算法 <font color='red'>FPGA</font>加速抢进逆变器
AVR单片机控制舵机
什么是舵机: 舵机如下所示: 有三根线,一般依次是地,电源(5V左右),信号(信号的幅值 =3.3V),不清楚各个脚打开舵机一测量就知道了。 2.其工作原理是: 控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。当然我们可以不用去了解它的具体工作原理,知道它的控制原理就够了。就象我们使用晶体管一样,知道可以拿它来做开关管或放大管就行了,至于
[单片机]
AVR<font color='red'>单片机</font>控制舵机
又一MCU厂商辉芒微电子拟A股IPO,已进行辅导备案
6月6日,中信证券发布关于辉芒微电子(深圳)股份有限公司的辅导备案公告称,辉芒微电子(深圳)股份有限公司拟首次公开发行股票并在境内证券交易所上市,现已接受中信证券股份有限公司的辅导,并于2021年6月3日在深圳证监局进行了辅导备案。 资料显示,辉芒微电子由硅谷资深人士于2005年在深圳成立,是一家专注于非易失性存储芯片(NVM)、数模混合信号设计、高端模拟电路、高压电源管理芯片的无晶圆厂设计公司。 辉芒微电子拥有一批具有国内外先进半导体企业工作经历的研发人员组成的研发团队,具备自主开发工艺的能力。因此,产品设计不仅仅停留在SOC集成层面,基于自身强大的全定制和半定制的数模混合芯片设计能力,我们将高性能、高可靠性和低成本理念
[手机便携]
又一<font color='red'>MCU</font>厂商辉芒微电子拟A股IPO,已进行辅导备案
AVR单片机设计I/O口使用注意事项
  1. 先正确设置DDRx方向寄存器,再进行I/O口的读写操作。   2. I/O口复位后的初始状态全部为输入工作方式,内部上拉电阻无效,外部引脚呈现三态高阻输入状态。   3. 当I/O口工作在输入方式时,且要读取外部引脚上的电平时,应读取PINxn的值,而不是PORTxn的值。   4. 当I/O工作在输入方式时,要根据实际情况使用或不使用内部的上拉电阻。   5. 一旦将I/O口的工作方式由输出设置成输入方式后,必须等待1个时钟周期后才能正确读到外部引脚PINxn的值。
[单片机]
基于51单片机的智能饮水机设计
一.硬件方案 本次设计为一个基于单片机的饮水机的温度控制系统,该系统可以实时检测饮水机水箱的水温,并且可以通过数码管显示饮水机水箱水温度数,可以通过键盘或开关选择制冷或加热,可以人为设置水的温度的上下限,如加热,当温度在设定的范围内时正常工作,当低于水温下限时控制加热器加热;如制冷,当温度高于水温上限时控制压缩机制冷,温度检测范围0~95℃,精度±1℃,当温度超过设定值时具有示警功能。 主要由用51单片机+防水型温度传感器DS18b20+液晶屏LCD1602+液位开关+时钟芯片+继电器+小风扇+按键;如图: 二.设计功能 (1)系统上电后,LCD1602显示当前的时间、日期和水温。 (2)使用不锈钢液位开关来检测是否有水源
[单片机]
基于51<font color='red'>单片机</font>的智能饮水机设计
海速芯8位MCU-TM52F1376用于电动剃须刀
电动剃须刀由不锈钢网罩、内刀片、微型电动机和壳体组成,其中主控方面控制按键开关、电机驱动、电源管理等,为保证性能,电动剃须刀需要选用一个稳定性能好的MCU。本文将推荐海速芯高性能、高稳定性的8位MCU-TM52F1376应用于电动剃须刀。 海速芯8位MCU-TM52F1376的主要应用优势特点如下: ①采用8051内核、8bit的MCU,主频高达18MHz,因而拥有高性价比、稳定性好的特点,适合电动剃须刀上的应用,节约成本; ②拥有3ch PWM控制资源,满足电动剃须刀对于电机方面的控制; ③封装形式多样,满足不同设计需求,同时可以有效简化PCB面积; ④工作温度为-40℃~85℃,非常适合对于消费类电子产品即电动剃须刀上的应
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 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