基于SPCE061A和CPLD的电动自行车充电系统研制
时间:10-22
来源:互联网
点击:
电动车由于具有无废气污染、无噪音、轻便美观等特点,受到众多使用者的青睐。但使用中也暴露出它的局限性,那就是蓄电池的容量决定了它的使用范围,而且存在充电时间长的缺点。目前随着电动自行车的发展,急需解决的问题就是如何实现快速灵活的充电。
随着电子技术、可编程逻辑器件(FPGA,CPLD)、EDA技术的飞速发展,基于硬件编程语言的自上而下(TOP-TO-DOWN)设计方法给数字系统的开发设计带来了革命性变革,仅使用单片机来实现系统控制的传统方法正在被越来越多的以MCU+FPGA/CPLD为核心的最新设计理念取代。采用这种混合设计方案的最大优点是两者的优势互补,电路结构简单,这给数字电路系统的设计带来极大的方便。利用CPLD控制的灵活性很容易对电路进行在线修改,实现各种复杂的数字逻辑控制,这极大地扩展了单片机的功能。而且由于硬件编程语言的灵活性及CPLD具有的在系统编程(In-SystemProgram)特点,大大缩短了系统开发研制周期。基于上述思想,研发了基于SPCE061A和CPLD的电动自行车充电系统。
1 系统硬件设计
1.1 系统组成及功能
该充电系统由凌阳SPCE061A单片机、充电器、按键、CPLD、ACM12864液晶显示器、上位机、语音电路等组成。充电器采用恒流、恒压、浮充三阶段充电方法对蓄电池进行充电。SPCE061A单片机控制六个充电器对六个蓄电池同时进行充电,同时检测各个充电器的恒流、恒压、浮充三个充电状态,并通过ACM12864液晶显示器显示各充电器的工作状态。通过按键选择各充电器的工作与停止,并可根据不同需要选择快速充电工作方式或普通充电工作方式,对蓄电池进行充电。系统上电进入工作状态后,当单片机检测到蓄电池已充满的信号或发生其他紧急情况所产生的信号时,可以自动关闭充电器,实现充电器操作智能化。利用凌阳SPCE061A单片机的语音功能对充电过程中所出现的故障进行语音提示,使设计更人性化,便于操作。充电系统可以和上位机进行通讯,从而实现系统之间的联网,有利于系统功能的扩充。其系统组成框图如图1所示。
1.2 液晶显示电路的设计
显示部分采用ACM12864C液晶显示器,该模块价格低。控制器为KS0107和KS0108,工作温度范围:0℃"50℃,储存温度范围:-20℃"70℃,自带负电压发生电路,单+5V供电,带背光,可与各种微处理器直接接口,数据读写操作不受外部时钟控制,不带汉字库,占空比为1/64,外部共有20条引脚来进行外部接口。ACM12864C能够充分满足汉字显示的要求。通过必要的程序设计,可实现在充电过程中通过对充电器恒流、恒压、浮充等信号的采集,在ACM12864液晶显示器上实时动态地显示电池状态。SPCE061A与ACM12864的接口如图2所示。
1.3 键盘电路及I/O电路设计
本系统采用CPLD作为SPCE061A单片机和充电器的接口部分,实现I/O口扩展,并完成键盘扫描功能。CPLD的使用,取代了一些专用集成电路,减少了系统的复杂性,提高了系统的集成度。本系统采用硬件电路来完成对键盘的扫描工作,当有按键按下时,CPLD内部状态发生改变。按键弹起后,内部状态经CPLD自动处理转化为相应的键值被送到输出端口,供单片机扫描时取走键值。相对于软件判别键盘工作状态,这样不仅节省了SPCE061A的存储空间,还极大地提高了系统的工作速度,更好地实现了实时性。
CPLD选用ALTERA公司生产的MAX7000S 系列中的EPM7128SLC84-15。该芯片共有84个引脚,采用EEPROM技术制作;内含2 500个逻辑门,128个宏单元,时钟工作频率可达151.5MHz。通过CPLD对资源的整合,实现了用一片CPLD实现I/O电路、硬件扫描判别等,优化了硬件的布局。如需改变系统的功能,只需改变相应的源代码而不是硬件结构,因而具有很大的灵活性。
2 系统软件设计
2.1 主程序设计
本系统的软件部分采用C语言和汇编语言混合编制而成,因而该程序具有功能强大、设计完备等特点。主程序主要完成如下功能:
(1)系统初始化和参数的设置;
(2)充电器三种工作状态的检测和显示;
(3)控制各个充电器的工作和停止以及快速充电和普通充电两种充电方式的选择;
(4)蓄电池正反极性的判断,极性接反时自动进行语音报警;
(5)充电器充满蓄电池时自动关闭充电器;出现异常情况时自动进行语音报警;
(6)对快速充电时间长短进行设定。
系统主程序流程图如图3所示。
2.2 语音播放程序设计
SPCE061A的D/A转换通道的硬件实现大致有两种方式,一种是直接采用数/模转换器DAC方式,另一种是采用脉宽调制PWM驱动方式。SPCE061A音频输出的结构就是由两个DAC通道或一个PWM驱动通道构成。这两种实现方式实质都为数/模转换,都是将数字信号转换为电流模拟信号输出。SPCE061A的音频输出采用双通道模/数转换方式,即数字信号通过10位DAC转换成3mA驱动的电流模拟信号输出。语音提示输出直接采用DAC通道,经信号放大后,由扬声器输出。语音播放流程图如图4所示。
程序编写如下:
#INCLUDE “hardware.h”
# INCLUDE “S480.h”
Void Sound (unsigned int i)
{
SACM_S480_Initial(1);
SACM_S480_Volume(10);
SACM_S480_Play(i,1,0);
while(SACM_S480_Status()&0x0001);
{
SACM_S480_ServiceLoop();
}
SACM_S480_Stop();
}
随着电子技术、可编程逻辑器件(FPGA,CPLD)、EDA技术的飞速发展,基于硬件编程语言的自上而下(TOP-TO-DOWN)设计方法给数字系统的开发设计带来了革命性变革,仅使用单片机来实现系统控制的传统方法正在被越来越多的以MCU+FPGA/CPLD为核心的最新设计理念取代。采用这种混合设计方案的最大优点是两者的优势互补,电路结构简单,这给数字电路系统的设计带来极大的方便。利用CPLD控制的灵活性很容易对电路进行在线修改,实现各种复杂的数字逻辑控制,这极大地扩展了单片机的功能。而且由于硬件编程语言的灵活性及CPLD具有的在系统编程(In-SystemProgram)特点,大大缩短了系统开发研制周期。基于上述思想,研发了基于SPCE061A和CPLD的电动自行车充电系统。
1 系统硬件设计
1.1 系统组成及功能
该充电系统由凌阳SPCE061A单片机、充电器、按键、CPLD、ACM12864液晶显示器、上位机、语音电路等组成。充电器采用恒流、恒压、浮充三阶段充电方法对蓄电池进行充电。SPCE061A单片机控制六个充电器对六个蓄电池同时进行充电,同时检测各个充电器的恒流、恒压、浮充三个充电状态,并通过ACM12864液晶显示器显示各充电器的工作状态。通过按键选择各充电器的工作与停止,并可根据不同需要选择快速充电工作方式或普通充电工作方式,对蓄电池进行充电。系统上电进入工作状态后,当单片机检测到蓄电池已充满的信号或发生其他紧急情况所产生的信号时,可以自动关闭充电器,实现充电器操作智能化。利用凌阳SPCE061A单片机的语音功能对充电过程中所出现的故障进行语音提示,使设计更人性化,便于操作。充电系统可以和上位机进行通讯,从而实现系统之间的联网,有利于系统功能的扩充。其系统组成框图如图1所示。
1.2 液晶显示电路的设计
显示部分采用ACM12864C液晶显示器,该模块价格低。控制器为KS0107和KS0108,工作温度范围:0℃"50℃,储存温度范围:-20℃"70℃,自带负电压发生电路,单+5V供电,带背光,可与各种微处理器直接接口,数据读写操作不受外部时钟控制,不带汉字库,占空比为1/64,外部共有20条引脚来进行外部接口。ACM12864C能够充分满足汉字显示的要求。通过必要的程序设计,可实现在充电过程中通过对充电器恒流、恒压、浮充等信号的采集,在ACM12864液晶显示器上实时动态地显示电池状态。SPCE061A与ACM12864的接口如图2所示。
1.3 键盘电路及I/O电路设计
本系统采用CPLD作为SPCE061A单片机和充电器的接口部分,实现I/O口扩展,并完成键盘扫描功能。CPLD的使用,取代了一些专用集成电路,减少了系统的复杂性,提高了系统的集成度。本系统采用硬件电路来完成对键盘的扫描工作,当有按键按下时,CPLD内部状态发生改变。按键弹起后,内部状态经CPLD自动处理转化为相应的键值被送到输出端口,供单片机扫描时取走键值。相对于软件判别键盘工作状态,这样不仅节省了SPCE061A的存储空间,还极大地提高了系统的工作速度,更好地实现了实时性。
CPLD选用ALTERA公司生产的MAX7000S 系列中的EPM7128SLC84-15。该芯片共有84个引脚,采用EEPROM技术制作;内含2 500个逻辑门,128个宏单元,时钟工作频率可达151.5MHz。通过CPLD对资源的整合,实现了用一片CPLD实现I/O电路、硬件扫描判别等,优化了硬件的布局。如需改变系统的功能,只需改变相应的源代码而不是硬件结构,因而具有很大的灵活性。
2 系统软件设计
2.1 主程序设计
本系统的软件部分采用C语言和汇编语言混合编制而成,因而该程序具有功能强大、设计完备等特点。主程序主要完成如下功能:
(1)系统初始化和参数的设置;
(2)充电器三种工作状态的检测和显示;
(3)控制各个充电器的工作和停止以及快速充电和普通充电两种充电方式的选择;
(4)蓄电池正反极性的判断,极性接反时自动进行语音报警;
(5)充电器充满蓄电池时自动关闭充电器;出现异常情况时自动进行语音报警;
(6)对快速充电时间长短进行设定。
系统主程序流程图如图3所示。
2.2 语音播放程序设计
SPCE061A的D/A转换通道的硬件实现大致有两种方式,一种是直接采用数/模转换器DAC方式,另一种是采用脉宽调制PWM驱动方式。SPCE061A音频输出的结构就是由两个DAC通道或一个PWM驱动通道构成。这两种实现方式实质都为数/模转换,都是将数字信号转换为电流模拟信号输出。SPCE061A的音频输出采用双通道模/数转换方式,即数字信号通过10位DAC转换成3mA驱动的电流模拟信号输出。语音提示输出直接采用DAC通道,经信号放大后,由扬声器输出。语音播放流程图如图4所示。
程序编写如下:
#INCLUDE “hardware.h”
# INCLUDE “S480.h”
Void Sound (unsigned int i)
{
SACM_S480_Initial(1);
SACM_S480_Volume(10);
SACM_S480_Play(i,1,0);
while(SACM_S480_Status()&0x0001);
{
SACM_S480_ServiceLoop();
}
SACM_S480_Stop();
}
电子 FPGA CPLD EDA 单片机 MCU 电路 显示器 电压 集成电路 LTE C语言 DAC PWM 电流 Verilog VHDL 仿真 Quartus 相关文章:
- 超低静态电流电源管理IC延长便携应用工作时间(04-14)
- 负载点降压稳压器及其稳定性检查方法(07-19)
- 高效地驱动LED(04-23)
- 适合高效能模拟应用的线性电压稳压器(07-19)
- 低功耗嵌入式实现的方方面面(04-30)
- 电源设计小贴士5:降压-升压电源设计中降压控制器的使用(03-18)