0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

解鎖TSMaster fifo函數(shù):報(bào)文讀取的高效方法

上海同星智能科技有限公司 ? 2025-03-14 20:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言:

TSMaster目前有兩種讀取報(bào)文的模式:回調(diào)函數(shù)模式和fifo模式。fifo函數(shù)是TSMaster近期新增的函數(shù),本文將重點(diǎn)介紹fifo模塊。關(guān)于回調(diào)函數(shù)的使用方法可以參考幫助模塊的《快速入門》手冊(cè)。

1.

技術(shù)背景

TSMaster的小程序模塊中提供了接收事件、發(fā)送事件以及預(yù)發(fā)送事件等回調(diào)事件,如圖 1。相比于回調(diào)函數(shù),fifo函數(shù)使用起來(lái)比較靈活方便,可以在任意一個(gè)模塊使用,不再局限于接收、發(fā)送等回調(diào)事件。相關(guān)的fifo函數(shù)可以在【設(shè)計(jì)】-【C小程序】-【函數(shù)】中找到,如圖2。

71df9122-00cc-11f0-9434-92fbcf53809c.png

圖 1:小程序的回調(diào)模塊

7208cee8-00cc-11f0-9434-92fbcf53809c.png

圖 2:小程序的fifo函數(shù)模塊

2.

fifo函數(shù)概述

fifo是一種數(shù)據(jù)結(jié)構(gòu)或緩沖機(jī)制,它遵循先入先出的原則。在數(shù)據(jù)接收過(guò)程中,最早進(jìn)入 fifo的數(shù)據(jù)會(huì)被最先處理或讀取。fifo 有一個(gè)輸入端口和一個(gè)輸出端口。數(shù)據(jù)從輸入端口依次進(jìn)入 fifo緩沖區(qū),然后按照進(jìn)入的順序在緩沖區(qū)中排隊(duì)等待。當(dāng)需要讀取數(shù)據(jù)時(shí),從輸出端口按照先入先出的順序?qū)?shù)據(jù)取出。這樣可以確保數(shù)據(jù)的接收和處理順序與它們到達(dá)的順序一致,避免數(shù)據(jù)混亂或丟失。fifo的優(yōu)點(diǎn)是用戶可以在自己的任務(wù)或者線程中根據(jù)需要從驅(qū)動(dòng)中讀取數(shù)據(jù),延時(shí)等可以自己控制。缺點(diǎn)是異步的方式,是在報(bào)文已經(jīng)收發(fā)完成之后才會(huì)將數(shù)據(jù)取出進(jìn)行處理。

典型應(yīng)用:

在汽車發(fā)動(dòng)機(jī)、變速器等動(dòng)力總成系統(tǒng)中,多個(gè)傳感器和執(zhí)行器通過(guò) CAN 總線進(jìn)行通信。fifo用于接收來(lái)自各個(gè)傳感器(如節(jié)氣門位置傳感器、曲軸位置傳感器)的 CAN 報(bào)文。這些報(bào)文包含了發(fā)動(dòng)機(jī)運(yùn)行狀態(tài)、轉(zhuǎn)速、負(fù)荷等關(guān)鍵信息。fifo 按照?qǐng)?bào)文到達(dá)的先后順序存儲(chǔ),發(fā)動(dòng)機(jī)控制單元(ECU)從 fifo 中依次讀取報(bào)文,進(jìn)行數(shù)據(jù)分析和處理,進(jìn)而調(diào)整噴油時(shí)間、點(diǎn)火提前角等參數(shù),確保發(fā)動(dòng)機(jī)在不同工況下都能高效、穩(wěn)定運(yùn)行。

3.

fifo函數(shù)讀取報(bào)文功能實(shí)現(xiàn)

3.1 功能實(shí)現(xiàn)


3.1.1 讀取CAN報(bào)文

使用fifo讀取緩存報(bào)文之前,需要先調(diào)用com.tsfifo_enable_receive_fifo()函數(shù)。本小節(jié)將提供一個(gè)簡(jiǎn)單示例,可參考以下步驟。

【步驟1】新建程序啟動(dòng)事件,將使能fifo的函數(shù)添加到該事件函數(shù)里。如圖 3。

7240904e-00cc-11f0-9434-92fbcf53809c.png

圖 3: 程序啟動(dòng)事件

【步驟2】新建按鍵事件,將讀取fifo的函數(shù)添加到該事件函數(shù)里。如圖 4。

72795ee2-00cc-11f0-9434-92fbcf53809c.png

圖 4: 按鍵事件

【步驟3】新建程序停止事件,將取消使能fifo的函數(shù)添加到該事件函數(shù)里。如圖 5。

72a80d50-00cc-11f0-9434-92fbcf53809c.png

圖 5: 程序停止事件

【源碼如下】

72d6c2bc-00cc-11f0-9434-92fbcf53809c.png

3.1.2 讀取LIN報(bào)文

使用fifo讀取緩存報(bào)文之前,需要先調(diào)用com.tsfifo_enable_receive_fifo()函數(shù)??蓞⒖?.1.1讀取CAN報(bào)文小節(jié)。

【源碼如下】

72e2ab40-00cc-11f0-9434-92fbcf53809c.png

3.1.3 讀取FlexRay報(bào)文

使用fifo讀取緩存報(bào)文之前,需要先調(diào)用com.tsfifo_enable_receive_fifo()函數(shù)??蓞⒖?.1.1讀取CAN報(bào)文小節(jié)。

【源碼如下】

73001298-00cc-11f0-9434-92fbcf53809c.png

3.2 實(shí)現(xiàn)效果

啟動(dòng)小程序,發(fā)送報(bào)文,打印的消息可在【分析】-【系統(tǒng)消息】處查看,如圖 6。

7343a896-00cc-11f0-9434-92fbcf53809c.png

圖 6: 實(shí)現(xiàn)效果

4.

TSMaster fifo函數(shù)說(shuō)明

4.1 fifo函數(shù)說(shuō)明

4.1.1 com.tsfifo_enable_receive_fifo

736ae0be-00cc-11f0-9434-92fbcf53809c.png

4.1.2 com.tsfifo_disable_receive_fifo

738a9332-00cc-11f0-9434-92fbcf53809c.png

4.1.3 com.tsfifo_enable_receive_error_frames

739f88b4-00cc-11f0-9434-92fbcf53809c.png

4.1.4 com.tsfifo_disable_receive_error_frames

73cd154a-00cc-11f0-9434-92fbcf53809c.png

4.1.5 com.tsfifo_add_can_canfd_pass_filter

73e14a10-00cc-11f0-9434-92fbcf53809c.png

4.1.6 com.tsfifo_delete_can_canfd_pass_filter

73f73e4c-00cc-11f0-9434-92fbcf53809c.png

4.1.7 com.tsfifo_add_lin_pass_filter

7416c7c6-00cc-11f0-9434-92fbcf53809c.png

4.1.8 com.tsfifo_delete_lin_pass_filter

7445e38a-00cc-11f0-9434-92fbcf53809c.png

4.1.9 com.tsfifo_clear_can_receive_buffers

746a91b2-00cc-11f0-9434-92fbcf53809c.png

4.1.10 com.tsfifo_clear_canfd_receive_buffers

74889428-00cc-11f0-9434-92fbcf53809c.png

4.1.11 com.tsfifo_clear_lin_receive_buffers

74a13140-00cc-11f0-9434-92fbcf53809c.png

4.1.12 com.tsfifo_clear_flexray_receive_buffers

74b9c1b0-00cc-11f0-9434-92fbcf53809c.png

4.1.13 com.tsfifo_read_can_buffer_frame_count

74d580ee-00cc-11f0-9434-92fbcf53809c.png

4.1.14 com.tsfifo_read_can_rx_buffer_frame_count

74f92850-00cc-11f0-9434-92fbcf53809c.png

4.1.15 com.tsfifo_read_can_tx_buffer_frame_count

750e2a5c-00cc-11f0-9434-92fbcf53809c.png

4.1.16 com.tsfifo_read_canfd_buffer_frame_count

751cd52a-00cc-11f0-9434-92fbcf53809c.png

4.1.17com.tsfifo_read_canfd_rx_buffer_frame_count

7534ed9a-00cc-11f0-9434-92fbcf53809c.png

4.1.18 com.tsfifo_read_can_tx_buffer_frame_count

753d9882-00cc-11f0-9434-92fbcf53809c.png

4.1.19 com.tsfifo_read_lin_buffer_frame_count

7554a126-00cc-11f0-9434-92fbcf53809c.png

4.1.20 com.tsfifo_read_lin_rx_buffer_frame_count

75614980-00cc-11f0-9434-92fbcf53809c.png

4.1.21 com.tsfifo_read_lin_tx_buffer_frame_count

757b1856-00cc-11f0-9434-92fbcf53809c.png

4.1.22 com.tsfifo_read_flexray_buffer_frame_count

758f1f5e-00cc-11f0-9434-92fbcf53809c.png

4.1.23 com.tsfifo_read_flexray_rx_buffer_frame_count

75ac4de0-00cc-11f0-9434-92fbcf53809c.png

4.1.24 com.tsfifo_receive_can_msgs

75c2ee9c-00cc-11f0-9434-92fbcf53809c.png

4.1.25 com.tsfifo_receive_canfd_msgs

75d2b9bc-00cc-11f0-9434-92fbcf53809c.png

4.1.26 com.tsfifo_receive_lin_msgs

75ec9b48-00cc-11f0-9434-92fbcf53809c.png

4.1.27 com.tsfifo_receive_flexray_msgs

75f90540-00cc-11f0-9434-92fbcf53809c.png

5.

縮寫(xiě)

BLF

Binary Logging Format

CAN

Controller Area Network

CAN FD

CAN with Flexible Data-Rate

ID

Identifier

LIN

Local Interconnect Network

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • fifo
    +關(guān)注

    關(guān)注

    3

    文章

    400

    瀏覽量

    44804
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4379

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    TSMaster 中不同總線報(bào)文消息過(guò)濾的操作方式

    TSMaster軟件平臺(tái)支持對(duì)不同總線(CAN、LIN、FlexRay)報(bào)文和信號(hào)的過(guò)濾,包括全局接收過(guò)濾、數(shù)據(jù)流過(guò)濾、窗口過(guò)濾、字符串過(guò)濾、可編程過(guò)濾,針對(duì)不同的總線信號(hào)過(guò)濾器的使用方法基本相
    的頭像 發(fā)表于 06-22 08:21 ?2191次閱讀
    <b class='flag-5'>TSMaster</b> 中不同總線<b class='flag-5'>報(bào)文</b>消息過(guò)濾的操作方式

    MPU6050 dmp讀取數(shù)據(jù)FIFO溢出

    。據(jù)說(shuō)解決的方法就是,不能只用一個(gè)dmp_read_fifo(gyro, accel, quat, &sensor_timestamp, &sensors,&more);函數(shù)。我
    發(fā)表于 04-15 01:05

    CAN通信實(shí)驗(yàn)報(bào)文對(duì)象的FIFO緩沖器應(yīng)用

    關(guān)鍵詞 CAN報(bào)文對(duì)象的FIFO模式應(yīng)用摘 要 CAN通信實(shí)驗(yàn)
    發(fā)表于 11-07 14:18 ?33次下載

    FPGA之FIFO的原理概述

    FIFO隊(duì)列不對(duì)報(bào)文進(jìn)行分類,當(dāng)報(bào)文進(jìn)入接口的速度大于接口能發(fā)送的速度時(shí),FIFO報(bào)文到達(dá)接口的先后順序讓
    的頭像 發(fā)表于 11-29 07:04 ?4895次閱讀

    MPU6050不講武德,FIFO溢出始終無(wú)法解決,提高或降低讀取速度都不得行

    抄了原子哥的驅(qū)動(dòng)代碼,放在了c8t6最小系統(tǒng)板上去跑,一切正常,自檢原本通過(guò)不了,一頓操作后可以通過(guò)了,加速度角速度讀取也OK,唯獨(dú)讀取FIFO中的數(shù)據(jù)讀不出來(lái)具體為mpu_dmp_get_data
    發(fā)表于 12-06 14:51 ?4次下載
    MPU6050不講武德,<b class='flag-5'>FIFO</b>溢出始終無(wú)法解決,提高或降低<b class='flag-5'>讀取</b>速度都不得行

    新功能發(fā)布 | TSMaster診斷功能的典型應(yīng)用

    TSMaster典型應(yīng)用前面幾個(gè)章節(jié)主要介紹了關(guān)于TSMaster診斷模塊的一些基礎(chǔ)操作詳解,相信大家對(duì)TSMaster診斷模塊也有了一定的了解和認(rèn)知。本章節(jié)主要介紹關(guān)于TSMaster
    的頭像 發(fā)表于 07-04 09:27 ?1836次閱讀
    新功能發(fā)布 | <b class='flag-5'>TSMaster</b>診斷功能的典型應(yīng)用

    應(yīng)用筆記 | TSMaster如何代碼自動(dòng)發(fā)送LIN報(bào)文

    前面我們出了關(guān)于TSMaster應(yīng)用筆記系列的幾篇文章,小伙伴反饋都非常實(shí)用,也是工程師們?cè)谑褂?b class='flag-5'>TSMaster軟件中切切實(shí)實(shí)會(huì)遇到的問(wèn)題,今天繼續(xù)給大家?guī)?lái)應(yīng)用筆記系列文章——如何代碼自動(dòng)發(fā)送
    的頭像 發(fā)表于 08-25 11:05 ?2418次閱讀
    應(yīng)用筆記 | <b class='flag-5'>TSMaster</b>如何代碼自動(dòng)發(fā)送LIN<b class='flag-5'>報(bào)文</b>

    應(yīng)用筆記 | TSMaster快速入門篇(2)-報(bào)文回放

    支持格式TSMaster的數(shù)據(jù)回放默認(rèn)支持blf格式(未來(lái)會(huì)增加對(duì)其他格式的支持)。如果需要分析其他數(shù)據(jù)格式的log文件,需要通過(guò)文件轉(zhuǎn)換器從其他格式轉(zhuǎn)成blf格式。一離線回放離線回放也就是通常所說(shuō)
    的頭像 發(fā)表于 11-23 09:35 ?5017次閱讀
    應(yīng)用筆記 | <b class='flag-5'>TSMaster</b>快速入門篇(2)-<b class='flag-5'>報(bào)文</b>回放

    干貨分享 | TSMaster的記錄功能需求與實(shí)踐

    ,TSMaster記錄模塊怎么開(kāi)始使用?1.2測(cè)試時(shí)總是忘記開(kāi)始記錄報(bào)文,如何實(shí)現(xiàn)工程啟動(dòng)后【自動(dòng)記錄】報(bào)文trace?1.3我想實(shí)現(xiàn)【不同通道】的【特定報(bào)文】記
    的頭像 發(fā)表于 04-20 10:20 ?2462次閱讀
    干貨分享 | <b class='flag-5'>TSMaster</b>的記錄功能需求與實(shí)踐

    干貨分享 | TSMaster小功能之如何在圖形中監(jiān)控某一條DBC報(bào)文發(fā)送周期?

    今天給大家介紹TSMaster小功能之如何在圖形中監(jiān)控某一條DBC報(bào)文發(fā)送周期,想要實(shí)現(xiàn)這個(gè)功能,需要借助TSMaster的小程序功能來(lái)實(shí)現(xiàn)。步驟一1.創(chuàng)建一個(gè)用戶變量Cycle,用于在圖形中顯示
    的頭像 發(fā)表于 05-09 15:48 ?1936次閱讀
    干貨分享 | <b class='flag-5'>TSMaster</b>小功能之如何在圖形中監(jiān)控某一條DBC<b class='flag-5'>報(bào)文</b>發(fā)送周期?

    單片機(jī)自定義協(xié)議FIFO高效發(fā)送數(shù)據(jù)方法

    單片機(jī)自定義協(xié)議FIFO高效發(fā)送數(shù)據(jù)方法
    的頭像 發(fā)表于 09-28 17:32 ?1104次閱讀
    單片機(jī)自定義協(xié)議<b class='flag-5'>FIFO</b><b class='flag-5'>高效</b>發(fā)送數(shù)據(jù)<b class='flag-5'>方法</b>

    TSMaster報(bào)文發(fā)送的信號(hào)生成器操作說(shuō)明

    信號(hào)生成器功能是TSMaster分析中的報(bào)文發(fā)送模塊。信號(hào)生成器用于發(fā)送和配置每個(gè)CAN/LIN信號(hào)的值變化行為,簡(jiǎn)而言之,這是一個(gè)可以控制和調(diào)整CAN/LIN信號(hào)值的功能。我們可選擇的信號(hào)生成器
    的頭像 發(fā)表于 12-23 08:21 ?1556次閱讀
    <b class='flag-5'>TSMaster</b><b class='flag-5'>報(bào)文</b>發(fā)送的信號(hào)生成器操作說(shuō)明

    TSMaster VLAN配置方法

    ,以太網(wǎng)目錄Catalog1.VLAN的配置方法2.TCP/IP通訊帶VLAN測(cè)試1.TSMaster配置VLANVLAN配置流程如下:1)VLAN配置窗口位于菜單
    的頭像 發(fā)表于 05-18 08:21 ?811次閱讀
    <b class='flag-5'>TSMaster</b> VLAN配置<b class='flag-5'>方法</b>

    詳解TSMaster CAN 與 CANFD 的 CRC E2E 校驗(yàn)方法

    關(guān)鍵字:TSMaster,CAN/CANFD,CRC校驗(yàn),E2E校驗(yàn)?zāi)夸汣atalog1.CRC/E2E在報(bào)文傳輸過(guò)程中的應(yīng)用2.基于TSMaster剩余總線仿真的
    的頭像 發(fā)表于 05-25 08:21 ?4349次閱讀
    詳解<b class='flag-5'>TSMaster</b> CAN 與 CANFD 的 CRC E2E 校驗(yàn)<b class='flag-5'>方法</b>

    軟件更新 | TSMaster 202504 版本已上線!三大功能讓車載測(cè)試更智能

    車載測(cè)試的智能化時(shí)代正在加速到來(lái)!TSMaster202504版本正式發(fā)布,本次更新聚焦以太網(wǎng)通信與數(shù)據(jù)高效處理,帶來(lái)三大核心功能升級(jí)—以太網(wǎng)報(bào)文信息過(guò)濾、XCPonEthernet支持、按時(shí)間范圍
    的頭像 發(fā)表于 05-23 20:05 ?324次閱讀
    軟件更新 | <b class='flag-5'>TSMaster</b> 202504 版本已上線!三大功能讓車載測(cè)試更智能

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品