您的位置 首页 数字

AVR微控制器蓄电池充放电控制器的规划

本设计采用AVR单片机Mega16L作为核心,可同时控制两块539CH-1型蓄电池的充、放电过程。Mega16L通过串行总线接收上位机的命令,然后通过SPI总线将数据发送给TLV5638。单片机通

  本规划选用AVR单片机Mega16L作为中心,可一同操控两块539CH-1型蓄电池的充、放电进程。Mega16L经过串行总线接纳上位机的指令,然后经过SPI总线将数据发送给TLV5638。单片机经过多路模仿开关CD4053将TLV5638的两路D/A输出送入信号调整电路,然后完结对充放电电流的操控。放电进程中,Mega16L经过操控8D锁存器74LS573和复合管阵列ULN2081操控放电电阻接入。体系框图如图1所示。

  

 

  图1 体系原理框图硬件规划

  硬件体系包括串行通讯电路、充电和放电操控电路、继电器驱动电路等模块。

  通讯电路

  单片机经过串口与上位机通讯。Mega16L端口为TTL电平,而上位机串口为RS232C标准接口。因而,在上位机与单片机通讯时需求进行电平转化。本规划选用MAX232完结TTL电平与RS232接口电平之间的转化。

  充电和放电操控电路

  单片机收到上位机的充、放电操控指令后,经过SPI口将操控信号发送给TLV5638。TLV5638将收到的数字信号转化成模仿信号,并送入信号调整电路。模仿操控信号经调整后送入充电或放电电源的PI操控器,对充电和放电电流进行操控。单片机经过CD4053挑选操控信号的输出通道,使该操控器可一同对2块蓄电池进行充电和放电。该部分电路原理图如图2所示。

  D/A改换

  本规划运用双通道l2位电压输出型高速DA转化器TLV5638完结数模转化。规划中,将Mega16作为主机,经过SPI口直接与TLV5638的串行接口相连。由于Mega16的SPI口为4线串口,所以衔接时单片机SPI口的PB6(MISO)悬空。

  串行通讯时,CS引脚呈现下降沿时通讯开端,数据在SCLK的下降沿逐位移入TLV5638的内部寄存器。最早移入的是数据的最高位。当16位数据悉数移入或CS引脚变高时,TLV5638移位寄存器中的数据被存入相应的锁存器,锁存器的挑选由数据中的操控字确认。因而,当Mega16需求向TLV5638发送数据时,PB7先从高电平跳到低电平,然后经过SPI口接连进行两次写操作,向TLV5638发送个字节数据。两次写操作完结后,在SCLK的第16个上升沿,相应锁存器的内容自动更新。

  运用中,TLV5638作业于慢速正常方法,选用2.048V内部参阅电压。更新TLV5638某一路DAC数据时,有必要确保别的一路数据不变。

  Mega16的SPI口可选用4种不同的数据传输格局作业,传输格局由SPI操控寄存器中的CPOL位和CPHA位操控。运用中,考虑到TLV5638的运用要求,令CPHA=0,CPOL=1(传输开端时采样SCK下降沿,完毕时采样SCK上升沿)。

  

 

  图2 D/A改换与通道挑选

  信号通道挑选

  Mega16经过PD4和PD5以及外围逻辑电路操控信号的输出通道。逻辑电路包括1片7404和2片CD4053。以TLV5638的OUTA输出信号为例。模仿操控信号从TLV5638输出,经滤波后送入CD4053的X通道和Y通道。单片机PD4一方面直接与CD4053操控端A相连,别的还经过反相器7404与CD4053操控端B相连。这样就确保A端和B端的操控信号反相,使恣意时间X、Y通道中只要一个能够输出有用操控信号,然后确保该路充电和放电不发生抵触。运用中没有运用CD4053的Z通道,应将其与操控端C及使能端一同接地。

  继电器驱动电路

  放电后期,需求将电池中的剩下容量彻底放出,最终使单体电池电压下降到0V。规划中,使用继电器将放电电阻并联于单体电池南北极,然后到达开释电池剩下容量的意图。继电器由8D锁存器74LS573和达林顿管阵列ULN2801驱动。单片机PA0~PA7输出操控信号,PD2、3、7和PC6、7输出5片74LS573所需的锁存使能信号。操控信号由74LS573锁存,然后经过ULN2801驱动继电器作业,将放电电阻并联在单格电池两头,然后完结单格电池剩下容量放电。继电器驱动电路原理图如图3所示。图中只包括1片74LS573,其它4片操控办法相似。

  

 

  图3 继电器驱动电路原理图

  软件规划

  软件选用主从结构。单片机收到上位机指令后,依据通讯协议提取出指令字和数据,然后依据指令字完结相应的操控。软件依据模块化规划思维,首要包括:主程序模块,通讯程序模块,D/A转化与通道挑选模块,继电器组操控模块等。

  主程序模块

  主程序模块完结单片机初始化,等候并处理中止等作业,流程图如图4(a)所示。

  

 

  图4程序流程图

  通讯程序模块

  单片机与上位机间选用RS232串口通讯。单片机选用中止方法接纳上位机宣布的指令,并依据接纳到的数据内容向上位机发送应对信息。当指令的开始标志和完毕标志都正确时,单片机向上位机发送ASCII字符‘Y’表明接纳成功,然后处理收到的指令;不然,向上位机发送ASCII字符‘N’,表明发送不成功,要求上位机从头发送指令。

  上位机向单片机发送的指令契合以下格局:指令以帧为单位,每帧包括7个字节。每帧包括的指令字规则了单片机的操控方法。每帧中的数据字则以ASCII码的方法确认了充、放电电流的巨细和继电器的代号。通讯模块流程图如图4(b)所示。

  当上位机需求操控充、放电电流时,单片机选用查询方法,经过SPI口向TLV5638发送指令和数据,然后经过操控CD4053确认模仿操控信号输出通道。由于Mega16L的SPI口字宽为8位,因而有必要接连进行两次写操作才干完结对TLV5638的编程。

  单片机收到上位机指令后,先将数据写到PA口,然后向相应锁存使能位写‘0’,将数据锁存入74LS573中,完结对继电器的操控。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/shuzi/299128.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部