Skip to content

EVerest/open-chaoji

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenChaoJi

A snapshot of https://standard.cec.org.cn/openchaoji/git/OpenChaoJi/CoreLib.git

OpenChaoJi


License

中国首个电动汽车充电国家标准开源实施项目 | English Version | 标准原文 📖


📌 项目背景

根据GB/T 18487.1-2023与GB/T 27930-2023最新国家标准要求,由中国电力企业联合会主导发起的标准实施开源项目。通过开源协作实现:

  • 📐 标准条款的技术化解读
  • 🧩 基础代码参考实现
  • 🔄 标准-技术-产业的正向循环
  • 🌍 兼容国际主流充电协议(CCS/CHAdeMO等)

🏭 发展历程

gantt
    title OpenChaoJi项目进展情况
    dateFormat  YYYY-MM
    section 核心库工作组
    筹备       :done, 2023-09, 2024-03
    确认组织架构      :done, 2023-12, 2024-01
    工作组启动     :active, 2024-03, 2024-04
    架构设计:done, 2024-04, 2024-07
    主要代码开发:active, 2024-07, 2024-12
    B类系统线下联调: done, 2024-11, 2024-12
    A类系统线下联调: done, 2024-12, 2025-01
    参考设计实现: active, 2024-12, 2025-03
    第一版本发布: active, 2025-03, 2025-04
Loading

💼组织架构

graph TD
    OpenChaoJi开源项目管理委员会-->主任
    subgraph 工作组
      主任-->核心库工作组
      主任-->标准工作组
      主任-->合规工作组
    end
    subgraph 组长
      核心库工作组-->核心库组长
      标准工作组-->标准组长
      合规工作组-->合规组长
      标准组长-.联络.-核心库组长
      标准组长-.联络.-合规组长
    end

Loading

🏅参与单位与核心成员

单位名称 核心成员 联系方式 主要职责
国网电力科学研究院有限公司 李旭玲 [email protected] 牵头, 标准解读
厦门银河龙芯科技有限公司 陈兵 [email protected] 组长, 架构设计, x86模拟实现
国网电力科学研究院有限公司 耿群锋 [email protected] 标准解读
领充新能源科技有限公司 赵绿化 [email protected] 传输层和会话层, B类系统自检模块
山东鲁软数字科技有限公司 刘邦义 [email protected] 数据管理, B类系统鉴权,预充和能量传输, 停充模块
长园深瑞能源技术有限公司 陈敏康 [email protected] B类系统HAL实现, B类系统服务统计模块
国网智慧车联网技术有限公司 赵建喜 [email protected] A类系统实现
洛阳嘉盛电源科技有限公司 毕冉星 [email protected] A类系统HAL实现, B类系统功能协商和参数配置模块
星星充电 王炫炫 [email protected] 链路层实现, B类系统结束模块
特来电新能源股份有限公司 张康乐 [email protected] 导引层实现, B类系统导引模块
山东鲁软数字科技有限公司 李祖友 [email protected] B类系统预充和能量传输
洛阳嘉盛电源科技有限公司 李文龙 [email protected] A类系统HAL实现
领充新能源科技有限公司 王志豪 [email protected] B类系统自检模块

其他参与本项目的成员还包括 朱福([email protected], 长园深瑞能源技术有限公司), 罗光盛([email protected], 长园深瑞能源技术有限公司), 胡超([email protected], 山东鲁软数字科技有限公司), 何源([email protected], 特来电新能源股份有限公司)等


🏗️ 架构设计原则

分层架构实现

分层架构

核心设计特性

原则 技术实现方案 优势
硬件无关性 硬件抽象层(HAL)设计 支持ARM/RISC-V/x86等架构
系统无关性 无操作系统依赖 兼容裸机/RTOS/Linux等
协议兼容性 模块化协议栈 同时支持CCS1/CCS2/CHAdeMO
可移植性 ANSI C99核心实现 嵌入式平台友好
可验证性 配套标准测试用例 确保实施一致性

🛠️ 核心组件

分层实现库

软件模块架构


📁 目录结构

.
├── docs                # 项目设计文档和使用说明等
├── evcc
|   ├── app             # evcc的主入口
|   ├── gbt27930        # evcc的gtb27930协议实现
|   ├── include         # evcc的app/hal/context等头文件
|   └── utility         # evcc的链路层, 导引层, 会话层实现
├── secc
|   ├── app             # secc的主入口
|   ├── gbt27930        # secc的gtb27930协议实现
|   ├── include         # secc的app/hal/context等头文件
|   └── utility         # secc的链路层, 导引层, 会话层实现
├── shared
|   ├── include         # evcc和secc通用的配置和声明等头文件
|   └── src             # evcc和secc通用的定义,编解码, 数据缓冲区和传输层实现
├── todo                # 项目中发现的待处理问题
└── x86                 # x86模拟实现

📜 标准实施要点

代码使用示例

int main()
{
    secc_app_init();

    // 通过定时触发service服务来驱动整个系统的活动
    // 厂家可以通过线程,中断,死循环等各种方式实现, 只需要保证频度足够
    // 但是本方法需要保证不能阻塞
    while (1)
    {
        secc_app_service();

        usleep(2000);
    }

    secc_app_term();

    return 0;
}

void secc_app_init()
{
    OpenChaoJi_os_memeory_init();

    // 设置默认的打印级别, 后续运行时App可以根据实际情况调用此方法修改打印级别以获得不同程度的调试信息
    OpenChaoJi_debug_set_log_level(DEFAULT_DBG_LEVEL
                                // | DBGL_INFO
                                // | DBGL_DEBUG
                                );

    for (int idx = 0; idx < HAL_SIMU_CONNECTOR_NUM; idx++)
    {
        // 厂家首先需要初始化HAL层
        secc_hal_one_init(idx);

        // 创建上下文, 上下文将是后续所有模块通信的唯一句柄
        secc_app_one_init(idx);

        s_secc_context[idx] = OpenChaoJi_secc_create_context(&s_secc_create_info[idx]);
        if (s_secc_context[idx] == NULL)
        {
            continue;
        }
    }
}

void secc_app_service()
{
    // 运行时实时修改打印级别
    secc_app_check_dbg_level();
    secc_app_check_dgb_module();

    for (int idx = 0; idx < HAL_SIMU_CONNECTOR_NUM; idx++)
    {
        if (s_secc_context[idx] != NULL)
        {
            secc_hal_one_service(idx);

            // 检查启动停止
            if (secc_app_one_check_start(idx))
            {
                s_secc_context[idx]->secc_gbt27930_system->app_start_func(s_secc_context[idx], &s_secc_app_parameter[idx]);
            }
            if (secc_app_one_check_stop(idx))
            {
                s_secc_context[idx]->secc_gbt27930_system->app_stop_func(s_secc_context[idx]);
            }

            // 更新实时状态
            s_secc_context[idx]->secc_gbt27930_system->app_get_status_func(s_secc_context[idx], &s_secc_app_status[idx]);

            // 执行serivce
            OpenChaoJi_secc_service(s_secc_context[idx]);
        }
    }
}

🚀 快速接入

# x86编译示例
$ git clone https://standard.cec.org.cn/openchaoji/git
$ cd openchaoji
$ make -j4

📚 集成使用说明


🌐 生态建设

产业协作模式

graph LR
    标准工作组-->|发布|参考实现
    参考实现-->|适配|车企
    参考实现-->|适配|充电桩厂商
    车企-->|反馈|标准迭代
    充电桩厂商-->|反馈|标准迭代
    标准工作组-->|更新|参考实现
Loading

参与机构

机构类型 主要贡献
检测机构 标准测试用例开发
车企 实车验证场景提供
充电运营商 现场部署经验反馈
芯片厂商 HAL层参考实现

📬 加入工作组

标准共建流程

  1. 申请报名并审核通过
  2. 参与双周技术例会
  3. 认领标准开发任务
  4. 提交代码/文档PR

联络方式

标准化进程


:本项目的三大使命:

  1. 建立标准实施的"参考系"
  2. 打造产业协作的"连接器"
  3. 构建技术演进的"试验田"

About

ChaoJi library suite

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •