国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

    文章

    2043

    瀏覽量

    135215
  • 工業通訊
    +關注

    關注

    0

    文章

    96

    瀏覽量

    11952
  • 車載通訊
    +關注

    關注

    0

    文章

    11

    瀏覽量

    7485
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    CAN 總線錯誤檢測機制#can總線

    CAN 總線
    北匯信息POLELINK
    發布于 :2023年05月26日 13:54:03

    什么是CAN時鐘?#CAN #汽車CAN總線? #CANoe

    CAN總線
    北匯信息POLELINK
    發布于 :2024年10月29日 12:23:36

    CAN總線基礎知識匯總#CAN #CANoe #汽車總線

    CAN總線
    北匯信息POLELINK
    發布于 :2024年11月04日 13:35:54

    什么是CAN總線 CAN總線什么作用

    對多點及全局廣播等幾種方式傳送數據,無需專門的調度。? CAN 總線的數據采用短幀結構,傳輸時間短,受干擾概率低,具有極好的檢錯效果。? CAN 總線采用 CRC 檢驗并可提供相應的錯
    發表于 12-13 14:26

    什么是CAN總線CAN哪些特性?

    什么是CAN總線CAN總線是如何發展的?CAN總線是如何工作的?
    發表于 05-20 06:16

    CAN總線協議是什么?CAN總線協議哪些?CAN總線協議知識分析

    屬于軟件協議。本篇文章先概述一下CAN網絡,讓大家對CAN總線協議一個全局的概念,再到底層的CAN總線
    的頭像 發表于 10-03 19:53 ?7.6w次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>協議是什么?<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>協議<b class='flag-5'>有</b>哪些?<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>協議知識分析

    CAN總線協議教程|CAN報文分析

    功能,讓每個節點對報文選擇性地做出響應。 總線使用不歸零位填充。模塊以線與邏輯連接到總線:如果只有一個節點向總線傳輸邏輯0,那么不管有多少
    發表于 04-03 15:32 ?1.5w次閱讀

    CAN總線的優點和應用領域哪些

    canbus光纖轉換器是一種CAN總線網關,也就是實現CAN總線數據與其他數據之間相互轉換的工具。為什么工程師們要開發這個東西呢?因為CAN
    的頭像 發表于 03-01 13:22 ?5802次閱讀

    基于FPGA的CAN總線通信節點設計

    節點的硬件接口電路。基于對CAN 總線控制器的功能分析, 并應用Verilog語言進行軟件設計, 從而實現CAN節點之間的通信功能。 0 引
    的頭像 發表于 06-18 11:15 ?4384次閱讀

    認識CAN總線錯誤 CAN總線錯誤分析與解決

    認識CAN 總線錯誤的第一步就是了解認識CAN 總線協議和它的具體功能,這樣才能更容易地理解CAN
    發表于 08-14 15:18 ?9461次閱讀
    認識<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>錯誤 <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>錯誤分析與解決

    高速CAN總線和低速CAN總線的特性

    高速CAN總線和低速CAN總線的特性 高速CAN總線和低速C
    的頭像 發表于 01-31 14:09 ?4578次閱讀

    can總線的故障波形哪些

    詳細介紹CAN總線的故障波形及其原因和解決方法。 故障波形概述 故障波形是指在CAN總線通信過程中,由于各種原因導致的數據傳輸異常。故障波形的類型
    的頭像 發表于 06-16 10:04 ?3881次閱讀

    CAN總線測試工具的主要功能

    CAN總線測試工具是用于測試CAN(Controller Area Network)總線通信的軟件或硬件工具,其功能豐富且多樣化。以下是
    的頭像 發表于 06-25 16:02 ?2491次閱讀

    CAN總線的擴展功能及其應用

    CAN總線以其高可靠性、實時性和靈活性在現代電子系統中扮演著重要角色。隨著技術的發展,CAN總線也在不斷擴展其功能,以適應更廣泛的應用需求。
    的頭像 發表于 12-23 09:04 ?2455次閱讀