跳到文章

設備控制協議


SFPTotal Mini、Plus、Plus New和Plus X系列編程板支持設備控制協議命令。

該命令列表適用於具有嵌入式固件軟件1.3.5或更高版本的設備。

讀取收發器存儲器

讀命令使用8位地址和偏移參數來訪問數據總線上的設備,並且從高達256字節的頁讀取數據。

R1A000807F

讀取命令由以下參數組成:

R + 1 + A0 + 00 + 80 + 7F

命令代碼

讀取命令以命令代碼字符開始 R (簡稱 讀).

命令碼的大小寫決定了讀取結果的輸出格式。

  • R 大寫 — 以 HEX 字符串形式返回數據;
  • r 小寫 — 以 HEX 表的形式返回數據。

端口號

編程板上的端口的數字標識符。

  1. GBIC
  2. SFP
  3. SFP+
  4. XFP
  5. QSFP

If CMODPRST=01 啓用時,編程板在讀取之前檢查收發器是否連接到指定端口。 禁用此設置以忽略端口號。

頁面地址

數據總線上的從設備頁地址,以大寫HEX格式書寫。 例如: A0 or A2.

參見 收發器存儲器結構 有關支持的收發器存儲器頁地址的更多信息。

附加頁碼

用於具有動態地址空間的收發器的HEX格式的附加頁碼。

示例值: 00, 01, 02, 03.

If AWRADTBL=01 啓用時,編程板將附加頁碼寫入 頁選擇字節 當訪問XFP和QSFP模塊的上部存儲器時。 這選擇收發器在 A0h 偏移量 80h 處公開哪個附加表:

T00 or T01 or T02 or T03.

要忽略附加頁碼參數,請設置 AWRADTBL=00.

偏移

讀取或寫入數據的偏移量。

例如:

  • 00 較低的存儲區域,從字節0開始
  • 80 高位存儲區域,從字節128開始
  • 5F 從字節 95 開始讀取

讀/寫字節計數

從收發器存儲器讀取或向收發器存儲器寫入的字節數。 以大寫HEX格式指定參數。 由於寄存器表示的原因,讀取字節數必須減一。

  • 00 讀/寫1字節
  • 7F 讀/寫128字節
  • 03 讀/寫4字節

輸入並執行命令

要執行該命令,請用回車符終止它 \x0D.

讀取區域的格式化輸出:

r1A000007F

##    00  01  02  03  04  05  06  07  08  09  0A  0B  0C  0D  0E  0F

00 :  03  04  07  00  00  00  01  20  40  0C  15  01  2A  00  00  00
01 :  0F  07  00  00  46  49  4E  49  53  41  52  20  43  4F  52  50
02 :  32  33  34  20  00  00  90  65  46  54  4C  46  38  35  32  34
03 :  50  32  42  4E  56  20  20  20  41  20  20  20  03  52  00  9C
04 :  00  32  00  00  50  42  39  31  59  5A  57  20  20  20  20  20
05 :  20  20  20  20  30  37  30  32  32  37  20  20  68  D8  01  0B
06 :  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
07 :  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00

標準讀取命令執行。

R1A000007F
0304070000000120400C15012A0000000F07000046494E4953415220434F5250323334200000906546544C46383532345032424E56202020412020200352009C0032000050423931595A57202020202020202020303730323237202068D8010B0000000000000000000000000000000000000000000000000000000000000000

從地址空間A0h偏移量80h處的QSFP28收發器的頁T03h讀取128字節。

R4A003807F
11CC07800000000000000003FF00020000000040484953494C49434F4E20202020202020000000004F4D333535394358313030202020202030316658051446E60607FFDE30333448545831304D3930303333383832313039333032300C1067A60000000000000000000000000000000000000000000000000000000000000000

命令結果以換行符和回車符結束。


寫入收發器存儲器

寫命令使用8位地址和偏移參數來訪問數據總線上的設備,並將數據寫入最多256字節的頁。

W4A002800F11223344556677889900AABBCCDDEEFF

寫命令由以下參數組成:

W + 4 + A0 + 02 + 80 + 0F + 11223344556677889900AABBCCDDEEFF

命令代碼

寫命令以命令代碼字符開始 W (簡稱 寫).

命令碼的大小寫決定寫入後是否返回結果。

  • W uppercase-寫入後執行驗證讀取並返回結果;
  • w 小寫——只寫,沒有驗證讀。

爲了確認寫入,將寫入命令中發送的數據與命令完成後編程板返回的數據進行比較。

端口號

編程板上的端口的數字標識符。

  1. GBIC
  2. SFP
  3. SFP+
  4. XFP
  5. QSFP

If CMODPRST=01 啓用時,編程板在寫入之前檢查收發器是否連接到指定端口。 禁用此設置以忽略端口號。

頁面地址

數據總線上的從設備頁地址,以大寫HEX格式書寫。 例如: A0 or A2.

參見 收發器存儲器結構 有關支持的收發器存儲器頁地址的更多信息。

附加頁碼

用於具有動態地址空間的收發器的HEX格式的附加頁碼。

示例值: 00, 01, 02, 03.

If AWRADTBL=01 啓用時,編程板將附加頁碼寫入 頁選擇字節 當訪問XFP和QSFP模塊的上部存儲器時。 這選擇收發器在 A0h 偏移量 80h 處公開哪個附加表:

T00 or T01 or T02 or T03.

要忽略附加頁碼參數,請設置 AWRADTBL=00.

偏移

讀取或寫入數據的偏移量。

例如:

  • 00 較低的存儲區域,從字節0開始
  • 80 高位存儲區域,從字節128開始
  • 5F 從字節 95 開始讀取

寫入/讀取字節計數

寫入收發器存儲器的字節數。 以大寫HEX格式指定參數。 由於寄存器表示的原因,寫入字節數必須減一。

  • 00 讀/寫1字節
  • 7F 讀/寫128字節
  • 03 讀/寫4字節

資料

將寫入數據作爲不帶空格或換行符的大寫HEX字符串附加在命令末尾。

11223344556677889900AABBCCDDEEFF

寫入數據的長度必須與命令參數中指定的寫入字節計數匹配。

輸入並執行命令

要執行該命令,請用回車符終止它 \x0D.


配置命令

CLI

在打字時啓用或禁用終端窗口中的字符回顯。 默認禁用。 重新啓動電源後,該設置將恢復爲默認設置。

查詢當前狀態

? CLI
CLI=0

啓用

CLI=1

禁用

CLI=0


VERSION

請求設備版本信息。

SFPTotal Plus New (c) 2023
HW: 1.3
SW: 1.3.7
SN: SFPT-P1323122800
ACTIVE

CMODPRST

在讀取或寫入之前檢查收發器是否連接到端口。

查詢當前設置:

? CMODPRST
CMODPRST=01

啓用收發器連接檢測:

CMODPRST=01

禁用收發器連接檢測:

CMODPRST=00

當啓用該設置時,如果多個收發器連接到編程板的端口,則編程板返回錯誤:

QERR: MTDOC

如果在讀或寫操作期間沒有收發器連接到端口,則編程板返回相應的錯誤代碼:

QERR: SFP_EMPTY

AWRADTBL

啓用將附加頁碼自動寫入 頁選擇字節 當訪問T00h、T01h、T02h和T03h頁地址空間時寄存器。

查詢當前設置:

? AWRADTBL
AWRADTBL=01

啓用附加頁碼寫入:

AWRADTBL=01

禁用附加頁碼寫入:

AWRADTBL=00


STATUS

編程板端口輸入和輸出狀態。

STATUS
GBIC : 1; 0; 0; 1;
SFP  : 1; 1; 1; 1;
XFP  : 1; 1; 1; 1; 1;
QSFP : 1; 1; 1; 1;

參數值位置對應如下圖:

GBIC  : MOD_ABS; TX_FAULT; RX_LOS; TX_DIS;
SFP   : MOD_ABS; TX_FAULT; RX_LOS; TX_DIS;
XFP   : MOD_ABS; RX_LOS; INTERRUPT; MOD_SEL; P_DOWN/RESET;
QSFP  : MOD_ABS; INTL; MOD_SEL; RESETL;


TX_DIS

控制TX_DIS線,其啓用低功率模式。 默認啓用。

打開激光器並禁用低功率模式

TX_DIS=0

關閉激光器並啓用低功率模式

TX_DIS=1

編程板可以具有用於低功率模式的硬件控制的跳線。 封閉式跳線優先。


I2CRATE

將編程板的數據總線時鐘頻率設置爲 主控端.

參數由十六進制寄存器表示。

I2CRATE=12 # Clock frequency 100 kHz
I2CRATE=40 # Clock frequency 30 kHz
I2CRATE=C6 # Clock frequency 10 kHz

要查詢當前速度設置,請使用 ? I2CRATE

? I2CRATE
I2CRATE=C6

接受來自的值 01h to FFh.

時鐘頻率使用以下公式計算:

16 000 000 / (2 * I2CRATE * I2CPRESC + 16) = Speed Rate Hz


I2CPRESC

編程板的數據總線時鐘頻率的預分頻器 主控端.

參數由十六進制寄存器表示。 默認值: 04h

I2CPRESC=04

要查詢當前速度設置,請使用 ? I2CPRESC

? I2CPRESC
I2CPRESC=04

接受值 00h, 04h, 10h, 40h.

I2CPAUSE

在出發前延遲閱讀公交車的結果,幾毫秒鐘。 假設值: 64h or 100ms

? I2CPAUSE
I2CPAUSE=64

I2CPAUSE=32
I2CPAUSE=32

I2CDELAY

設置發出 ReSTART 之前的延遲,以 0.1 ms 爲增量。

默認值: 0Ah

? I2CPAUSE
I2CPAUSE=0A

I2CPAUSE=64
I2CPAUSE=64

I2CRESET

在軟件中重置數據總線。 重新啓動接口,並在數據總線SCL線上產生9個時鐘脈衝,以恢復可能被鎖定的從設備。

重置數據總線:

I2CRESET

啓用觸發器。 當收發器連接到端口時,數據總線會自動復位。

I2CRESET=01

禁用觸發器。

I2CRESET=00

I2CSTATE

返回數據總線線路狀態。

I2CSTATE
SCL=01  SDA=02

USBDELAY

在通過虛擬串行端口將數據字節從設備發送到計算機之前的延遲。

? USBDELAY
USBDELAY=0A

USBDELAY=10
USBDELAY=10


功率控制

僅在具有軟件電源控制的編程板上受支持。

PWRRST

對收發器端口進行電源循環。

PWRRST

I2CPAUSE以10ms增量影響總線復位間隔。

PWRCTRL

控制端口功率。

關閉電源。

PWRCTRL=0

打開電源。

PWRCTRL=1

功率狀態改變應當伴隨相應的LED指示。


硬件密碼搜索

編程板支持範圍內的硬件密碼搜索 00000000 to FFFFFFFF

搜索循環運行,將密碼遞增一。 在每次迭代中,編程板輸入密碼並寫入校驗字 SFPTOTAL 長度為 8 位元組。接著讀回校驗字。 當燒錄板能從收發器記憶體讀出校驗字時,表示搜尋成功。

BFCWADR

寫入校驗字的頁地址。

BFCWOFT

用於寫入校驗字的偏移量。

BFSET

開始硬件密碼搜索。 該命令具有以下參數:

  • 密碼輸入頁面
  • 密碼輸入偏移量
  • 值範圍的開始
  • 範圍結束
  • 起始位置

該命令開始搜索,在頁面上輸入密碼 A2h 在偏移處 7Bh 在從 41414141h to 5A5A5A5Ah 開始於 45454545h.

BFSET A2 7B 41414141 5A5A5A5A 45454545

Device=A2
Offset=7B
From    41 41 41 41
To      5A 5A 5A 5A
Start   45 45 45 45

45 45 45 46

BFSTOP

停止密碼搜索。

BFSTOP

STOP
Device=A2
Offset=7B
From    41 41 41 41
To      5A 5A 5A 5A
Current 45 45 47 5A

BFSTART

從停止的地方恢復密碼搜索。

BFPASS

該 ? BFPASS 命令返回當前值。

? BFPASS
45 45 47 5A
更新: