国内汽车车载电源DCDC首家,硬件原理图,软件源码,3带上位机调试工具,资料完全配套

张开发
2026/4/10 23:56:15 15 分钟阅读

分享文章

国内汽车车载电源DCDC首家,硬件原理图,软件源码,3带上位机调试工具,资料完全配套
国内汽车车载电源DCDC首家硬件原理图软件源码3带上位机调试工具资料完全配套一、系统概述3.3KW DCDC电源控制系统是一套面向汽车车载电源应用的完整解决方案涵盖上位机调试软件、下位机控制程序及硬件驱动适配模块。系统基于CAN 2.0通信协议实现上下位机数据交互支持电源参数实时监控、校准系数配置、固件升级及故障告警等核心功能适用于高压输入到低压输出的电源转换场景具备高可靠性、可扩展性及精准控制特性。国内汽车车载电源DCDC首家硬件原理图软件源码3带上位机调试工具资料完全配套系统软件架构分为上位机和下位机两大部分上位机采用C# WinForms开发提供可视化操作界面下位机基于PIC18F46K80单片机通过C语言实现底层控制逻辑。软硬件协同工作实现从设备连接、参数配置到运行监控的全流程管理。二、上位机软件功能详解上位机软件ZLGCAN_DCDC作为用户操作核心提供六大功能模块通过CAN接口与下位机通信实现对DCDC电源的全面控制与监控。一设备参数配置模块该模块负责建立上位机与CAN设备的连接配置通信参数及工作模式是系统运行的基础。1. 核心功能设备连接管理支持USBCAN1、USBCAN2、USBCAN2EU等多种CAN设备类型选择通过设备索引号和通道号匹配目标硬件提供连接/断开控制及状态反馈。通信参数配置可配置波特率5Kbps-1000Kbps可选、验收码/屏蔽码、滤波方式单滤波/双滤波、工作模式正常/只听等参数满足不同通信场景需求。帧格式设置支持标准帧/扩展帧、数据帧/远程帧切换可配置发送类型正常发送、单次发送、自发自收等。2. 关键代码逻辑// 设备连接核心逻辑 private void buttonConnect_Click(object sender, EventArgs e) { if (m_bOpen 1) { VCI_CloseDevice(m_devtype, m_devind); // 断开设备连接 m_bOpen 0; } else { // 初始化CAN配置参数 m_devtype m_arrdevtype[comboBox_devtype.SelectedIndex]; m_devind (UInt32)comboBox_DevIndex.SelectedIndex; m_canind (UInt32)comboBox_CANIndex.SelectedIndex; // 打开CAN设备并设置波特率 if (VCI_OpenDevice(m_devtype, m_devind, 0) 0) { MessageBox.Show(打开设备失败请检查设备类型和索引号); return; } // 初始化CAN通信参数验收码、屏蔽码、滤波方式等 VCI_INIT_CONFIG myCANConfig new VCI_INIT_CONFIG(); myCANConfig.Timing0 (byte)BaudTime0[comboBox_Baud.SelectedIndex]; myCANConfig.Timing1 (byte)BaudTime1[comboBox_Baud.SelectedIndex]; myCANConfig.AccCode Convert.ToUInt32(0x textBox_AccCode.Text, 16); myCANConfig.AccMask Convert.ToUInt32(0x textBox_AccMask.Text, 16); myCANConfig.Filter (Byte)comboBox_Filter.SelectedIndex; myCANConfig.Mode (Byte)comboBox_Mode.SelectedIndex; VCI_InitCAN(m_devtype, m_devind, m_canind, ref myCANConfig); m_bOpen 1; } // 更新控件状态 buttonConnect.Text m_bOpen 1 ? 断开 : 连接; timer_rec.Enabled m_bOpen 1 ? true : false; }二数据显示模块实时采集并展示DCDC电源的运行参数、状态信号及告警信息采用可视化控件直观呈现系统状态。1. 核心功能运行参数监控实时显示输出电压、输出电流、高压输入电压、24V辅助电源电压、模块电流MK1-MK3、底板温度等关键参数数据更新周期由定时器控制。状态信号展示通过指示灯形式展示保护信号输出欠压、输出短路、高压过压等6类、关机信号起机延时、硬件使能、过温保护等8类、告警信号输出过压、输入欠压等10类及优先告警信号硬件使能、辅助源24V等8类。数据日志记录所有接收和发送的CAN数据帧均记录在信息列表中支持清空操作便于故障排查。2. 数据接收逻辑通过定时器周期性读取CAN总线数据解析后更新界面显示private void timer_rec_Tick(object sender, EventArgs e) { UInt32 res VCI_GetReceiveNum(m_devtype, m_devind, m_canind); if (res 0) return; // 读取CAN数据帧 IntPtr pt Marshal.AllocHGlobal(Marshal.SizeOf(typeof(VCI_CAN_OBJ)) * (Int32)con_maxlen); res VCI_Receive(m_devtype, m_devind, m_canind, pt, con_maxlen, 30); for (UInt32 i 0; i res; i) { VCI_CAN_OBJ obj (VCI_CAN_OBJ)Marshal.PtrToStructure(...); // 解析不同ID的数据帧 if ((obj.ID 0xFFFFFF) 0xF12DF3) { // 解析输出电压、电流、输入电压等参数 float OutVolt (float)Convert.ToUInt16((obj.Data[0] 8) | obj.Data[1]) / 10; textBox5.Text Convert.ToString(OutVolt); float OutCurr (float)Convert.ToUInt16((obj.Data[2] 8) | obj.Data[3]) / 10; textBox1.Text Convert.ToString(OutCurr); // 其他参数解析... } else if ((obj.ID 0xFFFFFF) 0xF02DF3) { // 解析状态信号开关机、告警等 UpdateStatusIndicators(obj.Data); } // 记录数据到信息列表 listBox_Info_Show(obj, 1); } Marshal.FreeHGlobal(pt); }三参数校准模块支持对电源关键参数的校准系数进行查询、计算和配置确保测量精度和控制准确性。1. 核心功能校准系数查询可查询9类校准系数包括模块电流采样系数MK1-MK3、输出电压采样/控制系数、温度采样系数、限流点控制系数查询结果显示在对应文本框中。校准系数计算通过输入两组显示值和实际值自动计算校准系数K和B线性校准模型实际值K×显示值B支持对不同参数类型的针对性计算。校准系数配置将计算后的系数通过CAN总线下发至下位机并接收配置结果反馈记录操作日志。2. 校准系数计算逻辑private void crct_button1_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(crct_textBox1.Text) || string.IsNullOrEmpty(crct_textBox2.Text) || string.IsNullOrEmpty(crct_textBox3.Text) || string.IsNullOrEmpty(crct_textBox4.Text)) return; // 读取输入值 float displayVal1 Convert.ToSingle(crct_textBox1.Text); float actualVal1 Convert.ToSingle(crct_textBox2.Text); float displayVal2 Convert.ToSingle(crct_textBox3.Text); float actualVal2 Convert.ToSingle(crct_textBox4.Text); // 计算校准系数K和B float k (actualVal2 - actualVal1) / (displayVal2 - displayVal1); float b actualVal1 - k * displayVal1; // 系数缩放适配下位机存储格式 k * 10000; b * 100; Clib_K (uint)k; Clib_B (int)b; // 显示计算结果并更新对应参数的预览值 crct_textBox5.Text Convert.ToString(Clib_K); crct_textBox6.Text Convert.ToString(Clib_B); UpdateCalibPreview(crct_comboBoxSetKB.SelectedIndex, Clib_K, Clib_B); }四固件升级模块支持通过CAN总线向下位机更新固件程序实现设备功能迭代和bug修复。1. 核心功能文件加载与解析支持加载Intel Hex格式的固件文件解析文件中的机型名、版本号、目标地址等信息提取有效程序数据。升级过程控制提供固件下载、暂停、停止控制支持设置目标地址和App偏移量显示下载进度和状态信息总帧数、当前帧、下载状态。升级容错机制支持数据包重发、超时处理接收下位机升级结果反馈成功/失败原因确保升级可靠性。2. 固件数据发送逻辑private void Upda_botton4_Click(object sender, EventArgs e) { BlockNo 0; UpdataFlagStart 1; Upda_textBox7.Clear(); // 发送升级触发命令重复5次确保接收 for (int i 0; i 5; i) { SendTrigUpdate(); Thread.Sleep(300); } // 发送第一包包头 SendBlockDataHead(BlockNo); } // 发送数据包头 void SendBlockDataHead(int BlockNum) { byte[] Data new byte[8]; Data[0] 0x10; Data[1] 0x05; Data[2] 0x01; Data[3] 0x26; Data[4] 0xFF; Data[6] 0xE9; Data[7] (byte)(BlockNum 1); CANSend(0x1CECF300, Data, 8); ShowInlistBox_SendHeadCode(0x1CECF300, BlockNum, Data); }五代码交互模块提供底层CAN数据帧的直接操作接口支持提取码管理和自定义发送代码功能适用于高级调试场景。1. 核心功能提取码管理解析固件文件中的提取码信息展示在列表中支持手动编辑和保存。自定义发送代码允许用户输入自定义CAN数据帧ID、数据长度、数据内容手动触发发送用于测试下位机特定功能响应。六其他控制功能模块提供硬件使能、软件使能等辅助控制功能支持自适应客户场景的快速配置。1. 核心功能硬件使能控制通过复选框控制硬件使能信号的开关实时下发控制命令。软件使能控制提供软件开机/关机按钮支持通过CAN总线控制下位机的软件使能状态配合硬件使能实现双重控制。三、下位机软件功能详解下位机软件基于PIC18F46K80单片机开发实现DCDC电源的底层控制逻辑包括CAN通信、参数采样、闭环控制、故障保护等核心功能。一系统初始化模块负责单片机IO口、定时器、ADC、CAN模块等外设的初始化配置为系统运行奠定基础。1. 核心初始化功能IO口配置配置电源控制引脚模块开关、使能信号、采样引脚电压、电流、温度、通信引脚CAN TX/RX的输入输出方向。定时器配置Timer0用于1ms定时中断实现周期性任务调度参数采样、状态检测Timer2用于PWM信号生成控制电源输出。ADC配置配置ADC模块用于模拟量采样电压、电流、温度设置采样通道、参考电压和转换时钟。CAN模块配置初始化CAN通信参数波特率、滤波方式、帧格式设置接收/发送缓冲区使能中断。2. 初始化核心代码void Sysinit(void) { // oscillator configuration OSCCON 0x00; OSCCON2 0x00; OSCTUNE 0x00; // IO initialization InitIO(); // Timer initialization InitTimer(); // PWM initialization InitPWM(); // CAN initialization InitCan(); // ADC initialization InitADC(); // Interrupt configuration INTCON1bits.TMR0IF 0; INTCON1bits.TMR0IE 1; INTCON1bits.PEIE 1; INTCON1bits.GIE 1; }二CAN通信模块实现与上位机的CAN数据交互包括数据接收、解析、响应及主动上报功能是上下位机协同工作的核心。1. 核心功能数据接收与解析接收上位机下发的控制命令参数配置、固件升级、使能控制解析命令类型和参数内容触发对应处理逻辑。数据主动上报周期性上报电源运行参数电压、电流、温度、状态信号告警、保护、校准系数等信息上报周期可配置。通信容错处理支持CAN总线超时检测10S无通信则复位CAN模块、数据帧溢出处理、重发机制确保通信可靠性。2. CAN数据接收与解析逻辑void CanComm_Pross(void) { if (ucRxCurT ! ucRxCurH) // 存在未处理的接收数据 { // 解析CAN ID和数据 uchar ucPgn sSMRXBUF[ucRxCurH].id 16; uchar ucData0 sSMRXBUF[ucRxCurH].msg[0]; switch (ucPgn) { case 0xe1: // 读取校准系数 ucPara_NO ucData0; ucSet_Result 0; SendBMS_PARA(); // 上报对应校准系数 break; case 0xe2: // 设置校准系数 ucPara_NO ucData0; ParseCalibParams(sSMRXBUF[ucRxCurH].msg); // 解析并保存系数 SendBMS_PARA(); // 反馈设置结果 break; case 0xe8: // 固件升级触发 ucUpdataSpring; if (ucUpdataSpring 3) { Init_Updata(); Updata_Start(); } break; // 其他命令处理... } ucRxCurH; if (ucRxCurH 10) ucRxCurH 0; } // 周期性上报运行参数 if (ucAutoSend 50) { ucAutoSend 0; SendPC(); // 上报参数和状态 } }三参数采样与控制模块实现电源关键参数的实时采样、闭环控制及校准修正确保输出电压、电流的稳定性和准确性。1. 核心功能模拟量采样通过ADC模块采集输出电压、输出电流、模块电流MK1-MK3、24V辅助电源电压、环境温度等参数采用滑动平均滤波减少噪声干扰。闭环控制基于PID控制算法或PWM占空比调节实现输出电压的精准控制支持限流点动态调整根据输入电压、温度进行降额。校准修正应用上位机配置的校准系数对采样数据进行修正提高测量精度。2. 电压控制逻辑void OutHandle(void) { uint uitemp; ulong ultemp; int itemp; // 计算目标PWM占空比基于设置电压和校准系数 itemp uiSetVolt * 10 iOutVAdjB; if (itemp 0) itemp 0; ultemp itemp; if (ultemp 2475) ultemp - 2475; else ultemp 0; ultemp ultemp * 20 / 9; ultemp * iOutVAdjK; ultemp / 10000; uitemp (uint)ultemp; if (uitemp 1000) uitemp 1000; // 关机状态下关闭PWM输出 if (cOffFlag) uitemp 0; // 设置PWM占空比 PWM4 uitemp; SetDCPWM4(uitemp); ucAdjVolt_Cycle 0; }四故障保护与告警模块实现电源各类故障的检测、保护及告警上报保障系统安全可靠运行。1. 核心功能故障检测支持输出欠压、输出过压、输出短路、输入欠压、输入过压、过温、模块故障等16类故障的检测检测阈值可配置。保护动作根据故障等级触发相应保护动作包括模块关断、电源关机、打嗝模式短路保护等避免故障扩大。告警上报将故障信息通过CAN总线上报至上位机同时记录故障状态支持故障恢复检测。2. 过温保护逻辑void ROOMTEM_JUDGE(void) { uchar uctemp1 ucTemFlag1; uchar uctemp2 ucTemFlag2; // 过温告警检测85℃ if (iRoomTem ROOMOTWARN) uctemp1 | 0x01; else if ((iRoomTem 3) ROOMOTWARN) uctemp1 ~0x01; // 过温保护检测100℃ if (iRoomTem ROOMOTFAIL) uctemp2 | 0x01; if ((iRoomTem 20) ROOMOTFAIL) uctemp2 ~0x01; // 更新告警状态 if (uctemp1) { ucOTWarn; if (ucOTWarn 65) { ucOTWarn 65; uiNewalarm | 0x40; // 置位过温告警标志 } } else { ucOTWarn--; if (ucOTWarn 35) { ucOTWarn 35; uiNewalarm ~0x40; // 清除过温告警标志 } } // 触发过温保护动作 if (uctemp2) { ucOTFail; if (ucOTFail 65) { ucOTFail 65; uiNewalarm | 0x20; // 置位过温保护标志 cOffFlag | 0X10; // 触发关机保护 bOut_OT 1; } } else { ucOTFail--; if (ucOTFail 35) { ucOTFail 35; uiNewalarm ~0x20; // 清除过温保护标志 cOffFlag ~0X10; // 恢复开机 bOut_OT 0; } } ucTemFlag1 uctemp1; ucTemFlag2 uctemp2; }四、系统通信协议上下位机基于CAN 2.0B扩展帧协议通信采用标准化的帧ID和数据格式确保数据交互的一致性和兼容性。一帧ID定义上位机下发命令帧ID0x18E1F300参数查询、0x18E2F300参数设置、0x18E8F300固件升级触发等。下位机上报数据帧ID0xF02DF3状态信号、0xF12DF3运行参数、0xF22DF3模块参数、0xE300F3校准系数反馈等。二数据格式以运行参数上报帧ID0xF12DF3为例数据长度为8字节字节0-1输出电压单位0.1V大端模式字节2-3输出电流单位0.1A大端模式字节4-5高压输入电压单位V大端模式字节6-724V辅助电源电压单位0.01V大端模式五、系统特点与应用场景一核心特点全功能覆盖涵盖设备配置、参数监控、校准、升级、保护等完整功能满足电源全生命周期管理需求。高可靠性具备CAN通信容错、故障保护、固件升级容错等机制适应车载复杂电磁环境。精准控制采用线性校准模型和闭环控制算法电压、电流控制精度高。易用性强上位机提供可视化操作界面支持参数一键配置、日志记录和故障排查。二应用场景适用于新能源汽车、工业电源等领域的3.3KW级DCDC电源转换系统可实现高压如200-700V到低压如24V的高效转换为车载电子设备、工业控制系统提供稳定电源供应。

更多文章