0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CAN总线有哪些功能?

汽车电子技术 来源:工控码农 作者:工控码农 2023-02-07 09:57 次阅读

CAN总线功能介绍

CAN总线是博世公司1986年发明的用于汽车内部单片机电路板(ECU)之间通讯,硬件上使用2根线实现数据传输,CAN总线通讯单元不再是单个字节,而是一个数据包,这个数据包包含了数据长度,数据内容,目的地址ID,CRC校验等,相较于485232通讯数据的组包是在软件实现的,CAN总线是硬件实现,编程时只要设置相关的参数即可.目前在车载通讯和工业通讯都使用的比较多.主要功能有:
  • 不大于8字节应用报文实时通讯:控制灯光开关,天窗开关,空调控制等,涉及到具体的模块的实际业务逻辑
  • 大于8字节的长报文通讯:读取故障码,软件版本,OTA等

Lua简介

Lua是一个文本脚本语言,1993年巴西人发明的,能嵌入到C,C++执行,即可以调用C/C++的函数,目前在游戏行业用的比较多.

C/C++为什么需要脚本语言

C/C++代码运行的时候已经由编译器编译成了二进制的机器码了,执行速度快.公司项目需求变化快,类似项目超级多,不同项目的核心功能基本不变的,只是业务逻辑的变化.如果全部用C/C++实现,一方面软件版本过多,不好维护。另一方面架构做的不够好时可能会造成改一个小功能,会造成核心代码修改.然而采用C/C++加脚本的架构实现有如下优势:

  • C/C++实现核心功,框架搭建,脚本负责业务逻辑(C/C++的不同函数组合),设计之初就是朝着模型和业务分离的实现,自然地实现高内聚低耦合的架构。
  • 便于团队分工,新员工比较快熟悉业务.

为什么是Lua

目前最火的脚本语言是Python,对此Lua有如下优点:

  • Lua移植简单:Lua编译器是用标准C写的,比较容易集成到不同的编译器(Keil,gcc,qt等)。不像什么MicroPython只支持GCC编译器.
  • 开销小:一般的Cortex M0及以上单片机都可以移植Lua编译,还有很大的一部分空间和时间运行C代码.
  • 干净:不像Python运行还要安装其它的环境,Lua是寄宿在C/C++中的,不需要安装。
  • 容易上手,学习成本几乎为零.只要公司开发个Demo,新人参考Demo就可以直接写Lua代码.
    CAN用Lua做什么
  • 自动化测试:C/C++提供发送接收报文 延时等函数接口,Lua组合发送不同的报文以及时序来验证ECU的各个功能是否正确,然后生成测试报告以及保存相关的通讯报文记录。
  • OTA升级:现在新能源汽车的每个ECU都支持OTA功能,通讯组包使用ISO 15765-2协议实现,每个汽车主机厂都是一样的,只是安全访问 顺序可能有些差别.就像ZLG ZCAN Pro,CANOE都支持用户开发升级功能。ZLG的方式是:使用Dll实现,需要使用 VStudio,学习成本高.CANOE的方式是:他们自己弄了一套CAPL脚本语言,公司没有强大的实力是搞不出来的,这也是CANOE贵的原因之一吧!使用Lua的话,C/C++实现ISO 15765-2,HEX文件的解析和分割.Lua是调用发送接收接口,HEX文件读取,安全访问的密钥计算等.

Demo

C/C++的接口暴露给LUA:

lua_State* L;


static const struct luaL_Reg Iterface[]
{
    {"send_data",LSendData},  //脚本里调用send_data字符串就可以调用到LSendData函数
    {"get_rx_data",LGetRxData},
    {"print",LPrint},
    {"delay",LDelay}, 
    {0,0},
};


void Lua_Init()
{
   L = luaL_newstate();
   luaopen_base(L);
   luaL_setfuncs(L,Iterface,0);
}

Lua脚本业务代码

print('ECU功能测试')
--发送一帧数据唤醒单片机
send_data(0x431,0x30,0x32)
--延时50ms
delay(50)
--开天窗
send_data(0x38A,0x1)
delay(5000)
--关天窗
send_data(0x38A,0x1)
--ECU复位
send_data(0x880,0x11,0x1,0x67)

总结

Lua之于CAN就像html和英特网的关系一样,在新能源汽车发展如火如荼的今天,CAN的应用也越来越多,都有OTA升级的要求,Lua不仅在基于CAN系统的测试,升级方面也能够有自己的一席用武之地,在其它的Modbus之类的标准通讯也是可以使用Lua的.
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CAN总线
    +关注

    关注

    145

    文章

    1812

    浏览量

    129600
  • 工业通讯
    +关注

    关注

    0

    文章

    54

    浏览量

    11448
  • 车载通讯
    +关注

    关注

    0

    文章

    10

    浏览量

    7353
收藏 人收藏

    评论

    相关推荐

    应用最新的CAN总线增强功能,实现安全可靠的高速汽车通信

    多年来,设计人员一直依靠控制器局域网 (CAN) 在汽车的各个子系统和电子控制单元 (ECU) 之间进行可靠的通信。然而,随着板载网络节点数量的增加,所需的数据吞吐量以及对更低延迟和更高级安全性
    的头像 发表于 01-31 09:58 2972次阅读
    应用最新的<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>增强<b class='flag-5'>功能</b>,实现安全可靠的高速汽车通信

    什么是CAN总线CAN哪些特性?

    什么是CAN总线CAN总线是如何发展的?CAN总线是如何工作的?
    发表于 05-20 06:16

    数字化显示装置在AMT中的应用

    数字化显示装置在AMT中的应用:摘要:根据驾驶员对于自动机械变速器实际状态信息的需要,设计了具备CAN 总线通讯功能的数字化显示装置。从显示和通讯两个角度说明了该数字
    发表于 05-16 22:28 14次下载

    基于CAN总线的多功能大型粮仓远程监测系统

    介绍了一种基于CAN 总线的多功能大型粮仓远程监测系统,详细描述了系统的总体结构原理、硬件电路组成和软件的设计。该系统不仅能实时监测温度和湿度,而且还能监测粮食虫害
    发表于 07-30 15:41 10次下载

    基于CAN总线的污水加药控制系统设计

    针对当前污水处理过程中加药控制效率低、絮凝效果不稳定的缺点,开发了一种具有CAN总线通讯功能的加药自动控制系统。并介绍了污水处理过程中加药系统的工作原理和基本结构
    发表于 09-01 10:16 13次下载

    单片机温度采集器与PC104分站的串行通信

    单片机温度采集器与PC104分站的串行通信:用PC104 模块组建的矿井变电所采集分站,具有强大的以太网和CAN 总线通信功能。在PC104模块底板上,设计了一个基于89C2051 单片机的温度采集器,
    发表于 12-03 22:32 33次下载

    单片机仿真PLC控制在护理床驱动模块中的应用

    针对目前国内外对电动护理床的需求,提出了一种基于CAN总线的多功能电动护理床。简要介绍了护理床的结构、功能以及CAN
    发表于 09-25 11:27 47次下载

    基于80C196单片机和CAN总线的全数字电动执行器的设计

    ,以提高具控制的精度与运行的可靠性。同时,为方便调试,增加了红外遥控的功能和基于CAN总线的通信功能,以适应现代工业控制的需要。
    的头像 发表于 09-19 07:57 2741次阅读
    基于80C196单片机和<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>的全数字电动执行器的设计

    VPG推出了一款重型单端弯曲梁式称重传感器Agribar

    VPG于今天宣布推出Agribar称重传感器(型号 5330)。 Agribar是一款重型单端弯曲梁式称重传感器,专门用于农业生产,具有 CAN 总线选项功能
    发表于 03-06 08:45 1560次阅读

    应用最新的 CAN 总线增强功能实现安全可靠的高速汽车通信

    发表于 11-25 08:31 0次下载
    应用最新的 <b class='flag-5'>CAN</b> <b class='flag-5'>总线</b>增强<b class='flag-5'>功能</b>实现安全可靠的高速汽车通信

    Loto实践干货(3) 测量CAN总线通讯数据

    最近在做运动控制卡的项目,调试样机的过程中,需要验证CAN总线通讯功能的正确性。以前只限于理论上认识CAN总线,使用的CANbus的通讯卡也
    的头像 发表于 05-31 00:00 769次阅读
    Loto实践干货(3) 测量<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>通讯数据

    【Nuvoton M487模块评测】CAN总线通信功能评测

    本次 测评的主要思路是 硬件连接->软件功能设置->基本数据收发
    发表于 08-03 17:32 614次阅读
    【Nuvoton M487模块评测】<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>通信<b class='flag-5'>功能</b>评测

    手持式PCAN-Diag FD现可扩展为J1939监控器

    PCAN-DiagFD功能更新PCAN-DiagFD可以监控CAN/CANFD总线的通信情况,可以检测总线波特率,测量总线负载、终端电阻值、
    的头像 发表于 07-31 22:17 604次阅读
    手持式PCAN-Diag FD现可扩展为J1939监控器

    CAN协议栈与LIN协议栈介绍

    CAN协议栈 汽车CAN协议栈是一种软件组件,用于实现汽车电子系统中的CAN总线通信功能。它包含了一系列的
    的头像 发表于 10-27 16:16 1789次阅读
    <b class='flag-5'>CAN</b>协议栈与LIN协议栈介绍

    虹科PCAN-Diag FD简介及其应用——检测与诊断

    ,测量总线负载、终端电阻值、CAN_H和CAN_L的电压;支持数据库解析报文;集成了CAN总线记录的功能
    发表于 11-10 17:34 0次下载