基于FPGA的双通道汽车涡轮增压叶片温度采集卡研制
度时钟源经计数器分频得到的脉冲序列来实现采样方式控制、串并转换、FIFO读/写时钟控制,分频数由参数设置。传输控制及数据存储模块,由串行AD转换出来的数据经FPGA进行串行到并行转化,转化后的并行数据再送到FPGA内部FIFO存储单元中,以备计算机实时读龋总线逻辑接口模块实现整个采集系统同总线的数据交互。在这一模块中,通过地址译码,获取计算机的读写指令,并将这些指令传送给相应的逻辑模块和系统元件;采用锁存器加译码电路的方式,将计算机送来的控制字转化为具体的逻辑控制时序,实现其对应的功能。
2.2串并转换
随着芯片集成度和工艺水平的提高,串行A/D(尤其是高精度串行A/D)转换芯片正在被广泛地采用。串行A/D转换芯片以其引脚数少(常见的8引脚)、集成度高(基本上无需外接其他器件)、价格低、易于数字隔离、易于芯片升级,本设计采用了BB公司生产的12位高速差分输入微功耗ADS7818,AD转换后的数据经光电隔离后送入FPGA进行串行到并行转换后送到FIFO中。采用Quartus II图形设计输入方法,图4所示为串行转并行原理及仿真图。
图4 串行转并行原理及仿真图
16位串入并出移位寄存器74LS673,寄存器片选端CS的控制是由计数器74161计数13次为一次AD转换时间起始的,R/W是由别一片74161计数12次来控制寄存器一次串行转并行读与写,SER是A/D转换的数据输入端。B0至B11的12位并行数据最后送到FIFOE中。
2.3高速缓存
如何将A/D转换后的数据及时完整地经过总线传送给计算机,是能否实现高速连续采集的关键环节。采用FIFO高速缓存技术,可以很好地解决这个问题。FIFO常用于数据的缓存和容纳异步信号的频率或相位的差异,使用FIFO可以在两个不同的时钟系统之间快速准确地传输实时数据。它是一种特殊功能的存储器,数据以达到FIFO输入端口的先后顺序依次存储在存储器中,并以相同的顺序从FIFO的输出端口送出,所以FIFO内数据的写入和读取只受读/写时钟和读/写请求信号的控制,而不需要读/写地址线,其内部结构如图5所示。
图5 FIFO内部结构图
从硬件角度分析,FIFO存储器本质是一块双端口数据内存,一个端口用于将数据存入FIFO;另一个端口用于将数据从FIFO中取出。FIFO的相关操作可以看作是2个指针的定位,写指针指向要写的内存部分,读指针指向要读的内存部分。FIFO控制器通过外部的读/写信号控制这2个指针移动,并由此产生FIFO空信号或满信号。所以硬件上来实现FIFO存储器,一般采用双端口的SRAM单元来存取数据。利用二进制计数器实现指针对SRAM的存储器地址的操作。异步FIFO存储器使用了2个时钟信号分别控制存储器的读操作和写操作,数据由某一个时钟域的控制信号写入FIFO,而由另一个时钟域的控制信号将数据读出FIFO.与同步FIFO存储器相比,它的读/写指针的变化由不同的时钟产生,是完全独立的,因此其时序控制更为复杂。本文直接调用其FPGA芯片内部可编程的底层硬件资源,完成高速异步FIFO存储器设计的思路和方法,提出了一种基于Altera公司的cyclone系列FPGA芯片,在OuartusII设计平台下,编译实现的高速异步FIFO存储器模型。图6所示为参数化双时钟FIFO仿真图。
图6 参数化双时钟FIFO仿真图
读/写时钟异步使得FIFO存储器的输入和输出数据速率不相等,在读操作时钟频率高于写操作时钟频率时,可能出现"读空"状态;当写操作时钟频率高于读操作时钟频率时,可能出现"写满"状态。图6选取第2种情况进行仿真。从波形图中可以看到存储器中状态信号的变化过程,及输入和输出的数据波形,验证了读/写过程的正确性,异步FIFO存储器的设计符合要求。
3结束语
本文研究了基于FPGA串行数据的采集和存储技术,设计了双通道汽车涡轮增压叶片温度数据采集卡,并对该卡数据传输和存储进行了深入的研究和仿真测试,结果均达到理论要求,达到了设计指标。本采集卡在整个冷却系统中具有举足轻重的地位,具有很好的应用前景。
- FPGA技术在汽车电子中的应用(11-26)
- 电源分配结构的三大转变为电源管理技术开创新局面(01-10)
- 利用FPGA协处理器优化汽车信息娱乐和信息通讯系统设计(01-24)
- 如何利用可编程器件设计车用显示系统(08-30)
- 基于SoPC的汽车安全监控系统设计(07-09)
- FPGA在汽车ECU领域大有可为(08-14)