本文采用了数字式信号发生器产生标准正弦波和电流负反馈法产生精确交流恒流源法, 交流恒流源实现原理如图2所示。
电路组成框图如图2所示:这是一个闭环控制系统,电流负反馈电路。标准正弦波产生一个频率稳定、对称、失真度低的1KHz正弦波信号。驱动电路把正弦波放大,去推动功放电路,得到正弦交流电流输出。恒流控制电路从功放输出中得到的信号,通过与给定的信号相比较,来调节驱动电路的信号,从而使输出电流保持稳定。
智能节点为智能型的监控模块,实现对电池组内(总电压48V,单块电压12V或2V)的单块电池端电压、体温、环境温度进行测量。若超出工作范围则进行告警,并将监测数据存储,定期上报监控数据。超限告警信号及时上报,并可接受上位机的轮询。下面仅就智能节点给出详细的设计方案。
硬件组成
智能监控节点以89C52为控制器,外围模块包括CAN接口模块、温度测量模块、电压测量模块、告警模块、节点地址选择和可选的存储器模块等,如图2所示。为充分利用89C52的接口资源,除CAN接口模块外其余模块均采用串行接口器件,这样就减小了电路体积,降低了电路的硬件成本。
图2智能监控节点结构图
CAN接口模块
CAN总线协议及其特性见参考文献。目前,具有CAN协议功能的芯片很多,本设计选用常见的PHLIPLE公司的SJA1000独立CAN控制器芯片和82C250 CAN接口驱动芯片。为增强节点的抗干扰能力,SJA1000的TX0和RX0通过高速光耦6N137与82C250相连,电路如图3所示。
图3 CAN接口模块原理图
电压测量模块
当蓄电池是由4节12V电池串接而成时,其在线端电压远高于ADC的允许输入电压,所以对电压的采集电路要进行特别设计:将串连电池组的各节电池端电压经模拟开关分别引入分压电路进行分压处理,再经电压跟随器进行阻抗变换后送入ADC的差分输入端,转换后的电压数字量输出到单片机的PI口。
ADC选用National Semiconductor的ADC0838。 该器件是一种输入端可编程、单端8通道/差分4通道、8位串行ADC,其数据输入输出口可以分时共用。
模拟开关选用MAXIM的MAX4613。它是一种四路单刀单掷TTL/CMOS兼容的模拟开关,可单端供电(9~40V)也可双端供电(±4.5~±20V),与电池组的连接采用“浮地”方式:每个MAX4613控制两节电池的选通,电源和地分别取两节电池串连后的正极和负极。由于MAX4613的S1、S4和S2、S3的控制极性相反,所以不能采用译码电路,而由单片机的四个I
/O口线经光耦隔离后单独驱动,以保证同时只有一路电池电压接入后级的分压电路。另外,其控制端采用CMOS电平(VL接V+)。
分压电路采用三个相同的电阻,分压后的电压约为4V左右。由于使用同一个分压网络,避免了由于分压网络的差异引起各路间的误差。同时模拟转换器采用差分输入从而减少了共模干扰和避免了“浮地”引起的电压不兼容的问题。如果对2V电池采样,可以用6个CD4052模拟开关控制各节电池的选通,每个CD4052控制4节电池,由两个I/O口线经光耦隔离后驱动两个地址选择端,另三个I/O口线经74LS138译码后分别控制六个CD4052的使能端(INH)。
温度测量模块
温度测量模块采用美国DALLAS公司推出的DS18S20系列单总线数字温度计,只需要一根导线就可将单片机和DS18S20连接起来,如图4所示。每个I/O口线可以同时挂接多个DS18S20。
软件的实现
软件设计采用模块化编程,系统软件主要分为主程序、数据采集(电压、温度)处理程序和通讯程序。
主程序为系统控制程序, 实现对系统进行初始化(包括系统自检、读取本节点地址、电池组电池电压种类、向上位机发送本节点的地址、接收上位机发送的本节点的基准电压值和温度值)和各模块软件的总体调度。