标定功能设计Word文档下载推荐.docx
- 文档编号:18569702
- 上传时间:2022-12-28
- 格式:DOCX
- 页数:31
- 大小:146.64KB
标定功能设计Word文档下载推荐.docx
《标定功能设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《标定功能设计Word文档下载推荐.docx(31页珍藏版)》请在冰豆网上搜索。
0xafffc000
16k
英飞凌BootLoader代码保存区域
0xf0050000
8k
PCP数据内存
0xf0060000
PCP指令内存
0xAFE80000
监测数据存放
SPRAM
0XD4000000
另一页标定数据存放,实际可能不需要使用
随机变量存放区域
Calrom
0x80180000
0xA0180000
512k
用来存放标定数据中始终不会改变的数据
Section定义
cal_flash,定位到DFLASH0区域,如果要在这区域定义变量在头文件cal_flash.h中声明(我觉得这个区域不需要定义变量)。
cal_rom,定位到calrom区域,如果要在这区域定义变量在头文件cal_rom.h中声明,声明成const变量。
cal_ram,定位在calram区域,要把变量定位到这个区域,在头文件cal_ram.h中声明,如果用OVRAM区域的话这个区域不使用
cal_ram_another,定位在spram区域,实际可能不需要用到,在这个区域定义变量的话,在跟它同名的头文件中声明。
Monitor,定位在ovram区域,要把变量定位到这个区域,在头文件monitor.h中声明,注意这边声明变量的顺序要跟cal_flash.h中声明变量的顺序要一致。
需要注意的一点是,不能用Tasking3.4r1版本编译,用这个版本编译的话变量不会定位到我们预想的区域,建议使用Tasking3.3r1版本编译。
标定功能实现想法:
在PFLASH区存放始终不会改变的数据,在DFLASH区存放需要改变的数据,OVRAM区域定向到DFLASH区域用来监测标定数据。
OVRAM功能是通过配置重定向寄存器,定向到PFLASH或DFLASH区域。
通过对FLASH区域地址写来修改OVRAM区域的值,而程序不能通过写OVRAM区域地址来修改OVRAM区域。
可以通过OVRAM区域地址读取数据,这样我们在标定查询的时候直接从OVRAM区域读取,在修改标定数据是,通过写FLASH地址来修改OVRAM区域,最后我们把OVRAM中的数据烧录到FLASH中区。
系统上电首先将DFLASH区中的数据拷贝到OVRAM区域中,然后通过配置重定向寄存器将OVRAM定向到DFLASH0的前8K单元,寄存器配置如下所示。
在CANAPE标定数据的地址map使用DFLASH区域变量的地址map。
voidovram_set(void)
{
ubyte*pDflash0=(ubyte*)0xafe00000;
ubyte*pOvram=(ubyte*)0xafe80000;
//OVC_OCON|=OVC_OCON_OVSTP;
//停止overlay
//把DFLASH中的标定数据拷贝到OVRAM中
for(inti=0;
i<
0x2000;
i++)
{
*pOvram++=*pDflash0++;
}
//目标地址配置
OVC_OTAR0=0Xafe00000;
//Overlay基地址配置
OVC_RABR0=0X8FE80000;
//MASK寄存器配置
OVC_OMASK0=0X0FFFF800;
OVC_OTAR1=0Xafe00800;
OVC_RABR1=0X8FE80800;
OVC_OMASK1=0X0FFFF800;
OVC_OTAR2=0Xafe01000;
OVC_RABR2=0X8FE81000;
OVC_OMASK2=0X0FFFF800;
OVC_OTAR3=0Xafe01800;
OVC_RABR3=0X8FE81800;
OVC_OMASK3=0X0FFFF800;
OVC_OCON=0x0000000f|OVC_OCON_OVSTRT;
}
CCP协议介绍
1、CCP通信方式
CCP协议采用主从通信方式,如下图所示。
根据CCP协议,一个主设备可以通过CAN总线与多个从设备相连,每个从设备均有其特定地址。
主设备通过每个ECU的地址,与其建立一对一的关系。
按CCP协议,在某一时刻只有一个从设备与主设备建立连接并进行通信。
CCP协议中MCD与ECU的通信又可具体分为以下两种。
①Polling模式:
这种通信模式可通俗的理解为一问一答的通信模式,即通过主设备先问,从设备回答,两者之间不断交互来实现主、从设备间的通信和数据交换。
在这种模式下,当主设备与从设备建立逻辑连接后,主设备与从设备的每次通信都是通过主设备首先发送一条请求命令,请求从设备执行某项操作,或请求其内部数据。
从设备收到命令后,执行相应操作,通过返回一帧消息,提供主设备请求的数据及命令执行情况代码。
这种通信方式实现起来比较简单,占用ECU内存资源少,但效率较低。
②DAQ模式:
与Polling模式相对应的是DAQ模式,其英文全称为DataAcquisitionMode。
不同于Polling模式一问一答的通信机制,DAQ模式下从设备可以脱开主设备的控制,按一定的通信周期自主向主设备上传数据。
这种方式数据上传效率高,但实现起来复杂,尤其当所需上传数据量交大时,会占用ECU较多RAM空间。
2、CCP消息格式
由于CCP协议遵从CAN通信规范,因此基于CCP的通信都是以CAN报文的形式来实现。
为了规范,CCP消息统一采用8个字节的数据场。
CCP协议的实现只依赖两则CAN消息:
命令接收对象(CommandReceiveObject,CRO)和数据传输对象(DataTransmissionObject,DTO)。
①命令接收对象(CRO)是主设备向ECU发送的消息对象,包括命令代码及命令参数,以下为CRO消息对象的结构。
位置
类型
描述
字节
命令代码CMD
1
命令序号CTR
2~7
命令参数域
CCP协议共规定了28条命令。
从设备接收到CRO后,通过相应的CMD代码解释受到的命令并执行。
②数据传输对象(DTO)是从设备反馈给主设备的消息。
按DTO的不同用途,DTO又可分为三类:
●命令返回消息CRM-DTO
CRM-DTO发生在Polling通信模式下,是针对主设备发送的CRO的反馈消息。
当从设备收到主设备发送的一则CRO后,按照CCP规定,必须反馈一则DTO,这则DTO就称为CRM-DTO。
●事件消息(EventMessage-DTO)
事件消息是党ECU内部发生错误时,由ECU自主发送。
这类DTO不需要事先收到主设备的CRO,一旦ECU发生内部错误,会自动向主设备发送一则事件消息,报告内部发生的情况,请求主设备暂停当前工作并进行处理。
●DAQ-DTO(DataAcquisition-DTO)
3、CCP命令代码简介
CCP协议共规定了28条命令,其中11条为必选命令,17条为可选命令。
由于CCP是开放协议,因此用户可之选其中一部分予以实现。
每条命令在CCP协议中均有自己独立的CMD代码,从设备即通过CRO中的CMD代码来对收到的CCP命令进行解释并执行。
下表描述了28条命令代码。
命令
CMD代码
ACK应答时间(ms)
CONNECT
0x01
25
GET_CCP_VERSION
0x1B
EXCHANGE_ID
0x17
GET_SEED
0x12
可选
ULOCK
0x13
SET_MTA
0x02
DNLOAD
0x03
DNLOAD_6
0x23
UPLOAD
0x04
SHORT_UP
0x0F
SELECT_CAL_PAGE
0x11
GET_DAQ_SIZE
0x14
SET_DAQ_PTR
0x15
WRITE_DAQ
0x16
START_STOP
0x06
DISCONNECT
0x07
SET_S_STATUS
0x0C
GET_S_STATUS
0x0D
BUILD_CHECKSUM
0x0E
30000
CLEAR_MEMORY
0x10
PROGRAM
0x18
100
PROGRAM_6
0x22
MOVE
0x19
TEST
0x05
GET_ACTIVE_CAL_PAGE
0x09
START_STOP_ALL
0x08
DIG_SERVICE
0x20
500
ACTION_SERVICE
0x21
5000
4、ERR代码列表
CRM-DTO的ERR代码知识了CRO命令的执行情况,事件消息中的ERR代码表示ECU内部发生的错误类型,CCP协议对ERR代码的定义见下表。
代码
错误等级
0x00
确认/无错误
--
DAQ处理器超载
C0
无(等待直到ACK或时间溢出)
指令处理器忙
C1
DAQ处理器忙
内部超时
请求密钥
阶段状态请求
冷启动请求
C2
冷启动
标定数据初始化请求
标定数据初始化
DAQ列表初始化请求
DAQ列表初始化
更新代码请求
(冷启动)
0x30
未知指令
C3
(错误)
0x31
指令句法错误
错误
0x32
参数超出许可范围
0x33
访问被拒绝
0x34
超载
0x35
访问锁址保护
0x36
资源/功能暂不可用
错误登记分类及措施
级别
措施
重试次数
超时
无握手信号
重试
2
警告
伪错误(comm错误,忙...)
等待(ACK或超时)
可修复的(温度、掉电...)
初始化
不可修复的(重启,超载...)
终止
5、CCP指令
1)连接指令(CONNECT)
按照CCP协议,主设备必须先与总线上的某个从设备建立逻辑连接,才能与其开始通信。
CONNECT命令就是主设备用来与从设备建立逻辑连接的,其中包括了从设备ECU的站地址。
下面是CONNECT命令的CRO数据结构。
命令代码=0x01
命令序号=CTR
2,3
字
ECU地址(Intel格式,低字节在前)
4~7
无效
针对CONNECT命令反馈DTO数据结构如下表所示。
PacketID:
0xFF
命令返回代码=ERR
2)交换站标识符(EXCHANGE_ID)
EXCHANGE_ID命令的CRO数据结构,如下所示
命令代码=0x17
CCP主设备ID信息(可选,根据实际应用情况而定)
3~7
应答DTO数据结构。
3
从设备ID标识符的长度
4
从设备ID数据类型
5
资源可用状态字节
6
资源保护状态字节
7
从设备收到该命令后,会自动将地址指针定义到存放ID标识符的起始地址,主设备随后就以该起始地址使用UPLOAD指令上传ID信息。
3)申请密钥(GET_SEED)
GET_SEED命令的CRO数据结构
命令代码=0x12
请求从设备开放功能
应答DTO数据结构
请求功能当前受保护状态
密钥数据
4)接触保护(UNLOCK)
UNLOCK命令的CRO数据结构
命令代码=0x13
钥匙
各项功能当前状态
5)设置MTA地址(SET_MTA)
MTA地址的英文全称是MemoryTransferAddress,相当于一个地址指针的概念。
CCP协议定义了两个MTA地址:
MTA0与MTA1,分别针对不同的命令。
DNLOAD,UPLOAD、DNLOAD_6、SELECT_CAL_PAGE、CLEAR_MEMORY、PROGRAM及PROGRAM_6命令使用MTA0,MOVE命令使用MTA1,SET_MTA命令CRO数据结构如下所示。
命令代码=0x02
MTA序号(0或1)
地址偏移
无符号长整型
地址
6)数据下载(DNLOAD)
DNLOAD指令负责将CRO中的数据下载到ECU中,起始地址为先前设定的MTA0,下载完毕后MTA0指针自增,自增的字节数为下载数据的字节数。
DNLOAD命令的CRO数据结构,如下所示。
命令代码=0x03
下载数据大小(字节数)
下载数据(最多为5个字节)
MTA0偏移量(自增后)
MTA0地址(自增后)
7)6字节数据下载(DNLOAD_6)
该命令的功能与DNLOAD命令相同,区别在于DNLOAD命令一次下载数据可为1~5个字节不等。
DNLOAD_6下载固定为6字节大小的数据,起始地址为MTA0,下载结束后MTA0指针会自增6个字节。
DNLOAD_6的CRO数据结构如下所示。
命令代码=0x23
下载数据(6个字节)
8)数据上传(UPLOAD)
主设备通过UPLOAD命令,请求从设备以MTA0起始地址,将命令中规定字节数的数据上传。
随后MTA0指针自动增加相应的字节数(上传的字节数)。
UPLOAD命令的CRO数据结构,如下所示。
请求上传的数据大小(字节数)
所请求的数据
9)数据短上传(SHORT_UP)
该命令的功能同UPLOAD命令,同样用于主设备要求从设备上传数据。
区别在于UPLOAD命令中上传数据的起始地址是MTA0,SHORT_UP中的起始地址由命令本身指定,从设备按该起始地址上传数据。
上传后MTA0指针保持不变。
SHORT_UP命令的CRO数据结构如下所示。
命令代码=0x0F
请求上传的数据大小(1~5字节)
地址偏移量
10)选择标定数据页(SELECT_CAL_PAGE)
该命令的功能取决于ECU的内部实现。
执行该条命令后,先前设置的MTA0地址将会自动指向该命令激活的标定页。
SELECT_CAL_PAGE命令的CRO数据结构如下所示。
命令代码=0x11
11)获取DAQ列表大小(GET_DAQ_SIZE)
该命令用来湖区某个特定DAQ列表的大小,即其中ODT列表的个数,并清空当前DAQ列表内的数据,为下次DAQ通信做准备。
同时该命令还对DAQ列表进行初始化并终止该DAQ列表当前的通信。
GET_DAQ_SIZE命令的CRO数据结构如下所示。
命令代码=0x14
DAQ列表号
该DAQ列表,其所对应的DTO的CANID标识符
DAQ列表大小(ODT列表数)
12)设置DAQ列表指针(SET_DAQ_PTR)
在进行DAQ模式通信前,必须先对DAQ列表进行配置,经数据写入到相应DAQ列表的ODT元素中。
SET_DAQ_PTR命令用来为写入DAQ列表数据设置入口地址指针。
SET_DAQ_PTR命令的CRO数据结构如下所示。
ODT序号
该ODT中的第几个元素
5~7
13)写入DAQ列表(WRITE_DAQ)
在进行DAQ模式通信前,必须先对DAQ列表进行配置,将所需上传的数据先写入DAQ列表的ODT列表中,该条命令的功能是将数据写入DAQ列表,先前由SET_DAQ_PTR命令所定义的地址即为该条命令的数据写入地址。
在该命令中,一次写入的数据称为一个DAQ元素。
WRITE_DAQ命令的CRO数据结构如下所示。
命令代码=0x16
DAQ元素的大小(1,2或4)
DAQ元素的地址偏移
DAQ元素的地址
14)开始/终止数据传输(START_STOP)
该条命令用于DAQ通信模式,其作用是开始或终止某个DAQ列表的数据上传。
START_STOP命令的CRO数据结构如下所示。
命令代码=0x06
模式:
开始/终止/准备
0-终止,1-开始,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 标定 功能设计