av香蕉网精品在线看-大鸡巴插入亲闺女的小骚逼-日本老熟妇三浦恵理子中出-九九视频在线观看免费的

您好,歡迎您進入西安安泰測試設(shè)備有限公司官方網(wǎng)站!

直流電源的 CAN 通信設(shè)置與實踐

發(fā)布日期:2025-09-30 11:17:50         瀏覽數(shù):   

EA Elektro-Automatik作為全球儀器行業(yè)領(lǐng)導(dǎo)者Tektronix旗下的大功率直流電源品牌,憑借其產(chǎn)品功能強大、性能穩(wěn)定可靠等優(yōu)勢,被廣泛應(yīng)用于多個行業(yè),尤其在汽車電子、新能源及工業(yè)控制等領(lǐng)域備受青睞。

EA 電源產(chǎn)品支持選配 CAN 通信模塊 IF-AB-CAN,以實現(xiàn)與 CAN 總線的無縫通信。本文將以某客戶的電池充放電項目為例,詳細介紹如何將 EA 雙向直流電源配置為 CAN 總線網(wǎng)絡(luò)中的一個節(jié)點,并實現(xiàn)遠程控制與實時監(jiān)控。誠摯感謝高望來先生為本文提供了寶貴的素材,并在專業(yè)領(lǐng)域給予支持。

CAN 通信基礎(chǔ)知識

CAN(Controller Area Network,控制器局域網(wǎng))是一種廣泛應(yīng)用于高實時性分布式控制系統(tǒng)的串行通信協(xié)議,最早由德國Bosch公司于1983年開發(fā),旨在解決傳統(tǒng)多線束布線方式帶來的復(fù)雜性與高成本問題。CAN 總線具備高可靠性、低成本、高效傳輸和靈活組網(wǎng)等特點,被廣泛用于汽車電子、工業(yè)控制、機器人、航空航天、醫(yī)療設(shè)備及能源管理系統(tǒng)等領(lǐng)域。

在 CAN 總線網(wǎng)絡(luò)中,每個 ECU(電子控制單元)作為一個節(jié)點,通過總線實現(xiàn)與其他節(jié)點的通信。下圖展示了典型的 CAN 總線連接結(jié)構(gòu):

 

直流電源的 CAN 通信設(shè)置與實踐(圖1)

CAN 數(shù)據(jù)幀的結(jié)構(gòu)如下圖所示。在實際應(yīng)用中,發(fā)送數(shù)據(jù)時需重點關(guān)注仲裁段、控制段及數(shù)據(jù)段。

直流電源的 CAN 通信設(shè)置與實踐(圖2) 

仲裁段

EA 電源產(chǎn)品默認設(shè)有三個基礎(chǔ) ID(BASEID),位于數(shù)據(jù)幀的仲裁段,用于消息識別與仲裁:

■  000h:用于寫入對象,消息類型為Send_ Object

■  001h:用于查詢對象,消息類型為Query_ Object

■  002h:用于讀取對象,消息類型為Read_ Object

這些基礎(chǔ) ID 通常用于應(yīng)答式通信。例如,使用000h可發(fā)送 “Normal Sending” 類指令,如開啟遠程控制、設(shè)置電壓、啟動輸出等;而 001h 可用于查詢電壓等參數(shù)。

此外,還有用于循環(huán)讀取和發(fā)送指令的基礎(chǔ) ID:

■  100h系列:用于循環(huán)讀取,如:

100h:讀取狀態(tài)

101h:讀取實際值(電壓、電流、功率等)

102h:讀取設(shè)定值

■  200h系列:用于循環(huán)發(fā)送,如:

200h:遠程控制與輸出控制

201h:設(shè)置電源設(shè)定值

202h:設(shè)置負載設(shè)定值

控制段

控制段中的 DLC(Data Length Code)用于指定數(shù)據(jù)字節(jié)數(shù)。例如,在設(shè)置遠程開啟時若數(shù)據(jù)部分為5字節(jié),則 DLC 應(yīng)設(shè)為5。某些 CAN 通信軟件(如 PCAN-View)支持手動設(shè)置 DLC,如下表所示:

 

直流電源的 CAN 通信設(shè)置與實踐(圖3)

部分軟件默認 DLC 為 8,即數(shù)據(jù)段為 8 字節(jié)。若實際數(shù)據(jù)不足 8 字節(jié),則低位以 0 填充。

數(shù)據(jù)段

本文以 8 字節(jié)標準幀為例。不同基礎(chǔ) ID 對應(yīng)的數(shù)據(jù)內(nèi)容有所差異,但均表示對特定寄存器進行讀寫操作,具體方法將在 “實踐” 部分展開。

硬件與連接準備

EA 雙向直流電源及其它 EA 系列產(chǎn)品可通過選配 EA-IF-CAN 通信模塊(型號:EA-IF-AB-CAN,訂貨號:35400111)接入 CAN 總線。該模塊支持 CAN 2.0 A/B 標準,最高傳輸速率 1 Mbit/s,接口為 9 針 D-Sub 公頭。

 

直流電源的 CAN 通信設(shè)置與實踐(圖4)

若要通過電腦對電源進行控制與監(jiān)視,需額外配置USB-CAN通信模塊,使電腦也成為CAN總線上的一個節(jié)點。若USB-CAN模塊未內(nèi)置120Ω終端電阻或未啟用電阻開關(guān),則需在EA電源的CAN設(shè)置中開啟終端電阻。

三  軟件準備

■  Windows系統(tǒng):可選用PCAN-View、PCAN-Explorer或Vector公司的CANoe等軟件。

■  Linux系統(tǒng):可通過candump命令接收消息,cansend命令發(fā)送消息。

實踐操作

在 Windows 環(huán)境下使用 PCAN-View 進行通信

安裝驅(qū)動及軟件后,在設(shè)備管理器確認硬件識別正常。

 

直流電源的 CAN 通信設(shè)置與實踐(圖5)

打開PCAN-View,點擊菜單欄中的 “Client → Connect” 進行連接設(shè)置,之后通過 “Transmit → New Message” 編輯并發(fā)送CAN消息。

 

直流電源的 CAN 通信設(shè)置與實踐(圖6)

1. 寫入單個寄存器(Write Single Register)

以 EA PSB 10080-120 2U 雙向直流電源(80V, 120A, 3kW)為例,常見操作如下:

Message

DLC

Data

說明

000h

5

019201FF00

開啟遠程控制(0192為寄存器地址,F(xiàn)F00表示“開”)

000h

5

01F40123D7

設(shè)置電壓為14V(01F4為寄存器地址,23D7為16進制電壓值)

000h

5

01F50101C4

設(shè)置電源電流為1A(01F5為寄存器地址,01C4為電流值)

000h

5

01F30101C4

設(shè)置負載電流為1A(01F3為寄存器地址,01C4為電流值)

000h

5

019501FF00

打開電源輸出(0195為寄存器地址,F(xiàn)F00表示“開”)

200h

6

02B5147B0000

設(shè)置電壓與電流(02B5代表電壓,147B代表電流)

以第一行命令為例,“01 92”對應(yīng)的是遠程控制的寄存器,“01”代表寄存器數(shù)量1,“FF 00”代表該寄存器的值:“開”。

電壓值的換算公式如下:

Voltage_hex = voltage_value × 52428 / nominal_voltage

以14V為例:

14 × 52428 / 80 = 9175(十進制)→ 轉(zhuǎn)十六進制為23D7。

2. 寫入多個寄存器

(Write Multiple Registers, WMR)

該操作常用于函數(shù)發(fā)生器設(shè)置,例如設(shè)置一個時長為6秒、幅值為10V的任意波形:

Message

DLC

Data

Description

000h

5

019201FF00

遠程控制開啟,01 92為寄存器地址。

000h

5

035301FF00

激活函數(shù)發(fā)生器任意波,選擇電壓設(shè)置

000h

8

03 84 10 FF 00 00 00 00

設(shè)置序列1的交流初始值為00 00 00 00

000h

8

03 84 10 FE 00 00 00 00

設(shè)置序列1的交流結(jié)束值為00 00 00 00

000h

8

03 84 10 FD 00 00 00 00

設(shè)置序列1的交流初始頻率值為00 00 00 00

000h

8

03 84 10 FC 00 00 00 00

設(shè)置序列1的交流結(jié)束頻率值為00 00 00 00

000h

8

03 84 10 FB 00 00 00 00

設(shè)置序列1的交流相位角值為00 00 00 00

000h

8

03 84 10 FA

41 20 00 00

設(shè)置序列1的直流初始值為41 20 00 00

000h

8

03 84 10 F9

41 20 00 00

設(shè)置序列1的直流結(jié)束值為41 20 00 00

000h

8

03 84 10 F8

4A B7 1B 00

設(shè)置序列1的直流結(jié)束值為4A B7 1B 00

000h

5

035B010001

設(shè)置初始序列為序列1

000h

5

035C010001

設(shè)置結(jié)束序列為序列1

000h

5

035D010005

設(shè)置循環(huán)5次

000h

5

035E01FF00

提交序列設(shè)置

000h

5

01F501CCCC

設(shè)置電流限制值,此處CC CC為額定值

000h

5

01F601CCCC

設(shè)置功率限制值,此處CC CC為額定值

000h

5

035201FF00

運行該任意波

由于函數(shù)發(fā)生器中任意波的每一個序列設(shè)置,需要 32 個字節(jié),放置在 16 個寄存器中,也就是每個寄存器容納 2 個字節(jié)。實際在通過 CAN 標準幀對寄存器設(shè)置時,每個標準幀(8 個字節(jié))的后 4 個字節(jié)或字符(表格紅色字體),即為序列設(shè)置值,因此需要發(fā)送 8 個標準幀。具體幀的結(jié)構(gòu)如下:

 

直流電源的 CAN 通信設(shè)置與實踐(圖7)

詳解:以表格中“03 84 10 FA 41 20 00 00”為例?!?3 84” (10進制為900)是起始寄存器(Start reg.),通過該寄存器,可以對函數(shù)發(fā)生器中任意波的序列1進行設(shè)置。如要設(shè)置序列2, 則起始寄存器為 0x0394,也就是增加0x10個,對應(yīng)10進制數(shù),就是16個。

因設(shè)置值需要16個寄存器存放,Nr. of regs to write 也就是 0x10。

在 CAN 總線上,無法保證按照發(fā)送順序接收,因此引入一個標記 Marker 字節(jié)來解決此問題。

將一個超過4字節(jié)的信息,比如32字節(jié)的信息,分成8次發(fā)送,需要為每一個CAN標準幀做標記(Mark),按照倒序排列,第一個幀標記為FF,第八個幀為F8。這樣在接收方收到這些幀后,能正確按照排序組裝。舉例中的標記Marker為 “FA” ,表示第六。

設(shè)置值需符合 IEEE754 浮點數(shù)格式,可使用在線工具

(如https://www.h-schmidt.net  /FloatConverter /IEEE754.html)進行轉(zhuǎn)換,或通過Python代碼實現(xiàn):

coding=utf-8

import struct

 

def float_to_hex():

    try:

        # 提示用戶輸入一個浮點數(shù)

        float_value = float(input("請輸入一個浮點數(shù):"))

        # 將浮點數(shù)轉(zhuǎn)換為IEEE 754的32位十六進制表示

        hex_representation = struct.pack('>f', float_value).hex().upper()

        # 輸出大寫十六進制字符串

        print ("對應(yīng)的十六進制表示是: 0x" + hex_representation)

    except ValueError:

        print("輸入無效,請輸入一個有效的浮點數(shù)。")

 

if __name__ == "__main__":

float_to_hex()

3. 使用 PCAN-Explorer 導(dǎo)入 DBC 文件

PCAN-Explorer支持導(dǎo)入DBC文件,可更直觀地解析與發(fā)送消息。用戶可在項目視圖中導(dǎo)入為特定型號(如PSB 10080-120 2U)預(yù)定義的DBC文件,提升配置效率。

直流電源的 CAN 通信設(shè)置與實踐(圖8)

直流電源的 CAN 通信設(shè)置與實踐(圖9)

在 Linux 環(huán)境下進行 CAN 通信

首先設(shè)置CAN總線波特率:

sudo ip link set CAN0 up type can bitrate 500000

接收總線數(shù)據(jù):

candump CAN0

示例輸出:

CAN0 101 [6] 23 D4 00 46 00 26

CAN0 101 [6] 23 D6 00 48 00 26

發(fā)送控制指令:

cansend CAN0 000#019201FF00    # 遠程打開

cansend CAN0 000#01F40123D7    # 設(shè)置電壓為14V

cansend CAN0 000#01F50101C4    # 設(shè)置電流為1A

cansend CAN0 000#019501FF00    # 打開輸出

結(jié)語

通過上述設(shè)置與操作,用戶可順利將EA雙向直流電源集成到CAN網(wǎng)絡(luò)中,實現(xiàn)靈活的遠程控制與實時監(jiān)控。合理運用CAN通信功能,將顯著提升測試自動化程度與系統(tǒng)集成效率。

技術(shù)支持

客服
熱線

18165377573
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信

獲取
報價

頂部