0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于MPC5634的汽车控制器的采样模块设计

电子设计 来源:郭婷 作者:电子设计 2018-12-25 08:27 次阅读

随着汽车对控制系统的要求和依赖性提高,AD采样的设计模块成为汽车控制器中重要的组成部分。AD采样的结果是汽车控制器控制执行器的依据,它的速率和精度在汽车控制中起着重要的作用。

本文主要介绍一种基于MPC5634的多路模拟信号采集方法,通过增强型直接内存访问(DMA)方式,自动在RAM和增强型队列式模数转换器eQADC模块之间转移数据,能高效和准确地完成对模拟信号的采集。

1 增强型队列式模数转换器eQADC模块

1.1 eQADC模块的结构

MPC5634的eQADC模块有两个可独立工作的ADC转换单元(ADC0和ADC1),40路模拟通道(可扩展),0~5V的转换范围,转换精度有8位、10位、12位三种精度可选,具有软件和硬件两种触发方式,采样方式有单次方式和连续方式等,ADC的工作时钟可达15MHz.速率和精度可以满足汽车控制器的要求。图1为eQADC模块的结构框图,显示了eQADC模块的主要组成部分。

基于MPC5634的汽车控制器的采样模块设计

图1 eQADC模块的结构框图

1.2 命令缓存CFIFO的工作机制

eQADC模块有6个命令缓存CFIFO,每个CFIFO有4个深度,CFIFO有单次扫描和连续扫描的操作模式,配置为不同的扫描模式时,CFIFO就有不同的触发机制。当配置为单次扫描模式时,每次会使存储于队列中的eQADC转换命令序列执行一次。当设置为连续扫描模式时,只要队列启动后,就可以持续的运行。数据的流程如图2所示。

基于MPC5634的汽车控制器的采样模块设计

图2 数据流程

1.3 eQADC的命令格式

eQADC有配置命令和转换命令两种命令格式。配置命令用于对eQADC模块进行初始化设置,像使能ADC模块单元,设置时钟分频因子,转换速率因子,使能DMA请求等;转换命令主要用于设置采集哪个通道,用哪个ADC模块单元转换,转换的结果放在6个结果缓存的哪一个里面,是否对采集的结果进行校正等。

2 增强型存储器直接访问(DMA)模块

DMA控制器是总线上的一个主机,能够在片内资源(Flash 、RAM和I/O外设等)以及片外资源之间传输数据。DMA有32个通道,在某个时刻只能有一个通道成为总线上的主机并进行数据传输。为了解决他们之间的冲突,DMA有两种可编程的优先级机制:固定优先级机制和轮询优先级机制。一旦一个通道成为主机,该通道将通过先读再写的操作方式,把数据从一个存储器地址传输到另一个存储器地址。每个DMA通道都有一个独立的传输控制描述符(TDCn)。

3 多路eQADC采样程序设计

在这次的设计中,数据的传输是通过DMA进行的。多路eQADC采样程序设计主要包括命令队列、结果队列的定义,eQADC的初始化,DMA初始化,触发CFIFO等。程序的设计流程如图3。

基于MPC5634的汽车控制器的采样模块设计

图3 程序流程

3.1 定义数组

本文中cQUEUE0[40]被定义为转换命令的存储数组,rQUEUE0[40]被定义为转换结果的存储数组。把所有通道的转换命令分别放在数组cQUEUE0[40]中,最后采集的结果分别放在数组rQUEUE0[40]中,这个可以随时读取rQUEUE0[40]中的数据被汽车控制器所用。

3.2 初始化DMA

TCD0对应于CFIFO0,TCD1对应于RFIFO0.由于本设计只要一个命令缓存CFIFO0和一个结果缓存RFIFO0就可以满足设计要求,故只用到一个CFIFO0,一个RFIFO0,以及与他们对应的TCD0和TCD1.设置TCD0:源地址为&cQUEUE0,目的地址为0xFFF80010,源地址偏移为4,传输的大小为32位,次要字节传输数NBYTES为2;主迭代数为40;设置TCD1:源地址为&rQUEUE0,目的地址为0xFFF80032,源地址偏移为4,传输的大小为16位,次要字节传输数NBYTES为2;主迭代数为40.

3.3 初始化eQADC

初始化转换命令的存储数组cQUEUE0[40],本设计是采用ADC0模块单元,12位精度,采用校正,一次采集40个通道的模拟量。配置eQADC的寄存器,时钟分频因子为2,使能DMA0,DMA1请求等。

3.4 校正寄存器的设置

本项目的芯片功能很强大,以前的校正都需要外面加硬件来校正采样结果,MPC5634自带的有校正功能,本项目采用的校正是这样的:ADC的初步转换结果将通过MAC单元来完成校正。MAC单元执行下列算法来进行校正:

Idealresult=GCCXADCresult+OCC+2 (1)

GCC为增益校正的常数,它是在寄存器ADCn_GCCR中定义的;OCC为偏移量校正常数,它在寄存器ADCn_OCCR中定义的。

GCCR与OCCR的值是需要计算来确定的。通过以下公式进行求解:

Idealresult1=GCCXADCresult1+OCC+2 (2)

Idealresult1=GCCXADCresult1+OCC+2 (3)

为了求出GCCR与OCCR的值,我们只需要两个通道的理想结果和实际的结果就行了,通道44和通道43的电压值分别对应0.25Vdd和0.5Vdd.而他们的实际结果可以采集到。因此,可以求出GCCR和OCCR的值。

3.5 使能DMA请求

设置使能DMA0和DMA1请求。

3.6 触发CFIFO0

设置CFIFO0为连续转换模式,这样就可以连续、持续地采集信号,并及时把采集的结果放到结果存储数组中,如此就可以保证汽车控制器在结果存储数组中所读取的数据为最新的采集结果,可以使控制器根据最新的数据来控制各个执行器。

4 主程序和执行结果

void main(void)

{

uint32_t cQUEUE0[40]; //定义命令存储数组

uint16_t rQUEUE0[40]; //结果存储数组

dma_init_fnc(); //DMA初始化

eqadc_init_fnc (); //eQADC初始化

set_calconstants ();//校正寄存器的设置

dma_able();//使能DMA0,DMA1

cfifo0_trig();//使能DMA0,DMA1

while(1)

{

}

}

5 结束语

本设计完成了汽车控制器的采样模块的设计,它保证在时间上和精度上满足汽车控制器的要求。通过不断地测试,该设计达到了系统所要求的性能和功能。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    15200

    浏览量

    171100
  • 汽车电子
    +关注

    关注

    2998

    文章

    7441

    浏览量

    161559
  • 模数转换器
    +关注

    关注

    25

    文章

    2297

    浏览量

    125965
收藏 人收藏

    评论

    相关推荐

    基于MPC5634控制器多路AD采样的设计

    随着汽车控制系统的要求和依赖性提高,AD采样的设计模块成为汽车控制器中重要的组成部分。AD
    发表于 08-25 10:19 2193次阅读
    基于<b class='flag-5'>MPC5634</b>的<b class='flag-5'>控制器</b>多路AD<b class='flag-5'>采样</b>的设计

    SPC5 Studio和ChibiOS是否可以用作飞思卡尔MPC5634的工具链

    我想知道SPC5 Studio和ChibiOS是否可以用作飞思卡尔MPC5634的工具链,它具有与ST SPC563M类似的核心:E200z3? #spc5studio以上来自于谷歌翻译以下为原文
    发表于 11-23 10:33

    求一种基于MPC5634的多路模拟信号采集方法

    一种基于MPC5634的多路模拟信号采集方法,通过增强型直接内存访问(DMA)方式,自动在RAM和增强型队列式模数转换eQADC模块之间转移数据,能高效和准确地完成对模拟信号的采集。
    发表于 04-13 06:04

    MPC555具有哪些特性功能应用?

    MPC555具有哪些功能模块MPC555微控制器汽车电子领域的应用是什么?MPC555应用发
    发表于 05-12 06:03

    MPC555微控制器汽车电子领域有哪些应用?

    MPC555微控制器是什么?MPC555应用软硬件平台及系统集成开发环境MPC555微控制器汽车
    发表于 05-14 07:21

    MPC5634M单片机怎么用

    MPC5634M单片机怎末用STC—ISP用 串口助手控制一个LED的明亮,本图片上的程序错误的地方在哪,请指出并完善。请各位过往大神赐教,谢谢
    发表于 07-15 09:43

    求分享MPC5634M芯片bootloader相关的代码

    想问一下MPC5634M芯片bootloader相关的代码,所以上传一下。
    发表于 05-10 08:23

    MPC5642A微控制器是否支持CANOpen?

    MPC5642A 微控制器是否支持 CANOpen? 我正在使用 MPC5642A 微控制器,这个微控制器有 CANbus 接口。我想用这个
    发表于 06-09 06:29

    MPC5634M单片机数据表

    This addendum describes corrections to the MPC5634M Microcontroller Datasheet, order number
    发表于 09-19 12:37 10次下载
    <b class='flag-5'>MPC5634</b>M单片机数据表

    基于MPC5634的多路模拟信号采样方法介绍

    随着汽车控制系统的要求和依赖性提高,AD 采样的设计模块成为汽车控制器中重要的组成部分。AD
    发表于 10-18 15:27 14次下载
    基于<b class='flag-5'>MPC5634</b>的多路模拟信号<b class='flag-5'>采样</b>方法介绍

    MPC5634汽车控制器多路AD采样设计方案解析

    随着汽车控制系统的要求和依赖性提高,AD采样的设计模块成为汽车控制器中重要的组成部分。AD
    发表于 11-16 11:49 10次下载
    <b class='flag-5'>MPC5634</b><b class='flag-5'>汽车</b><b class='flag-5'>控制器</b>多路AD<b class='flag-5'>采样</b>设计方案解析

    基于TRK-MPC5634M微控制器的参考设计

    View the reference design for TRK-MPC5634M. http://www.elecfans.com/soft/ has thousands of reference designs to help bring your project to life.
    发表于 07-10 13:54 12次下载
    基于TRK-<b class='flag-5'>MPC5634</b>M微<b class='flag-5'>控制器</b>的参考设计

    MPC5634M单片机

    MPC5634M单片机怎末用STC—ISP用 串口助手控制一个LED的明亮,本图片上的程序错误的地方在哪,请指出并完善。请各位过往大神赐教,谢谢
    发表于 12-03 18:36 10次下载
    <b class='flag-5'>MPC5634</b>M单片机

    基于恩智浦MPC5744P的电机FOC控制中电流的采样

    本篇笔记主要记录基于恩智浦MPC5744P的电机FOC控制中电流的采样
    的头像 发表于 04-20 14:17 1323次阅读
    基于恩智浦<b class='flag-5'>MPC</b>5744P的电机FOC<b class='flag-5'>控制</b>中电流的<b class='flag-5'>采样</b>

    基于MPC5634汽车控制器多路AD采样的设计原理

    电子发烧友网站提供《基于MPC5634汽车控制器多路AD采样的设计原理.pdf》资料免费下载
    发表于 10-09 15:11 1次下载
    基于<b class='flag-5'>MPC5634</b>的<b class='flag-5'>汽车</b><b class='flag-5'>控制器</b>多路AD<b class='flag-5'>采样</b>的设计原理