MCAL學習(6)——診斷、DCM

1.診斷概述

汽車診斷就是通過汽車總線(CAN LIN Eth)來進行診斷會話,大部分通過CAN總線通訊進行請求與響應。

1.診斷分層

DCM內部支持UDS服務和OBD服務(排放,動力)。
以統一診斷服務UDS為例,應用層(ISO 14229標準),會話層,傳輸層,網絡層(ISO 15765 標準),數據鏈路層 (ISO 11898 標準)。
UDS 和 OBD 服務都屬于診斷應用層服務,底層可以通過不同的總線通信實現。比如 UDS 服務支持 CAN 總線 Lin 總線 Eth 總線,OBD 常見的支持 CAN總線、K 線、FlexRay 總線。大家一定要區分診斷服務并不規定一定要通過什么總線實現。

2.AutoSar診斷功能

在這里插入圖片描述
診斷服務屬于 AutoSAR 服務層,診斷數據流通過 CAN 驅動CANIF 層 CANTP- PDUR -DCM 給到 DCM 模塊,DCM 模塊處理診斷數據,并執行對應的具體診斷服務。

  • **DCM:**Diagnostic Communication Manager,診斷通訊管理。實現具體的診斷協議,比如 UDS OBD。這里具體定義了各種不同的診斷服務,比如讀取 ECU 故障碼、寫入 DID 數據等。
  • **DEM:**Diagnostic Event Manager,診斷事件管理,用來記錄和存儲診斷事件的,在診斷故障碼寫入的時候會加入防抖策略。DCM 和 DEM 直接交互,只要在 0x19 0x14 等與 DTC 相關服務的時候進行交互。
  • **FIM:**Function Inhibition Manager,功能禁止管理。當一些錯誤出現的時候,禁止一些功能,比如檢測到電流過大的時候,關閉繼電器。就是有些 SWC是需要使能條件的,這些條件取決于故障內容(源于 DEM),而 FIM 負責根據故障內容關閉一些 SWC 或執行一些 SWC。
  • **故障響應:**應用層傳輸數據到 DEM,DEM 判斷出是哪個故障,之后發送給 FIM;FIM 立即做出判斷,通過回調函數通知 SWC 或者輪詢的方式禁止 SWC
  • 故障記錄:應用層傳輸數據給 DEM,DEM 一邊發送給 FIM,另一邊發送給 NVM(管理非易失性存儲的組件),NVM 會將 DTC 存儲到 FLASH 中。

2.UDS服務

UDS服務由診斷請求和診斷響應組成。一般情況下是診斷儀發出診斷請求,ECU 根據診斷請求執行具體診斷服務,并將結果通過診斷應答發出給診斷儀。
響應分為肯定響應和否定響應。
在這里插入圖片描述

2.1 UDS診斷請求與響應

UDS服務的診斷請求,由SID(服務ID必須)+ 子服務ID + 數據參數組成。

  • 帶子服務的請求
    例如:10 01(請求切換到默認會話模式)
    例如:19 02 FF(請求讀取以 0xFF 為 Mask 的故障信息

  • 帶子服務的肯定響應
    請求:10 01(切換默認會話模式)
    響應:50 01 xx xx xx xx(成功切換默認會話模式)

  • 不帶子服務的請求
    例如:22 F0 90(請求讀取 DID 為 0xF090 的數據)
    例如:37(請求數據傳輸退出服務)

  • 不帶子服務的肯定響應
    請求:22 F0 90(讀取 DID 為 0xF090 的數據)
    響應:62 F0 90 11 11 11 11 11 11 11 11 11 11(返回 DID 為 0xF090 的數據為 11 11 11 11 11 11 11 11 11 11)

  • 否定響應
    請求:10 02(切換編程會話模式)
    負響應:7F 10 7E(切換編程會話服務執行失敗 錯誤碼 NRC 為 7E)

2.2 診斷的尋址方式

尋址方式有兩種,物理尋址和功能尋址。

  • 物理尋址
    是診斷儀和單個 ECU 之間的診斷,也就是診斷請求報文發出去后,根據報文ID,CAN 網絡中只會有對應的一個 ECU 進行診斷響應
  • 功能尋址
    是診斷儀和多個 ECU 之間的診斷,也就是診斷請求報文發出去后,CAN 網絡中支持該功能尋址報文 ID 的 ECU,一般功能尋址報文 ID 為 0x7DF,這些 ECU 都會執行診斷服務,并且發出診斷響應。
    一個 ECU 內部一般會定義 3 條診斷報文:
  • 診斷請求接收報文(物理尋址 報文 ID 用戶自定義 同一網絡中的每個 ECU 不一樣)
  • 診斷請求接收報文(功能尋址 一般為 0x7DF)
  • 診斷應答發送報文(同一網絡的每個 ECU 的 ID 不一樣)
    例:整車同一網絡中有 ECU A, B, C, D 多個節點,假設他們的物理請求消息 ID 為 0x701, 0x702, 0x703, 0x704,響應消息地址分別為 0x70A,0x70B, 0x70C, 0x70D,所有 ECU 的功能尋址 ID 為 0x7DF。

物理尋址時:
0x701 0x10 0x01 (對 ECU A 進行診斷請求)
0x70A 0x50 0x01 xx xx xx xx (僅 ECU A 響應)
功能尋址時:
0x7DF 0x10 0x01 (對所有 ECU 進行診斷請求)
0x70A 0x50 0x01 xx xx xx xx (ECU A 響應)
0x70B 0x50 0x01 xx xx xx xx (ECU B 響應)
0x70C 0x50 0x01 xx xx xx xx (ECU C 響應)
0x70D 0x50 0x01 xx xx xx xx (ECU D 響應)

2.3 UDS常用診斷服務

2.3.1 診斷會話控制【0x10】

會話模式有默認會話模式(default session)和非默認會話模式(non-default session),非默認會話模式包含編程會話模式(ProgrammingSession)、拓展診斷會話模式(extendedDiagnosticSession)及其余會話模式。會話模式可以理解為診斷的功能模式,即在不同的會話模式下,能夠支持不同的診斷功能,如在默認會話模式0x01下,一般情況下不允許支持寫服務(WriteDataByIdentifier0x2E),也不允許支持請求下載服務(RequestDownload0x34),而在拓展診斷會話模式0x03下,就允許支持寫服務(WriteDataByIdentifier0x2E),在編程會話模式0x02下,就可以支持(RequestDownload0x34)。

ECU 在剛上電或者復位之后處于默認會話模式(0x01);
默認會話模式下發送 10 03 可以切換至拓展會話模式(0x03);
拓展會話模式發送 10 02 可以切換至編程會話模式(0x02);
而在默認會話模式不可以直接跳轉至編程會話模式,若在模式會話模式直接發送 10 02,此時 ECU 需要響應 NRC 為0x7E(subFunctionNotSupportedInActiveSession)的負響應,響應內容為 7F 10 7E。

如果 ECU 處于非默認會話模式下,客戶端發送 10 01 進入默認會話模式,ECU收到該請求后,ECU 的安全訪問狀態切換到鎖定狀態,由
ReadDataByPeriodicIdentifer(0x2A)服務配置的周期調度被禁止,通過CommunicationControl(0x28)和 ControlDTCSetting(0x85)進行的設置均被復位,即 ECU 初始化所有在非默認模式下激活的事件,設置和控制等操作,但不包括已經寫入到非易失性存儲位置的操作。

  • 請求格式: 0x10 + 子服務(1byte)
    01 默認會話
    02 編程會話
    03 拓展會話
  • 肯定響應 0x50 子服務ID(1byte) + P2time (接收請求后的響應時間:2byte)+ p2time (接收到請求后P2time * 10 內返回響應會先返回78NRC:2byte)
  • 否定響應:0x7F + 0x10 + NRC(1byte)

2.3.2 ECU復位(0x10)

ECU 復位 ECUReset(0x11)是控制 ECU 端執行復位的服務。診斷儀發送 11 01 復位請求后,ECU 復位動作執行前,正響應需先發送給診斷儀,然后 ECU 執行復位操作,成功復位后,ECU 需進入默認會話模式。

  • 請求格式: 0x11 + 子服務(1byte)
  • 肯定響應 0x50 + 子服務ID(1byte)
  • 否定響應:0x7F + 0x11 + NRC(1byte)

2.3.3 安全訪問(0x27)

安全訪問 SecurityAccess(0x27),此服務是提供訪問 ECU 內部數據或者出于安全因素需被限制的診斷服務的請求權限。常見的如讀服務(0x22)讀取非安全信息時能夠直接讀取,不需要利用 27 服務進行安全訪問,而通過寫服務(0x2E)寫入數據時,則通常需要通過 27 服務進行安全訪問才可以寫,刷新程序也需要利用 27 服務通過相關的安全等級才能夠對 ECU 進行程序下載,顯然這些都是需要利用 27 服務進行權限管控,從而保障 ECU 的安全可靠。
安全訪問序列如下圖所示,一共 4 步組成,

  • 診斷儀先發送請求 seed 的報文(27 01)
  • ECU 響應 seed(67 01 xx xx xx xx)
  • 診斷儀根據返回的 seed 按照約定算法計算 key 值,并發送給 ECU 請求驗證(27 02 xx xx xx xx)
  • ECU 收到請求之后,也按照約定的算法對該 key 進行校驗,并給出響應,若計算一致,則為正響應(67 02),否則為負響應(7F 27 NRC)
    在這里插入圖片描述
    ECU 若校驗 key 一致,則 ECU 則切換安全狀態至對應的解鎖狀態,此時在該解鎖狀態下能夠支持的服務都應該可以工作。如果 ECU 已經處于解鎖狀態,此時診斷儀再次發送請求 seed 的報文,ECU 應該響應 seed 為 0 的正響應。
    seed 請求的子服務值為奇數,對應的 key 請求驗證的子服務值為該奇數加 1,如 27 01 與 27 02 為一組安全等級,27 03 與 27 04 為一組安全等級,27 11 與27 12 為一組安全等級。不同的安全等級由客戶定義功能區分。
  • seed請求格式: 0x27 + 01 03 05,07~7D
  • seed肯定響應 0x67 + 01 03 05,07~7D + 種子(4byte)
  • seed否定響應:0x7F + 0x27 + NRC(1byte)
  • key請求格式: 0x27 + 02 04 06,08~7E+ key(4byte)
  • key肯定響應 0x67 + 02 04 06,08~7E
  • key否定響應:0x7F + 0x27 + NRC(1byte)

2.3.4 通訊控制(0x28)

通訊控制服務用于開啟或關閉 ECU 對某些報文的發送或接收,如應用報文和網絡管理報文等。

  • 請求格式: 0x28 + 子服務ID(1byte:00:R/T 01:R 02:T 03 :關閉接收/發送) + communicationType(01 一般通訊報文;02 網絡管理報文;03 :一般通訊和網絡管理報文)
  • 肯定響應 [0x68] [SubFunction] [CommunicationType]
  • 否定響應:0x7F + 0x28 + NRC(1byte)

2.3.4 待機在線(0x3E)

該服務用于診斷儀端告知 ECU 診斷儀依然在線。該服務通常用于保持 ECU 處于非默認模式,由于 ECU 在 S3server 時間收不到診斷請求的話,ECU 將會退回默認會話模式(default session),所以診斷儀為了保持 ECU 處于非默認模式,需要周期性發送 TesterPresent 服務指令,周期時間需要小于 S3server。

  • 請求格式:[0x3E] [SubFunction(00/ 80:80不返回肯定響應)]
  • 肯定響應:[0x7E] [SubFunction 00]
  • 否定響應:[0x7F] [ 0x3E] [NRC]

2.3.5 診斷故障碼設置控制(0x85)

診斷故障代碼設置控制服務用于停止或重啟 ECU 診斷故障代碼的記錄。
當通過該服務對故障碼記錄進行抑制操作后,若會話層時序參數超時從而 ECU進入默認會話,或 ECU 執行復位操作后,診斷故障代碼應該恢復記錄。
當接收到診斷儀發送的清除診斷信息(0x14)服務后,ECU 應重新開啟診斷故障代碼記錄。

  • 請求格式:[0x85] [SubFunction(01 :ECU允許記錄DTC;02 :ECU停止記錄DTC)]
  • 肯定響應:[0xC5] [SubFunction]
  • 否定響應:[0x7F] [ 0x85] [NRC]

2.3.6 讀 DID 數據 (0x22)

根據 DID(標識符)讀取數據服務用于從 ECU 存儲器中讀取由 DID 所確定的數據記錄值,其中 DID 為兩個字節長度的數值。
ISO14229 中定義該服務的請求報文允許支持 1 個或者多個數據標識符,一般主機廠僅支持 1 個 DID 讀取。下圖報文格式也以 1 個 DID 作為講解。

  • 請求格式:[0x22] [DID(MSB)] [DID (LSB)]
  • 肯定響應:[0x62] [DID(MSB)] [DID (LSB)] DATA(nbyte)
  • 否定響應:[0x7F] [ 0x22] [NRC]

2.3.7 寫 DID 數據 (0x2E)

根據 DID 寫入數據服務允許診斷儀將數據寫入由 DID 指定的內部存儲單元。ECU應在數據寫入成功后發送該服務的肯定響應。

  • 請求格式:[0x2E] [DID(MSB)] [DID (LSB)] DATA(nbyte)
  • 肯定響應:[0x6E] [DID(MSB)] [DID (LSB)]
  • 否定響應:[0x7F] [ 0x2E] [NRC]

2.3.8 清除故障碼(0x14)

正響應需在診斷信息清除請求后,ECU 處理完成后發出,即使 ECU 沒有存儲的DTC,也需發出正響應報文。清除 DTC 的同時,所有 DTC 相關存儲信息都應被清除。

  • 請求格式:[0x14] 3byte:groupofDTC:FF FF FF 清除所有DTC,清除特定的 DTC 組(由 OEM 定義)
  • 肯定響應:[0x54]
  • 否定響應:[0x7F] [ 0x14] [NRC]

2.3.9 獲取故障碼信息(0x19)

  • 請求格式:[0x19] [sub:01/02 根據狀態掩碼報告診斷故障碼數量/根據狀態掩碼報告診斷故障碼] [DTC StatusMask]
  • 肯定響應:[0x59][01] [數量] ;[0x59] [02] [故障碼信息4byte * n]
    -
  • 否定響應:[0x7F] [ 0x19] [NRC]
    其他子功能簡述:04 :用于請求指定故障碼(DTC)的快照信息;06:通過DTC報告擴展數據 0A:讀取ECU支持的所有DTC列表及其狀態 等等后續深入吧。

2.3.10 通過DID控制輸入輸出(0x2F)

該服務是用于通過 DID 來直接控制 ECU 對應的輸入輸出信號。

  • 請求格式:[0x2F] [ControlParameter] [IOControlID] [ControlOptionRecord (可選)] [ControlEnableMaskRecord (可選)]
    ControlParameter:控制參數,用于指定控制類型。
    常見值:
    0x01:重置輸入輸出控制(Reset to default)。
    0x02:凍結當前狀態(Freeze current state)。
    0x03:短期調整(Short-term adjustment)。
    IOControlID:輸入輸出控制的標識符,用于指定要控制的 I/O 信號。
    ControlOptionRecord(可選):控制選項記錄,包含具體的控制數據。
    ControlEnableMaskRecord(可選):控制使能掩碼記錄,用于指定哪些信號被控制。
  • 肯定響應:[0x6F] [IOControlID] [ControlStatusRecord (可選)]
  • 否定響應:[0x7F] [ 0x2F] [NRC]

2.3.11 例程控制(0x31)

  • 請求格式:0x31 子服務(1byte) RID(2byte)其他控制信息nbyte
    01 :啟動程序
    02:停止程序
    03 : 請求程序執行結果
  • 肯定響應:0x71 子服務(1byte) RID(2byte)其他信息nbyte
  • 否定響應:[0x7F] [ 0x31] [NRC]

2.3.12 請求下載(0x34)

  • 請求格式:[0x34] [DataFormatIdentifier] [MemoryAddressLength] [MemoryAddress] [MemorySize]
    DataFormatIdentifier:數據格式標識符,指定壓縮和加密格式。
    高 4 位:壓縮方法(通常為 0x0 表示無壓縮)。
    低 4 位:加密方法(通常為 0x0 表示無加密)。
    MemoryAddressLength:內存地址長度(字節數)。
    MemoryAddress:目標內存地址,用于指定下載數據的起始地址。
    MemorySize:下載數據的大小(字節數)。
  • 肯定響應:
    -
    在這里插入圖片描述
  • 否定響應:[0x7F] [ 0x34] [NRC]

2.3.13 傳輸數據(0x36)

  • 請求格式:0x36 包序號(1byte) data(nbyte)
  • 肯定響應:0x76 包序號(1byte)
  • 否定響應:[0x7F] [ 0x36] [NRC]

2.3.14 傳輸數據(0x37)

  • 請求格式:0x37
  • 肯定響應:0x77
  • 否定響應:[0x7F] [ 0x37] [NRC]

2.4 否定響應碼

在這里插入圖片描述

3. AutoSarDCM模塊

診斷通信管理模塊 DCM(Diagnostic Communication Manager)是實現 AutoSAR BSW 診斷功能的重要模塊。確保診斷數據流并管理診斷狀態,比如管理診斷會話和安全狀態以及診斷服務分配等。

  • DCM 模塊會檢查當前診斷服務請求是否支持
  • 確認診斷服務能否在當前會話等級以及安全等級執行
  • 支持 UDS 服務和 OBD 服務
  • DCM 提供了 OSI 層的 5-7 層,會話及應用層
    DCM 內部由三大子模塊組成。
    在這里插入圖片描述

3.1 DSL:Diagnostic Server Layer 診斷服務層

  1. 確保診斷請求和診斷應答的數據流
  • 接收 PDUR 的診斷請求,并把診斷請求發給 DSD 模塊
  • 將 DSD 模塊發送出來的診斷響應轉發給 PDUR 模塊
  1. 定時器管理
  • S3 定時器超時監控
  • P2 定時器超時監控
  1. 管理會話狀態、安全等級以及身份認證狀態

3.2 DSD:Diagnostic Server Dispatcher 診斷服務分發

  1. 檢查診斷請求的合法性
  2. 正響應抑制
  3. 會話狀態、安全等級校驗
  4. 分發診斷消息給到 DSP 去執行具體的診斷服務

3.3 DSP:Diagnotic Server Processing 診斷服務執行

  1. 支持 UDS 服務,如 0x10、0x22、0x2E 等服務
  2. 支持 OBD 服務,如 0x01、0x02、0x03 等服務

3.4 DCM 與其他模塊的交互

Dcm 模塊作為診斷通信管理模塊,和 Dem、NVM、BswM、ComM、PduR 模塊都有交互。

1.Dcm 和 PduR 的交互

Dcm 通過內部的 DSL 子模塊和 PduR 進行交互,實現診斷報文傳輸:
在這里插入圖片描述

2.Dcm 和 DEM 的交互

DEM 向 DCM 提供檢索故障碼相關的信息,比如 0x14 服務 0x19 服務,具體如下圖:
在這里插入圖片描述

3.Dcm 和 ComM 的交互:

當通信狀態變化時,ComM 請求啟動或者禁用診斷通信功能
在這里插入圖片描述
DCM 會話模式轉變,請求 ComM 通信模式變化
在這里插入圖片描述
注:對于 ComM 通信管理而言,會有多個 User 請求通信狀態變化,比如 DCM、SWC、NM 等,當 DCM 請求關閉通信時,只是 DCM 的通信不使用了,不涉及其他User 的請求,只有當所有 User 都請求關閉通信時,ComM 才會真正關閉某一路通信。

3 DCM和SWC的交互

有一些具體服務是需要 SWC 實現的,比如診斷 IO 控制的 SWC,當 DCM 的 27 服務請求時,會去具體 SWC 執行控制操作,比如關閉 led 燈等

4.DCM 和 BswM 的交互

? 比如 0x28 服務,DCM 收到 28 服務通信控制時,會將通信模式改變轉發給 BswM,BswM 根據模式變化執行對應的 Action,去開啟或者關閉通信
? 比如 0x11 服務時,也會通知到 BswM,BswM 根據不同的復位類型執行不同的 Action

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/84216.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/84216.shtml
英文地址,請注明出處:http://en.pswp.cn/web/84216.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

kafka-生產者-(day-4)

day-3 BufferPool 產生原因:ByteBuffer的創建和釋放都是比較耗費資源的,為了實現內存的高效利用,產生了他。他會對特定大小的ByteBuffer進行管理 BufferPool的字段 free:是一個ArrayDeque隊列,緩存指定大小的ByteBuffer對象Re…

java 驗證ip是否可達

默認IP的設備已開放ping功能 代碼 public class PingTest {public static void main(String[] args) throws Exception {String ip "192.168.21.101";boolean reachable InetAddress.getByName(ip).isReachable(3000);System.out.println(ip (reachable ? &quo…

LeetCode 2187.完成旅途的最少時間

題目: 給你一個數組 time ,其中 time[i] 表示第 i 輛公交車完成 一趟旅途 所需要花費的時間。 每輛公交車可以 連續 完成多趟旅途,也就是說,一輛公交車當前旅途完成后,可以 立馬開始 下一趟旅途。每輛公交車 獨立 運…

永磁同步電機無速度算法--基于正切函數鎖相環的滑模觀測器

最近在學習鎖相環,后續會記錄一下了解到的幾種PLL。 一、原理介紹 傳統鎖相環控制框圖如下所示 在電機正轉時,傳統鎖相環可以實現很好的轉速和轉子位置估計,但是當電機反轉,反電動勢符號發生變化,系統估計轉子位置最…

Vim-vimrc 快捷鍵映射

Vim-vimrc 快捷鍵映射 文章目錄 Vim-vimrc 快捷鍵映射Leader 鍵快捷鍵映射:插入特定字符插入 --插入 ##插入 解釋Leader鍵設置快速插入分隔線 Leader 鍵 我們還將 , 設置為 Leader 鍵,使得其他快捷鍵映射更加簡潔。 let mapleader ","快捷鍵…

SylixOS armv7 任務切換

SylixOS 操作系統下,任務切換可以分為兩種 中斷退出時,執行的任務切換(_ScheduleInt)內核退出時,執行的任務切換(_Schedule) 下面分別講講這兩種任務切換 1、中斷退出時任務切換 關于 ARM 架…

Java 自定義異常:如何優雅地處理程序中的“業務病”?

🔥「炎碼工坊」技術彈藥已裝填! 點擊關注 → 解鎖工業級干貨【工具實測|項目避坑|源碼燃燒指南】 一、從一個真實場景開始:銀行轉賬系統的困境 假設你正在開發一個銀行轉賬系統,當用戶嘗試轉賬時可能出現以下問題: 轉…

【JAVA】【Stream流】

1. filter操作 filter()方法用于根據給定的條件過濾列表中的元素&#xff0c;僅保留滿足條件的項。 List<Integer> list Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8);List<Integer> res list.stream().filter(a -> a % 2 0).collect(Collectors.toList());for(I…

四、Redis實現限流

簡介&#xff1a; 限流算法在分布式領域是一個經常被提起的話題&#xff0c;當系統的處理能力有限時&#xff0c;如何阻止計劃外的請求繼續對系統施壓。 系統要限定用戶的某個行為在指定的時間里只能允許發生 N 次&#xff0c;如何使用 Redis 的數據結構來實現這個限流的功能&a…

基于Geotools的兩條道路相交并根據交點形成新路線實戰-以OSM數據為例

目錄 前言 一、需求場景及分解 1、需求場景 2、需求應用 二、需求實現 1、加載路網數據 2、獲取道路信息 3、相交點求解 4、生成新道路 5、結果可視化 三、總結 前言 在當今數字化迅速發展的時代&#xff0c;地理空間數據的處理與分析已成為眾多領域不可或缺的關鍵技…

goland有基礎速通(需要其它編程語言基礎)

tip: 無論是變量、方法還是struct的訪問權限控制都是通過命名控制的&#xff0c;命名的首字母是大寫就相當于java中的public&#xff0c;小寫的話就是private&#xff0c;&#xff08;private只有本包可以訪問&#xff09; 1 go的變量聲明 普通變量 特點&#xff1a; 變量類…

量化面試綠皮書:19. 相關系數

文中內容僅限技術學習與代碼實踐參考&#xff0c;市場存在不確定性&#xff0c;技術分析需謹慎驗證&#xff0c;不構成任何投資建議。 19. 相關系數 假設有三個隨機變量x、y和z。 x與y之間的相關系數為0.8&#xff0c;x與z之間的相關系數也是0.8。 Q: 那么y與z之間的最大相關…

新生活的開啟:從 Trae AI 離開后的三個月

很久沒有寫文章了&#xff0c;想借著入職新公司一個月的機會&#xff0c;和大家嘮嘮嗑。 離職 今年2月份我從字節離職了&#xff0c;結束了四年的經歷&#xff0c;當時離開的核心原因是覺得加班時間太長了&#xff0c;平均每天都要工作15&#xff0c;16個小時&#xff0c;周末…

LLM部署之vllm vs deepspeed

部署大語言模型(如 Qwen/LLaMA 等)時,vLLM 與 DeepSpeed 是當前主流的兩種高性能推理引擎。它們各自專注于不同方向,部署流程也有明顯區別。 vLLM 提供極致吞吐、低延遲的推理服務,適用于在線部署;DeepSpeed 更側重訓練與推理混合優化,支持模型并行,適用于推理 + 微調/…

Git(二):基本操作

文章目錄 Git(二)&#xff1a;基本操作添加文件修改文件版本回退撤銷修改情況一&#xff1a;工作區的代碼還沒有 add情況?&#xff1a;已經 add 但沒有 commit情況三&#xff1a;已經 add 并且也 commit 刪除文件 Git(二)&#xff1a;基本操作 添加文件 首先我們先來學習一個…

nginx + ffmpeg 實現 rtsp視頻實時播放和歷史播放

nginx和ffmpeg 的安裝請參考我的另一篇文章 Nginxrtmpffmpeg搭建視頻轉碼服務_nginx-rtmp-module-master-CSDN博客 目錄 1、整體方案設計如圖 2、nginx下目錄創建和配置文件創建 3、創建視頻流生成腳本 4、修改nginx配置 5、管理界面 (video.html) 6、ffmpeg后臺啟動 …

全國產!瑞芯微 RK3576 ARM 八核 2.2GHz 工業核心板—硬件說明書

前 言 本文為創龍科技 SOM-TL3576 工業核心板硬件說明書,主要提供 SOM-TL3576 工業 核心板的產品功能特點、技術參數、引腳定義等內容,以及為用戶提供相關電路設計指導。 為便于閱讀,下表對文檔出現的部分術語進行解釋;對于廣泛認同釋義的術語,在此不做注釋。 硬件參考…

web3 瀏覽器注入 (如 MetaMask)

以下是關于 瀏覽器注入方式(如 MetaMask) 的完整詳解,包括原理、使用方法、安全注意事項及常見問題解決方案: 1. 核心原理 當用戶安裝 MetaMask 等以太坊錢包擴展時,錢包會向瀏覽器的 window 對象注入一個全局變量 window.ethereum,這個對象遵循 EIP-1193 標準,提供與區…

解密提示詞工程師:AI 時代的新興職業

大家好!在人工智能飛速發展的當下&#xff0c;有一個新興職業正悄然崛起——提示詞工程師。他們雖不如數據科學家般廣為人知&#xff0c;卻在 AI 應用領域發揮著獨特且關鍵的作用。 何為提示詞工程師&#xff1f; 提示詞工程師專注于設計和優化與 AI 模型進行交互的提示詞&…

linux 下 jenkins 構建 uniapp node-sass 報錯

背景: jenkins 中構建 uniapp 應用 配置: 1. 將windows HbuilderX 插件目錄下的 uniapp-cli 文件夾復制到 服務器 /var/jenkins_home/uniapp-cli 2. jenkins 構建步驟增加 執行 shell ,內容如下 echo ">> 構建中..."# 打包前端 export LANGen_US.UTF-8…