<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設計應用 > 通過示波器測試SPC協(xié)議解碼

          通過示波器測試SPC協(xié)議解碼

          作者: 時間:2019-07-30 來源:網絡 收藏

          在很多的場合,我們往往需要測量較高精度的角度和位置,例如汽車的油門,節(jié)氣門位置以及轉向扭矩感應等。由此,用于傳輸磁感應強度的應運而生,下面我們來了解一下此協(xié)議的內容。

          本文引用地址:http://www.ex-cimer.com/article/201907/403208.htm

          概述

          (Short PWM Code)協(xié)議,是基于SENT(Single Edge Nibble Tranmission)協(xié)議的增強版,通過兩個相鄰周期的下降沿之間的脈沖實現(xiàn)數據傳輸,相對于模擬輸出和PWM輸出,具有很好的EMC特性,具有較高的傳輸速度,較強的可靠性和抗干擾能力。此協(xié)議廣泛應用于精確的轉動角度測量和位置檢測,汽車應用包括踏板、油門或變速桿位置檢測,懸架控制或電動助力轉向系統(tǒng)直接扭矩檢測等。

          SPC協(xié)議以單線半雙工傳輸的方式進行數據傳輸,最多可以同時控制4個傳感器。與SENT不同,SPC新增了觸發(fā)字段,可表示三種模式:同步模式,ID選擇與范圍選擇。SPC各個字段的值根據兩個下降沿之間的時間來表示一個四位的值,根據下降沿時間除以一個固定的值所得的結果減去12就是所代表的值,這個固定的值成為單位時間(UT)。

          SPC幀格式介紹

          圖1 SPC幀格式

          觸發(fā)字段(master Trigger Pulse):由主機發(fā)送,根據模式的不同,長度也不同。

          同步字段(Sync frame):由從機發(fā)送,表示從機開始采集數據。

          狀態(tài)字段(status Nibble):表示從機當前的狀態(tài),當觸發(fā)字段的模式為ID選擇或范圍選擇時,還表示從機的ID或當前范圍值。

          數據字段(DataNibble):表示從機采集到的數據,根據從機的設置,數據字段的數量可以是3到6個不等。其數據可包含霍爾值與溫度值。

          校驗字段(CRC Nibble):提供校驗值,用于校驗此幀是否正確。

          實例應用-解碼實例

          模擬SPC通信協(xié)議,對數據進行解碼,如下圖2所示:

          圖2 SPC解碼配置參數

          如上圖所示,為SPC解碼所需配置參數,其中時間片寬度是指主機設置的單位時間。根據幀的數據字段的性質,設定數據字段的個數,如下圖所示:

          圖3 數據字段個數含義

          如上圖,當數據字段的數量為3或者4時,表示數據僅有霍爾值。數量為5或6時,傳感器除了測量霍爾值還會測量并傳輸溫度值。

          圖4 SPC解碼

          圖5 SPC解碼

          如上圖所示,此幀代表觸發(fā)字段為范圍選擇,且選擇的范圍為100mT,狀態(tài)字段表示傳感器當前狀態(tài)為Normal且當前的磁通范圍為200mT。



          關鍵詞: 示波器 SPC

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();