CAN/CANFD
CCP/UDS
Bootloader/OTA
ECU/VCU/FCU
Simulink/ECUCoder
Ethernet
Hardware
Download
上一篇
下一篇
RTC定时唤醒控制器
一.示例说明
-1.1.示例软件开发环境
-1.2.示例使用的控制器
-1.3.示例功能说明
-1.4.示例前置条件
-1.5.示例文件下载
二.示例模型建模过程
-2.1.模型中判断唤醒状态的方法
-2.2.控制器下电时序
三.示例模型的使用
四.示例小结
回到顶部
RTC定时唤醒控制器
一.示例说明
-1.1.示例软件开发环境
-1.2.示例使用的控制器
-1.3.示例功能说明
-1.4.示例前置条件
-1.5.示例文件下载
二.示例模型建模过程
-2.1.模型中判断唤醒状态的方法
-2.2.控制器下电时序
三.示例模型的使用
四.示例小结
回到顶部
# RTC定时唤醒控制器 ## 一.示例说明
### 1.1.示例软件开发环境
MATLAB版本:MATLAB R2019a VS版本:VS2015 S32DS版本:S32DS for S32 Platform 3.5 ECUCoder版本:ECUCoder for S32K344V1.3K MeCa版本:MeCa2.0 关于以上软件开发环境,请参考本站《[电控开发环境搭建手册](./build.html)》。 ### 1.2.示例使用的控制器
本示例使用的控制器型号为RapidECU-F23,关于RapidECU-F23控制器的具体信息,请参考本站《[F23控制器硬件参考手册](./f23.html)》。 控制器接线:因为本示例只需要使用最基本的控制器功能,因此控制器接线参考了《[F23控制器硬件参考手册](./F23.html)》中的硬件最小系统接线图,如下图所示。因为本示例未使用到控制器的任何功率驱动管脚,因此可以不接主继电器,控制器的90#、116#管脚可以悬空处理。控制器的25#管脚只在需要进入Bootloader修复模式时才短接到地,平时悬空即可。 控制器的标定CAN总线通过DB9连接器连接到ZLG USBCAN卡的CAN1接口,其中50#管脚为CAN低,69#管脚为CAN高,CAN低与CAN高不可接反,否则无法建立通信。标定CAN总线必须使用双绞线,双绞线靠近CAN卡处需要并联一个120欧姆左右的终端电阻以保证标定CAN通信稳定可靠。 F23控制器的标定CAN内部已经并联了一个120欧姆左右的终端电阻,因此,在标定CAN总线正确连接之后,标定CAN总线的CAN低与CAN高之间的电阻值应为60~70欧姆,此电阻值需要使用万用表测量确认,如果电阻值不在此范围内,请检查并修复线束。 ![](images4demo/U34_demo41-1.png) 推荐使用带电压电流显示功能与限流保护功能的小型可调直流电源,电源电压可调节为12V或者24V左右,电流限制值可调节为1A左右,这样即使线路存在短路故障也不会产生很大冲击电流。如果使用的是车载电瓶或者大功率直流电源的话,上图中的15A保险是必须接的,否则一旦线路存在短路故障将导致线路烧毁甚至起火爆炸。 按照以上接线(不接主继电器,90#、116#管脚悬空),当点火开关未闭合时,电源电流应小于1mA(大多数电源显示0)。当点火开关闭合时,12V电源的电流大约为120mA左右(100mA-140mA),24V电源的电流大约为60mA左右(50mA-70mA)。如果点火开关闭合时12V电源的电流小于50mA或者24V电源的电流小于30mA,表明控制器供电存在异常,控制器未正常启动。如果点火开关闭合时12V电源的电流大于200mA或者24V电源的电流大于100mA,表明电源线路存在异常,可能存在短路故障。不管电流过小或者过大,都应该立即切断电源,重新检修线束并使用万用表测量确认无短路故障之后再重新上电。 ### 1.3.示例功能说明
控制器使用RTC需要保证控制器常电(对于F23控制器是4#管脚)处于常有电状态,否则因RTC芯片无法供电而无法正常使用RTC。 本示例搭模型中包含两个软件计数器,分别是100ms软件计数器与1s软件计数器,100ms软件计数器每隔100ms加一,1s软件计数器每隔1s加一。 模型100ms任务中包含了掉电延时开关模块、激活信号监控模块、RTC定时唤醒设置模块、RTC定时唤醒状态清除模块和CAN发送模块。 需要实现的RTC定时唤醒功能如下所示: 1. 通过KL15、ACT1或者ACT2外部信号唤醒控制器。 2. 设置RTC定时唤醒。 3. 断开外部唤醒信号,控制器下电,进入休眠状态,RTC开始计时。 4. RTC计时完毕,RTC唤醒控制器,需要配合AfterRun功能进行RTC唤醒后的工作。 5. 控制器下电后,将再次进入RTC计时状态,使控制器反复定时唤醒,控制器唤醒后执行RTC唤醒任务。 6. 如果在控制器休眠时连接KL15、ACT1、ACT2任一信号,控制器将执行非RTC唤醒任务。 F23控制器上下电状态转换如下图所示: ![](images4demo/U34_demo41-4.png) ### 1.4.示例前置条件
本示例要求用户提前搭建好基于模型设计的软件开发环境,请参考本站《[电控开发环境搭建手册](./build.html)》。 本示例操作实践要求有一台RapidECU-F23控制器并且正确接线,请参考本文章节1.2《示例使用的控制器》。 本示例属于基础示例,要求用户具备Simulink/ECUCoder建模技能。如果用户还没有Simulink/ECUCoder的使用经验,建议从《[第一个可在控制器中运行的模型](./demo01.html)》开始顺序学习。 ### 1.5.示例文件下载
用户可以参考本文自行建模而不需要下载示例文件,用户也可以下载示例文件以获取更多参考信息,示例文件下载地址:[示例文件](./download.html)。 ## 二.示例模型建模过程
示例模型建模过程如下: 1. 新建一个文件夹,名称为DEMO41_RTCWakeUp。 2. 切换MATLAB工作路径到上述新建文件夹的路径,新建一个名为DEMO41_RTCWakeUp的Simulink模型。 3. 点击进入Simulink 的ECUCoder for S32K344模块库, 点击RapidECU_F23子库, 选择RapidECUSetting模块,将RapidECUSetting模块拖入到新建的模型中。 4. 在模型中创建一个100ms的任务,任务中添加一个名为MyCounter_100ms的软件计数器。在模型中创建一个1s的任务,任务中添加一个名为MyCounter_1s的软件计数器。此步骤与《[第一个可在控制器中运行的模型](./demo01.html)》的建模步骤相同。为了管理模型的软件版本,在1s任务中添加一个Constant模块,将模块的值设置为24032815(年月日小时设置法)。此步骤与《[为模型添加测量变量与标定变量](./demo02.html)》的建模步骤相同。 5. 点击RapidECU_F23模型库,点击RTC子库,将RTCAlarm模块和ClearAlarm模块拖入100ms任务中。 6. 将CAN发送模块、AfterRun模块拖入100ms任务中。 7. 非RTC唤醒状态下,持续发送CAN报文,ID0x01,数据为全0。 8. RTC唤醒状态下,发送CAN报文,ID0x01,数据累加,直到255,清除RTC状态。 建模完成的100ms任务模型如下图所示: ![](images4demo/U34_demo41-2.png) ### 2.1.模型中判断唤醒状态的方法
模型中判断唤醒状态的方法是利用ActSigMonitor模块读取各个激活信号的值,根据各个激活信号的值可以计算得到唤醒状态:RTC唤醒状态或者非RTC唤醒状态。 对于F23控制器,各个激活信号的关系见下图: ![](images/2023-08-24-14-54-15-image.png) 3:I_KL15,2:I_ACT1,5:I_ACT2,RTC_ACT四个硬件激活信号构成逻辑或的关系产生All_Activation信号,以上5个信号均可以利用ActSigMonitor模块实时读取。All_Activation信号,AfterRun软件开关构成逻辑或的关系激活控制器,AfterRun可以实时控制。RTC_ACT信号由RTC芯片发出。 ### 2.2.控制器下电时序
当使用了RTC定时唤醒功能之后,控制器下电需要按照一定的时序进行,否则无法正常下电或者无法正常实现RTC定时唤醒功能。推荐的控制器下电时序如下: 1. 清除RTC定时唤醒状态,方法为ClearAlarm模块给1。 2. 准备设置RTC定时唤醒,方法为ClearAlarm模块给0。 3. 设置RTC定时唤醒,方法为设置RTCAlarm的定时时间并使能。 4. 关闭AfterRun软件开关,方法为AfterRun模块给0。 需要注意的是,模型需要在初始化时打开AfterRun软件开关,否则无法正常下电或者无法正常实现RTC定时唤醒功能。 ## 三.示例模型的使用
示例模型使用过程如下: 1. 在配置好的软件开发环境中,切换MATLAB工作路径到DEMO41_RTCWakeUp文件夹,打开模型DEMO41_RTCWakeUp。 2. 点击“Build Model”按钮或者使用快捷键Ctrl+B编译模型。模型编译完成之后,生成DEMO41_RTCWakeUp.s19文件与DEMO41_RTCWakeUp.a2l文件,其中.s19文件用于刷写到控制器内部,.a2l文件用于测量标定。 3. 使用一台RapidECU-F23控制器,控制器接线请参考本文章节1.2《示例使用的控制器》。利用MeCa-UDS Program软件将DEMO41_RTCWakeUp.s19文件刷写到RapidECU-F23控制器中。 4. 使用MeCa软件新建一个名为DEMO41_RTCWakeUp的项目,导入数据库文件时使用DEMO41_RTCWakeUp.a2l文件。项目面板中添加“多数字显示”控件,控件关联A2L文件中所有测量变量。 5. 控制器上电,通过外部信号(KL15、ACT1、ACT2任一信号)唤醒后,CAN0发送CAN报文,ID0x01,数据为全0。断开外部唤醒信号,模型内部设定2分钟后RTC定时唤醒,控制器下电,进入休眠状态,电源电流应小于1mA(大多数电源显示0),等待RTC计时。 6. RTC计时完成,RTC唤醒控制器,执行RTC唤醒任务,CAN0发送CAN报文,ID0x01,数据递增直到255,模型内部设定2分钟后RTC定时唤醒,控制器下电,进入休眠状态,等待RTC计时。 DEMO41_RTCWakeUp模型正在F23控制器中运行的MeCa软件如下图所示: ![](images4demo/U34_demo41-3.png) 当通过外部信号(KL15、ACT1、ACT2任一信号)唤醒控制器时CAN0发送全0数据;当RTC定时唤醒控制器时CAN0发送递增数据。模型运行符合设计预期。 ## 四.示例小结
示例模型DEMO41_RTCWakeUp演示了如何使用RTC定时唤醒控制器,通过学习本示例并操作实践,用户可以学习到: 1. 如何使用RTC定时唤醒控制器。 2. 模型中判断唤醒状态(RTC唤醒或者非RTC唤醒)的方法。 3. 当使用了RTC定时唤醒功能之后控制器合理的下电时序。 4. 控制器使用RTC需要保证控制器常电处于常有电状态,否则因RTC芯片无法供电而无法正常使用RTC。