基于单片机的智能充电器设计毕业论文.docx
- 文档编号:24765228
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:41
- 大小:6.25MB
基于单片机的智能充电器设计毕业论文.docx
《基于单片机的智能充电器设计毕业论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能充电器设计毕业论文.docx(41页珍藏版)》请在冰豆网上搜索。
基于单片机的智能充电器设计毕业论文
基于单片机的智能充电器设计毕业论文
1绪论1
1.1课题研究的背景、目的及意义1
1.2国外研究现状2
1.2.1国外研究现状2
1.2.2国研究现状2
1.3研究容与章节安排5
2方案比较和选择6
2.1总体设计框图6
2.2电源模块7
2.2.1电源方案的选择7
2.3充电方法8
2.3.1锂电池的充电特性8
2.3.2充电方案的选择9
2.4SOC估算方法10
2.4.1SOC估算方法的选择10
2.5通信方式11
2.5.1通信方式的选择11
2.6本章小结12
3硬件设计与实现13
3.1单片机电路13
3.2充电电源电路16
3.2.1变压电路16
3.2.2整流、滤波电路17
3.2.3TL494脉宽调制电路17
3.2.4DC-DC电路19
3.3电压采集电路19
3.4温度采集电路21
3.5报警电路21
3.6本章小结22
4软件设计与实现23
4.1软件开发环境23
4.1.1Qt5.4集成开发环境23
4.2单片机程序设计23
4.2.1整体设计逻辑概述23
4.2.2电压、温度数据采集24
4.3上位机软件程序设计25
4.3.1整体设计概述25
4.3.2程序逻辑流程图25
4.3.3UI界面25
4.4上下位机的通信设计27
4.4.1通信协议概述27
4.4.2上下位机通信流程图27
4.5本章小结28
5调试与分析29
5.1充电电路检测29
5.2温度电路检测30
5.3电压电路检测31
5.4充电器运行检测32
5.5本章小结33
6总结与展望34
参考文献35
致谢37
1绪论
如今随着人们物质生活水平的提高,人们的出行越来越离不开电动交通工具,尤其是锂电池电动自行车。
对于锂电池的充电方案的研究也越来越多。
本章节从目前存在并应用的基于单片机的智能充电器的设计方案进行分析,集中分析锂电池充电器充电系统的研究背景、意义以及国外在这个方面的研究,明确本课题研究的主要目标、容及本论文的框架结构。
1.1课题研究的背景、目的及意义
随着全球经济的发展,锂电池对于人们生活的影响越来越大。
锂电池具有储能密度高,寿命长等优点,在当前社会应用围极广[1]。
如今锂电池在出行工具、娱乐工具等领域市场所占比重很大[2]。
目前锂电池应用的领域很广泛,尤其是电动自行车领域。
2006年前后,锂电池组开始出现在我国的电动自行车领域。
到2008前后,以锂电池作为车载电池的电动自行车得以大围推广[3]。
如今锂电池电动自行车在我国已经普及[4]。
然而随着人们对锂电池产品需求的发展,锂电池的频繁充放电已经成为常态。
在三星手机出现爆炸事件发生后,人们对锂电池的安全性越来越重视,尤其是充电过程中,锂电池安全更为重要。
所以锂电池的风险管理越来越重要[5]。
与此同时,频繁的使用电子设备,电源电池经常充放电,这对电池的寿命是极大地考验,再加上很多商用的的锂电池充电器不能很好的解决锂电池充电安全问题,所以需要更多的人去研究更安全的锂电池充电器。
一些大众的电池充电器采用的事高电流快速充电技术,在电池满电后不能做出判断,终止重点,这导致所充的电池组温度会很高,这极大的影响了电池组的使用寿命[6]。
当今社会,科学技术快速进步,关于锂电池的充电技术也有了突飞猛进的质变。
一些更为进准的充电控制算法开始出现,并被人们用在实际的充电器设计中。
为了满足人们对家用锂电池产品的安全性、智能性、人机交互性等方面的要求,充电器设计要更加智能化。
智能化的锂电池不仅能提高充电效率,使得资源高效利用还能减少充电时间,提高客户的体验度,并能保证锂电池的使用寿命[7]。
本设计采用的方案是用TL494芯片和单片机STM32F103组合,并用Qt开发控制软件的整体方案。
TL494芯片作为充电电源的主控芯片,能满足电动自行车锂电池组的充电需求。
STM32单片机含资源很多,能很好的处理采集的数据和控制设计所需要的外设。
再加上上位机的软件能使得所设计的充电器智能、安全,同时保护好电池,保证电池的使用次数。
1.2国外研究现状
市场需求增加是科技投入的动力,在智能充电器市场也是如此,相关的工作人员采用更为先进的方案实现充电器安全,智能。
在过去几十年里,由于锂电池技术的日益成熟以及锂电池相比较镍镉、镍氢电池具有极大的优势,所以对于镍镉、镍氢电池这类电池充电系统的研究越来越少,但在锂电池的研究上投入精力巨大。
所以锂电池充电器的研究更加火热。
1.2.1国外研究现状
德国MentzerUlectronicGmbH和WemerRetzlafr[8]合作研发的BADICHUQ系统首次车载实验,并于1992年进行二次改进的BADICOACH系统。
他们所设计的动力电池充电系统,在充电过程中能智能的显示电池组的充电状态,包括电池组的电压、电流、温度。
此外整套系统还能用PC机控制。
其系统的一个特色便是测量电压的方案是用非线性电路来检测,并用脉宽信号控制充电过程中的电压和电流。
美国科技在智能充电领域也有很先进的技术,如知名的通用公司,研发出了纯电动车动力锂电池的充电系统,并将该系统用在了其产品EV1电动汽车上。
该公司的智能充电系统包括了温度检测控制模块、电量显示模块、软件控制模块等,其软件控制模块能智能的采集和显示温度和电压电流等数据[9]。
此外还有一些发达的国家也在积极的研发先进的电池组充电系统,如加拿大Zader研发的电池组充电管理系统[10],日本青森工业研究中心[11]一直在研发的电池组智能充电系统,韩国SAMSUNG公司设计的SDIBMS[12]和DEV5-5系统功能都比较完善。
1.2.2国研究现状
我国作为一个电池的生产大国和消费大国,每年会生产和消费巨量的锂电池,但是在电池的充电技术方面投入的研发精力和资金相对于国外比较少。
最近几年国家一直倡导中国要从制造到智造转型,并加上消费升级,我国的锂电池充电器市场越来越大。
在电动自行车领域,随着轻捷、体积小的锂电子电池组代替原来笨重的铅蓄电池,该领域对智能的锂电池充电器需求更多。
如今在我国,随着单片机、传感器等技术的快速发展,智能的锂电池充电器充电和控制技术也在迅速发展[13]。
在我国,高校是很多先进科学技术研发的前沿阵地,在电池的充电技术方面也是如此。
如今我国的好多工科专业强势的大学,如知名的清华、北理、北航、北交、大学等,在原先研究的技术基础上通过和相关企业合作,将研发的技术转化为实际产品。
其中高校中最为代表性的有,由理工大学研究所研发的智能锂电池组充电管理系统EQ7200HEV。
企业中研究成果最为突出的有比亚迪公司,其公司所研发的智能电池组充电管理系统已经具有国际科技水平。
当前,在国,对于锂电池组的充电系统的研究主要研究重点在充电温度控制,电池组的电压、电流检测,电池的剩余容量估算和充电过程中的供电电源的电压电流控制等方面[14]。
基于52单片机开发智能充电器系统技术成熟、操作方便、成本较低,在单片机技术应用广泛的今天,开发产品更容易为人们所使用。
王晔和马斋爱拜[15]将AT89C52、MAX1898、光耦6N137和LM7805联系在一起设计了锂电池智能充电器系统。
他们所设计的充电系统能先检测电池组的SOC,如果电池SOC过低,便能够预先低电流充电,在电池剩余容量在一定的SOC方位,将实现高电流快速充电,当电池组的开路电压接近最高值时,便进行高电压低电流充电,在此过程中一直监控充电系统的温度和SOC值,如果出现异常,系统将自动断电、报警,保证了充电的安全性。
他们所设计的充电系统较好的满足了人们对于充电产品的需求,但是该系统的人机交互性还有待提高。
王晓侃和苏全卫[16]设计的系统是基于AT89C2051单片机的。
该系统在充电过程中能智能的显示电池的电压、SOC值、电流、电池组温度等状态数据。
同时其系统还具有电池组管理功能,能合理的提高电池的使用寿命。
该系统设计功能性强,人机交互性好,但将多项功能集中在一起,出现问题时,修复成本高。
朋[17]设计的电动自行车锂电池组充电管理系统,采用的控制芯片是BQ77910芯片,其系统在硬件的基础上还设计了监控软件用来管理整个系统。
该系统能实时的检测和显示电池组的当前各类数据,在充电过程中,即时的通过单片机处理,然后优化充电方案,能有效的避免出现充电短路等问题。
该系统整体功能完善,不过集成化有待提高。
杜江[18]采用两路CAN实现CECU与VMS和LECU的通讯。
其系统采用了性能较高的TMS320F2808芯片,在利用片资源AD模块精准的采集数据,为了提高采集数据的精准度,在采集温度数据、电压数据、电流数据时,该系统都是多路采集,这充分的利用了单片机的片资源。
该设计还利用脉宽调制技术控制风扇,这保证充电系统的温度得到有效控制。
该系统只是进行了仿真,在理论上进行了验证,能否做出产品有待验证。
贾小龙[19]设计的锂电池充电监控管理系统,不仅有硬件设计还有软件设计。
该系统的软件设计部分能实时的监控和显示电池组的状态信息。
硬件设计部分是整个设计的关键,能实现电池组的电压、温度、电流的数据采集和数据处理,电池剩余容量的估算等功能。
整个系统的设计功能很好的实时显示电池组的各种数据,但是在系统的稳定性方面还有待进一步完善。
王凤波[20]设计的基于AD7280A的中型锂离子电池组管理系统利用扩展卡尔曼滤波在Thevenin电池模型上对SOC初值进行了修正,提高了SOC估算的精度,减少能量耗散的同时,大大提高了系统的安全性。
但此系统可扩展性差,在减少电能损耗方面还有待进一步研究。
吴迪[21]在锂电池充电控制与管理方法研究过程中重点解决了一下三个方面,单体锂电池主动充电控制方式、过热保护和过充保护。
但是其系统基于遗传算法的运行机制比较复杂工作量较大,运行速度相对较慢。
清华大学的元栋,晓明等[22]采用了8xC749单片机,设计了电动自行车智能充电器的方案,重点介绍了均衡充电和脉冲充电两种技术,该技术较为先进,具体的实用性,需要进一步研究。
综上所述,这些研究虽然都取得了一些成果,但是同样存在系统架构、电路庞大,成本高等特点。
与此同时由于各种电池的充放电特性有区别,再加上实验资源缺乏,具体的解决方案不完善,好多设计都存在充电效率低下的状况。
另外,这些虽是具备了基本的检测、监控、报警等功能,但在数据采集方面,其可靠性、准确性和抗干扰性等与国外仍有较大差距。
因此还需要好长时间才能追上国外的技术水平。
1.3研究容与章节安排
为锂电池提供合适的充电电源和智能控制充电过程是一个相对复杂的过程,要针对所需的充电电池组进行设计对应的充电电源。
同时还要选择单片机的类型,并设计单片机控制电路,从而实现对于充电过程的可靠、高效、智能控制。
在整个设计的关键是在于充电电源、充电方式、电池电量显示、充电器温度预警机制和自动结束充电过程方面的研究。
具体要设计的电路有电源模块电路、单片机控制模块电路、电压、温度采集电路等。
本文主要容是:
第一章是绪论部分,这部分容介绍了研究的背景和意义,国外研究现状、本文的主要容和章节安排。
第二章介绍了总体设计框架,进行了电源类型、充电方法、SOC估算方法和通信方式方案的比较和选择。
第三章分析了硬件部分中各模块电路的原理和具体实现。
第四章详细的介绍了软件设计的思路和程序的逻辑,以及UI界面和通信流程图。
第五章是整个设计的调试和结果分析。
第六章是整个设计的总结和展望。
2方案比较和选择
本章从基于单片机的智能充电器的功能需求和总体设计框架出发,介绍了总体设计框图、充电方法、SOC估算方法、通信方式等从而为基于单片机的智能充电器设计提供了具体的解决方案。
2.1总体设计框图
本设计框图由电池组、充电电源电路、报警电路、电压检测电路、温度检测电路、单片机、上位机和UI界面组成。
如图2.1所示:
图2.1充电系统框图
电池组是充电器实现其功能的基础。
电源电路是由降压电路、整流线路、滤波电路和电压升降控制电路组成,该模块为电池组提供了充电电源。
报警电路主要组成元器件是蜂鸣器,当电池充满或温度超过警戒值时,单片机会做出判断,从而是向报警电路发出指令,之后报警电路做出应答。
此电路主要是提醒用户,充电温度过高或者是已经充满电了。
电压检测电路实现的功能是通过检测到的电压与所设的标准值进行比较后进行一定的量化从而确定目前电池的电量。
温度检测电路实现的功能是通过温度传感器检测到的温度,判断温度数值是否处在安全围,如果超出围,立即断开电源,并进行报警,从而控制充电过程,保证充电安全。
单片机STM32控制电路以STM32为核心组成。
STM32是一款功能强大、高性能、低成本、低功耗并且片资源非常丰富的嵌入式应用。
STM32主控制电路作为整个智能充电器系统的中心,主要完成数据处理、数据分析和A/D转换等功能。
其中A/D转换器将转换后的模拟信号转换为数字信号以完成数据的处理。
上位机和UI界面模块主要是电脑通过串口通信,获取单片机采集的数据,在Qt工程中对数据进行处理和显示。
本系统具有操作简单,功耗低,人机交互能力强,安全性能高等优点。
本充电器的要实现的功能是,在对锂电池的充电过程中一直显示电池的动态电量和充电时间以及整个充电器的温度;当充电器或电池的温度超过警戒值时,自动断电并且进行报警;当电池充满电时,单片机通过判断检测到的电压数据后发送指令,使继电器工作,自动停止充电。
对所要设计的充电器性能要求有如下几项:
1.安全性:
对锂电池充电时,如何保证人员的人身安全和电池组的安全是至关重要的。
2.易于使用:
充电器应具有较高的智能性,不需要操作人员过多干预充电过程。
3.人性化:
充电器应该具有更好的人机交互性,使得操作人员能更直观的感受充电器对锂电池的充电过程。
2.2电源模块
2.2.1电源方案的选择
(1)方案一
普通电源:
用变压器将家用的220V交流电变压为低压交流电,之后将变压后的低压交流电整流滤波,然后将家用的交流电变换为输出稳定的低压直流电,最终能作为电池组的充电电源。
使用该方案设计的电源电路输出的电压较为稳定并且波纹震荡相对较小,但是缺点比较明显,如能选择的电压围比较窄,中间浪费的电能多。
(2)方案二
开关电源:
家用交流电通过变压器变压后,输出低压交流电,之后经过整流堆桥,滤波电容(大的电解电容)后,除高频杂波和同相干扰信号,输出低压直流电,之后经过电感线圈等作用下,进一步滤除高频杂波,在交直流电转换后,电流进入开关电路,开关电路是整个电源电路的关键。
开关电路的核心是两个开关管,两个开关管的轮流导通和截止,直流电便能转换为高频率的脉动直流电,之后再送到高频开关变压器上进行降压处理。
经过高频开关变压器降压后的脉动电压,同样要使用二极管和滤波电容进行整流和滤波,除此之外还有一两个电感线圈和滤波电容一同滤除电流中的高频交流成分,最后输出为较为理想的低压直流电。
开关电源具有电压可调围宽、效率高,输出电压相对稳定等特点。
经过上述两种方案的比较后,该设计选取方案二的开关电源设计,开关电源设计一般采用集成芯片,像SG3524、BD494、SAQ8818、TL494等芯片都属于此类,这些芯片功能强大,包含了开关电源控制所需的全部功能。
由于芯片TL494实用性最强,稳定性最高,所以在开关电源电路中实用非常可靠。
确定开关电源的技术指标。
开关电源的设计指标是为了符合本电池组的充电参数,具体如下:
1)输入电压:
AC220V
2)输出电压:
DC+12.6V
3)恒定电流1.5A,最大电流2A,最小电流1A
4)电网频率:
(50-60)HZ
5)输出精度:
2%
6)输出功率:
19W(额定)
7)电源效率:
期望值为80%
2.3充电方法
2.3.1锂电池的充电特性
充电方法依据的是电池的充电特性[23],本设计针对的是锂电池,所以要对锂电池的充电特性做研究,锂电池的充电特性分析和充电方案具体选择如下文。
锂电池通常分为锂金属电池和锂离子电池两大类[25],因为锂离子电池能充电,所以常说的锂电池也指锂电子电池。
而锂离子电池又有很多种类,像锰酸锂电池、磷酸铁锂电池、三元锂电池等,它们能反复充电,并且储能多,能成为动力电池。
由于各种类锂电池的充放电特性差别不大,下面便以磷酸铁锂电池为例进行锂电池充电特性研究。
锂离子电池[26]的充电过程比较复杂,不同类型的锂离子电池在不同的充电条件下充电特性会有不同,不过整体差别不大,所以研究磷酸铁锂电池的充放电特性具有代表性。
研究充电特性,提出针对性的充电方案能提高充电的安全性和增加电池的使用次数。
不管是钻酸锂电池和锰酸锂电池,还是磷酸铁锂电池都有相同的充电特性,端电压是唯一区别,所以,研究磷酸铁锂电池的充电特性得出的结论适用与别的类型的锂电池,针对锂离子电池的充电特性,要使得电池不受损的前提下又想使电池充满电,则电池组的充电电压需要限定覆盖在额定输出值1%以,即3.2士50mV。
锂电池的充电特性中需要注意的一点就是,充电在给电池组充电时,不能再电池组达到电压临界值时断电,电池组将会就产生不可修复的损坏。
磷酸铁锂电池本身的电化学特性决定了在其充电时,正极中的锂离子通过聚合物隔膜移动到负极,锂离子从Fe04层面间迁移出来,经过电解液进入负极C附近与C复合,且发Fe2+/Fe3+的氧化反应,为平衡电荷,电子从外电路到达负极,电池负极显然无法吸收所有的电子,且随着充电过程的进行符合还原的效率下降,当负极电子饱和时仍然有一些锂离子,这将导致电池电压再度上升,造成二次过充,破坏了负极材料又降低其使用寿命,甚至会引发安全问题[24]。
2.3.2充电方案的选择
(1)方案一
恒流充电法:
恒流充电法顾名思义就是充电过程中保持电流恒定,如图2.2所示。
采用恒流充电法充电,由于电路简单,所以比较好控制,但从图中能明显看出,恒流对应的直线与充电过程中的电流曲线相差比较大,会对电池损害较大。
(2)方案二
恒压充电法:
在整个充电过程中,充电电压保持不变,随着电池组的端电压升高,电流慢慢减小。
如图2.3所示,该方法充电,充电过程更接近于最佳充电曲线。
采用恒压充电,电池组产生的电解水很少,能防止蓄电池过充,从而延长电池使用寿命。
该方案由于电流较大,对电池寿命也有损害。
方案二和方案一相比较,方案二优势更为明显,所以选择方案二。
2.4SOC估算方法
2.4.1SOC估算方法的选择
(1)方案一
阻法:
用阻抗仪检测电池组的直流电阻。
所谓的直流阻指的是极短时间,电池组的端电压变化量与电流变化量相比所得的数值。
针对某些种类电池来说,用此方法估算电池的剩余容量比较精准,但对于直流阻比较小的动力锂电池组而言,并不合适。
所以用阻法进行估算锂电池组的电量不是一种很好的选择。
(2)方案二
安时法:
此方法的基本原理是将电池组看作一个黑箱子,认为进电池的电量等于电池放电的电量,在对温度、电池老化、充放电率、自放电率进行很好补偿的情况下,在短暂时间此方法估算的电池的剩余容量值比较准确。
尽管这种方法估算SOC比较简单,易于实现,但是会出现累计误差,其中计算数值的一个重要参数也就是补充系数k难以确定,所以该方法并不合适。
(3)方案三
开路电压法:
电动车锂电池组开路电压指的是静态时电池组的端电压,负载电压对应的是充放电时电池端电压,开路电压和负载电压两者都是直接测量值。
电动车锂电池蓄电池组开路电压法是一种最为简单的SOC测量方法,其基本工作原理是将检测到的电池开路电压对应电压和SOC对照表来查找电池剩余容量。
以单体锂电池为例,单体锂电池的剩余容量和电压有对应关系,具体如下表2.1。
表2.1电压与剩余电量关系表
电压
剩余容量
电压
剩余容量
3.58v
0%
3.81v
55%
3.63v
5%
3.84v
60%
3.65v
10%
3.87v
65%
3.69v
15%
3.90v
70%
3.71v
20%
3.93v
75%
3.72v
25%
3.97v
80%
3.73v
30%
4.03v
85%
3.74v
35%
4.08v
90%
3.76v
40%
4.12v
95%
3.77v
45%
4.15v
99%
3.79v
50%
4.16-4.22V
100%
本设计做的是锂电池充电器针对的是电动自行车锂电池组。
上面三种方案经过比较后,最后的开路电压法满足检测实用原则,所以最为合适。
2.5通信方式
2.5.1通信方式的选择
本设计的总的方案是将温度检测电路和电压采集电路采集的数据发给上位机后进行处理和显示,所以需要单片机和上位机进行通讯,具体采用哪一种通信方式需要进行方案比较和选择,具体如下。
(1)方案一
串口通信:
一般用于上下位机通信。
上位机一般指的是电脑,本设计用的也是电脑。
下位机一般指的是单片机,本设计所使用的单片机是STM32。
串口通信是在工程应用中很常见。
在PC机与单片机通信中常通过有线的串口进行通信。
单片机机通常将模拟信号经过AD采集进行模数转换处理,之后经数字信号处理,最终通过串口发送数字信号给PC机,反之PC机可以给单片机机发送指令等信息。
常见的通信串口包括RS232、RS485、RS422等。
不同的串口在电平特性会有差别,但是在PC机与单片机进行通信时,其电平特性不会影响通信,各种转接接口的使用使串口通信特别方便。
(2)方案二
蓝牙通信:
蓝牙看技术最初是一种为了替代RS232数据线的无线技术标准。
能通过无线电波实现设备间的通信。
使得设备间能实现无线连接,其通信本质还是串口通信。
对于本设计来说采用蓝牙通信模块进行通信,性价比不高。
上述两种方案进行比较后,第一种串口通信方式比较合适本设计。
2.6本章小结
通过对所要设计充电器功能需求和总体设计框架的介绍,明确了设计充电器所需实现的功能。
对锂电池的充电特性的介绍和比较图2.3.1和图2.3.2后,可以看出,在采用开关电源设计方案下,利用恒压充电方法充电相比较恒流充电法充电对电池保护更好。
经过对三种SOC估算方法的比较,最终选择了最为合适的开路电压法,并介绍了锂电池的电压电量关系表,为电池剩余电量的计算提供了依据。
同时确定了串口通信为本设计通信方式。
3硬件设计与实现
此部分介绍的是硬件的设计与实现。
对硬件的各功能模块进行了原理图、实物图等方面的介绍。
同时详细的说明了硬件的具体实现。
3.1单片机电路
本设计采用的是STM32F103VBT6芯片,STM32具有性能高、成本低、功耗低等特点。
其基于ARMCortex-M3核,STM32F103属于“增强型”系列。
其时钟能达到72MHz。
本设计采用的单片机型号具有128K存。
具体实物如下图3.1。
该单片机的最小系统电路原理图包含MCU、I/O口、电源电路、RS-485电路和JTAG电路,具体原理图分别对应如下图3.2,图3.3,图3.4,图3.5,图3.6,图3.7。
图3.1STM32实物图
图3.2MCU引脚图
图3.3I/O口图
图3.4电源原理图
图3.5BOOT处原理图
图3.6RS-485原理图
图3.7JTAG原理图
将原理图生成PCB,经过布线后,最终布好线的PCB图如下图3.8。
图3.8PCB图
3.2充电电源电路
对于所设计的锂电池组充电器来说,充电电源电路是所有电路中最重要的部分。
本设计要实现最对12V锂电池组充电,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 智能 充电器 设计 毕业论文
![提示](https://static.bdocx.com/images/bang_tan.gif)