通道地址及控制字形成模块(addr_1)可以实现所需的各种输入模式,并产生通道地址和控制字,以单端输入模式为例,VHDL代码如下:
这里用双进程的有限状态机(FSM)来设计通道地址产生器。当addr<=“0000”时表示没有通道被选择,ADS7844没有工作;当addr<=“0000”时表示通道1被选择,依次类推。
4 计算机仿真分析
用Quartus Ⅱ 6.0进行分析综合、布局,共占用Altera cyclone FPGA 59个LE(logic elements),波形仿真如图5所示。
图5中elk的周期为100 ns,clk1为系统时钟4分频后的工作时钟,当cs_all为低电平时,AD_CONTROLLER开始工作。由状态机产生的控制字(10000100)在stld的下降沿被锁存入移位寄存器,当cs_ad由高变低时,控制字被逐位移出至di端口。在此,假设当ADS7844接收到控制字并由ad_do端口逐位移出1通道转换后的数据1000000000010000,经过16个周期后oe由低变高,oe的下降沿可以将移入寄存器的数据锁存。由图5可见,仿真波形与ADS78414控制波形一致,达到了设计的目的。
5 结 语
本试验用于混合动力汽车电池管理系统电池电压、电流信息采集部分。电池管理系统通常采用双单片机的结构,一个单片机完成电池信息采集功能,另外一个单片机完成电池SoC(State of Charge)计算及人机交互功能。这种系统结构复杂,可靠性降低。为解决这一问题,该A/D控制器被封装成基于Avalon总线的自定义IP核,应用于Altera公司FPGA所支持的NIOS Ⅱ嵌入式系统中,NIOS Ⅱ软核CPU仅在A/D控制器引起的中断服务程序中读取采集到的数据,这样大大提高了采集速度和CPU的效率,使得有更多的CPU资源应用于SoC计算和人机交互。这种基于SoPC(Systemon Programmable Chip)的电池管理系统结构紧凑、功能齐全、可靠性大大提高。
FPGA用来设计控制电路有很多优点。FPGA不仅可进行任意次编程,而且用户可以借助开发工具快速编程、编译、优化、仿真直到最后芯片制作。高集成性使得用户可以利用硬件描述语言及开发工具在单片FPGA芯片上实现各种复杂的逻辑电路和片上系统,提高了系统性能、减小了电路面积、降低了成本。高速性有效地解决模拟控制的精度与数字控制的速度之间的矛盾。随着FPGA性能的提高和成本的降低,以FPGA为基础的数字电路和SoPC(Systam on ProgrammableChip)代表了嵌入式系统的发展方向,FPGA将应用得越来越广泛。