资源描述
酒精浓度手持仪软件设计
Software Design of Alcohol Concentration Hand-hold Set
总 计: 30 页
表 格: 9 个
插 图: 24 幅
30
酒精浓度手持仪设计
酒精浓度手持仪设计
[摘 要] 酒驾是当今交通事故的一大元凶,因此各类酒精测试仪在保证交通安全方面发挥着重要作用。本设计以STC12系列单片机和MQ3酒精浓度传感器为核心,配合相应的外围电路,来完成酒精浓度的检测。系统将传感器输出的4~20mA的标准信号通过A/D转换电路调理后,再由单片机进行数据处理,最后由LCD12864显示酒精浓度值。文中详细介绍了数据采集子系统、数据处理过程以及数据显示子系统和报警电路的设计方法和过程。
另外,本设计还加入了锂电池充电电路,运用三端离线式PWM开关TOP221进行电压变换,得到稳定的5V电压,再利用充电芯片SL1051对锂电池进行充电;加入PC通讯接口,以便与电脑的连接。
[关键词] 单片机;酒精传感器;液晶; TOP221;SL1051
Software Design of Alcohol Concentration Hand-hold Set
Abstract:Driving after drinking is one of the major culprits of traffic accident today , so all kinds of Alcohol Concentration Hand-hold Sets are playing an important role in traffic safety. This design is based on the STC12 series MCU, working with the corresponding peripheral circuits to complete the detection. Alcohol sensor convert the alcohol concentration to its resistance changes, through the Conditioning circuit and send it to MCU for A/D converting, then sent the results to LCD12864 to display. In addition, this design also includes a lithium battery charging circuit. Through TOP221, the three-terminal off-line PWM switch to convert the voltage from 220V AD to 5V DC, then use the 5V DC to charge the lithium battery by the charging chip SL1051. This design also include PC communication interface to communicate with PC.
Key words: MCU ; Alcohol Concentration; LCD12864; TOP221; SL1051
Ⅰ
酒精浓度手持仪设计
1 引言
1.1 课题背景
从工厂企业到居民家庭,酒精泄露的检测、监控以及对酒后驾车的监测对居民的人身和财产安全都是十分重要且必不可少的。同时,随着我国经济的高速发展,人民的生活水平迅速提高,越来越多的人有了自己的私家车,酒后驾车是导致交通事故的一个主要因素,资料显示,我国近几年发生的重大交通事故中,有将近三分之一是由酒后驾车引起的。由于人们安全意识增强,对环境安全性和生活舒适性要求的提高,为了防止机动车辆驾驶人员酒后驾车,现场实时对人体呼气中酒精含量的检测已日益受到重视,酒精浓度测试仪逐渐得到广泛应用。此外,酒精测试仪也可应用于食品加工、酿酒等需要监控空气中酒精浓度的场合。如今,气体传感器向低功耗、多功能、集成化方向的发展,因此,酒精浓度检测仪具有十分广阔的现实市场和潜在的市场要求。
1.2 气敏传感器的发展状况
本课题的传感器是气敏传感器,它的工艺和精确度直接影响着测量结果。气敏元件传感器作为新型敏感元件传感器在国家列为重点支持发展的情况下,国内已有一定的基础。其现状是烧结型气敏元件仍是生产的主流,占总量90%以上;接触燃绕式气敏元件已具备了生产基础和能力;电化学气体传感器有了试制产品; 在工艺方面引入了表面掺杂、表面覆膜以及制作表面催化反应层和修隔离层等工艺,使烧结型元件由广谱性气敏发展成选择性气敏;在结构方面研制了补偿复合结构、组合差动结构以及集成化阵列结构,另外低功耗气敏元件已从产品研究进入中试。
在应用方面,目前最广泛的是可燃性气体气敏元件传感器,已普及应用于气体泄漏检测和监控,从工厂企业到居民家庭,应用十分广泛。一是气体传感器向低功耗、多功能、集成化方向发展 国外气体传感器发展很快。二是增强可靠性,实现元件和应用电路集成化,多功能化,发展MEMS技术,发展现场适用的变送器和智能型传感器。
国外气体传感器发展很快,一方面是由于人们安全意识增强,对环境安全性和生活舒适性要求提高;另一方面是由于传感器市场增长受到政府安全法规的推动。
我国气敏元件传感器及其应用技术有了较快进展,但与国外先进水平仍有较大的差距,主要是产品制造技术、产业化及应用等方面的差距,与日本比较仍要落后10年。
1.3 课题研究的任务及意义
1.3.1 课题研究的任务
本设计主要分为五部分的电路设计:1.主控芯片电路设计,本设计采用的是带有A/D转换的STC12C5A60S2为主控芯片,本部分主要是为主控芯片能够正常工作的提供合适的外围电路;2.电源管理电路的设计,主要为整个设计中的各个器件提供合适的电压,因为该设计为手持设备,需要锂电池供电,因此在本电路设计中需要有充电电路的设计,以便为本设备充电;3.酒精检测电路的设计,主要为酒精传感器的检测提供合适的工作环境。另外,由于传感器输出量不一定能满足单片机的信号输入要求,所以,本电路要包括对传感器输出量进行调理的调理电路,以便满足单片机的对模拟信号的输入量的要求;4.显示电路设计,本设计采用LCD12864液晶进行数据显示,因此要为LCD12864的工作提供合适的工作电路;54.串行接口电路设计,主要用于与PC机的通信。
1.3.2 课题研究的意义
对酒精浓度的检测无论是在工厂企业,还是在交通运输,都对公民的人身安全起着至关重要的作用。为了防止机动车辆驾驶人员酒后驾车,现场实时对人体呼气中酒精含量的检测已日益受到重视,酒精浓度测试仪逐渐得到广泛应用。因此,酒精浓度检测仪具有十分广阔的现实市场和潜在的市场要求。
1.3.3 本设计的实现方法
首先,一个完整的应用电路设计要包括电源管理电路的设计。本设计的电源管理电路包括两部分的功能:1.为仪器的各个器件的正常工作提供合适的工作电压,本设计所有芯片的工作电压为3.3V,所以需要将外部提供的5V电压经过降压和稳压,然后为电路供电;2.完成为锂电池的充电,需要将外部提供的5V电压,经过充电芯片,为锂电池充电。另外,由于锂电池工作时电压会浮动,所以要经过稳压后方能为电路供电。有了合适的工作电压,各个器件就能正常的工作了。然后,由酒精传感器将外部酒精浓度转换成相应电阻的变化,通过相应的调理电路将传感器输出量调理到能够满足单片机对输入信号的要求,经过单片机内部的A/D转换器将模拟量转换成数字量,然后配合显示电路,将转换结果显示在LCD12864上,这就完成了对酒精浓度的一次检测。
2 系统电路的设计
本系统电路设计主要有以下几部分:电源管理电路的设计;主控芯片电路的设计;传感器检测电路设计;液晶显示电路设计;PC通信接口电路设计。
系统功能框图如下图1所示:
电源管理电路完成对整个系统的供电及对锂电池的充电过程。
单片机最小系统完成A/D转换及相应的系统控制过程。
酒精检测电路完成酒精浓度到阻值的转换及其调理的过程。
液晶显示完成对酒精浓度的显示过程。
串行接口完成与PC的通信过程。
各个电路的设计采用Altium Designer 10进行设计。
单片机最小系统
酒精检测电路
液晶显示电路
串行接口电路
电源管理电路
图1
2.1 酒精传感器模块
酒精探测模块采用MQ303酒精传感器,该传感器具有高灵敏度、快速的响应恢复、长寿命 、低功耗、小巧的外型等优点。它是一种二氧化锡半导体型酒精气体传感器,对酒精具有高的灵敏度和快速的响应性,适于便携式酒精探测器和汽车燃火系统等等。
MQ303的半导体气体敏感部分是一个微型珠状小球,内嵌加热丝和金属电极,这种敏感元件安装在有防爆功能的双层100目不锈钢网的金属壳内。结构如下图:
下图为该传感器的测试电路:通过固定或可调外接负载电阻上电压的变化获得元
件电阻的变化。为了使元件发挥其好的功能和特定的性能,加热电压、回路电压和负载电阻须限制在下页图表所示的标准工作条件内。传感器通电后通常需要数分钟的预热方可进入稳定工作状态,也可在正常检测前给传感器施加5~10秒钟2.2±0.2V的高电压,使传感器尽快稳定并进入工作状态。
该传感器的电阻与气体的浓度呈对数关系,随气体浓度的增加而减小。如下图:
标准工作条件如下:
符号
参数
技术条件
备注
V H
加热电压
0.9V ± 0.1V
AC or DC
V C
回路电压
≤ 6 V
DC
R L
负载电阻
可调
P S < 10 mW
R H
加热电阻
4.5W ± 0.5 W
室温
IH
加热电流
120±20mA
PH
加热功率
≤ 140 mW
PS
元件功率
≤10 mW
本设计中酒精探测电路如下:
图中三极管起开关作用,酒精传感器预热开始时,P4.0为高电平,三极管导通,酒精传感器开始高压预热,然后P4.0变为低电平,三极管截止,传感器正常工作,发光二极管为工作指示灯。然后把相应数据送到单片机的P1.0口,进行A/D转换。
2.2 LCD12864模块
显示模块采用的是FYD12864-0402B液晶,它是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
基本特性:低电源电压(VDD:+3.0--+5.5V);显示分辨率:128×64点; 内置汉字字库,提供8192个16×16点阵汉字(简繁体可选);内置 128个16×8点阵字符;2MHZ时钟频率;显示方式:STN、半透、正显;驱动方式:1/32DUTY,1/5BIAS;视角方向:6点; 背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/10;通讯方式:串行、并口可选;内置DC-DC转换电路,无需外加负压;无需片选信号,简化软件设计;工作温度: 0℃ - +55℃ ,存储温度: -20℃ - +60℃ 。
模块接口说明:
串口接口:
管脚号
名称
LEVEL
功能
1
VSS
0V
电源地
2
VDD
+5V
电源正(3V-5V)
3
VO
-
对比度(亮度)调整
4
CS
H/L
模组片选端,高电平有效
5
SD
H/L
串行数据输入端
6
CLK
H/L
串行同步时钟:上升沿时读取SID数据
15
PSB
L
L:串口方式(见注释1)
17
/RESET
H/L
复位的,低电平有效(见注释2)
19
A
VDD
背光源电源+5V(见注释3)
20
K
VSS
背光源负端0V(见注释3)
*注释1:如在实际应用中仅使用串口通讯模式,可将PSB接固定低电平,也可以将模块上的J8和“GND”用焊锡短接。
*注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。
*注释3:如背光和模块共用一个电源,可以将模块上的JA、JK用焊锡短接。
并行接口:
管脚号
管脚名称
电平
管脚功能描述
1
VSS
0V
电源地
2
VCC
3.0+5V
电源正
3
V0
-
对比度(亮度)调整
4
RS(CS)
H/L
RS=“H”,表示DB7——DB0为显示数据
RS=“L”,表示DB7——DB0为显示指令数据
5
R/W(SID)
H/L
R/W=“H”,E=“H”,数据被读到DB7——DB0
R/W=“L”,E=“H→L”, DB7——DB0的数据被写到IR或DR
6
E(SCLK)
H/L
使能信号
7
DB0
H/L
三态数据线
8
DB1
H/L
三态数据线
9
DB2
H/L
三态数据线
10
DB3
H/L
三态数据线
11
DB4
H/L
三态数据线
12
DB5
H/L
三态数据线
13
DB6
H/L
三态数据线
14
DB7
H/L
三态数据线
15
PSB
H/L
H:8位或4位并口方式,L:串口方式(见注释1)
16
NC
-
空脚
17
/RESET
H/L
复位端,低电平有效(见注释2)
18
VOUT
-
LCD驱动电压输出端
19
A
VDD
背光源正端(+5V)(见注释3)
20
K
VSS
背光源负端(见注释3)
*注释1:如在实际应用中仅使用并口通讯模式,可将PSB接固定高电平,也可以将模块上的J8和“VCC”用焊锡短接。
*注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。
*注释3:如背光和模块共用一个电源,可以将模块上的JA、JK用焊锡短接。
模块主要硬件构成说明:
控制器接口信号说明:
1、RS,R/W的配合选择决定控制界面的4种模式:
RS
R/W
功能说明
L
L
MPU写指令到指令暂存器(IR)
L
H
读出忙标志(BF)及地址记数器(AC)的状态
H
L
MPU写入数据到数据暂存器(DR)
H
H
MPU从数据暂存器(DR)中读出数据
2、E信号
E状态
执行动作
结果
高——>低
I/O缓冲——>DR
配合/W进行写数据或指令
高
DR——>I/O缓冲
配合R进行读数据或指令
低/低——>高
无动作
忙标志:BF
BF标志提供内部工作情况.BF=1表示模块在进行内部操作,此时模块不接受外部指令和数据.BF=0时,模块为准备状态,随时可接受外部指令和数据.
利用STATUS RD 指令,可以将BF读到DB7总线,从而检验模块之工作状态.
字型产生ROM(CGROM)
字型产生ROM(CGROM)提供8192个此触发器是用于模块屏幕显示开和关的控制。DFF=1为开显示(DISPLAY ON),DDRAM 的内容就显示在屏幕上,DFF=0为关显示(DISPLAY OFF)。
DFF 的状态是指令DISPLAY ON/OFF和RST信号控制的。
显示数据RAM(DDRAM)
模块内部显示数据RAM提供64×2个位元组的空间,最多可控制4行16字(64个字)的中文字型显示,当写入显示数据RAM时,可分别显示CGROM与CGRAM的字型;此模块可显示三种字型,分别是半角英数字型(16*8)、CGRAM字型及CGROM的中文字型,三种字型的选择,由在DDRAM中写入的编码选择,在0000H—0006H的编码中(其代码分别是0000、0002、0004、0006共4个)将选择CGRAM的自定义字型,02H—7FH的编码中将选择半角英数字的字型,至于A1以上的编码将自动的结合下一个位元组,组成两个位元组的编码形成中文字型的编码BIG5(A140—D75F),GB(A1A0-F7FFH)。
字型产生RAM(CGRAM)
字型产生RAM提供图象定义(造字)功能, 可以提供四组16×16点的自定义图象空间,使用者可以将内部字型没有提供的图象字型自行定义到CGRAM中,便可和CGROM中的定义一样地通过DDRAM显示在屏幕中。
地址计数器AC
地址计数器是用来贮存DDRAM/CGRAM之一的地址,它可由设定指令暂存器来改变,之后只要读取或是写入DDRAM/CGRAM的值时,地址计数器的值就会自动加一,当RS为“0”时而R/W为“1”时,地址计数器的值会被读取到DB6——DB0中。
光标/闪烁控制电路
此模块提供硬体光标及闪烁控制电路,由地址计数器的值来指定DDRAM中的光标或闪烁位置。
指令说明:
指令表1:(RE=0:基本指令)
指令
指 令 码
功 能
RS
/R/W
DD7
DD6
DD5
DD4
DD3
DD2
D1
D0
清除显示
0
0
0
0
0
0
0
0
0
1
将DDRAM填满"20H",并且设定DDRAM的地址计数器(AC)到"00H"
地址归位
0
0
0
0
0
0
0
0
1
X
设定DDRAM的地址计数器(AC)到"00H",并且将游标移到开头原点位置;这个指令不改变DDRAM 的内容
显示状态开/关
0
0
0
0
0
0
1
D
C
B
D=1: 整体显示 ON
C=1: 游标ON
B=1:游标位置反白允许
进入点
设定
0
0
0
0
0
0
0
1
I/D
S
指定在数据的读取与写入时,设定游标的移动方向及指定显示的移位
游标或显示移位控制
0
0
0
0
0
1
S/C
R/L
X
X
设定游标的移动与显示的移位控制位;这个指令不改变DDRAM 的内容
功能
设定
0
0
0
0
1
DL
X
RE
X
X
DL=0/1:4/8位数据
RE=1: 扩充指令操作
RE=0: 基本指令操作
设定CGRAM
地址
0
0
0
1
C5
C4
C3
C2
AC1
AC0
设定CGRAM 地址
设定DDRAM
地址
0
0
1
0
C5
C4
C3
C2
AC1
AC0
设定DDRAM 地址(显示位址)第一行:80H-87H
第二行:90H-97H
读取忙标志和地址
0
1
F
C6
C5
C4
C3
C2
AC1
AC0
读取忙标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值
写数据到RAM
1
0
数据
将数据D7——D0写入到内部RAM (DDRAM/CGRAM/IRAM/GRAM)
读出RAM的值
1
1
数据
从内部RAM读取数据D7——D0(DDRAM/CGRAM/IRAM/GRAM)
指令表2:(RE=1:扩充指令)
指令
指 令 码
功 能
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
待命
模式
0
0
0
0
0
0
0
0
0
1
进入待命模式,执行其他指令都棵终止待命模式
卷动地址开关开启
0
0
0
0
0
0
0
0
1
R
SR=1:允许输入垂直卷动地址SR=0:允许输入IRAM和CGRAM地址
反白
选择
0
0
0
0
0
0
0
1
1
0
选择2行中的任一行作反白显示,并可决定反白与否。初始值R1R0=00,第一次设定为反白显示,再次设定变回正常
睡眠
模式
0
0
0
0
0
0
1
L
X
X
SL=0:进入睡眠模式
SL=1:脱离睡眠模式
扩充
功能
设定
0
0
0
0
1
L
X
E
G
0
CL=0/1:4/8位数据
RE=1: 扩充指令操作
RE=0: 基本指令操作
G=1/0:绘图开关
设定绘图RAM
地址
0
0
1
C6
C5
C4
C3
C3
C2
C2
C1
C1
C0
C0
设定绘图RAM先设定垂直(列)地址AC6AC5…AC0再设定水平(行)地址AC3AC2AC1AC0将以上16位地址连续写入即可
备注;当IC1在接受指令前,微处理器必须先确认其内部处于非忙碌状态,即读取BF标志时,BF需为零,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延长一段较长的时间,即是等待前一个指令确实执行完成。
并口时序图:
MPU写资料到ST7920(8位数据线模式)
MPU 从ST7920读资料(8位数据线模式)
软件初始化:
字符显示:
FYD12864-0402B每屏可显示4行8列共32个16×16点阵的汉字,每个显示RAM可显示1个中文字符或2个16×8点阵全高ASCII码字符,即每屏最多可实现32个中文字符或64个ASCII码字符的显示。FYD12864-0402B内部提供128×2字节的字符显示RAM缓冲区(DDRAM)。字符显示是通过将字符显示编码写入该字符显示RAM实现的。根据写入内容的不同,可分别在液晶屏上显示CGROM(中文字库)、HCGROM(ASCII码字库)及CGRAM(自定义字形)的内容。三种不同字符/字型的选择编码范围为:0000~0006H(其代码分别是0000、0002、0004、0006共4个)显示自定义字型,02H~7FH显示半宽ASCII码字符,A1A0H~F7FFH显示8192种GB2312中文字库字形。字符显示RAM在液晶模块中的地址80H~9FH。字符显示的RAM的地址与32个字符显示区域有着一一对应的关系,其对应关系如下表所示。
80H
81H
82H
83H
84H
85H
86H
87H
90H
91H
92H
93H
94H
95H
96H
97H
88H
89H
8AH
8BH
8CH
8DH
8EH
8FH
98H
99H
9AH
9BH
9CH
9DH
9EH
9FH
用FYD12864-0402B显示模块时应注意以下几点:
①欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址,再写入中文字符编码。
②显示ASCII字符过程与显示中文字符过程相同。不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加1指向下一个字符位置,否则,显示的字符中将会有一个空ASCII字符位置。
③当字符编码为2字节时,应先写入高位字节,再写入低位字节。
④模块在接收指令前,向处理器必须先确认模块内部处于非忙状态,即读取BF标志时BF需为“0”,方可接受新的指令。如果在送出一个指令前不检查BF标志,则在前一个指令和这个指令中间必须延迟一段较长的时间,即等待前一个指令确定执行完成。指令执行的时间请参考指令表中的指令执行时间说明。⑤“RE”为基本指令集与扩充指令集的选择控制位。当变更“RE”后,以后的指令集将维持在最后的状态,除非再次变更“RE”位,否则使用相同指令集时,无需每次均重设“RE”位。
本设计中LCD12864原理图如下:
液晶采用并口方式,根据说明书进行初始化及数据显示,程序见附录。
2.3 PC通信模块
由于本设计采用3V电压供电,故采用MAX3232进行电平转换,该芯片可以采用3V电压供电,工作时只使用四只0.1uF的外部电容。
与RS232的连接如下图所示:
2.4 降压整流模块
本设计采用TOP Switch系列的TOP221三端离线式脉冲调制(PWM)开关对输入的220V交流电压进行降压、整流,最终输出5V的直流电压,以便对锂电池充电。
TOP Switch系列在许多新的应用领域占有优势,许多电路性能的增强减少了对电路板的设计和输入电源瞬态的敏感性,使得设计更容易,采用标准的8脚双列直插封装,其内部引线构架使用6条引脚直接将芯片产生的热量传递到电路板,减少了装散热片的成本,TOP Switch将开关模式控制系统的所有功能合并到一只三端集成电路中:功率MOSFET、脉宽(PWM)调制器、高压启动电路、环路补偿和故障自动保护电路。
引脚功能描述:
漏极引脚:MOSFET漏极引脚的输出,启动工作状态下通过内部的开关式高压电流源提供内部偏置电流,内设电流检测。
控制引脚:用于占空比控制的误差放大器和反馈电流的输入脚,与内部的并联稳压器相连,提供正常工作是的内部偏置电流,也用做电源旁路和自动重启/补偿电容的连接点。
源极引脚:初级控制电路的公共点和参考点。
降压整流模块原理图如下:
1、VZ:为压敏电阻,压敏电阻器称为"突波吸收器",有时也称为“电冲击(浪涌)抑制器(吸收器)”。当加在它上面的电压低于它的阀值"UN"时,流过它的电流极小,相当于一只关死的阀门,当电压超过UN时,流过它的电流激增,相当于阀门打开。利用这一功能,可以抑制电路中经常出现的异常过电压,保护电路免受过电压的损害。
2、C1与L1组成了EMI滤波器,抑制交流电网中的高频干扰对设备的影响。
3、DB为4个二极管组成的全桥,起整流作用,将交流转换成直流。
4、DB右面利用TOP221组成了一个4W等待式电源,为锂电池提供5V充电电压。TVS 即瞬态抑制二极管,主要用于对电路元件进行快速过电压保护。它能"吸收"功率高达数千瓦的浪涌信号。
输出电压(5V)有齐纳二极管VR1和光耦(PCB817)直接取样,输出电压等于齐纳二极管的压降与通过光耦中发光二极管的压降(通过R2的压降可以忽略不计)之和。光耦的输出晶体管驱动TOP221的控制脚,C6用于对控制脚旁路提供控制环路补偿和设置自动重启频率。变压器的漏极感电压尖峰通过D1和TVS来钳位,偏置绕组由D3和C5整流、滤波,可以产生非隔离的12V电压,同时也为光耦输出晶体管的集电极提供偏置,隔离的5V输出绕组由D2整流,C3、L2、C4滤波。
2.5 电池充电模块
本设计锂电池充电采用SL1051电路,SL1051 是一款专门为高精度的线性锂电池充器而设计的电路,非常适合那些低成本、便携式充电器使用。它集高精度预充电、恒定电流充电、恒定电压充电、电池状态检测、温度监控、充电结束低泄漏、充电状态指示等性能于一身,可以广泛地使用于PDA、移动电话、手持设备等领域。
SL1051 通过检测电池电压来决定其充电状态:预充电、恒流充电、恒压充电。当电池电压小于阈值电压 VO(MIN)时,处于预充电状态,以较小的电流对电池进行充电,预充电的电流可以通过外部电阻进行调整。预充电使电池电压达到 VO(MIN) 后,进入恒定电流充电的快速充电状态,充电电流可以通过外围电阻调整,恒定电流充电使电池电压上升到恒定电压充电电压VO(REG)(一般为4.2V)。然后进入恒定电压充电状态,充电电压的精度优于±1%,在该状态下,充电电流将逐渐减小,当充电电流小于阈值后,充电结束。充电结束后,将始终对电池电压进行监控,当电池电压小于阈值VO(RCH)时,对电池进行再充电,进入下一个充电周期。为了安全起见,在整个充电过程中,SL1051 利用电池内部的热敏电阻和适当的外围电阻对电池的温度进行监控,可以使电池的温度控制在用户设置的范围内。
SL1051具有以下优点:单、双节锂离子或锂聚合物电池充电器的理想控制电路;高于1%的电压精度;预充电过程,用户可改变预充电电流;恒定电流充电,充电电流可调;恒定电压充电过程;自动再充电过程;充电过程中的温度监控;LED 充电状态指示;电池不正常状态的检测;电源电压低时,处于低功耗的Sleep模式,电池漏电流极小;极少的外围元器件;小型化的MSOP8/SOP8 封装。主要用于数码相机、PDA、移动电话、手持设备等。
管脚排列如下:
引脚名称
引脚功能
VDD
电源端
TS
温度监控输入端,该引脚的输入电压必须在VTS1 与VTS2 之间;否则,将视为电池温度超出设置范围。
STAT
充电状态指示。在充电过程中,该引脚被上拉到高电平;充电结束后,被下拉到低电平;电池不正常或TS 温度超过设置的范围时,输出为高阻态。
GND
接地端。
CC
调整管驱动端。与外部调整管的基极(PNP 晶体管)或栅极(PMOS 管)相连。
FB/CE
外部反馈输入或充电使能控制。
CS
电流采样输入。充电电流通过电源和此引角之间的电压差决定。
BATT
电池电压检测输入端。
充电模块原理图如下:
充电过程:
检测:首先,FB/CE 端连到VDD 或者一个高电平电压,SL1051 检测到如下两种情况之一即开始进入充电周期:a)加上适当的电源后,插上锂电池(VBATT<VO(REG);b) 已经插上锂电池(VBATT<VO(REG),然后加上适当的电源;
预充电:如果锂电池的初始电压低于预充电阈值VO(MIN),则首先进入预充电阶段。在此阶段,预充电电流大约为恒流充电阶段电流的10%左右。
恒定电流充电:当电池电压达到VO(MIN),电池将进入下一个充电阶段:恒定电流充电。SL1051 根据VDD 及CS 两端之间的电阻RCS 上的电压VI(SNS)调整充电电流。即I O(REG)= V (I SNS )/Rcs
恒定电压充电随着恒定电流充电的进行,电池电压上升,当电池达到一定电压VO(REG) 时,即进入恒定电压充电阶段。在此阶段,电池电压不再上升,被恒定在VO(REG) ,且充电电流逐渐减小。
充电结束在恒定电压充电阶段,充电电流逐渐减小,当电流减小到ITERM=V(TERM)/RCS 时,电池充电结束,同时,充电电流降为零。
温度监控在整个充电过程中,SL1051 将通过电池内部的热敏电阻和TS 引脚外部的分压网络对电池的温度实行实时监控,如图5。避免由于电池温度过高(或过低)而造成对电池的损坏或发生危险。一般情况下,当 TS 端电压 VTS 在 VTS1与 VTS2 之间时,SL1051 正常工作。当 VTS<VTS1 或 VTS>VTS2,说明此时电池温度“过高”或“过低”,则充电过程被暂停;待 VTS 恢复到 VTS1 与 VTS2 之间,即电池温度恢复到设定范围内,充电继续进行。
我们可以根据待设定的温度范围来确定应用线路图中的 RT1 和 RT2,现举例说明如下:假设待设定的温度范围为 TL~TH,(其中 TL<TH);电池中使用的是负温度系数的热敏电阻(NTC),RTL 为其在温度 TL 时的阻值,RTH 为其在温度 TH 时的阻值,则RTL>RTH,那么,在温度TL 时,TS 端的电压为:
在温度 TH 时,TS 端的电压为:
然后,由 VTSL=VTS2,假设取为 k2×VDD,VTSH=VTS1, 假设取为 k1×VDD,则可解得:
,
同理,如果电池内部是正温度系数(PTC)的热敏电阻,则 RTH>RTL,我们可以计算得到:
,
从以上的推导过程中可以看出,待设定的温度范围与电源电压是无关的,仅与 RT1、RT2 、RTH、RTL 有关;其中,RTH、RTL 可通过查阅相关的电池手册或通过实验测试得到。如不用此功能时,可将TS 端与热敏电阻断开,取值RT1=RT2。
FB/CE功能:FB/CE 此引脚有两个功能。一个功能是使能端,连接此引脚到VDD 则开启SL1051,连接到GND 则关闭SL1051。另一个功能是作为反馈端,此引脚如图6 所示,此时,此引脚作为调整输出电压的电压源,数值为2.1V。
8、充电指示:SL1051 的STAT 有三种状态显示,如下表所示:
状态
STAT 显示
充电
高
充电结束
低
温度错误,FB/CE 为低,
休眠状态
高阻
9、再充电:充电结束后,电池电压降低到VO(RCH),SL1051 将进行再次充电循环。
2.6 USB供电模块
考虑到演示的方便,本设计加入了USB供电模块,由于采用单片机的工作电压为3V,故通过SPX1117M3稳压器将USB的5V降压到3V。
SPX1117为低功耗正向电压调节器,可以用在一些高效率、小封装的低功耗设计中。SPX1117有很低的静态电流,在满负载时其低压差仅为1.1V。当输出电流减少时,静态电流随负载变化,并提高效率。SPX1117可调节,可选择1.5V、1.8V、2.5V、2.85V、3.0V、3.3V及5V的输出电压。
SPX1117有多种三引脚封装,一个10uF的输出电容可有效地保证稳定性,然而在大多数应用中,仅需要一个更小的2.2uF的电容。
在本设计中,采用输入5V,输出3V,电路图如下:
在直接运用3V供电时,可
将上图的跳线帽处短路,此时不经过SPX1117降压,直接
给电路供电。
3 系统的软件设计
3.1 程序设计
程序设计(Programming)是指设计、编制、调试程序的方法和过程。它是目标明确的智力活动。在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序[14]。因此,软件设计在微机控制系统设计中占重要地位。对于本系统,软件也占有重要的地位。
在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。数据处理包括:数据的采集、数字滤波、标度变换等。过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便控制生产。
本系统软件采用模块化结构,由主程序﹑A/D中断程序、LCD液晶显示程序等子程序构成。
3.2 主程序设计
首先,对酒精传感器进行10s大电压的预热,使其尽快达到工作状态。同时对单片机的ADC转换器及LCD12864进行初始化,准备进行A/D转换及数据显示。
然后,打开ADC转换开关和总中断开关。
最后,将AD转换结果显示在LCD液晶屏上。
流程图如下图所示:
酒精传感器预热
ADC初始化
LCD12864初始化
开启中断,开始转换
延时
转换完成
结果显示
延时
3.3 LCD写地址子程序
LCD写地址流程图如下:
RW=0; RS=0
延时50us
P0=com; E=1;
延时0.5ms
E=0
延时0.1ms
展开阅读全文