适用于QD004E主控板,和QD004D第二次改进的主控板 V0.1.0 20190710 基于QD007D_CTRL_APP修改,按照QD007E主控板进行改动。 1、3相电流采样的输入通道按照原理图调整; 2、设备在线检测,默认修改为全部在线; 3、取消尾灯的控制,输出给变速器的12V初始化关闭; 4、设备校验的MAC_ID数组类型修改; 5、蹋频检测计算加入滤波处理; 6、接收到CDL或PBU的控制档位指令时,及时更改运行信息中的档位值; 7、MODE的SN的默认值写入更改实现方式,解决第一次写入时,对HW第一个字符产生影响; 8、增加Volans VolansPlus的控制参数,实现根据系列号来调取对应的参数。 QD007E_CTR_APP-torque_compensation 基于V0.1.0修改,助力控制改为按照Damon调试的控制逻辑 FW版本号为V0.1.0_20190712,已用于第一批20190712的Volans和Volans Plus出货 QD007E_CTR_APP-torque_compensation_1 按照V0.2.0_20190717修改 1、增加低踏频停机时延时加长; 2、上位机查询历史信息时,ODO除10处理; 3、版本号记为V0.1.1_20190719 V0.2.0 20190723 1、EEPROM写入的延时10ms时加入看门狗清零,避免清除指令或写入数据长度过长导致复位 2、清除故障插入测试相关的定义 3、踏频滤波的累加值由uint32_t改为int32_t 4、踏频停机判断,在低踏频时延长停机判断时间 5、收到写入电机控制参数指令时,初始化助力参数,避免写完系列号时需要复位才能生效 6、发送历史信息时,把ODO除10处理 7、收到上位机控制档位指令时,PBU判断超时的变量更新,解决威格测工机无法设置助力档位的问题 8、修改助力模式,限速的处理,超限速值后的衰减斜率和恢复点 9、修改Volans和Volans Plus的助力参数 V1.0.0 20190814 1、在MC_CanRxCheck_Process()中增加对HMI、BMS实时判断是否离线,相应的CAN解析中做标志置位处理; 2、三相电流采集中A相IO初始化修改; 3、MC_TE_SensorStatus中MCU_Voltage采用由TE发送过来的值,而不是根据主控MCU采集计算; 4、增加TIM2采集计算TE发送的1M同步信号频率,并根据TE的UART发送过来的值作比较判断; 5、修改刹车和GearSensor的检测,并增加根据GearSensor_Flag状态标志控制电机停机; 6、增加骑行总时间的统计和存储功能,变量名称为ODO_Time; 7、收到BMS运行信息时,增加对RemainDis.IsBMS_ComOK_Flag的置位,用于续航计算; 8、增加HMI和MC之间关于轮胎周长的查询和配置功能; 9、增加ECO、NORM档位变化时限流值的线性变化; 10、低力矩停机时间的计算方法优化; 11、12V电源驱动函数的优化; 12、低压和过压保护修改为根据设置马达参数中的额定电压判断; 13、开路计算SOC改为根据放电曲线中的容量值股钻; 14、车速计算方法优化,改用滑动滤波算法,并在前一个信号触发后超时开始对速度衰减; 15、版本号修改为V1.0.0_20190814 V0.2.1 20190821 1、三相电流采集中A相IO初始化修改; 2、看门狗初始化位置调整; 3、增加了母线电压的滤波,续航计算变量初始化直接采用ADC转化结果; 4、电池放电曲线表更新为SKY01电池; 5、增加骑行总时间的统计和存储功能,变量名称为ODO_Time; 6、增加HMI和MC之间关于轮胎周长的查询和配置功能; 7、修改Key扫描函数处理逻辑; 8、前馈调整为根据电机设定的额定转速值; 9、增加ECO、NORM档位变化时限流值的线性变化; 10、低力矩停机由180度更改为120度; 11、低压和过压保护修改为根据设置马达参数中的额定电压判断; 12、开路计算SOC改为根据放电曲线中的容量值估算; 13、版本号修改为V0.2.1_20190821 V1.0.1 20190826 1、修改UART通信失联检测方式,在While(1)中进行判断; 2、增加母线电压的滤波处理; 3、看门狗初始化位置调整,避免开机时出现故障; 4、修改踏频传感器故障检测方法,调整到1ms中断中检测; 5、故障码定义中增加TE MCU的标志位,并且对TE的故障检测进行分类和修改; 6、NTC故障检测的逻辑调整 V1.0.1 20190906 1、d轴PID的P值修改为25000; 2、仅运行模式下接收按键下发的档位指令; 3、修改踏频传感器故障判断超时的时间,避免停车是由于速度延时而误报; 4、STOP时,增加对q、d轴给定值的清零; 5、GPIO初始化中取消对PA6初始化,避免默认为开,并修改为前后灯的IO同时开关; 6、增加TE_Circuit故障位,故障显示代码为30; 7、修改部分故障检测判断的阈值和延时; 8、发送给TE的清零修改为在发送任务中进行; 9、版本号V1.0.1 20190906 V1.0.2 20190912 1、修正对刹车信号采集的IO,解决误报30故障码; 2、修改发送TE的滤波处理深度,与TE保持一致; 3、计算3相电流有效值算法中增加滤波处理; 4、缺相检测函数修改判断条件; 5、低力矩停机角度由90度调整为120度; 6、版本号修改为V1.0.2_20190912。 V1.0.3_20190929 1、修改马达霍尔故障检测的判断条件,避免堵转时误报; 2、修改低电压衰减和温度过高衰减的处理方法,按照L版本的软件处理; 3、低压和过压保护的判断,对24V、36V、48V的电池改为按照电芯的电压进行计算; 4、总里程,骑行时间、运行时间的存储周期调整,增加接收到关机指令时的存储处理; 5、版本号修改为V1.0.3_20190929。 V1.0.4_20191014 1、车速计算是磁铁个数由原来的默认1个,更改为调用配置参数里面的设置值,针对已出货未设置此参数的电机默认采用1; 2、配置参数中增加轮胎周长微调值,并在相应地方进行更改,通过仪表可设置更改和存储此值; 3、增加接收到SHUTDOWN指令和CDL的复位指令时,将需要存储的变量存到FLASH,下次开机时转存到EEPROM中; 4、配置参数中增加速度传感器的标志,并分别对含速度传感器和不含速度传感器进行配置,不含速度传感器时根据踏频和前后齿计算车速; 5、配置参数中增加踏频启动信号的个数,并在踏频启动处理代码中应用此值针对已出货未设置此参数的电机默认采用2; 6、EEPROM存储的数据,增加用户配置参数2、运行历史2、骑行历史信息三组数据; 7、运行信息中删除ODO时间,增加开机后骑行的里程和时间; 8、配置参数中增加是否支持指拨模式的标志,默认不支持,并根据此标志决定是否进入指拨处理; 9、增加配置参数2,包含俯仰角、横滚角的零度偏移校正、是否支持坡度传感器的标志,并增加写入和查询的协议; 10、运行历史1中删除ODO时间; 11、增加运行历史2,包含一些故障次数记录; 12、增加仪表查询骑行历史信息,和清除TRIP信息的指令; 13、增加读取姿态角度,包含俯仰绝对和相对角、横滚绝对和相对角; 14、初始化时从EEPROM读取失败时,不会直接返回错误,而是再次读一次,如果仍然失败,对应的参数采用默认值,按照以前的方法对后面的参数有影响; 15、所有故障类和保护类的次数进行统计,并做存储; 16、随电压衰减和随温度衰减的方式进行修改,按照TTIUM的逻辑实现; 17、低压保护和过压保护,针对24V、36V、48V的电机分别进行处理; 18、骑行里程的存储周期改为3km,骑行时间的存储周期改为10min,运行总时间的存储周期改为10min; 19、增加PEGASI和PEGASI的控制参数; 20、刹车和GearSensor的检测,针对Key的结构体增加开关类型常开或常闭的定义; 21、增加CAN中断错误的回调函数处理; 22、版本号修改为V1.0.4_20191014。 V1.0.4_20191022 1、增加MCU温度采集的滤波; 2、对TE的故障检测判断(TE电路故障、主控MCU故障、TE的MCU故障)修改判断条件; 3、调整低电压衰减的计算公式; 4、修改低压和过压保护恢复的时间判断逻辑; 5、过热保护针对MCU或PCB降低阈值; 6、骑行里程和时间增加自动清零的处理; 7、默认历史信息1中,将ODO去掉,对应的默认值修改; 8、支持无速度传感器时不检测速度传感器故障; 9、版本号修改为V1.0.4_20191022。 V1.0.4_20191025 1、对TE的故障检测,除UART通讯超时外,增加数据刷新时才进行判断的逻辑; 2、UART通讯超时引起的TE_MCU错误单独进行处理; 3、版本号修改为V1.0.4_20191025。 V1.0.4_20191028 1、解决速度传感器信号个数为0时,IO中断不会触发里程计数的问题; 2、版本号V1.0.4_20191028。 V1.0.5_20191031 1、CAN的初始化增加对0x651个0x650的数据接收处理,并做对UART的转发,以实现对TE的升级; 2、增加IsSendDataToTE_Step变量,表示当前对TE的运行状态,分开机握手、发送传感器数据、升级三种状态; 3、版本号V1.0.5_20191031。 V1.0.5_20191106 1、进行程序合并,基于上个版本,将White的Riding_Pegasi版本进行合并; 2、调整续航初始化位置; 3、增加ICM20600驱动,和姿态角度解算处理,根据ICM20600初始化成功标志、支持姿态角度传感器标志进入姿态角度计算,并判断是否进入爬坡和车倒下状态; 4、微故障异常处理发送故障码增加200ms延时,防止总线一直被占用; 5、修改PID初始化函数,及部分PID的初始值; 6、踏频停机判断增加根据坡度改变启动角度; 7、续航初始化和电量估算增加按照马达参数中额定电压参数对24V、36V、48V进行转换; 8、前馈计算结果增加下限值,防止低速空载时启动出现抖动; 9、接收到档位指令,返回运行信息时将大灯状态进行更新; 10、CAN和UART解析函数内部的临时数组由于较大会引起堆栈溢出,改为全局变量; 11、增加对车倒下状态的停机处理; 12、修改推行模式车速上升曲线方式; 13、修改限速的处理、上坡的处理; 14、限流计算调整到最后面; 15、调整温度历史数据存储的时间; 16、版本号V1.0.5_20191106。 V1.0.5_20191107 17、低踏频停机的阈值改为15rpm; 18、低电压衰减和温度衰减的算法调整逻辑,避免重复叠乘; 19、版本号:V1r0r5_20191107 V1r0r5_20191112 1、发送给TE的传感器采集放到1ms中完成。 V1.0.5_20191115 1、修改低压和高温衰减的处理,避免计算溢出,并增加系数的缓升降处理; 2、低压和高压保护的条件微小调整; 3、TE升级和TE通信失败的条件下不对历史温度进行分析处理,避免出现-40; 4、版本号V1r0r5_20191115 V1.0.5_20191118 1、增加根据电机系列号设置PID默认参数的功能; 2、力矩传感器零点动态更新增加条件; 3、修改低力矩衰减的初始助力系数,需要结合骑行体验修改; 4、过热保护增加恢复延时; 5、版本号V1r0r5_20191118 V1.0.5_20191119 1、针对限流的抖动问题,修改母线电流滤波深度,和P参数; 2、给定值去掉低于6设为6的处理; 3、版本号V1r0r5_20191119 V1.0.6_20191203 1、增加电机对自身授权的校验,和对外部设备的授权校验,但目前未打开该功能; 2、对Flash数据的存储,在电机运行中会存在问题,修改为置位数据更新标志,在电机停止时完成存储; 3、电机接收到写入MODE和校验密钥时完成授权码的计算和写入; 4、NTC故障检测改为前5s不检测; 5、电池通信失败时,发送的续航里程为0xEEEE; 6、版本号:V1r0r6_20191203。 V1.0.6_20191206 1、推行模式和力矩模式限流PID上限设反,进行改正; 2、仪表设置的周长微调值上下限做判断; 3、缺相判断的延时由250ms改为1000ms; 4、版本号:V1r0r6_20191206。 V1.0.6_20191217 1、故障出现后,更新故障日志信息,并在电机停止时进行存储; 2、故障日志存储地址为0x0801F800到0x0801FBFF,可存储最近的16条故障日志; 3、针对系统清除和参数还原分别做处理,系统清除时EEPROM所有数据还原,参数还原时仅将配置的参数还原为初始值; 4、增加读取指定地址的数据的功能; 5、取消骑行总里程超过99999.9km自动归零; 6、版本号:V1r0r6_20191217 V1.0.6_20191223 1、增加根据TE发送的版本标识,确定是否进行TE的故障检测,通过此方法兼容已出货的电机; 2、调整力矩传感器故障检测的方法,运行周期改为20ms,取25个数据的标准差,阈值修改为10,且增加仅在力矩模式下执行判断; 3、力矩模式增加缓启动的处理; 4、版本号:V1r0r6_20191223 V1.0.6_20191223 15:30 1、取消 增加根据TE发送的版本标识,确定是否进行TE的故障检测,通过此方法兼容已出货的电机; 2、调整力矩传感器故障检测的方法,运行周期改为20ms,取25个数据的标准差,阈值修改为10,且增加仅在力矩模式下执行判断; 3、力矩模式增加缓启动的处理; 4、版本号:V1r0r6_20191223 V2.0.0_20191226 1、基于V1.0.6_20191223 15:30提交版本进行修改; 2、用于TT-KZ-010A,采集3路力矩传感器数值; 3、调整24C02和Flash存储的地址,以存储更多数据,用户参数1、用户参数2、马达参数存放到Flash中,增加三个力矩传感器零点历史值和标定系数的存储; 4、针对三个力矩传感器标定修改通信协议; 5、版本号V2.0.0_20191226 V2.0.1_20200102 1、针对TE的故障检测,TE串口通信和TE的时钟频率判断结果都会直接改变ERROR_Bit.Fault_TE_MCU的结果,存在故障置位后被马上复位的情况,修改为置位到复位时要同时满足两个条件; 2、修改停机时的减速值为7,可以消掉停机的滴答声; 3、启动模式(柔和、强劲、标准)用于控制启动时,加速斜率递增的时间; 4、针对每个档位的助力增益和加速度增益,调整相应的助力系数和加速曲线; 5、版本号:V2.0.1_20200102 V3.0.2 20200110 1 定义结构体时,只需定义关键字,不需要命名; 2 PEGASI和PEGASIPlus电机的PID积分饱和项统一改为20000; 3 配置模式下不执行力矩传感器故障检测; 4 助力系数达到最大的门槛值改为可通过参数设置; 5 电功率改为母线电流; 6 默认限流值改为17A,默认转速改为2000rpm; V3.0.3 20200114 1 增加2号和3号力矩传感器零偏修正函数,3个力矩传感器的零偏能实时修正; 2 修改力矩传感器零偏查询协议,通过上位机能查询当前电机所使用的零偏值; V3.0.5_20200313 1、Sport和Turbo的低力矩衰减由100修改为400; 2、删除缓启动处理; 3、4档助力系数由2286修改为2886; 4、版本号:V3.0.5_20200313 V3.0.5_20200316 基于V3.0.5_20200313修改 1、删除缓启动相关变量; 2、将4个档位低力矩衰减起始值修改为助力系数的一半; 3、ECO的助力系数由381改为476,NORM的助力系数由914改为1142,SPORT的助力系数由1523改为1903,TURBO的助力系数由2886改为2857,SMART的阈值由2000修改为1850,加速值由3改为4。 V3.0.6_20200403 1、修改Pegasi Plus的助力系数,调到1.25倍 2、版本号:V3.0.6_20200403 V3.1.0_20200417 1、修改故障历史记录的存储方式,出现故障后,将RunLogSaveIndex赋值1或2,空闲时执行RunLogSave_Process(&RunLogSaveIndex); 2、修改部分参数和函数命名; 3、增加对OBC指令的解析处理; 4、调整NTC故障检测的判断条件; 5、调整过流保护的检测条件; 6、增加对ECU的相关指令,不过暂时未开启; 7、版本号:V3.1.0_20200417 V3.1.1_20200506 1、CAN错误中断回调中清除中断标志; 2、版本号:V3.1.1_20200506 V3.2.0_20200622 1、adc.c中目前电压采集增加根据母线电流对线阻的补偿; 2、力矩传感器采集由三个的均值,改为增加坏一个时取另外两个均值的处理; 3、增加对三个力矩传感器单独判断,综合处理后决定如何力矩值; 4、修改力矩传感器故障检测的逻辑; 5、版本号:V3.2.0_20200622 V0.0.0 20200624 Damon 1:力矩骑行模式,添加根据踏频信号对力矩信号进行滤波处理。 V3.2.0_20200707 Damon 1:修改PEGASI的部分助力档位参数。 2:修改PEGASI电流环积分上下限为最大值。 3、版本号:V3.2.0_20200707. V3.2.0_20200708 Dail 1、开启Flash读保护; 2、版本号:V3.2.0_20200708 V3.2.1_20200916 1、优化相电流有效值计算函数; 2、调整母线电压计算的系数,减小误差; 3、续航数据的初始化和根据母线电压计算的初始电量更改为开机2s后执行,并增加根据BMS通讯正常是否正常来确定使用电压估算容量还是采用电池运行信息的剩余容量; 4、根据踏频计算车速时,增加踩踏方向的判断; 5、增加低压保护、推行限速、推行转速三个参数的设定和查询,并修改相关的处理; 6、调整Pegasi Plus的部分PID参数; 7、调整缺相检测的判断阈值,降低无判断的概率; 8、修改指拨模式的处理,不同档位调整最高的输出转速,调整速比更新的判断条件,并优化开机时存在初始车速时,wheelSpeedPre和DbSpdMotorPre不更新的问题; 9、还原缓启动的处理,更改逻辑,强劲模式时无缓启动,正常模式时延时100ms,柔和模式时延时300ms; 10、限速点超过2.2km/h关闭助力; 11、母线电流和相电流校零出现故障时,增加日志的存储; 12、PA0作为ETR计数接口,应该配置为GPIO_MODE_INPUT; 13、调整Pegasi Plus的助力比; 14、为兼容国产MCU,修改微故障寄存器检测函数; 15、版本号:V3.2.1_20200916。 V3.2.1_20200929 1、调整Pegasi和Pegasi Plus的Smart档阈值; 2、版本号:V3.2.1_20200929 V3.2.2_20201110 1、解决特殊状况下可能误报力矩传感器故障的问题; 2、版本号:V3.2.1_20201110 V3.2.2_20201111 1、修改Smart档位的助力参数; 2、版本号:V3.2.1_20201111 V3.2.3_20201203 1、调整MCU温度采集的方式,开机时根据PCB上的NTC进行校准作为初始温度,后面按照斜率4.3mV/度进行计算; 2、速度传感器信号增加限值处理,避免较大值出现引起99.9km/h; 2、车速停止时,清零均值滤波数组,避免第一个信号会有速值; 3、增加软件特殊性字符串和相关协议,发送版本信息同时发出; 4、收到系统清除指令时,EEPROM只清除前面4个字节,缩短时间,解决越南测工机报错的问题; 5、修改刹车和GearSensor信号的检测方法,增加延时,避免信号抖动引起异常停机; 6、版本号:V3.2.3_20201203。 V3.2.3_20210105 TC013003-MW2002-V0r1 1、修改转把模式的控制方式,按照力矩控制; 2、V3.2.3_20210105 TC013003-MW2002-V0r1。 V3.2.3_20210107 TC013003-MW2002-V0r2 1、增加根据电机转速和车速的传动比来限制母线电流,测试发现体验不是很好,屏蔽该代码; 2、增加ODO里程清除逻辑,100km内清除TRIP同时归零,只能操作一次; 3、修改低电压和温度过热衰减方式,改为通过电压和温度调整限流值; 4、修改过热保护的判断条件; 5、V3.2.3_20210107 TC013003-MW2002-V0r2。 V3.2.3_20210108 TC013003-MW2002-V0r3 1、调整母线电压测量的分压系数; 2、增加尾灯作刹车灯的控制方式,提供两种控制模式,一是作行驶灯是低亮,刹车时高亮,二是作行驶灯时高亮,刹车时闪烁; 3、灯的控制放到tim.c中运行; 4、V3.2.3_20210108 TC013003-MW2002-V0r3 V3.2.3_20210125 TC013003-MW2002-V0r4 1、根据SN号,针对样机在程序中赋值出厂参数; 2、修改低压保护判断条件,加入根据BMS信息; 3、NTC测温上限为160度,屏蔽NTC故障检测; 4、版本号:V3.2.3_20210125 TC013003-MW2002-V0r4 V3.2.3_20210125 TC013003-MW2002-V0r5 1、MC_ConfigParam1.SerialNum = 4调整到复制电机助力参数前,否则无助力输出; 2、屏蔽OCB、HMI查询和设置电机控制参数指令; 3、版本号:V3.2.3_20210125 TC013003-MW2002-V0r5