汽车电子车身控制XC系统控制单元驱动应用攻略.docx
- 文档编号:7649771
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:8
- 大小:156KB
汽车电子车身控制XC系统控制单元驱动应用攻略.docx
《汽车电子车身控制XC系统控制单元驱动应用攻略.docx》由会员分享,可在线阅读,更多相关《汽车电子车身控制XC系统控制单元驱动应用攻略.docx(8页珍藏版)》请在冰豆网上搜索。
汽车电子车身控制XC系统控制单元驱动应用攻略
1功能概述
英飞凌为用户提供软件方面的例子,使得用户在对系统控制单元(SCU这个强大而复杂的模块没有详细的了解的情况下,也能根据自己的需要配置和使用XC2000系列的这个模块。
SCU的驱动程序提供了函数接口,可以用于实现以下几个主要目的:
∙系统时钟的控制(Normal模式下
∙省电模式的控制
提供以下几种类型的函数接口:
∙典型应用所需要的全局函数。
∙该驱动内部使用的私有函数。
这些函数通过文档记录下来作为参考之用。
用户可以通过复制、粘贴这些函数作为特殊用途之用。
∙测试函数帮助用户使其应用程序能够运行起来。
所有这些函数的特性将在下面的章节中进行阐述。
1.1Normal模式
复位之后,系统将通过SCU驱动函数进入Normal工作模式:
Scu_GoFromBaseModeToNormalMode
通过配置,下面时钟源之一可以被选择作为Normal模式工作之用:
∙晶振或者与通过晶振输入引脚输入的外部时钟信号
∙通过CLKIN1输入的外部时钟信号
∙均流控制的内部时钟源(5MHz
注意:
该应用笔记从此处开始,均流控制的内部时钟源这个名词都将由内部时钟来代替。
时钟源的频率由用户来配置。
控制器的压控振荡器(VCO用于产生一个高达80MHz的可配置的系统时钟。
系统时钟可通过引脚2.8输出作为测试之用。
如果使用的是晶振的话,SCU的驱动函数Scu_EnableHighPrecOsc可能会在初始化的初期被调用,从而减少Scu_GoFromBaseModeToNormalMode函数中晶振振荡稳定所需的等待时间。
1.2省电模式
1.2.1进入省电模式
通过SCUScu_GoFromNormalModeToPowerSavingMode这个SCU驱动函数进入省电模式。
这个函数的参数结构指定省电模式和唤醒的细节。
支持以下省电模式:
∙NormalStop-over模式
∙晶振保持持续工作的Stop-over模式
∙NormalStandby模式
∙带有快速启动(FSM的Standby模式
可以由下列事件将单片机从省电模式下唤醒:
∙唤醒定时器(WUT
∙外部服务请求(ESR引脚
∙复用ESR引脚(CAN、LIN、SPI
WUT还提供一些参数供用户设置:
∙定时器间隔时间
∙触发后自动停止或者不采用自动停止(用于固定的休眠时间或者固定的唤醒周期
∙定时器分频
在进入休眠模式之前,用户需要注意以下事项:
∙用到的外设需要关闭以减小电流消耗
∙输入/输出需要被设置成电流消耗最小的状态
∙中断需要被禁止
如果省电模式在整个应用程序中都不需要被用到,则省电模式这个模块可以被禁止以减小代码空间。
在Standby模式下,通过设置可以禁止看门狗,从而可以使电流消耗大大地减小。
1.2.2从省电模式唤醒
从Stop-over模式唤醒
当单片机从Stop-over模式下被唤醒后,SCU驱动调用用户函数(Scu_HandleStopover_Ps,该函数的名字可配置。
该函数在可配置的唤醒振荡器时钟周期的初期,首先执行应用程序定义的代码。
如果需要更快速及/或更稳定的时钟,那么可以调用函数Scu_UseFastClockInStopover_Ps来提高频率。
可以选择以下时钟之一来实现用户操作:
∙可配置以及可行的晶振、晶振时钟信号或者由CLKIN1引脚输入的时钟信号
∙可配置的内部VCO时钟,该时钟从5MHz的内部PLL通过VCO时钟派生出来;此外,用户可以通过调用函数Scu_ApplyNewK2Div_Ps来修改系统时钟
∙5MHz的内部时钟
最后,必须调用函数Scu_UseWakeupOscInStopover_Ps以再次减小时钟频率。
应用程序通过返回值来判断是否需要继续Stop-over模式。
如果需要退出Stop-over模式,那么调用Scu_GoFromNormalModeToPowerSavingMode函数进入Normal模式。
从带有快速启动的Standby模式唤醒
在带有快速启动的Standby模式下唤醒,SCU驱动调用用户函数(Scu_HandleStandbyFsm_PsSb,该函数名字可配置。
该函数以两种不同的速度执行应用程序定义的代码:
∙第一部分运行在5MHz的内部时钟下
∙第二部分使用了可配置的唤醒振荡器时钟
对于第二部分,应用程序必须调用Scu_UseWakeupOscInStandbyFsm函数。
应用程序通过返回值来判断是否需要继续带有快速启动的Standby模式。
当退出带有快速启动的Standby模式,DMP_1复位。
如果在用户函数执行过程中要激活外设,那么需要调用SCU驱动函数Scu_RequestSystemMode,调用参数如下:
∙SCU_SYSTEM_MODE_NORMAL用于使能外设
∙SCU_SYSTEM_MODE_CLOCK_OFF用于再次禁止外设
从Standby模式唤醒
当从Standby模式被唤醒后,DMP_1发生复位。
复合唤醒源
如果复合唤醒源被使能,唤醒源可以由函数Scu_GetWakeupSrc来决定。
唤醒源请求需要由函数
Scu_ClearWakeupSrc来清除。
1.2.3省电模式代码位置
对于省电模式来说,部分SCU驱动代码和应用程序代码必须从PSRAM执行。
这些代码段必须使用编译器指令使其位于特殊的存储区域。
他们必须由Scu_CopyWords函数从Flash中被复制到PSRAM中。
如果在代码从PSRAM中执行的过程中可能会产生中断或者陷阱,相应的中断向量也必须由驱动函数Scu_CopyVectorToPsram从Flash中被复制到PSRAM中。
在带有快速启动的Standby模式下,SCU驱动代码和应用程序代码的其它部分必须存储在SBRAM,并且从PSRAM中执行。
同样,这些代码段必须使用编译器指令使其位于特殊的存储区域。
并且,他们必须由Scu_WriteToSbram函数从Flash中被复制到SBRAM中。
1.3错误处理
为了增强软件鲁棒性,SCU的驱动程序对许多硬件状态进行了检查。
如果发现任何问题,都将返回一个错误代码。
从PSRAM执行代码的情况下,用户函数Scu_HandleError_Ps(名称可配置被调用。
用户可自行决定怎样来处理错误(发生复位或见示例。
1.4延迟和超时
程序中往往需要延迟或超时,使用下面的方法来满足这些要求:
短延迟和超时
∙对于短延迟来说,SCU驱动通过插入一串空语句(NOP来实现
∙对于短超时来说,SCU的驱动程序使用轮询算法检查所需条件。
只要符合条件,程序继续执行。
如果在最后检查前,条件得不到满足,程序带着错误退出。
该算法定义了执行最后检查前的指令周期的最低数量。
较长延迟和超时
可以使用软件循环,但是这会存在一些缺点:
∙必须依赖编译器/优化,或汇编语言编程
∙必须依赖程序使用的存储空间及其对齐方式
∙在延迟或超时发生过程中,无法产生有效动作
因此,SCU驱动使用CCU6模块中的T13。
考虑到实际的系统频率(包括公差,以时间单位给出的超时或延迟必须将时间转换成时钟周期。
为了节省代码和执行时间,驱动避免在程序运行时进行转换。
当需要使用带有拖延或超时的SCU驱动程序之前,函数Scu_InitTimer配置CCU6定时器T13作为驱动定时器;CCU6模块特殊寄存器原来的内容可能会被保存。
函数Scu_RestoreTimer在SCU的驱动程序使用后可以恢复这些寄存器。
1.5配置概念
SCU的驱动程序尽可能避免了函数参数和运行时间计算。
相反,该软件使用简单的#definevalue,或由编译器离线计算出来的#definevalue。
这具有以下优点:
∙没有使用额外的代码来进行参数传递,计算,检查和跳转
∙没有额外代码的运行时间
∙可以进行复杂的计算,例如,代码空间优化的计算和PLL步数最低数量的计算
∙额外的离线计算简单化了;比如,延迟时间时钟周期的计算
为了最大限度地减少配置错误的概率,编译器检查驱动程序所使用的重要常数。
并非所有的分频器计算都能得到支持。
作为编译器计算的替代,用户可以自行计算分频值,并把该值保存在SCU_CFG.h文件中。
在下面的图1和图2中,说明了如何手动执行此操作。
Figure1PLL分频器(示例
在Normal模式下,参考频率fR除以一个因子P,接着乘以一个因子N,然后再除以一个因素K2。
则输出频率为:
Figure2SCU_CFG.h
1.6开发工具
提供如下的工具链:
∙TaskingC166VX(所有模式
∙TaskingC166Classic(所有模式
∙KeilC166(所有模式
提供特殊的配置用于所需编译器的选择。
2驱动配置
该驱动由三个文件和包括客户软件的应用相关的主函数文件组成。
该驱动程序通过文件Scu_CFG.h进行配置。
Figure3文件构架
Table1文件内容
SCU驱动程序的用户只需要嵌入Scu.h头文件来导入驱动程序的功能。
2.1Normal模式
当复位(硬件复位,内部应用程序复位发生之后,系统将开始执行内部引导启动代码。
执行完引导启动代码后,微控制器将工作在内部时钟下。
中央处理器(CPU是以10MHz的主频工作的。
作为配置的一部分,提供以下的时钟源选择以使其工作在Normal模式下:
∙晶振或者与通过晶振输入引脚输入的外部时钟信号
∙通过CLKIN1输入的外部时钟信号
∙均流控制的内部时钟源(5MHz
AP16168应用笔记驱动配置上电复位关闭上电模式fSYS=5MHz启动模式fSYS=10MHz用户启动代码切换到正常操作模式Figure4Normal模式流程图Scu_Cfg.h头文件用于配置该驱动的以下部分:
·······控制器选择编译器选择系统时钟源参考频率PLL目标频率已使用的驱动定时器的特殊寄存器的恢复时钟参数(可选择的)SCU驱动采用CCU6模块的T13定时器来产生长延迟。
Scu_RestoreTimer函数可用于在SCU驱动使用完这些寄存器后,对其进行恢复。
......更多汽车电子解决方案欢迎访问英飞凌汽车电子生态圈官网免费下载汽车电子生态圈是汽车电子解决方案B-2-B平台及一站式技术资料库,由全球顶尖半导体芯片厂商英飞凌(Infineon主办。
英飞凌汽车电子生态圈已开通微博和微信,欢迎在官网扫描订阅。
应用笔记11V1.0,2009-09
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汽车 电子 车身 控制 XC 系统 单元 驱动 应用 攻略