基于单片机的一种新型角度传感器的设计
2017-07-13张希元苏蓓蓓阚永恒
张希元 苏蓓蓓 阚永恒
[摘要]本文介绍了具有两种不同模拟量值输出的角度传感器。传感器芯片检测到角度值后,由单片机转化为数字量,再经过DA转化,输出模拟量。通过设置,可实现0~5V电压输出或者4~20mA电流输出。
[关键词]角度传感器;单片机;模拟量
1前言
角度传感器广泛应用于工程与农用机械、仪器仪表、土木工程、船舶、航空航天、工业自动化、卫星天线定位、平台运转监控、地质勘探、四轮定位系统等领域。其输出通常分为数字量输出和模拟量输出,数字量方式通过232、485、TTL等方式以BCD码输出,模拟量输出电流或者电压值,根据行业标准,默认电压方式是-90度对應0V,+90度对应5V,中间状态角度与电压呈线性关系;默认电流方式是-90度对应4mA,90度对应20mA,中间状态角度与电流呈线性关系,如图1所示。
常见的模拟量输出角度传感器是分立式设计,即分为电压输出式和电流输出式两种,生产制造和用户使用都不方便,本项目设计一款电压和电流输出一体的角度传感器,可通过软件设置为0~5V电压输出或者4~20mA电流输出。
2设计思路
本设计主要包括传感器芯片模块、单片机控制模块、通信模块和模拟量输出模块。传感器芯片模块用于检测角度值,在单片机的控制下转化为数字量,再通过模拟量输出模块输出0~5V电压或者4-20mA电流值。通信模块主要有三个作用,一是给单片机下载程序,二是可同时输出数字量,三是可通过电脑软件设置输出模式,通过电脑软件向单片机发送不同指令后,单片机选择工作在电压输出模式或电流输出模式。
3主要硬件电路设计
主控芯片选择STM32F103C8T6单片机,主要是考虑到三个方面,一是该芯片综合性能优越,二是该芯片的超低功耗特性,三是该芯片价格优惠,在产品量产后,便于控制生产成本。
传感器芯片采用ADXL345芯片,它可以测量与重力方向夹角,从而确定物体偏转的角度。不同角度下,传感器芯片引脚输出不同的电压值,单片机引脚将这些电压值采集后转化为数字值,即可得传感器当前的角度情况。
本设计的核心部分是模拟量输出模块,主要通过AD5412芯片实现,该芯片是低成本、精密、完全集成、12/16-bit数模转换器(DAC),内置可编程电流源和可编程电压输出,设计用于满足工业过程控制应用的需要。输出电流范围可编程设置为4-20 mA、0-20 mA或者超量程的0-24mA。电压输出由一个独立引脚提供,该引脚可配置成0~5V、0~10 V、±5 V或±10 V输出;所有范围均提供10%的超量程。在电流模式和电压模式下,总输出误差典型值均为+0.01%。其性能与本设计要求完全匹配,且其性能优越,是本设计的最佳选择。其电路如图2所示(以x轴方向为例)。
与单片机相连的一共有6个引脚,CLESEL引脚为选择电压输出清零值,零电平或中间电平。CLEAR为高电平有效输入。置位此引脚可将电流输出设置为选定范围的最低值或将电压输出设置为用户选定值(零电平或中间电平)。LATCH上升沿将输入移位寄存器数据并行载人到DAC寄存器,同时更新输出。SCK为串行时钟输入。数据在SCLK的上升沿输入移位寄存器。MOSI为串行数据输入。数据在SCLK的上升沿有效。MISO为串行数据输出。用于在菊花链模式或回读模式下从串行寄存器逐个输出数据。数据在SCLK的上升沿时有效。
电压输出引脚为21引脚Vout,输出电压值,电流输出引脚为19引脚Iout,输出电流值,采用共地模式输出。
4软件设计
在软件设计中,采用模块化编程,主要包括了以下部分,如图3所示。
传感器芯片上电后,根据角度变化,会产生一定范围的电压信号,MCU将此电压信号采集后,设计AD转换程序,转化为数字信号,该数字信号既实现与计算机上位机之间通信,又是模拟量输出的源头。计算机上位机软件接收到的是MCU处理后的数字信号,该数字信号是BCD码形式的十六进制数,直接提取有效数据显示即可。同时,在配套的上位机软件中,可以通过指令设置,实现是电流输出,还是电压输出的选择。
本设计中程序设计的关键内容是模拟量输出部分的程序,首先,设计条件编译模块,当MCU接收到不同指令时,MCU决定是电流输出,还是电压输出。其次,对AD5412编程,通过DA转化,实现将反应角度的数字信号,与模拟量的电压、电流对应起来。
程序中还设置了看门狗指令,如果AD、DA转化中出现错误,程序马上恢复到重新运行,确保传感器工作稳定。
5结语
本设计实现了可同时实现电压、电流模拟量输出的一种倾角传感器,减少了制作成本,给实际工作带来了便利。经实际测试,本设计效果良好,且具有制作成本低、工作稳定、寿命长等优点,公司量产后逐步推向市场。