基于某霍尔传感器地电流检测模块设计
发布时间:2020-03-09 11:05:26
发布时间:2020-03-09 11:05:26
一、 绪论------------------------------------------------------ 2
1.1 概述----------------------------------------------------- 2
1.2 霍尔传感器的发展趋势------------------------------------- 2
二、 整体设计方案-------------------------------------------- 3
三、 硬件电路的设计----------------------------------------- 4
3.1 传感器模块----------------------------------------------- 4
3.2 A/D转换模块---------------------------------------------- 5
3.3 数码管显示模块------------------------------------------- 6
3.4 电源电路模块--------------------------------------------- 7
3.5 复位模块------------------------------------------------- 8
3.6 时钟模块------------------------------------------------- 8
四、 系统的软件设计----------------------------------------- 9
4.1 电流检测装置软件程序流程图------------------------------- 9
4.2 系统程序设计--------------------------------------------- 9
4.2.1 定时器计数程序------------------------------------------ 9
4.2.2 外部中断程序-------------------------------------------- 10
4.2.3 初始化MCU程序------------------------------------------ 11
4.2.4 ADC启动、读取、转换程序-------------------------------- 11
4.2.5 霍尔传感器ACS712的计算函数程序------------------------- 13
4.2.6 数码管显示程序------------------------------------------ 13
4.2.7 主程序-------------------------------------------------- 14
五、 结论与展望---------------------------------------------- 16
六、 心得体会------------------------------------------------- 17
七、 附录------------------------------------------------------ 18
八、 参考文献------------------------------------------------- 21
基于霍尔传感器的电流检测模块设计
一、绪论
1.1 概述
近几年来,单片机已逐步深入应用到工农业生产各部门以及人们生活的各个方面。各种类型的单片机也根据社会的需求而相继开发出来。单片机是一个器件级的计算机系统,实际上它是一个微控制器或微处理器。由于它功能齐全,体积小,成本低,因此它可以应用到所有的电子系统中。AT89C51是一种带4K字节闪存的可编程可插除只读存储器的单片机。单片机的可擦除只读存储器可以反复的擦除多次,该器件采用ATMEL高密度非易失性存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能的8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。
1.2 霍尔传感器的发展趋势
传感器的产业分类众多,其中霍尔传感器市场是第三大传感器产品市场。在汽车行业、电脑、手机以及新兴消费电子领域都得到了广泛应用。未来几年,随着越来越多的汽车电子和工业设计企业转移到中国,霍尔传感器在中国市场的年销售额将保持20%到30%的高速增长。于此同时,霍尔传感器的相关技术仍在不断完善中,可编程霍尔传感器、智能化霍尔传感器以及微型霍尔传感器将有更好的市场前景。
在我们的日常生活中,霍尔传感器被广泛的应用。例如,在翻盖或是滑盖手机中,用来检测手机翻开或是滑动的器件就是霍尔传感器;再比如,在电脑键盘上,实现光标移动的滚动键就是由霍尔传感器组成的;还有,在汽车变速箱、电动门窗等需要电机的部件中也有霍尔传感器应用。可以说,我们在每天的生活中都在与霍尔传感器打交道。
由于霍尔传感器应用的领域不同,因此各个市场对其的要求也不尽相同。手机市场对霍尔传感器的主要要求包括尺寸、功耗和可调节的阈值。在工业和汽车应用方面,霍霍尔传感器首先要满足工业或汽车认证对器件的要求,例如安全性、稳定性和温度范围要达到相应的级别。
二、整体设计方案
由于AT89C51片内没有A/D转换,根据系统的设计要求,需要在片外扩展A/D转换接口。系统选用ADC0804,ADC0804的DB0~DB7分别接单片机的P0.0~P0.7,AGND、DGND、CS、VIN-接地,RD、WR分别接单片机的RD、WR端,中断请求INTR接单片机的P2.0口,VIN+接采集信号输入。调整变阻器HAUBLAN20K,使辅助参考端VREF脚得到2.56V标准电压。在CLKIN、CLKOUT端设计RC振荡电路,由于ADC0804频率限制在100Hz~1460kHz,通过对频率公式F=1/(1.1RC)的计算,选择电阻R=20k,电容C=200pF,即可得到符合设计要求的频率。
数码显示模块主要显示单片机的输出数据、状态等。系统显示部分采用共阴极8段数码管,选用CMOS BCD七段字符显示译MC14511BCP作为它的驱动器件,并在译码器和数码管之间接入分压电阻保护数码管,防止电压过高烧坏数码管。数码显示部分采用动态扫描显示方法,4个MC14511BCP译码器共用4条数据线。其中LE端为片选端,置低电压时译码器被选中可以读数据,置高电压时译码器暂存,保持显示数据不变。A、B、C、D为数据输入端,分别接单片机的P1.0~P1.3口;个片选端分别接单片机的P1.4~P1.7口。
系统由一个主控系统和一个检测模块组成。被测电流通过ACS712芯片时,该芯片利用霍尔效应,将被测电流转换成0~5V的DC模拟信号,该模拟量经过A/D装置变成数字量。A/D采样处理模块主要是对从ADC0804采集来的数据进行处理,完成对二进制数据BCD码的转换,并且通过P1口输出显示,P1口德低四位输出BCD码,高四位为数码管的片选信号。ADC0804与AT89C51的连接采用循环扫描方式。当A/D转换结束后,ADC0804向CPU发出一个信号,CPU对转换后的数字量进行处理,使数码管显示当前的电流值。
三、硬件电路的设计
3.1 传感器模块
3.1.1 电流传感器的工作原理
磁补偿式的工作原理是磁场平衡,即主回路电流IP在聚磁环所产生的磁场,通过一个次级线圈的电流产生的磁场进行补偿,使霍尔器件处于检测零磁通的工作状态,具体工作过程为:当主回路有一电流通过时,在导线产生的磁场被聚磁环聚集,感应霍尔器件使之有一个信号输出,这一信号驱动相应的功率管导通,从而获得一补偿电流IS。这一电流通过多匝绕组产生的磁场与被测电流产生的磁场正好相反,因而补偿了原来的磁场,使霍尔器件的输出逐渐减小,当IP与匝数相乘所产生的磁场与IS与匝数相乘所产生的磁场相等时,IS不再增加,霍尔器件起到指示零磁通的作用。此时可以通过IS来测IP,当有变化时,平衡受到破坏,霍尔器件就有信号输出,即重复过程重新达到平衡。被测电流的任何变化都会破坏这一平衡,一旦磁场失去平衡,霍尔器件就有信号输出,经放大后,立即有相应的电流流过次级绕组,对失衡的磁场进行补偿。从磁场失衡到再次平衡所需的时间不到1us。这是一个动态平衡的过程。
3.1.2 ACS712简述
ACS712器件主要由靠近芯片表面的铜制电流通路和精确的低置线性霍尔传感器电路组成。被测电流流经的通路(引脚1和2,3和4之间的电路)的内电阻通常是1.2mΩ,具有较低的功耗。流经铜制电流通路的电流所产生的磁场,能够被片内的霍尔IC感应并将其转化为比例的电压。通过将磁性信号尽量靠近霍尔可以消除芯片由于温度传感器来实现器件精确度的最优化。精确的成比例的输出电压由稳定斩波型低偏置BiCMOS霍尔集成电路提供,该集成电路在出厂时已经进行了精确的编程。稳定斩波技术是一种新技术,它给片内霍尔器件和放大器提供最小的偏置电压,该技术几乎可以消除由温度所产生的误差。
ACS712的引脚及功能
3.1.3 传感器电路
word/media/image1_1.png
3.2 A/D转换模块
3.2.1 ADC0804简述
ADC0804是一个早期的A/D转换器,因其价格低廉而在要求不高的场合得到广泛应用。ADC0804是一个8位、单通道、低价格的A/D转换器。主要特点是:
word/media/image2.gif.模数转换时间大约100us;
word/media/image3.gif.方便的TTL或CMOS标准接口;
word/media/image4.gif.可以满足差分电压输入;
word/media/image5.gif.具有参考电压输入端;
word/media/image6.gif.内含时钟发生器;
word/media/image7.gif.单电源工作时输入信号范围是0V~5V;
word/media/image8.gif.不需要调零等。
3.2.2 A/D转换电路
word/media/image9_1.png
3.3 数码管显示模块
3.3.1 MC14511BCP的工作原理
本设计选用MC14511作为驱动芯片,以8端数码管作为显示器件的显示模块作为系统的输出显示。为了数码管的安全,我们在数码管与驱动芯片之间加1K欧姆的电阻作为限流电阻,保证驱动芯片以及数码管的安全运行。
3.3.2 数码管的工作原理
在智能仪器仪表中广泛使用各种显示器来显示数据文字或者是图形画面,其中最长用的显示器是LED(发光二极管显示器),因为它具有驱动电路简单,配置灵活方便,功耗低,响应速度快,可靠性高以及易于实现而且价格低廉等优点。
LED显示实际上是由若干发光二极管构成的,当发光二极管导通时,相应的一个点或者是一个笔画就发光,控制不同组合的二极管导通,就能显示出各种字符。
3.3.3数码管电路
word/media/image10_1.png
3.4 电源电路模块
3.4.1 电源设计
系统的供电电源由220V-9V变压器提供。考虑到变压器体积较大,且220V属于较高电压,容易影响板子芯片的正常工作,我们选择变压器独立外接的处理办法。
变压器的二次侧输出电压为交流9V电源,经过整流桥得到脉动的直流电源,经过滤波电容,稳压管L7805,以及二次滤波电容的处理,得到复合系统要求的+5V电源,为装置的各部分电路供电,保证系统的正常运行。
3.4.2 电源电路
word/media/image11_1.png
3.5 复位模块
51系列的单片机复位信号由RESET引脚输入,高电平有效,当RESET引脚输入高电平并保持两个机器周期以上时,单片机内部就会执行复位操作。为了保证复位的成功,一般复位引脚RESET上只要出现10ms以上的高电平,单片机就实现了可靠复位。在这里我选择手动复位的方式。当按下复位按钮后,电容C通过10K电阻迅速放电,使RESET迅速变为高电平,复位按钮松开后,电容通过R和内部下拉电阻放电,使RESET逐渐恢复为低电平,从而完成一次成功的复位。
word/media/image12_1.png
3.6 时钟模块
单片机的时序就是CPU在执行指令时所需要的控制信号的时间顺序。单片机的时钟信号用来为芯片内部各种微操作提供时间基准,也就是说在指令执行时,CPU首先要到程序存储器中取出所需要执行的指令码,然后进行译码,并且产生一系列控制信号去完成指令的执行操作。在这里我选择了用外部时钟的方式产生时钟信号来控制单片机的工作时序。
word/media/image13_1.png
四、系统的软件设计
4.1 电流检测装置软件程序流程图
word/media/image14.gif
4.2 系统各程序设计
4.2.1 定时器计数程序
T1和T0是两个独立的定时器/计数器,相互之间不会影响。至于定时和计数功能,则由写入TMOD(定时器/计数器方式控制寄存器)的值来确定当前定时器是定时功能还是计数功能。因此在程序中,可以设置标志位TR0和TMOD配合,当TR0是1时,定时器就执行计数功能,开始计数。定时器需要计数16位数。因此选择模式为1,即设置TMOD=0x01。程序如下:
#include”public.h ”
u8 Cnt100ms ;
u8 Cnt1s ;
void Timer0ISR(void) interrupt 1
{
TL0 = (u8)(Interva10neMs) ;
TH0 = (u8)(Interva10neMs>>8) ;
ADC0804Start() ; //启动ADC转换
}
void Timer0Initial(void)
{
TMOD |= 0x01 ; //设置定时器0为模式1
TL0 = (u8) Interva10neMs ; //初始化低8位
TH0 = (u8) (Interva10neMs>>8) ; //初始化高8位
ET0 = 1 ; //允许定时器0中断
TR0 = 1 ; //启动定时器0,开始计数
}
4.2.2 外部中断程序
中断能使处理器在运行过程中对外部事件发出的中断请求及时地进行处理,处理完成后又立即返回断点,继续进行处理器原来的工作。系统对ADC0804转换结果执行外部中断,当系统未能读取转换结果时继续返回ADC080等待转换完毕。中断程序如下:
#include”public.h”
extern u8 ADCResult ;
void INT0ISR(void) interrupt 0 //外部中断0服务函数
{
ADCResult = ADC0804ReadADResult() ; //取得ADC转换结果
}
void INT0Initial(void)
{
IT0 =1 ; //指定外部中断0下降沿触发
EX0 = 1 ; //使能外部中断
}
4.2.3 初始化MCU程序
根据系统要求,单片机要有外部中断、定时器计数,因此初始化单片机时要初始化外部中断以及定时器来实现上述功能。
#include”public.h”
void MCUInitial(void)
{
GlobalInterruptDisable() ; // 禁止全局中断
INT0Initial() ; //初始化外部中断
Timer0Initial() ; //初始化Timer0
GlobalInterruptEnable() ; 允许全局中断
}
4.2.4 ADC启动、读取、转换程序
ADC0804的启动:ADC0804中的A/D转换器在满足一定条件时开始一个转换过程,这个条件就是:在实现片选WR=0的前提下,引脚上出现一个上升沿。
ADC转换结果的读取:在A/D转换结束以后,ADC0804的RD引脚将给出一个低脉冲信号,如果把这个引脚直接连接到单片机的外部中断引脚,这个低脉冲将引起单片机的中断,单片机可以在中断处理程序中读取ADC0804的转换结果。
ADC0804的启动、读取程序如下:
#include”public.h”
void ADC0804Start(void)
{
iADC0804WR = 0 ;
iADC0804WR = 1 ; //上升沿启动ADC0804转换
}
void ADC0804Initial(void)
{
iADC0804WR = 1 ;
iADC0804RD = 1 ; //初始化状态为WR,RD均为高电平
}
u8 ADC0804ReadADResult(void)
{
u8 ADTemp ;
iADC0804RD = 0 ; //低电平为度数状态
ADTemp = iADC0804DATA ; //读取数据口
iADC0804RD = 1 ;
return ADTemp ; //返回ADC转换结果
}
4.2.5 霍尔传感器ACS712的计算函数程序
计算函数如下:
#include”public.h”
Float ACS712ReadCurrent(u8 ADCValue)
{
return (float)30*(ADCValue-127)/101 ;
}
4.2.6 数码管显示程序
系统选用4个共阴极数码管来分别显示检测电流的十位、个位、小数点后一位、小数点后两位,再将计算结果转换成BCD码并在数码管中显示出来。数码管显示程序如下:
#include”public.h”
u8 DisplayBCD[4] ;
u8 code SelectTable[] = {0x70,0xB0,0xD0,0xE0} ;
void HEXTOBCD(u16 Hex)
{
DisplayBCD[3] = Hex/1000 ;
DisplayBCD[2] = Hex%1000/100 ;
DisplayBCD[1] = Hex%100/10 ;
DisplayBCD[0] = Hex%10 ;
}
void DisplaySevenSegment(u16 DisplayData)
{
static u8 Sel ;
u8 P0Temp ;
HEXTOBCD(DisplayData) ; //转换成BCD码
P0Temp = P0 ;
P0Temp &= 0xF0 ;
P0Temp |=DisplayBCD[Sel] ; //要显示的BCD码
P0Temp &= 0x0F ;
P0Temp |=SelectTable[Sel] ; //选中一只数码管
P0 = P0Temp ;
if(Sel>3)
{
Sel = 0
}
}
4.2.7 主程序
主程序用来调用上述子程序,包括初始化单片机、初始化ADC0804等。
#include”public.h”
u8 ADCResult ;
float Current ;
u16 CurInt ;
void PowerOnInirial(void)
{
ADC0804Initial() ; //初始化ADC0804
}
void main(void)
{
MCUInitial() ; //初始化MCU
PowerOnInitial() ; //初始化上电默认状态
while(1)
{
Current = ACS712ReadCurrent(ADCResult) ;
CurInt = Current*100 ; //电流值乘以100以便显示
DisplaySevenSegment(CurInt) ; //显示电流值
}
}
五、结论与展望
霍尔电流传感器是根据霍尔效应原理制成的,它有两种工作方式,磁平衡式和直放式。霍尔式传感器的优点有精度高、线性好、频带宽、响应快、过载能力强和不损失被测电路能量等诸多优点。
霍尔式电流传感器是一种先进的、能隔离主回路和电子控制电路的电检测原件。它综合了互感器和分流器的所有优点,同时又克服了互感器和分流器的不足。可以测量任意波形的电流,如直流、交流和脉冲波形等。也可以对瞬态峰值进行测量,其副边电路可以忠实的反应原边电流的波形。这一点普通互感器无法与其相比。
霍尔电流传感器模块在工作区域内的精度优于1%,该精度适合任何波形的测量,而普通互感器的精度一般为3%~5%,且值适合50Hz的正弦波形。并且它的动态响应时间小于7us,跟踪速度高于50A/us,为提高现代控制系统的性能提供了关键的基础,一般的普通互感器的动态响应时间为10~20us,这显然已经不适应工业控制系统发展的需要。
本设计使用的是有线的霍尔式电流传感器进行设计的,应用也比较广泛,但是在某些应用领域受到了限制,因为有些应用领域需要用到无线技术,所以说,可以在本设计的基础之上加上无线技术,如ZigBee等,实现信号的无线采集。
六、心得体会
我设计的课题是基于霍尔传感器的电流检测模块设计,经过一个星期的思考和准备,通过对课题的设计,提高了自己各方面的能力,例如对书本基础知识的掌握成度,对资料的查找方法,扩展了我的知识面。在学习的同时,也让我明白了在收集资料的时候,不能一味的去抄,要取自己所需要的,而且要去其糟粕取其精华。并加入自己的思想。一个星期下来,终于看到了自己的劳动成果,一种胜利感油然而生。课程设计是我们专业课程知识综合应用的实践训练,是我们迈向社会,从事职业工作前的一个比不可少的过程。今天认真的进行课程设计,学会脚踏实地的迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础
短短几周的课程设计,使我发现了自己所掌握的知识是如此的匮乏,自己综合运用所学专业知识的能力是如此的不足,几年来学习了那么多的课程,今天才知道自己并不会用。也让我学会了怎样去面对制作过程中遇到的各种困难。因此,在以后的学习中,要注重理论与实践的结合。
七、附录
附录一:
附录二:
word/media/image15_1.png
附录三:
八、参考文献
[1].阎石 数字电子技术基础 高等教育出版社 第四版
[2].童诗白 华成英 模拟电子技术基础 高等教育出版社 第四版
[3].郁有文 常健 传感器原理及工程应用 西安电子科技大学出版社 第三版
[4].杨振江 冯军 单片机原理与实践指导 中国电力出版社 第一版
[5].孙焕明 赵会成 51单片机C程序应用实例讲解 第一版