电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > 单片机 > 详细信息
单片机:基于CPLD的电池管理系统双CAN控制器的设计
来源:   时间: 2007-11-26 2:44:15    
  摘 要:本文针对整车对电池管理系统提出双CAN通信的要求,设计了由CPLD、TMS320LF2407与SJA1000构成的双CAN控制器。文中介绍了其硬件电路和软件流程。原文位置

  关键词:混合动力电动汽车;电池管理系统;双CAN控制器

  电池管理系统是混合动力汽车中重要的电子控制单元,具有保障电池正常、可靠和高效工作的作用,是电池与用电设备之间的桥梁。在研制以及批量生产过程中都需要对其内部控制参数进行离线或在线匹配标定,而电池管理系统需要采集和处理大量的数据,本文选用TMS320LF2407作为标定用CAN控制器。作为电动汽车上的一个CAN节点,需要接收整车发来的CAN消息来执行对外部继电器、风扇以及电池等器件的控制命令,本文选用SJA1000。

  双CAN硬件电路和

  CPLD逻辑设计

  双CAN硬件电路设计

  TMS320LF2407基于增强的哈佛结构,是地址线和数据线分离的微处理器,对晶振倍频后,频率高达40MHz。而SJA1000的地址线和数据线复用,增加了DSP与SJA1000之间读写数据的难度,这也是本系统设计的难点。常规的设计方式是在DSP与SJA1000之间加一个电平转换双向缓冲驱动,其结构框图如图1所示。按这种方式设计的电路,当对SJA1000进行读写操作时,先配置DSP的I/O端口,将ALE拉高,锁存地址,然后通过DSP的I/O端口将和()拉低,进行读(写)数据,最后拉高()和。按此方式每次读写SJA1000寄存器中的值,均需通过程序对ALE、和()信号进行设置, 增加了程序源代码。如果控制器的闪存空间比较紧张,采取这种硬件连接方式显然是不可取的。而且,为使状态寄存器的状态位读写正确,CAN报文读写时需在程序中加一定延时,这将影响电池管理系统的实时性。

  

  图1 一般双CAN控制器的硬件结构图

  为了尽量减少程序源代码,节省宝贵的存储资源并提高电池管理系统的实时性,本文采用CPLD连接双CAN控制器的接口电路,实现CAN报文收发。其硬件结构如图2所示。

  图2 基于CPLD的双CAN控制器硬件结构图

  CPLD的逻辑设计原文位置

  CPLD具有速度快、体积小、驱动能力强、可在线编程等优点。基于CPLD的逻辑控制电路适合完成译码任务,本文选用EPM7064芯片,通过译码电路的软件设计,完成SJA1000输入信号的逻辑选通控制。

  CPLD的输入信号是DSP发送的信号,由高位地址A[15…13]、I/O空间选通引脚以及写/读信号组成。其中,地址线A13作为SJA1000的地址和数据的选择线,地址线A14和A15经译码后作为片选信号。地址线A13和I/O空间选通信号产生SJA1000的地址锁存信号SJA_ALE,地址线A13和读写信号产生SJA1000的数据和地址读写信号。其CPLD的输入/输出信号逻辑关系如表1所示。原文位置

  双CAN软件程序设计

  该CAN控制器的收发程序包括两部分:DSP的CAN收发程序和SJA1000的CAN收发程序。每个CAN收发程序主要由三个函数组成:CAN初始化程序、CAN报文接收程序和CAN报文发送程序。由于DSP的CAN收发程序比较容易设计,只需设置CAN控制器寄存器中的相应位,就可实现CAN报文的收发。所以,本文主要介绍SJA1000的CAN报文收发程序设计。

  从表1中可以看到,SJA1000的寄存器映射到DSP的I/O空间。本文选择0x8000作为SJA1000地址输入端口,0xA000作为SJA1000数据输入/输出端口。其程序主要由SJA1000初始化、SJA1000接收报文和SJA1000发送报文三个子函数组成。其收发函数的流程如图3所示。

  

  图3 SJA1000发送报文程序流程图

  SJA1000初始化

  通过向CAN控制器SJA1000模式寄存器写0x01,让其进入复位模式,然后分别对SJA1000的时钟分频寄存器、错误报警限额寄存器、中断使能寄存器、接收代码和接收屏蔽寄存器、总线时序寄存器和输出控制寄存器设置,最后向模式寄存器写0x08,进入正常工作模式。初始化程序如下:

  #define SJA1000_Data_Port portA000原文位置

  ioport unsigned int portA000; //定义数据输入/输出端口

  #define SJA1000_Address_Port port8000原文位置

  ioport unsigned int port8000; //定义地址输入端口

  ……

  SJA1000_WRITE(REG_MODE, 0x01);

  TempData= SJA1000_READ(REG_MODE);

  //向模式寄存器写0x01,进入复位模式

  while((TempData & 0x01) != 0x01); //等待SJA1000复位

  ……

  do

  {

  SJA1000_WRITE(REG_MODE, 0x08);

  TempData= SJA1000_READ(REG_MODE);

  }while ((TempData & 0x01)!=0x00); //等待SJA1000进入正常工作模式

  发送CAN报文

  CAN报文发送函数负责电池管理系统向整车控制器发送报文,发送时需将待发送的数据按CAN协议格式组合成一帧报文,送入SJA1000发送缓冲区中,然后启动发送命令。CAN发送程序如下:

  if((TempData & 0x10) != 0x10) //CAN控制器空闲

  {

  if((TempData & 0x08) != 0x0) //最近一次发送已成功

  {

  if((TempData & 0x04) == 0x04)

  //CPU可以向发送缓冲器写报文

  {

  …… //配置发送报文

  SJA1000_WRITE(REG_ COMMAND,0x01);//发送报文指令

  }

  }

  }

  接收CAN报文

  CAN报文接收函数主要负责接收整车控制器发送的控制指令,来完成对充放电继电器、风扇以及电池等器件的控制。CAN接收程序如下:

  if(TempData != 0)

  {

  if((TempData & 0x80) == 0x80) //总线关闭

  {

  …… //总线关闭处理

  }

  if((TempData & 0x02) == 0x02) //数据溢出

  {

  …… //数据溢出处理

  }

  if((TempData & 0x01) == 0x01) //RXFIFO存在完整有效的报文

  {

  …… //读取缓冲区报文

  }

  }

  结语

  本文设计的基于CPLD的双CAN控制器已运用于实际应用中,电池管理系统运行可靠,CAN报文收发平稳,完全适合混合动力汽车的使用。■

相关信息
发表评论
打印本页 关闭本页
基于SHARC DSP与SJA1000的CAN总线接口设计
  引言   当前,有一些微处理器将CAN控制器嵌入到系统之中,但是仍有大量人们比较熟悉的微处理器并不带有CAN控制器。采用微处理器和CAN控制器组合的设计成为必要,而且,CAN控制器具有完成CAN总线通信协议所要求的全部必要功能,因此,CAN控制器与其它微处理器的接口设计成为设计CAN总线系统的首要工作。本文重点介绍以SHARC DSP为核心的、基于SJA1000的CAN总线接口设计。   SJA1000...
>>详细内容
基于TMS320LF2407 DSP控制器语音模块的设计与实现
    摘要:本文着重介绍了DSP芯片的SPI同步串行接口及SPI与语音转换芯片AD50的通信方式,给出了硬件电路设计。针对AD50的特点,软件设计时通过DSP的SPI口对其进行初始化配置,使其正常工作。DSP在内部对语音信号予以处理并通过AD50输出。   关键字:数字信号处理器DSP同步串行接口SPI语音模块 AD50的初始化 1 引言   随着信息技术和计算机技术的飞速发展,DSP技术也正以日新月...
>>详细内容
基于TMS320LF2407 DSP控制器语音模块的设计
    摘要:本文着重介绍了DSP芯片的SPI同步串行接口及SPI与语音转换芯片AD50的通信方式,给出了硬件电路设计。针对AD50的特点,软件设计时通过DSP的SPI口对其进行初始化配置,使其正常工作。DSP在内部对语音信号予以处理并通过AD50输出。   关键字:数字信号处理器DSP同步串行接口SPI语音模块 AD50的初始化 1 引言   随着信息技术和计算机技术的飞速发展,DSP技术也正以日新月...
>>详细内容
基于TMS320LF2407A控制SED1335液晶显示方案
  1 硬件设计 1.1 TMS320LF2407A的特点 TMS320LF2407A芯片作为DSP控制器24x系列的新成员,是TMS320C2000平台下的一种定点DSP芯片,也是目前TMSC2000家族中集成度高,性能最强的芯片[1],它与现存的24xDSP控制器芯片代码兼容,但是资源更加丰富、功能更强,其特点是:采用高性能静态CMOS技术,使得供电电压将为3.3V,减小了控制器的功耗,40MIPS(百万条指令每秒)的执行速度使得...
>>详细内容
高性能数字信号处理器TMS320LF2407A及应用
  1 引言 数字信号处理器(DSP)已经发展了20多年,最初仅在信号处理领域内应用。近年来, 随着半导体技术的发展,其高速运算能力使很多复杂的控制算法和功能得以实现,同时将实时处理能力和控制器的外设功能集于一身,在控制领域内也得到很好的应用。数字控制系统克服了模拟控制系统电路功能单一、控制精度不高的缺点,它抗干扰能力强,可靠性高,可实现复杂控制,增强了控制的灵活性。 TM...
>>详细内容
基于TMS320LF2407A的通用式机车信号检测
  铁路机车信号检测是保证列车安全运行的三大重要因素之一。目前,我国铁路机车信号主要采用相位连续的频移键控FSK(Frequency-Shift Keying)调制方式。它虽然具有数字通信的诸多优点,但也有非线性调制的特点,从而使其实时高精度检测具有很大的困难。随着数字信号处理技术及DSP器件的发展,在实用中摒弃了传统的利用单片机对FSK信号进行测周的时标方式,...
>>详细内容
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com