×
嵌入式 > 嵌入式开发 > 详情

基于Eastsoft HR7P179的脉冲水位检测电路

发布时间:2020-06-30 发布时间:
|

作者 / 陈艳丽 姜德志 青岛融禾信息技术有限公司 (山东 青岛 266000),李燕霞 北华航天工业学院(河北 廊坊 065000)

采用上海东软载波微电子有限公司出品的HR7P179单片机,配合外围电路实现了脉冲方式的水位检测,可以有效的避免探针生锈的问题,且检测可靠性高,电路参数调整方便。文中给出了非常详细的应用电路包括电路参数,同时给出了检测方法的流程图。

1HR7P179的特点

HR7P179是上海东软载波微电子有限公司的一款RISC单片机,在一个10引脚(HR7P179F8RB)芯片的封装内,集成了4K Words FLASH程序存储器,8级程序堆栈,512 Words 可配置数据FLASH存储器(可以代替EEPROM使用),256 Bytes SRAM数据存储器,以及最多支持8个I/O。

内部资源丰富,1个8位定时器,3个12位定时器,3路PWM,7+1路12位ADC,且有一个内部高精度基准电源。

内嵌上电复位电路POR、掉电复位电路BOR、低电压检测模块(LVD)、独立硬件看门狗定时器以及支持外部复位N_MRST。

内部集成了高频16MHz RC振荡时钟源(出厂前校准精度为±1%,常温25℃)。

支持在线编程(ISP)接口、支持在线调试(ICD)功能、支持编程代码加密保护。

可以说麻雀虽小五脏俱全,功能非常强大,这也是我们这个检测电路选择这个芯片的原因。

2水位检测的要求

水位检测的方法很多,相信大家都能随便说出多种,但是在许多消费电子产品中,需要采用成本低廉,可靠性高,寿命长的检测方法,这个要求就限制了我们的设计。

最简单的检测应用中,采用一对电极,当水没过电极后,电极间电阻变小,通过电路检测电阻的变化即可检测出是否有水,例如采用振荡方式,采用分压方式的模拟数字转换检测等。

但这种方法存在最大的问题就是探针生锈的问题,且需要多档水位检测时,有的方法电路会变得复杂。有的方法检测可靠性会大大降低。

探针生锈的原因是因为持续给探针通直流电,很快就产生了电化学腐蚀。

另外,探针生锈的问题严重制约了这种方法的应用,因为消费电子应用中,不可能因为水位检测的问题挨家去定期更换探针。

是否有一种简单有效且可以有效避免生锈的方法呢?本文的目的就是解决这个问题,同时本文的方法检测电路简单,处理方法也简单。

3脉冲方式的水位检测电路

3.1电路总体原理图

图1是我们设计的总的电路原理图,当然我们省略了一些简单的辅助电路,这样更方便理解。

图1中右边的IC1是东软载波微电子有限公司的HR7P179单片机。选择这款单片机是因为这个单片机资源丰富、封装小,可以满足4~6段水位检测的要求,这在许多实际应用中已经足够了。

图1 总体原理图

3.2电路说明

下面我们分别对这个电路的每一部分进行说明,当然,单片机无需多说。

图2 信号产生和发送部分电路

图2是信号产生和发送电路,这个电路中主要的部分是电阻R6和电容C1。N2组成的电路和N3组成的电路的目的就是在电阻R6和电容C1上产生振荡的信号。

通过单片机编程,给RR端送出低电平,此时N2截至,通过R5 R6使得C1左端为高电位。

同时通过单片机编程,给CC端送出高电平,此时N3导通,使得C1右端为低电位。

经过固定时间后,给RR端和CC端送出相反的电平,即给RR端送出高电平,此时N2导通,通过R6使得C1左端为低电位;给CC端送出低电平,此时N3截止,通过R8使得C1右端为高电位。

如此反复处理,则在R12上就产生了一个正负交替的振荡信号。

图3是各点信号的模式的示意图。

图3 信号发送电路各点信号模式

由于电容C1的隔直作用,在探针上的信号变成了有正有负的交流信号,当然探针也就不容易生锈了。

图4 水位检测信号接收电路

图4是各档水位检测信号的接收电路。需要说明的是,我们只是画出了一个水位检测端的电路,如果您需要5档水位,只需要5个这样的电路,分别连到单片机剩余的IO口上即可。

当有水的时候,接收电路各点波形如图5所示。

图5 信号接收电路各点波形

3.3检测原理

1)硬件原理说明

根据前面电路的介绍,可以很容易的理解检测电路的原理。

信号发送电路,发出方波信号,经过电容C1的隔直作用,在信号发送的电极上产生了有正有负的交流信号,这样可以有效的避免电极探针的电化学腐蚀。

当有水的时候,产生的信号,通过水传递到信号接收端,在信号接收端,经过二极管D1的作用,吸收了低于信号地的信号部分,剩下的正电平信号通过二极管N1产生了新的脉冲信号,供单片机检测。

当没有水的时候,信号无法传递到接收端,故接收端就没有相应的脉冲信号出现。

2)检测软件方法

信号发送端,可以产生500Hz的信号,只需要我们每1毫秒处理一次信号电平方向即可。实际检测中,我们也无需时时刻刻发送信号进行检测,因为水位的变化不会那么快。一般来说,我们每隔2秒进行一次检测,一次检测只产生50个脉冲信号,也就是100ms即可。其余的时间,关闭电路的输出。使得信号产生电极上电平为0。可以根据需要调整这些参数。

信号接收端,需要在100毫秒内检测是否收到了50个信号,如果收到了50个脉冲信号,则证明有水。当然,实际检测中我们不能严格的检测50个脉冲,因为检测的原因,总是会差一两个,所以我们实际判断方法是收到的脉冲个数大于40个即可。当然,也要注意信号是否多于50个,因为干扰的原因可能会产生多于50个脉冲的情况,因此我们要判断脉冲个数是否超过55个,只要脉冲个数在40~55个之间,即可以可靠的说明有水。

4检测流程图

水位检测包括两个主要的函数,一个是信号产生函数,一个是信号检测函数。

信号产生函数,每1毫秒调用一次,会产生500Hz的方波,最终形成500Hz的检测信号。

信号检测函数每100微秒调用一次,检测收到的信号。

图6 信号发送处理函数流程图

图7 信号接收处理流程图

图8 信号接收处理流程图

5结论

本文介绍的水位检测电路,是针对分段式水位的检测,这种检测方法的检测结果受水质的影响较小,检测可靠性高。如果要检测连续的水位,则需要采用其它的方法了。本文为抛砖引玉,与各位共同交流提高。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
RIOS实验室联手Imagination.共同助力RISC-V生态发展