电动汽车整车控制器 VCU 电动汽车整车控制含canbootloader 基于飞思卡尔MC9S12XEP100整车控制器 VCU方案 1C源文件底层驱动控制策略 2程序变量表格Execl文件can 通讯发送接收数据对应 3DBC数据库CANoe数据库支持文件可以通过上位机方便解析报文数据可以 4原理图满足二次开发的原理图将控制输入输出口全部列出 5接口定义Execl文件接口定义与芯片管脚一一对应方便二次开发 6:pcb图纸 7.支持CANBOOTLOADER更新下载程序提供上位机下载软件bootS19文件。 支持周立工USB最近在搞电动汽车整车控制器VCU开发拿飞思卡尔MC9S12XEP100芯片的方案练手。这玩意儿底层逻辑其实挺有意思的特别是CAN通讯和Bootloader那块今天随便唠点实战经验。底层驱动直接上硬菜看这段IO控制代码// PortA初始化 void PortA_Init(void) { DDRA 0xFF; // 设置PA口全输出 PORTA 0x00; // 初始输出低电平 } // 驱动大灯继电器 void HeadLight_Ctrl(uint8_t state) { PORTA_PA0 (state 0) ? 1 : 0; }这里用的是经典寄存器操作DDRA控制方向寄存器PORTA直接操作输出电平。注意XEP100的IO口驱动电流够大直接驱动继电器不用加缓冲芯片。控制策略里的车速计算模块有点讲究Excel变量表里对应CAN ID 0x0C1的数据#pragma CODE_SEG __NEAR_SEG NON_BANKED void CalcVehicleSpeed(void) { uint16_t wheel_pulse GetWheelPulseCount(); float circumference 2.3; // 轮胎周长米数 current_speed (wheel_pulse * circumference) / (0.1 * PULSE_PER_ROUND); CanTxData[0x0C1].Byte[0] (uint8_t)(current_speed * 10); }这个0.1秒的采样周期要和硬件定时器中断同步PULSEPERROUND参数得根据实际轮速传感器调整。代码里的浮点运算在XEP100上跑记得开FPU支持。DBC文件才是CAN通讯的灵魂举个加速踏板信号解析的例子BO_ 256 VCU_Accel: 8 VCU SG_ AccelPedalPos : 7|81 (0.5,0) [0|100] % XXX SG_ BrakeSwitch : 15|11 (1,0) [0|1] XXX这里用Intel格式解析0x100报文第7字节开始8bit表示踏板开度精度0.5%。上位机用CANoe加载dbc后直接显示百分比比裸数据直观多了。电动汽车整车控制器 VCU 电动汽车整车控制含canbootloader 基于飞思卡尔MC9S12XEP100整车控制器 VCU方案 1C源文件底层驱动控制策略 2程序变量表格Execl文件can 通讯发送接收数据对应 3DBC数据库CANoe数据库支持文件可以通过上位机方便解析报文数据可以 4原理图满足二次开发的原理图将控制输入输出口全部列出 5接口定义Execl文件接口定义与芯片管脚一一对应方便二次开发 6:pcb图纸 7.支持CANBOOTLOADER更新下载程序提供上位机下载软件bootS19文件。 支持周立工USB原理图里有个骚操作——所有IO口都加了TVS阵列防护。看这个驱动电路设计PWR_12V-----保险丝----继电器----[ULN2003]----接插件 | | 10K上拉 EMC滤波器ULN2003达林顿管做功率驱动每个输出口反向并联续流二极管。注意XEP100的PWM口复用功能配置寄存器时别和普通IO搞混了。Bootloader才是真生产力工具用周立功USB-CAN盒下载时上位机软件自动分割S19文件。关键校验代码void CheckFlashData(void) { uint8_t crc 0; for(uint16_t i0; iAPP_SIZE; i) { crc AppBuffer[i]; } if(crc ! ReceivedCRC) { SendErrorCode(0xE1); // CRC校验失败 } }这个累加校验虽然简单但比直接传输可靠。注意boot区要预留至少8KB空间跳转前记得关中断asm CLI;开发中遇到个坑——CAN报文隔段时间就丢帧。后来发现是总线负载率超70%解决方法挺简单在dbc里把非关键报文改成周期触发为事件触发立马流畅了。所以别光怼代码总线调度策略也得动脑子。整套方案跑下来最大的感受是汽车电子开发真得软硬通吃。从寄存器操作到PCB布局从控制算法到生产文件哪个环节掉链子都得出幺蛾子。好在现在工具链成熟周立功的USB-CAN工具配合自制上位机调起来还算顺手。