IXXAT CANBridge產(chǎn)品是一款性能優(yōu)異的CAN網(wǎng)橋/路由器設(shè)備,支持CAN網(wǎng)絡(luò)耦合,可以實現(xiàn)強大的過濾,ID轉(zhuǎn)換、數(shù)據(jù)映射和多路復(fù)用,使用事件觸發(fā)的方式執(zhí)行預(yù)定義的操作。除通過CAN-Gateway Configurator工具的圖形菜單配置不同CAN網(wǎng)絡(luò)之間的數(shù)據(jù)映射外,CANBridge NT還支持使用Lua編寫操作規(guī)則,方便實現(xiàn)不同CAN網(wǎng)絡(luò)之間的數(shù)據(jù)轉(zhuǎn)換。
1. 創(chuàng)建lua腳本
Ixxat Lua ADK基于標(biāo)準(zhǔn)的Lua 5.3.5發(fā)行版,針對嵌入式系統(tǒng)開發(fā)和執(zhí)行進行了優(yōu)化,以提供可以在資源有限的嵌入式處理器上運行的腳本框架。
IXXAT Lua ADK使用3中類型的回調(diào)函數(shù):initialize, on_...和loop。Initialize在系統(tǒng)初始化時被調(diào)用,用于注冊事件和設(shè)置CAN消息過濾。loop在初始化之后,啟動并運行設(shè)備時,每100毫秒調(diào)用一次,用于觸發(fā)循環(huán)任務(wù)。on_can和on_mqtt函數(shù)用于處理來自CAN和MQTT的事件。
安裝配置工具CAN-Gateway Configurator后,在C:UsersPublicDocumentsHMSIxxat CAN-Gateway ConfiguratorExamplesLua examples目錄中,提供了lua示例腳本。
can_demo.lua文件,展示如何通過Lua處理(發(fā)送和接收)CAN報文。
-最大頻率50赫茲(20毫秒)
-修改字節(jié)7和8的數(shù)據(jù)
并在CAN1上循環(huán)發(fā)送ID為0x300的消息。
1.1.1 initialize
在固件初始化時調(diào)用一次。它用于注冊需接收的CAN和MQTT消息,初始化變量。本例中,initialize調(diào)用can_register_msg注冊需處理的報文。
function initialize() print("initialize") can.register_msg({ format = "std", data_as = "array", ident = 0x200, topic = 1, port = 1, max_frequency = 20, }) end
1.1.2on_can
處理設(shè)備收到的CAN消息,本例中,處理接收到ID 0x200的報文,修改字節(jié)7和8的數(shù)據(jù)后,發(fā)送到CAN2。
function on_can(topic, port, format, ident, data) data[7] = data[7] << 1 ? ?data[8] = cnt ? ?cnt = cnt + 1 ? ?can_send(2, format, 0x201, data) end
1.1.3 loop
本例中,通過loop實現(xiàn)在CAN1上循環(huán)發(fā)送ID為0x300的消息。
function loop(ticks, elapsed) can_send(1, "csd", 0x300, payload) end
2. 使用Lua ADK
為了能夠在CANBridge設(shè)備上使用Lua ADK,必須使用Lua framework更新設(shè)備,并在CAN-Gateway Configurator中啟用Lua。具體步驟如下:
1、連接CANBridge設(shè)備到PC,并上電。
2、啟動安裝的最新版本CAN-GatewayConfigurator工具,并connect到設(shè)備。
3、配置設(shè)備的操作模式和CAN端口的波特率
4、在工具欄中打開Lua ADK菜單并選擇update Lua ADK。選擇C:Program FilesHMSIxxat CAN-Gateway Configurator V6下的lua_framework_vx文件更新Lua ADK。
5、在配置樹中選擇General,在其下拉列表中選擇use of Lua as ADK,選擇target 模式。
6、在Target菜單中,選擇Write configuration to target,將配置寫入連接的CAN設(shè)備。
7、在Lua ADK菜單,選擇Write Lua script to target,將創(chuàng)建好的lua腳本寫入CANBridge設(shè)備,在設(shè)備啟動后,Lua腳本將自動運行。
使用Lua ADK 可以為IXXAT 的CAN@net N及 CANBridge NT設(shè)備開發(fā)Lua應(yīng)用,方便的實現(xiàn)不同網(wǎng)絡(luò)直接的數(shù)據(jù)映射。
審核編輯:湯梓紅
-
嵌入式
+關(guān)注
關(guān)注
5052文章
18909瀏覽量
300710 -
CAN
+關(guān)注
關(guān)注
57文章
2686瀏覽量
462906 -
路由器
+關(guān)注
關(guān)注
22文章
3679瀏覽量
113268 -
回調(diào)函數(shù)
+關(guān)注
關(guān)注
0文章
87瀏覽量
11521 -
ADK
+關(guān)注
關(guān)注
0文章
7瀏覽量
4961
原文標(biāo)題:如何使用Lua ADK配置CANBridge?
文章出處:【微信號:麥克泰技術(shù),微信公眾號:麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論