<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>伍肆參</title><description></description><managingEditor>noreply@blogger.com (Unknown)</managingEditor><pubDate>Mon, 7 Sep 2026 23:49:59 +0800</pubDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">8</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><link>http://543-21.blogspot.com/</link><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:subtitle/><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><item><title>[Python] 自動判斷 並選定 最優 GPU : Intel GPU(Arc A350m) , nVidia GeForce RTX 4060  or CPU </title><link>http://543-21.blogspot.com/2026/01/python-gpu-intel-gpuarc-a350m-nvidia.html</link><category>AMD</category><category>GPU</category><category>Intel</category><category>intel_extension_for_pytorch</category><category>nVidia</category><category>Python</category><category>PyTorch</category><category>XPU</category><author>noreply@blogger.com (Unknown)</author><pubDate>Thu, 8 Jan 2026 14:41:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8068432605654055822.post-8166375881945894081</guid><description>

手上 Notebook A 是 &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Intel+Arc+350m+specifications&amp;amp;bbid=8068432605654055822&amp;amp;bpid=8166375881945894081" target="_blank"&gt;Intel Arc 350m&lt;/a&gt; , Notebook B 卻是 &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=RTX+4060+specifications&amp;amp;bbid=8068432605654055822&amp;amp;bpid=8166375881945894081" target="_blank"&gt;RTX 4060&lt;/a&gt;, 又有 無 GPU 的Notebook ...&amp;nbsp;&lt;br /&gt;
.....嗯嗯... 啥都有~ 就是沒有 &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=AMD+GPU+PyTorch+DirectML&amp;amp;bbid=8068432605654055822&amp;amp;bpid=8166375881945894081" target="_blank"&gt;AMD GPU&lt;/a&gt; :p&amp;nbsp;&lt;br /&gt;
由於 常會更換機器使用，需要一個 能 自動判定/選擇 最佳GPU 的 &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Python+function+for+GPU+detection&amp;amp;bbid=8068432605654055822&amp;amp;bpid=8166375881945894081" target="_blank"&gt;Python Function&lt;/a&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
網路上找許久 都不見有人提供相似功能&amp;nbsp; &amp;nbsp;&lt;br /&gt;
在此紀錄一下， 期待日後介面統一的到來&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
另，期待能人志士添加 AMD GPU判定辦法&amp;nbsp; &amp;nbsp;&lt;br /&gt;
暫時使用 &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+DirectML+PyTorch&amp;amp;bbid=8068432605654055822&amp;amp;bpid=8166375881945894081" target="_blank"&gt;DirectML&lt;/a&gt;方式偵測 AMD GPU, 功能尚未確認過 &lt;br /&gt;
AMD使用 DirectML方式 需先安裝：
&lt;span&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;blockquote&gt;pip install torch-directml&lt;/blockquote&gt;
非AMD用戶 不建議服用， 極大可能會造成身體不適，氣血失調，驚奇不&lt;del&gt;順&lt;/del&gt;斷：
&lt;blockquote&gt;torch-directml 0.2.5.dev240914 requires torch==2.4.1, but you have torch 2.8.0 which is incompatible.&lt;br /&gt;
torch-directml 0.2.5.dev240914 requires torchvision==0.19.1, but you have torchvision 0.23.0 which is incompatible.&lt;/blockquote&gt;
&lt;br /&gt;
&lt;hr /&gt;
--&lt;br /&gt;
Intel GPU 需要先安裝 Intel Extension for PyTorch (IPEX)&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&lt;br /&gt;*** 注意： 已確認: 目前不支援 Python 3.13以上版本！&amp;nbsp; 即使 3.12也僅止是測試用，官方建議使用 3.8~3.11版 !!!&amp;nbsp;&lt;div&gt;&lt;br /&gt;
&lt;blockquote&gt;
python -m pip install torch torchvision torchaudio --extra-index-url  https://download.pytorch.org/whl/xpu&amp;nbsp;&lt;/blockquote&gt;&lt;blockquote&gt;python -m pip install intel_extension_for_pytorch --extra-index-url https://pytorch-extension.intel.com/release-whl/stable/xpu/us/&lt;/blockquote&gt;&lt;div&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
驗證(after reboot)： &lt;br /&gt;&lt;blockquote&gt;python -c "import torch; import intel_extension_for_pytorch as ipex; print(ipex.__version__)"&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
"import intel_extension_for_pytorch as ipex" 時，可能會遇到 錯誤：&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;span style="color: #999999;"&gt;ERROR! Intel® Extension for PyTorch* needs to work with PyTorch 2.8.*, but PyTorch 2.9.1+cpu is found. Please switch to the matching version and run again.&lt;/span&gt;&lt;/blockquote&gt; 或 ：&amp;nbsp;&lt;br /&gt;&lt;span style="color: #999999;"&gt;torchaudio 2.9.1 requires torch==2.9.1, but you have torch 2.8.0 which is incompatible.   &lt;br /&gt;
torchvision 0.24.1 requires torch==2.9.1, but you have torch 2.8.0 which is incompatible.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;nbsp; pip install torch==2.8 torchaudio==2.8 torchvision==0.23.0&amp;nbsp;&lt;br /&gt;   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
或是：&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #999999;"&gt;OSError: [WinError 126] The specified module could not be found. &lt;br /&gt;Error loading "C:\.....\intel_extension_for_pytorch\bin\esimd_kernels.dll" or one of its dependencies.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;   &lt;br /&gt;Ref: &lt;a href="https://github.com/intel/intel-extension-for-pytorch/issues/804#issuecomment-2840629788"&gt;https://github.com/intel/intel-extension-for-pytorch/issues/804#issuecomment-2840629788 (IE Only)&lt;/a&gt; 
&lt;blockquote&gt;
python -m pip install torch==2.8.0+xpu torchaudio torchvision --index-url https://download.pytorch.org/whl/xpu&lt;br /&gt;
python -m pip install intel-extension-for-pytorch==2.8.10+xpu --index-url https://pytorch-extension.intel.com/release-whl/stable/xpu/us/&lt;/blockquote&gt;

And, Install &lt;a href="https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170#latest-supported-redistributable-version"&gt;Latest supported redistributable version  by MS&lt;/a&gt; , and reboot &lt;br /&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;--&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;
* nVidia 安裝就是舒服， 直接無腦裝 torch 即可，沒有一堆囉嗦蛋酥：&amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;blockquote&gt;
  pip install torch
&lt;/blockquote&gt;
&lt;hr /&gt; &lt;br /&gt;
CODE: &lt;br /&gt;
&lt;p&gt;
&lt;/p&gt;&lt;pre&gt;&lt;blockquote&gt;
import torch
import sys

HAS_IPEX = False
HAS_DML = False

# 嘗試導入 Intel Extension for PyTorch
# Try to import Intel Extension for PyTorch
try:
    import intel_extension_for_pytorch as ipex
    HAS_IPEX = True
except ImportError:
    HAS_IPEX = False

# 嘗試導入 PyTorch DirectML (用於 AMD GPU 支援)
try:
    import torch_directml
    HAS_DML = True
except ImportError:
    HAS_DML = False

def get_best_device():
    """
    自動檢測並返回最佳可用設備 (Auto-detect and return best available device).
    優先級 Priority:
    1. NVIDIA GPU (&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+CUDA+PyTorch&amp;amp;bbid=8068432605654055822&amp;amp;bpid=8166375881945894081" target="_blank"&gt;CUDA&lt;/a&gt;)
    2. Intel GPU (&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+XPU+Intel+PyTorch&amp;amp;bbid=8068432605654055822&amp;amp;bpid=8166375881945894081" target="_blank"&gt;XPU&lt;/a&gt;)
    3. AMD GPU (DirectML)
    4. CPU
    """
    
    # 1. 檢查 NVIDIA CUDA
    if torch.cuda.is_available():
        print(f"[設備] 偵測到 NVIDIA GPU: {torch.cuda.get_device_name(0)}")
        return torch.device("cuda")
    
    # 2. 檢查 Intel XPU (Arc / Iris Xe)
    # PyTorch 2.4+ 可能直接支援 torch.xpu，但通常需要 IPEX
    if HAS_IPEX and hasattr(torch, 'xpu') and torch.xpu.is_available():
        print(f"[設備] 偵測到 Intel GPU (XPU): {torch.xpu.get_device_name(0)}")
        return torch.device("xpu")
    
    # 用於舊版 IPEX 的備用方案
    if HAS_IPEX and hasattr(ipex, 'xpu') and ipex.xpu.is_available():
         print(f"[設備] 偵測到 Intel GPU (XPU via IPEX)")
         return torch.device("xpu")
    # 3. 檢查 AMD GPU (DirectML)
    if HAS_DML and torch_directml.is_available():
        # DirectML 設備 ID 通常為 0
        dml_device = torch_directml.device()
        print(f"[設備] 偵測到 AMD/DirectML GPU: {torch_directml.device_name(0)}")
        return dml_device
    # 4. 降級至 CPU
    print("[設備] 未偵測到 GPU。使用 CPU。")
    return torch.device("cpu")

def print_system_info():
    print(f"Python Version: {sys.version}")
    print(f"&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=PyTorch+version+compatibility+issues&amp;amp;bbid=8068432605654055822&amp;amp;bpid=8166375881945894081" target="_blank"&gt;PyTorch Version&lt;/a&gt;: {torch.__version__}")
    print(f"Intel Extension (IPEX) 已安裝: {'是' if HAS_IPEX else '否'}")
    print(f"PyTorch DirectML (AMD) 已安裝: {'是' if HAS_DML else '否'}")
    
    if torch.cuda.is_available():
        print(f"CUDA 可用: 是, 版本: {torch.version.cuda}")
        print(f"GPU 名稱: {torch.cuda.get_device_name(0)}")
    else:
        print("CUDA 可用: 否")
    if HAS_IPEX:
        try:
            # 註: IPEX 版本檢查方式可能有所不同
            print(f"IPEX 版本: {ipex.__version__}")
        except:
            pass
        if hasattr(torch, 'xpu') and torch.xpu.is_available():
             print(f"XPU 可用: 是")
             print(f"XPU 名稱: {torch.xpu.get_device_name(0)}")
             
    if HAS_DML and torch_directml.is_available():
        print(f"DirectML 可用: 是")
        print(f"DirectML 設備: {torch_directml.device_name(0)}")

if __name__ == "__main__":
    print("=== Hardware Detection Info ===")
    print_system_info()
    print("\n=== Selecting Device ===")
    device = get_best_device()
    print(f"Selected Device: {device}")
    # Example Usage in Training
    # model = MyModel().to(device)
    # data = data.to(device)
&lt;/blockquote&gt;
&lt;/pre&gt;

&lt;hr /&gt;
* &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Intel+Arc+GPU+overview&amp;amp;bbid=8068432605654055822&amp;amp;bpid=8166375881945894081" target="_blank"&gt;Intel Arc GPU&lt;/a&gt; : &lt;br /&gt;
&lt;pre&gt;&lt;blockquote&gt;
Python Version: 3.12.3 | packaged by conda-forge | (main, Apr 15 2024, 18:20:11) [MSC v.1938 64 bit (AMD64)]
PyTorch Version: 2.8.0+xpu
Intel Extension (IPEX) 已安裝: 是
PyTorch DirectML (AMD) 已安裝: 否
CUDA 可用: 否
IPEX 版本: 2.8.10+xpu
XPU 可用: 是
XPU 名稱: Intel(R) Arc(TM) A350M Graphic
&lt;/blockquote&gt;
&lt;/pre&gt;

* nVidia RTX4060 GPU : &lt;br /&gt;
&lt;pre&gt;&lt;blockquote&gt;
=== Hardware Detection Info ===
Python Version: 3.10.16 | packaged by Anaconda, Inc. | (main, Dec 11 2024, 16:19:12) [MSC v.1929 64 bit (AMD64)]
PyTorch Version: 2.1.2+cu121
Intel Extension (IPEX) 已安裝: 否
PyTorch DirectML (AMD) 已安裝: 否
CUDA 可用: 是, 版本: 12.1
GPU 名稱: NVIDIA GeForce RTX 4060 Laptop GPU

=== Selecting Device ===
[設備] 偵測到 NVIDIA GPU: NVIDIA GeForce RTX 4060 Laptop GPU
Selected Device: cuda
&lt;/blockquote&gt;
&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>CAN Mask &amp; Filter of MCP 2515 calculate </title><link>http://543-21.blogspot.com/2025/04/can-mask-filter-of-mcp-2515-calculate.html</link><category>2515</category><category>CAN</category><category>CAN bus</category><category>CANbus</category><category>MCP</category><category>MCP-2515</category><category>MCP2515</category><category>車用匯流排</category><category>車用通訊</category><author>noreply@blogger.com (Unknown)</author><pubDate>Wed, 2 Apr 2025 11:34:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8068432605654055822.post-5613719917270069963</guid><description>&lt;div&gt;由於 CAN Bus 的 Receiver ID - MCP-2515 具有 2個Mask &amp;amp; 6個Filter&amp;nbsp;&lt;/div&gt;
&lt;div&gt;我們可以善加利用，過濾掉許多不需要的 Message，大大減少 MCP的負擔&amp;nbsp;&lt;/div&gt;
&lt;div&gt;但是，市面上討論 Mask &amp;amp; Filter 的文章超級少，這邊做個紀錄&amp;nbsp;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;◎ 首先， 先理解 Mask &amp;amp; Filter 的功能 :&amp;nbsp;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;1. MCP-2515 有兩個 Mask + 六個Filter ， 但是 依據文件說明，並非一個 Mask配三個Filter！&lt;/div&gt;
&lt;div&gt;而是：&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;* Mask0 配 Filter0 &amp;amp; Filter1 僅有兩個，使用 Buffer0&amp;nbsp;&lt;/div&gt;
&lt;div&gt;* Mask1 配 Filter2 ~ Filter5 共有四個，使用 Buffer1&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;由於 ext flag 是分開的， 若有使用 ext的需求，甚至是混合使用的需求的，可以一個mask使用ext=1，另一個使用 ext=0；&lt;/div&gt;&lt;div&gt;ID使用量大的 用Mask1，使用量小的 用Mask0&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;2. Mask &amp;amp; Filter 計算式：&amp;nbsp;&lt;/div&gt;&lt;div&gt;當 CAN Bus 收到一 Frame Message, #ID &amp;amp; Mask &amp;amp; Filter 間的關係 計算式：&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;u&gt;( #ID &amp;amp; Mask ) ?= ( Filter &amp;amp; Mask )&amp;nbsp;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;當等式成立時，後端MCU方能順利收到 該條 Message !&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;◎ 再來， 嘗試依據我們需要收到的 Message ID 反推 需要設定的 Mask &amp;amp; Filter :&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;1. 當 需求 ID 僅一個的時候：&lt;/div&gt;
&lt;div&gt;Mask = 0x7ff(ext=0, 11 bits)&amp;nbsp; -or- Mask = 0x1FFFFFFF(ext=1,29 bits)&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Filter = #ID&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;2. 當 需求 ID 僅兩個的時候：&lt;/div&gt;&lt;div&gt;我們只需要知道 兩個 ID之間 &lt;u&gt;沒有&lt;/u&gt;變動的 bits, 作為 Mask 即可&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;ul&gt;&lt;li&gt;期望收到 CAN #ID1 &amp;amp; #ID2 :&lt;br /&gt;
  ( ( #ID1 | #ID2 ) &amp;amp; Mask ) ?= ( Filter &amp;amp; Mask )&lt;br /&gt;
  Mask := NOT ( ID1 xor ID2 )&lt;br /&gt;
  Filter := ID1 -or- Filter := ID2&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;3. 當 需求 ID 超過兩個的時候：&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;ul&gt;&lt;li&gt;目標： 找出各ID間 重複出現 0 &amp;amp; 1 的 bits 作為Mask&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-source-line="42" id="重複出現-1-的-bit"&gt;重複出現 1 的 bit&lt;/h3&gt;
  &lt;p&gt;Mask1 := ( #ID1 and #ID2 and #ID3 and ... )&lt;/p&gt;
  &lt;h3 data-source-line="45" id="重複出現-0-的-bit"&gt;重複出現 0 的 bit&lt;/h3&gt;
  &lt;p&gt;Mask0 := not ( #ID1 or #ID2 or #ID3 or ... )&lt;/p&gt;
  &lt;h3 data-source-line="48" id="重複出現-0--1-的-bits"&gt;重複出現 0 &amp;amp; 1 的 bits&lt;/h3&gt;
  &lt;p data-source-line="49"&gt;MASK := Mask1 or Mask0 := ( #ID1 and #ID2 and #ID3 and ... ) or ( not ( #ID1 or #ID2 or #ID3 or ... ) )&lt;br /&gt;
    FILTER := #IDx and MASK&lt;/p&gt;
  &lt;p data-source-line="53"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;

</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[Cheat code] Age of Mythology + The Titans </title><link>http://543-21.blogspot.com/2025/03/aom-titan-cheat-code.html</link><category>AoE</category><category>AoM</category><category>CheatCode</category><category>Game</category><category>Titans</category><author>noreply@blogger.com (Unknown)</author><pubDate>Sun, 16 Mar 2025 11:14:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8068432605654055822.post-1022813475543307386</guid><description>
&lt;table border="1"&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;th align="left" colspan="2"&gt;&amp;nbsp; ◎ 資源類&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;JUNK FOOD NIGHT&lt;/td&gt;&lt;td&gt;增加 1000 食物&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;TROJAN HORSE FOR SALE&lt;/td&gt;&lt;td&gt;增加 1000 木材&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ATM OF EREBUS&lt;/td&gt;&lt;td&gt;增加 1000 黃金&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;MOUNT OLYMPUS&lt;/td&gt;&lt;td&gt;最大化 Favor 值&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ENGINEERED GRAIN&lt;/td&gt;&lt;td&gt;提升農田產出/瞬間讓群居動物肥壯&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;FEAR THE FORAGE&lt;/td&gt;&lt;td&gt;行走的金牛莓叢&lt;/td&gt;&lt;/tr&gt;

  &lt;tr&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th align="left" colspan="2"&gt;&amp;nbsp; ◎ 單位與建築類&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;WUV WOO&lt;/td&gt;&lt;td&gt;召喚飛行的紫色河馬&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;GOATUNHEIM&lt;/td&gt;&lt;td&gt;將所有單位變成山羊&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;I WANT TEH MONKEYS!!!1!&lt;/td&gt;&lt;td&gt;生成 100 隻猴子&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;BARKBARKBARKBARKBARK&lt;/td&gt;&lt;td&gt;生成特殊寵物狗(Basket the dog)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;TINES OF POWER&lt;/td&gt;&lt;td&gt;生成一個“叉子小子”單位&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;O CANADA&lt;/td&gt;&lt;td&gt;快速熊&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;L33T SUPA H4X0R&lt;/td&gt;&lt;td&gt;所有建築物立即完成&lt;/td&gt;&lt;/tr&gt;

  &lt;tr&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th align="left" colspan="2"&gt;&amp;nbsp; ◎ 地圖與視野類&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;SET ASCENDANT&lt;/td&gt;&lt;td&gt;揭露整張地圖&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;LAY OF THE LAND&lt;/td&gt;&lt;td&gt;開啟地圖但保留迷霧&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;UNCERTAINTY AND DOUBT&lt;/td&gt;&lt;td&gt;隱藏所有玩家的地圖視野&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;RED TIDE&lt;/td&gt;&lt;td&gt;遊戲中的水變為紅色&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;LETS GO! NOW!&lt;/td&gt;&lt;td&gt;加快(2個空白?)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;IN DARKEST NIGHT&lt;/td&gt;&lt;td&gt;白天/黑夜&lt;/td&gt;&lt;/tr&gt;

  &lt;tr&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th align="left" colspan="2"&gt;&amp;nbsp; ◎ 神力與特殊效果類&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;DIVINE INTERVENTION&lt;/td&gt;&lt;td&gt;可以重複使用已使用的神力&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;WRATH OF THE GODS&lt;/td&gt;&lt;td&gt;獲得強大的神力（例如雷電風暴、地震等）&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;PANDORAS BOX&lt;/td&gt;&lt;td&gt;隨機生成一個神力或效果&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;BAWK BAWK BOOM&lt;/td&gt;&lt;td&gt;降下爆炸雞的神力&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;CONSIDER THE INTERNET&lt;/td&gt;&lt;td&gt;立刻增加 10% Favor&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ISIS HEAR MY PLEA&lt;/td&gt;&lt;td&gt;免費建造所有神廟&lt;/td&gt;&lt;/tr&gt;

  &lt;TR&gt;&lt;/TR&gt;
&lt;tr&gt;&lt;th align="left" colspan="2"&gt;&amp;nbsp; ◎ 關卡&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;THRILL OF VICTORY&lt;/td&gt;&lt;td&gt;立即獲勝&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;CHANNEL SURFING&lt;/td&gt;&lt;td&gt;跳到下一關&lt;/td&gt;&lt;/tr&gt;

  &lt;TR&gt;&lt;/TR&gt;
&lt;tr&gt;&lt;th align="left" colspan="2"&gt;&amp;nbsp; ◎ Titan 專屬&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;TITANOMACHY&lt;/td&gt;&lt;td&gt;召喚一個強大的泰坦單位&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;MR. MONDAY&lt;/td&gt;&lt;td&gt;給泰坦 AI 提供 1000% 增益&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;TITANS BE GONE&lt;/td&gt;&lt;td&gt;快速移除所有泰坦單位&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ATLANTEAN NO MORE&lt;/td&gt;&lt;td&gt;讓亞特蘭提斯單位轉換為其他文明單位&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ZENOS PARADOX&lt;/td&gt;&lt;td&gt;讓所有單位移動速度變得非常緩慢&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;DECONSTRUCTIVE CRITICISM&lt;/td&gt;&lt;td&gt;摧毀所有敵方建築物&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ATLANTIS REBORN&lt;/td&gt;&lt;td&gt;召喚英雄單位 Amanra&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;RESET BUTTON&lt;/td&gt;&lt;td&gt;將所有單位還原到他們的出生地點或起始位置&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;TINFOIL HAT&lt;/td&gt;&lt;td&gt;所有人戴帽&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;!--//
&lt;TR&gt;&lt;TD&gt;
&lt;/TD&gt;&lt;TD&gt;
&lt;/TD&gt;&lt;/TR&gt;
//--&gt;
</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[NXP][S32K14x 功能安全特性] EIM/ERM 功能驗證</title><link>http://543-21.blogspot.com/2024/08/s32k14x-eimerm.html</link><category>ARM</category><category>C++</category><category>EIM</category><category>ERM</category><category>NXP</category><category>S32K144</category><category>S32K14x</category><author>noreply@blogger.com (Unknown)</author><pubDate>Thu, 22 Aug 2024 17:01:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8068432605654055822.post-2587737371455687088</guid><description>&lt;span style="font-family: courier;"&gt;NXP S32K14x 作為一車規級的晶片，晶片本身是支援功能安全相關的特性，晶片的功能安全等級是ASIL-B等級。&lt;/span&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;從以下功能安全手冊的描述可以看到S32K14x 晶片的FLASH/SRAM 是支援硬體ECC校驗機制，支援 SEC/DED 演算法修正1bit 錯誤及多bit 錯誤檢出機制。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;S32K14x 有4K FlexRAM 位在 1400_0000h ~ 1400_0FFFh&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;S32K11x 僅有 2K FlexRAM 位在 1400_0000h ~ 1400_07FFh&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;以及 1K SRAM 位於 1FFF_FC00h ~ 1FFF_FFFFh&lt;br /&gt;&lt;/span&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://www.nxpic.org.cn/module/forum/data/attachment/forum/202401/20/233331qphb0b6fl7y6fp07.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span style="font-family: courier;"&gt;&lt;img border="0" data-original-height="237" data-original-width="618" height="237" src="https://www.nxpic.org.cn/module/forum/data/attachment/forum/202401/20/233331qphb0b6fl7y6fp07.jpg" width="618" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;ECC 功能如果軟體要驗證的話，正常情況下是不會觸發bit 錯誤異常的，正常情況這個異常是很難觸發的，軟體如果要驗證這個功能需要怎麼觸發驗證呢，EIM是個錯誤注入模組可以對數據線及ECC碼進行注入錯誤驗證，確保ECC功能的安全可靠，以下是EIM模組的框體，從框圖能夠看出EIM 模組可以控制對應的bit 讀取的資料發生位元反轉。&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://www.nxpic.org.cn/module/forum/data/attachment/forum/202401/21/072001v02f3txxcj70j2yo.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span style="font-family: courier;"&gt;&lt;img border="0" data-original-height="514" data-original-width="565" height="514" src="https://www.nxpic.org.cn/module/forum/data/attachment/forum/202401/21/072001v02f3txxcj70j2yo.jpg" width="565" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family: courier;"&gt;從如下框圖也可以看出來CPU 透過LMEM（Local Memory Controller） 單元存取RAM 資源中間是途經EIM模組，從而EIM 完成對應的路徑的注錯驗證診斷RAM ECC 功能。&lt;/span&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://www.nxpic.org.cn/module/forum/data/attachment/forum/202401/21/151955d2it3eqiz9699v0j.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span style="font-family: courier;"&gt;&lt;img border="0" data-original-height="656" data-original-width="836" height="656" src="https://www.nxpic.org.cn/module/forum/data/attachment/forum/202401/21/151955d2it3eqiz9699v0j.png" width="836" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;EIM 能夠注入錯誤，注入的錯誤如何被檢出報告，S32K內部還有個ERM模組這個模組能檢出SRAM 是否發生了ECC 錯誤及ECC錯誤的類型，並具有中斷信號輸出通知到CORE 的能力， ERM 的介紹如下：&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://www.nxpic.org.cn/module/forum/data/attachment/forum/202401/22/154649gfpi78so6lxzesp7.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span style="font-family: courier;"&gt;&lt;img border="0" data-original-height="1206" data-original-width="1052" height="1206" src="https://www.nxpic.org.cn/module/forum/data/attachment/forum/202401/22/154649gfpi78so6lxzesp7.png" width="1052" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;span style="font-family: courier;"&gt;EIM 單bit 錯誤注入驗證&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;我們使用SDK 的配置接口，使能配置EIM/ERM 透過EIM 注入1bit 錯誤，然後讀取ERM 狀態寄存器判斷注入錯誤狀態是否成功是否按照預期的檢測出ECC錯誤，對應的測試代碼如下：&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;eim config:&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp;* @page misra_violations MISRA-C:2012 violations&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp;*&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp;* @section [global]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp;* Violates MISRA 2012 Advisory Rule 8.7, External variable could be made static.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp;* The external variables will be used in other source files in application code.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp;*&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp;*/&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;/* Channel configurations */&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;const eim_user_channel_config_t eim_InitConfig0[EIM_CHANNEL_COUNT0] =&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; /* Channel configuration 0 */&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .channel = 0U,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .checkBitMask = 0U,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .dataMask = 1U,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .enable = true&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;};&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style="background-color: white; color: #333333; font-family: courier; font-size: 14px;"&gt;erm config:&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;/* Interrupt configurations */&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;/* Interrupt configuration 0 */&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;const erm_interrupt_config_t erm_Interrupt0 =&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; .enableSingleCorrection = true,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; .enableNonCorrectable = true&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;};&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;/* ERM configurations */&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;/* ERM configuration 0 */&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;const erm_user_config_t erm_InitConfig0[ERM_CHANNEL_COUNT0] =&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; /* Channel configuration 0 */&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .channel = 0U,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .interruptCfg = &amp;amp;erm_Interrupt0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;};&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;測試程式碼：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;#include &amp;lt;rtthread.h&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;#include &amp;lt;rtdevice.h&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;#include &amp;lt;board.h&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;int eim_correct(void)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; uint32_t test;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; uint32_t addr;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; erm_ecc_event_t retValue = ERM_EVENT_NONE;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; /* Initialize address used to test */&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; *(uint32_t *)0x1FFFFFF0U = 0U;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; /* Hardware initialization */&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; /* Initial for ERM module */&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; ERM_DRV_Init(INST_ERM_CONFIG_1, ERM_CHANNEL_COUNT0, erm_InitConfig0);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; /* Initial for EIM module */&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; EIM_DRV_Init(INST_EIM_CONFIG_1, EIM_CHANNEL_COUNT0, eim_InitConfig0);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; /* Read any address on RAM&amp;nbsp; */&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; /* Enable read region Ram (0x1FFF8000 - 0x20006FFF) when debug equal Flash */&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; test = *(uint32_t *)0x1FFFFFF0U;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; (void)test;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; /* Deinit EIM module */&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; EIM_DRV_Deinit(INST_EIM_CONFIG_1);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; /* Check error and get address which EIM injection error */&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; retValue = ERM_DRV_GetErrorDetail(INST_ERM_CONFIG_1, 0U, &amp;amp;addr);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; rt_kprintf("erm status %s error addr is 0x%08x\n",\&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; retValue == ERM_EVENT_NONE ? "ERM_EVENT_NONE" :\&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (retValue == ERM_EVENT_SINGLE_BIT ? "ERM_EVENT_SINGLE_BIT" :\&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (retValue == ERM_EVENT_NON_CORRECTABLE ? "ERM_EVENT_NON_CORRECTABLE" : "ERM_EVENT_NONE")),\&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; addr);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; return 0;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;MSH_CMD_EXPORT_ALIAS(eim_correct, eim1 ,eim correct test);&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;執行上述測試程式碼，輸入eim1 測試指令，ERM 模組已經按照預期的偵測到 Single bit 錯誤。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://www.nxpic.org.cn/module/forum/data/attachment/forum/202401/22/163226i0nw07fnnnf4nf1r.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span style="font-family: courier;"&gt;&lt;img border="0" data-original-height="264" data-original-width="631" height="264" src="https://www.nxpic.org.cn/module/forum/data/attachment/forum/202401/22/163226i0nw07fnnnf4nf1r.jpg" width="631" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;span style="font-family: courier;"&gt;ERM 單bit 錯誤中斷驗證&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;在上述程式碼的基礎上追加ERM 中斷啟用，查看中斷函數能否被正常執行，對應程式碼修改如下：&lt;/span&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://www.nxpic.org.cn/module/forum/data/attachment/forum/202401/22/173420ghnk3hr0nrhxeh05.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span style="font-family: courier;"&gt;&lt;img border="0" data-original-height="914" data-original-width="1348" height="914" src="https://www.nxpic.org.cn/module/forum/data/attachment/forum/202401/22/173420ghnk3hr0nrhxeh05.png" width="1348" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: courier;"&gt;輸入測試命令,中斷處理函數內部已經捕獲但位元錯誤並清除掉該錯誤標誌。&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://www.nxpic.org.cn/module/forum/data/attachment/forum/202401/22/173853buzf1s4zyefws6zy.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span style="font-family: courier;"&gt;&lt;img border="0" data-original-height="389" data-original-width="864" height="389" src="https://www.nxpic.org.cn/module/forum/data/attachment/forum/202401/22/173853buzf1s4zyefws6zy.jpg" width="864" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;如果看的仔細會發現中斷的形式EPM報出來的位址和直接查詢狀態時對應的位址時不同的，中斷的方式我們用來triger 讀取的是0x1FFFFFF0U 的測試位址，為什麼中斷報出來的是0x1fff00f0,這是因為觸發中斷的時候回去讀取中斷向量表，我們的中斷向量表是在SRAM裡，我們debug 查下0x1fff00f0儲存的是不是對應的中斷函數。透過下圖可知道確實是中斷向量，所以EPM 記錄的是最後一次觸發的一場位址。&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://www.nxpic.org.cn/module/forum/data/attachment/forum/202401/22/221914ja39jkkk5nu359at.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span style="font-family: courier;"&gt;&lt;img border="0" data-original-height="618" data-original-width="1363" height="618" src="https://www.nxpic.org.cn/module/forum/data/attachment/forum/202401/22/221914ja39jkkk5nu359at.jpg" width="1363" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;span style="font-family: courier;"&gt;EIM 多bit 錯誤注入驗證&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;驗證完了單bit ECC異常，我們修改EIM 的配置往ECC區域注入多bit 錯誤 看看是否也會跟上面一樣觸發中斷。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;修改EIM 配置：&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;const eim_user_channel_config_t eim_InitConfig1[EIM_CHANNEL_COUNT1] =&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; /* Channel configuration 0 */&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .channel = 0U,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .checkBitMask = 3U,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .dataMask = 0U,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .enable = true&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;};&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp;新增如下測試指令eim2：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;/*!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; \brief The ERM_ISR funcion invert state Led&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; *- Clear event when have notify interrupt&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;*/&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;void erm_doublebit_isr(void)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; uint32_t addr;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; erm_ecc_event_t retValue = ERM_EVENT_NONE;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; /* Deinit EIM module */&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; EIM_DRV_Deinit(INST_EIM_CONFIG_1);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; /* Check error and get address which EIM injection error */&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; retValue = ERM_DRV_GetErrorDetail(INST_ERM_CONFIG_1, 0U, &amp;amp;addr);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; rt_kprintf("erm isr status %s error addr is 0x%08x\n",\&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; retValue == ERM_EVENT_NONE ? "ERM_EVENT_NONE" :\&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (retValue == ERM_EVENT_SINGLE_BIT ? "ERM_EVENT_SINGLE_BIT" :\&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (retValue == ERM_EVENT_NON_CORRECTABLE ? "ERM_EVENT_NON_CORRECTABLE" : "ERM_EVENT_NONE")),\&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; addr);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; /* The interrupt notification will be cleared.*/&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; ERM_DRV_ClearEvent(INST_ERM_CONFIG_1, 0U, ERM_EVENT_NON_CORRECTABLE);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;int eim_double_bit(void)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; uint32_t test;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; uint32_t addr;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; erm_ecc_event_t retValue = ERM_EVENT_NONE;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; /* Initialize address used to test */&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; *(uint32_t *)0x1FFFFFF0U = 0U;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; /* Install IRQ Handlers for ERM and SysTick */&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; INT_SYS_InstallHandler(ERM_double_fault_IRQn, erm_doublebit_isr, (isr_t *)0);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; /* Enable ERM IRQ */&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; INT_SYS_EnableIRQ(ERM_double_fault_IRQn);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; /* Hardware initialization */&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; /* Initial for ERM module */&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; ERM_DRV_Init(INST_ERM_CONFIG_1, ERM_CHANNEL_COUNT0, erm_InitConfig0);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; /* Initial for EIM module */&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; EIM_DRV_Init(INST_EIM_CONFIG_1, EIM_CHANNEL_COUNT1, eim_InitConfig1);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; /* Read any address on RAM&amp;nbsp; */&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; /* Enable read region Ram (0x1FFF8000 - 0x20006FFF) when debug equal Flash */&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; test = *(uint32_t *)0x1FFFFFF0U;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; (void)test;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; /* Deinit EIM module */&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; EIM_DRV_Deinit(INST_EIM_CONFIG_1);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; /* Check error and get address which EIM injection error */&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; retValue = ERM_DRV_GetErrorDetail(INST_ERM_CONFIG_1, 0U, &amp;amp;addr);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; rt_kprintf("erm status %s error addr is 0x%08x\n",\&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; retValue == ERM_EVENT_NONE ? "ERM_EVENT_NONE" :\&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (retValue == ERM_EVENT_SINGLE_BIT ? "ERM_EVENT_SINGLE_BIT" :\&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (retValue == ERM_EVENT_NON_CORRECTABLE ? "ERM_EVENT_NON_CORRECTABLE" : "ERM_EVENT_NONE")),\&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; addr);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; &amp;nbsp; return 0;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;MSH_CMD_EXPORT_ALIAS(eim_double_bit, eim2 ,eim uncorrect test);&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;輸入eim2 指令驗證：&lt;/span&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://www.nxpic.org.cn/module/forum/data/attachment/forum/202401/22/222425qiivsyk7ii7ygzpi.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span style="font-family: courier;"&gt;&lt;img border="0" data-original-height="203" data-original-width="900" height="203" src="https://www.nxpic.org.cn/module/forum/data/attachment/forum/202401/22/222425qiivsyk7ii7ygzpi.jpg" width="900" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family: courier;"&gt;從上面的log 可知，已經按照預期的觸發了不可糾正ECC錯誤，對應的地址和上面的 單bit異常 的地址是相同的原因 是中斷向量表的地址相同。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier;"&gt;--&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color: white; font-family: courier; font-size: 1;"&gt;&lt;font size="1"&gt;*** ref : https://www.nxpic.org.cn/module/forum/thread-802634-1-1.html ***&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[NXP][S32K144] CAN UJA1169 SBC chip Hard Reset Circuit Connection</title><link>http://543-21.blogspot.com/2024/04/nxp-s32k144-can-uja1169-sbc-chip-hard.html</link><category>ARM</category><category>CAN</category><category>CAN bus</category><category>CANbus</category><category>NXP</category><category>Reset</category><category>S32K144</category><category>SBC</category><category>UJA1169</category><category>車用匯流排</category><category>車用通訊</category><author>noreply@blogger.com (Unknown)</author><pubDate>Mon, 29 Apr 2024 11:26:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8068432605654055822.post-6908063462441660631</guid><description>&lt;pre&gt;手上有塊 NXP S32K144 EVB，
結果，被用到 原本可以正常 CAN通訊的 被用到 CAN直接無訊號輸出。
想著要針對 SBC的UJA1169 做硬體 Reset, 網路上僅找到 對 S32K118 Reset的文章
找不到針對 144的相關說明
&lt;span&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/span&gt;

144跟 118一樣，需要對 UJA1169 做以下動作，才能順利完成硬體Reset:
1. UJA1169 RST 腳位低電平
2. CAN_H 接 VBAT
3. CAN_L 接 GND
4. 保持上電至少 td(MTPNV) 時間 ，約 0.9 ~ 1.1s 。


自己翻閱電路圖才發現 144跟118有許多地方不同
* 首先， 144的CAN接線 已經針對電阻部分 接上兩個 Jumper, 直接拔掉即可；不需要像 118依樣 需要動到烙鐵 解焊!
* 再來， 144已經針對 Reset腳，拉出了個 TP點，直接拉出GND訊號，碰觸該TP點一秒即可
* 最後， 118 CAN接口的 Pin 3是接VBATT電源，但 144的 CAN J13 pin3卻是空接 

最後決定直接拉 CAN 自己的 第4 pin GND來接 Pin2
偷用LIN pin2的VBATT接地來用接CAN Pin1
再借用 J3第13腳的GND來接TP24 RST 

最後接線如圖 
&lt;div class="separator" style="clear: both;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixByptyd3ffi9wTIaxcpdioJXGiBFzqJAj9EezfGUf1KaQBJ1u4Hl7A4qfh_2m4q9m8AAYrEU8vQeY-RXpN1hGuZOTFjJimC9dJM4UOu8sDOMyqcB_h0p4byTu269xbfBVxRAZa_HDwyKxo19bDj6hKre7S4PcLOcD63BJNTAqmWjlBLhaDvmNx3L2PRQ/s1347/SBC_ResetConnect.jpg" style="display: block; padding: 1em 0px; text-align: center;"&gt;&lt;img alt="" border="0" data-original-height="812" data-original-width="1347" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixByptyd3ffi9wTIaxcpdioJXGiBFzqJAj9EezfGUf1KaQBJ1u4Hl7A4qfh_2m4q9m8AAYrEU8vQeY-RXpN1hGuZOTFjJimC9dJM4UOu8sDOMyqcB_h0p4byTu269xbfBVxRAZa_HDwyKxo19bDj6hKre7S4PcLOcD63BJNTAqmWjlBLhaDvmNx3L2PRQ/s320/SBC_ResetConnect.jpg" width="812" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/pre&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixByptyd3ffi9wTIaxcpdioJXGiBFzqJAj9EezfGUf1KaQBJ1u4Hl7A4qfh_2m4q9m8AAYrEU8vQeY-RXpN1hGuZOTFjJimC9dJM4UOu8sDOMyqcB_h0p4byTu269xbfBVxRAZa_HDwyKxo19bDj6hKre7S4PcLOcD63BJNTAqmWjlBLhaDvmNx3L2PRQ/s72-c/SBC_ResetConnect.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>常用 CAN bus 相關名詞英文縮寫</title><link>http://543-21.blogspot.com/2024/02/can-bus_21.html</link><category>CAN bus</category><category>CANbus</category><category>CANoe</category><category>車用匯流排</category><category>車用通訊</category><author>noreply@blogger.com (Unknown)</author><pubDate>Wed, 21 Feb 2024 08:55:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8068432605654055822.post-1875468908470612503</guid><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 data-source-line="109" id="縮寫-index" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: white; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, &amp;quot;Segoe UI&amp;quot;, Arial, freesans, sans-serif; font-size: 1.75em; line-height: 1.2; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;"&gt;常見CAN bus相關縮寫 &lt;/h2&gt;&lt;div&gt;方便查詢&amp;nbsp;&lt;/div&gt;&lt;span&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;table data-source-line="111" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: white; border-collapse: collapse; border-spacing: 0px; color: #333333; display: block; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, &amp;quot;Segoe UI&amp;quot;, Arial, freesans, sans-serif; font-size: 16px; margin: 10px 0px 15px; overflow: auto; width: 670.4px; word-break: keep-all;"&gt;&lt;thead data-source-line="111" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;tr data-source-line="111" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;th style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); color: black; padding: 6px 13px; text-align: right;"&gt;縮寫&lt;/th&gt;&lt;th style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); color: black; padding: 6px 13px; text-align: left;"&gt;英文全稱&lt;/th&gt;&lt;th style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); color: black; padding: 6px 13px; text-align: left;"&gt;中文含意&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody data-source-line="113" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;tr data-source-line="113" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;CAN&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Control Area Network&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;CAN總線&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="114" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;DoCAN&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Diagnostic Communication over CAN&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;基於CAN的診斷通訊&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="115" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;ECU&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Electronic Control Unit&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;電子控制單元&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="116" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;SF&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Singal Frame&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;單禎&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="117" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;FF&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;First Frame&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;首禎&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="118" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;CF&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Consecutive Frame&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;後續禎&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="119" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;FC&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Flow Control&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;流控制禎&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="120" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;FS&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Flow Status&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;流量控制狀態&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="121" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;FF_DL&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;First Frame Data Length&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;首禎數據長度&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="122" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;FMI&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Failure Mode Indicator&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;失效模式指示&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="123" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;OBD&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;On-Board Diagnostics&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;車載診斷系統&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="124" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;OSI&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Open System Interconnection&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;開放型系統互聯&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="125" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;PCI&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Protocol Control Information&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;控制信息協議&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="126" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;SN&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Sequence Number&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;序號&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="127" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;SPN&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Suspect Parameter Number&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;可疑參數序號&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="128" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;UDS&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Unified Diagnostic Service&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;統一診斷服務&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="129" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;SID&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Service ID&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;服務識別碼&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="130" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;RSID&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Response Service ID&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;服務識別碼回覆&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="131" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;WWH-OBD&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;World-Wide Harmonized OBD&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;全球統一重型發動機的車載診斷系統&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="132" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;NW&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Network&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;網路層&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="133" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;NWL&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Network Layer&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;網路層&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="134" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;Mtype&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Message Type&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;信息類型&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="135" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;STmin&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Separation Time Minimum&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;最小的間隔時間&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="136" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;CTS&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;continue to send&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;繼續發送&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="137" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;BS&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Block Size&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;塊(Block)的大小&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="138" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;DL&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Data Length&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;數據長度&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table data-source-line="142" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: white; border-collapse: collapse; border-spacing: 0px; color: #333333; display: block; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, &amp;quot;Segoe UI&amp;quot;, Arial, freesans, sans-serif; font-size: 16px; margin: 10px 0px 15px; overflow: auto; width: 670.4px; word-break: keep-all;"&gt;&lt;thead data-source-line="142" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;tr data-source-line="142" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;th style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); color: black; padding: 6px 13px; text-align: right;"&gt;縮 寫&lt;/th&gt;&lt;th style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); color: black; padding: 6px 13px; text-align: left;"&gt;英 文 全 稱&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody data-source-line="144" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;tr data-source-line="144" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;Mtype&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Message Type&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="145" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;N_AE&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Network Address Extension&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="146" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;N_AI&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Address Information&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="147" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;N_Ar&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Network Layer Timing Parameter Ar&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="148" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;N_As&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Network Layer Timing Parameter As&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="149" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;N_Br&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Network Layer Timing Parameter Br&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="150" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;N_Bs&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Network Layer Timing Parameter Bs&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="151" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;N_ChangeParameter&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Network Layer Service Name&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="152" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;N_Cr&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Network Layer Timing Parameter Cr&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="153" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;N_Cs&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Network Layer Timing Parameter Cs&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="154" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;r&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;receiver&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="155" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;s&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;sender&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="156" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;N_Data&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Network Data&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="157" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;N_PCI&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Network Protocol Control Information&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="158" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;N_PCItype&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Network Protocol Control Information Type&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="159" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;N_PDU&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Network Protocol Data Unit&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="160" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;N_SA&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Network Source Address&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="161" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;N_SDU&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Network Service Data Unit&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="162" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;N_TA&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Network Target Address&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="163" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;N_TAtype&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Network Target Address Type&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="164" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;N_USData&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Network Layer Unacknowledged Segmented Data Transfer Service Name&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="165" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;NWL&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;NetWork Layer&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="166" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;request&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;resuest service primitive&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="167" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;indication&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;indication service primitive&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="168" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;SN&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Sequence Number&lt;/td&gt;&lt;/tr&gt;&lt;tr data-source-line="169" style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0;"&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px; text-align: right;"&gt;STmin&lt;/td&gt;&lt;td style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgb(59 130 246 / .5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 #0000; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 1px solid rgb(214, 214, 214); padding: 6px 13px;"&gt;Separation Time Min.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;

</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>CAN Bus  工作原理 - 資料連結層</title><link>http://543-21.blogspot.com/2024/02/can-bus.html</link><category>CAN bus</category><category>CANbus</category><category>CANoe</category><category>Computer</category><category>data link layer</category><category>OSI Layer 2</category><category>車用匯流排</category><category>車用通訊</category><author>noreply@blogger.com (Unknown)</author><pubDate>Tue, 20 Feb 2024 10:57:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8068432605654055822.post-6951286212057239582</guid><description>&lt;pre&gt;前面提到 CAN bus物理層的工作原理
現在來聊聊Layer 2的工作&lt;/pre&gt;&lt;pre&gt;&lt;span&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/span&gt;

借用一下 Wiki圖片，看不到圖片的，請另開新頁，&lt;a href="https://zh.wikipedia.org/zh-tw/%E6%8E%A7%E5%88%B6%E5%99%A8%E5%8D%80%E5%9F%9F%E7%B6%B2%E8%B7%AF#%E8%A8%8A%E6%A1%86"&gt;上 Wiki瀏覽&lt;/a&gt;：
&lt;img src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/CAN-Bus-frame_in_base_format_without_stuffbits.svg/1064px-CAN-Bus-frame_in_base_format_without_stuffbits.svg.png" width="95%" /&gt;
* 參考 [訊框] 後 [基本訊框格式] 圖示

首先， 當 CAN bus上 無通訊時，CAN bus處於 1(隱性)狀態。
當 有人需要開始傳送資料時，會將 CAN bus電壓拉開，處於 0（顯性）狀態；
此時 同bus上的其他人，將會知道有人要傳送資料，而處於靜默狀態。
若不幸的，有兩個以上設備，在同一時間點，均想要傳送資料，同一時間將 SOF(Start Of Frame)提升至 0（顯性）狀態 ... 

* SOF
1 bit Start Of Frame
&lt;span&gt;&lt;!--more--&gt;&lt;/span&gt;&lt;br /&gt;
	a. 緊接於 SOF後面的，即是 Message ID ！ 
		 - 之前有提到 不能有人共用相同 Message ID，所以，此處 ID肯定會不相同，則...
	b. 於 Message ID 送出 1(隱性)狀態 bit 的設備，於送出 1(隱性)狀態 bit後，
		 - 必須監聽此時的 CAN bus是否真實處於 1(隱性)狀態:
		i. 若是，則 繼續發送
		ii. 若否，則 CAN bus上，肯定有其他設備也正在發送資料，且 Message ID較自己優先；則 自己閉嘴，不再繼續發送資料。

當 設備發送完 Message ID後，此時 &lt;b&gt;碰撞機制及仲裁機制，均已完成&lt;/b&gt;(除RTR外) !!

* RTR
1 bit Remote transmission request
當 有節點需要別人提供資料，則 送出 "別人的 Message ID" ！ 並加上 RTR！
此時 是 要求 "別人傳送資料" ！ 而不是自己要送出資料！
但是，當 相同 Message ID的擁有人，恰好也正在送資料？
此時 即借鑑上述仲裁機制：
	1. RTR = 0；資料訊框中為顯性
	2. RTR = 1；遠端訊框中位隱性
提出 RTR需求的人，自然會閉嘴!!


* IDE
1 bit 拓展訊框格式
IDE=0，表示此Frame為 Base frame format(基本訊框格式)， Message ID僅為前方 11 bits
IDE=1，表示此Frame為 Extended frame format(拓展訊框格式)， Message ID高達 29 bits
IDE=1具有兩段 Message ID，除了上述格式完全相同外，後面新增添了另一段 Message ID；
(應該是後來發現僅 11 bits的 Message ID不夠使用了 才如此修改添加的？)
IDE=1 的 拓展訊框格式 暫時不多解釋 


*R0
1 bit 預留位
實際被 CAN FD拿來表示為 CAN FD格式


* DLC(Data Length Code)
顧名思義，即為後方緊接著的 資料欄位 長度
占用 4 bits，可以表達數字 0~15；但 礙於規定，於 IDE=0(Base frame format)下，最大值僅能設定為 =8
於 Base Frame Format下，設定 值 8-15 均會被解釋為 =8


* Data 
可以是 0 bytes, 最多僅能使用 8 bytes (IDE=0, Base frame format)
(據說是怕占用到其他設備通訊太久時間，才定這麼短的?)


* CRC &amp;amp; CRC定界符
CRC 15 bits
CRC定界符 1 bit
該Bus上的所有設備，均須計算 CRC； 
由傳送此Frame的人傳送該CRC資料
其他設備做CRC檢驗！
Sender固定對CRC定界符送出 =1 訊號！
除了自己以外的其他設備 檢測到，Frame中CRC與自己計算出的CRC值：
	a. 相符，則 幫忙填寫 CRC定界符 為 =0
    b. 不相符，則 什麼都不用做!!
只要有一個其他設備將 CRC定界符 設定為 =0，則 CRC定界符即為 =0
此時表示 CRC正確！ 或者說 至少有一人收到正確的 CRC值
此時， &lt;b&gt;Frame CRC check也完成 並被回報給Sender知曉&lt;/b&gt;
省去了 遭遇碰撞後重傳時間，也省去了詢問/等待CRC等錯誤回報時間 


* EOF
7 bits End of Frame
固定為 =1
表示 該Frame結束


* IF
3 Bits+ 訊框間內容(?)
至少 三個連續的1 組成(不確定是否包含 EOF的1，抑或EOF外再添加?)
其後的第一個 =0 bit 將會被視為 下一個 Frame的開始(SOF) 


此處還要另外說明一下 位填充 機制
如果 你是直接使用 示波器下去做檢視
偶爾會出現Frame中多1 bit的狀況
這不是雜訊!!!這不是雜訊!!!這不是雜訊!!!
而是位填充機制：
所以， sender在 相同極性的五個連續bit後 插入一個相反的極性的bit訊號 
CAN bus上 出現 連續6個相同bits，會被視為錯誤
此亦為錯誤檢測機制的一部分
若是自行撰寫 RAW Data轉換的人，解碼時 請記得優先將此bit拿掉 才是真正的Frame Data !!!


也由於這種仲裁機制，這就意味著 Message ID較小的frame有著較高的傳送優先權
所以，在設計/設定Message ID的時候，比較重要 攸關性命 需要及時反映的設備，務必使用較小ID
相反的，不重要的東西， 就給他丟到最後面幾個ID讓他慢慢被碰撞吧... 
不會有人希望見到自己的安全氣囊，比別人家的，慢個半秒鐘才做動吧!? 
 
&lt;/pre&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>CAN Bus  工作原理 - 物理層</title><link>http://543-21.blogspot.com/2024/01/can-bus.html</link><category>CAN bus</category><category>CANbus</category><category>CANoe</category><category>Computer</category><category>OSI Layer 1</category><category>Physical Layer</category><category>車用匯流排</category><category>車用通訊</category><author>noreply@blogger.com (Unknown)</author><pubDate>Tue, 30 Jan 2024 15:53:00 +0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8068432605654055822.post-7032340531532928735</guid><description>&lt;pre&gt;作為 車用通訊 車用匯流排標準 的 &lt;br /&gt;控制器區域網路 (Controller Area Network，簡稱CAN或者CAN bus) 

&lt;i&gt;首先，先了解硬體架構：&lt;/i&gt; 
CAN Bus通訊 僅使用兩條電線相連，一條高電壓，名曰 CAN+(CAN High)；&lt;br /&gt;另一條是低電壓，名曰 CAN-(CAN Low)
通常使用 5V電壓，所有設備皆拉兩條 CAN+/-出來，跟別人的CAN+/- 接在一起，&lt;br /&gt;中間並需接上120Ω的電阻，俗稱 終端電阻。
自己的CAN+線 接別人的CAN+線，CAN-接別人的CAN-。
CAN Bus無所謂的 Master/Host，不需要找特定主機 逐一訊問(俗稱Polling)。
只要自己開機完 通訊準備完畢，就可以開始發送訊號。&lt;br /&gt;
每條CAN bus上，最少需要兩個設備在線！ &lt;br /&gt;因為 通訊中有個ACK訊號，需要別台機器幫忙發送確認。
同時作為他台機器確認收到正確完整封包的指示。
通訊期間，一般不會如同其他Bus般 : &lt;br /&gt;稱呼高低電壓為 0/1(因為CAN+與CAN-恰好電壓是相反的)，
而是稱 顯性及隱性 (理由下面說明)
平時無通訊期間，CAN bus上皆為 隱性（1)訊號！
隱性（1) 訊號時， CAN+為低電壓； CAN-為高電壓。
顯性（0）訊號時， CAN+為高電壓； CAN-為低電壓。
CAN bus晶片，僅以CAN+及CAN-之間的電壓差，作為0或1的判定標準；&lt;br /&gt;俗稱： 差分訊號。&lt;br /&gt;
例如： &lt;br /&gt;雖然 CAN+有高達 2.8V電壓，但 CAN-此時也有2.4V訊號；&lt;br /&gt;此時CAN chip仍判定Bus上訊號為 隱性（1) 訊號
§ 依據 ISO 11898-2規範 ： 
&lt;blockquote&gt; 
Vdiff&amp;gt;=1.5V 視為 顯性（0）；&lt;BR /&gt;
Vdiff&amp;lt;=0.5V 視為 隱性（1)。
&lt;/blockquote&gt; 
理解工作原理 才能順利記憶 
&lt;i&gt;關於 CAN Bus背後的工作原理：&lt;/i&gt;

問：
&lt;blockquote&gt; 
一條 5V的電線，與一條 0V電線，中間 串接一 120Ω的終端電阻；
斷電後，若不持續外加電壓，此時兩條線的電壓會是多少？ &lt;/blockquote&gt;
&lt;span&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;

是的，這就是 CAN bus的動作原理
當 CAN+電壓向上提升至 5V, CAN-向下降至0V後；只要後續不在繼續施加電壓，
這兩條線 就會藉著 120Ω的終端電阻 &lt;br /&gt;迅速降/升至兩條電線 趨近於相同電壓 (差分電壓 ≈ 0V)。
此時 就是前面說的 隱性（1) 訊號 狀態！ 
當 沒有人需要送資料時，CAN bus也是保持在這狀態下。故稱呼為 隱性。

相反，當有人需要傳送資料時，就會將電壓拉開；亦就是 顯性（0）訊號。
...

再來，這樣的機制，該如何解決： &lt;br /&gt;『"同時間"有兩個以上設備 皆想要送出資料』 的 碰撞 狀況！

當設備發出訊號時，他們發送訊號時，同時間仍會持續監聽Bus上的通訊狀況
當 有兩個以上設備同時發出訊號時，只要 發送 隱性（1) 訊號的設備，
發現 Bus上 仍然保持在 顯性（0）訊號 上！ 他就能知道，有其他設備 也同時正在發送訊號！
此時的他 就進入 shut up模式，等別人順利發送完訊號再說！
如此簡單的機制，就輕鬆解決的碰撞的問題！


&lt;i&gt;別人如何知道 收到 的訊息 是完整，正確且有效的？&lt;/i&gt;
◎ CRC
首先，要讓別人知道 他由CAN Bus上 收到的訊息，&lt;br /&gt;是否是正確有效的，那 我就必須要在我送出的封包中 加上CRC訊息。
CRC 簡單的說 就是我將前面發送的訊息做運算後，填入CRC欄位；
收到訊息的人，運用相同的計算方法去計算CRC值；如果跟我送出的CRC不相同，
那就表示這通訊中間有被干擾。(我送出0他收到的卻是1,或是相反。)
此時，CRC驗證不成功的人，就電電不出聲(因為有可能整條Bus上 只有他一個人收到錯誤訊息)

&lt;i&gt;那 我又要如何能知道，『我完整發送完的訊息』，已經被別人「正確收到」呢？&lt;/i&gt;
◎ ACK機制
在整個封包發送機制過程中，發送訊息的人 在送完CRC後，&lt;br /&gt;會送出一個 顯性（0）訊號，然後 接著發送一個 隱性（1) 訊號
確認完 上述CRC正確的設備，會在此時 將該 隱性（1) 訊號 &lt;br /&gt;更改為 顯性（0）訊號！ 一般稱這一個訊號叫 ACK確認槽！
一方面表示 他已經收到，另一方面表示 他收到的封包是正確有效的！
發送端 發現自己送出的這一個 隱性（1) ACK訊號，被別人更改為 顯性（0）訊號！ 
那 他就明白 已經有人收到此訊息，並驗證成功！ 此條訊息發送完畢！ 
在再送出一個 顯性（0）訊號 ，通知別人收到此ACK訊息後，這段訊息傳送工作就算結束！ 
然後 就進入 全員靜默狀態...  整條Bus均為 顯性（0）訊號，至少持續 7個bits長度 ... 
...然後 等待下一個設備發出訊號...

簡單說完...
CAN Bus 背後原理 就是這麼簡單
平時Bus上 均無人主動送出電壓訊號，故 CAN_H與 CAN_L 兩線，會逐漸趨向相同電壓 → 隱性（1）訊號
當有人需要送出資料時，先將CAN_H及CAN_L電壓拉開，通知其他人已經開始傳送資料 → 顯性（0）訊號
當送出 1 bit的 顯性（0）訊號 作為起始位(SOF) 後， 就啟動了仲裁位(ID)的仲裁機制（稍後詳聊）：

1. 當 兩個以上 ECU同時傳輸ID位資料時，先送出 bit 1(隱性) 的 ECU 將失去話語權
2. 由於電器特性，只要Bus上 有一人將 CAN_H及CAN_L 電壓拉開，&lt;br /&gt;形成顯性（0）訊號，則 CAN Bus上 將僅會出現顯性（0）訊號，而不會出現隱性（1）訊號
3. 承上，送出訊號 1(隱性) 的 ECU，只需要回頭檢查 CAN Bus上：&lt;br /&gt;當前訊號是否不是隱性（1）訊號；就知道自己仲裁失敗，應該閉嘴

&lt;a href="https://zh.wikipedia.org/zh-tw/%E6%8E%A7%E5%88%B6%E5%99%A8%E5%8D%80%E5%9F%9F%E7%B6%B2%E8%B7%AF#%E8%B3%87%E6%96%99%E5%82%B3%E8%BC%B8"&gt;Wiki這邊有個很好的例子&lt;/a&gt;：
參考 #資料傳輸 下面的表格
同一條 CAN Bus上，有 Node 15 &amp;amp; Node 16 兩個設備，在同一個時間點 要傳送資料出去；則 
... 依上所述，前半部 資料相同部分，雙方持續傳送資料；... 直至 "先送出1的人閉嘴" 

由於能傳送 8 bytes，所以 一道訊息，最多能傳送 (8 bytes * 8 bits) = 64 種 現場設備狀態，或是控制訊號
但是，一台設備 需要傳送/接收的訊息，通常不只上百種
所以，同一台設備 是極有可能同時背負著許多不同的 Message ID，用來表示許多不同的設備狀態或是動作要求 
實際運用上，(除UDS外)也多定義 一台設備，配備多條不同Message ID的訊息來傳送資料 或接收控制訊號
由於Message ID同時兼顧了碰撞仲裁機制，所以 同一條Bus上，&lt;br /&gt;不允許出現有 不同設備使用相同Message ID的狀況發生

&lt;/pre&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><georss:featurename xmlns:georss="http://www.georss.org/georss">香港淺水灣海灘道33號</georss:featurename><georss:point xmlns:georss="http://www.georss.org/georss">22.2374074 114.1964528</georss:point><georss:box xmlns:georss="http://www.georss.org/georss">22.205632741154645 114.16212052460938 22.269182058845352 114.23078507539063</georss:box></item></channel></rss>