91伊人国产-91伊人久久-91伊人影院-91影视永久福利免费观看-免费毛片儿-免费女人18毛片a级毛片视频

歡迎進入儀商網!

CANOpen協議如何保證通訊不丟幀


儀器儀表商情網 前沿技術】摘要:如何讓現場總線通訊更加穩定可靠,不丟失,這向來都是工程師們難以解決的問題。本文將運用國際規范的通訊協議來展示怎樣才能搭建好握手通訊。

服務數據對象SDOService data object

SDO主要用于CANopen主站對從節點的參數配置。服務確認是SDO的最大的特點,為每個消息都生成一個應答,確保數據傳輸的準確性。如圖 1所示,這就像快遞,需要收方簽收后,給寄方發送一個已經簽收的確認才算完成一次投遞。

圖 1  SDO與快遞簽收

在一個CANopen系統中,通常CANopen從節點作為SDO服務器,CANopen主節點作為客戶端(稱為CS通訊)。SDO客戶端通過索引和子索引,能夠訪問SDO服務器上的對象字典。這樣CANopen主節點可以訪問從節點的任意對象字典項的參數,并且SDO也可以傳輸任何長度的數據(當數據長度超過4個字節時就拆分成多個報文來傳輸)。

通訊原則(communication principle)

SDO的通訊原則非常單一,發送方(客戶端)發送CAN-ID600h+Node-ID的報文,其中Node-ID為接收方(服務器)的節點地址,數據長度均為8字節;

接收方(服務器)成功接收后,回應CAN-ID580h+Node-ID的報文。這里的Node-ID依然是接收方(服務器)的節點地址,數據長度均為8字節。如圖 2所示。

圖 2  SDO通訊原則

快速SDO協議(Expedited SDO protocol)

最常用最常見的SDO協議是快速SDO,所謂快速,就是1次來回就搞定。前提是讀取和寫入的值不能大于32位。如圖 3所示,為快速SDO協議的示意圖。命令中直接包含了要讀寫的索引、子索引、數據。可謂直接命中。

快速SDO的難點在于CS命令符的記憶,需要讀者收藏這個示意圖。

圖 3  快速SDO示意圖

通過快速SDO,可以直接對CANopen節點的對象字典中的值進行讀取和修改,所以在做參數配置之外,也經常作為關鍵性數據傳輸之用。比如CANopen控制機器人的電機轉動角度時,就使用SDO來傳輸,保證可靠到達。

普通SDO協議(Normal SDO protocol)

當需要傳輸的值超過32位時,就不能使用快速SDO傳輸。必須使用普通SDO進行分幀傳輸。在應用中較少用到,一般用于CANopen節點的程序固件升級,或者做網關轉換MVB總線之類數據最大可達256位的應用。

普通SDO協議難點在于分包邏輯與CS命令符的變化。依然難以記憶,需要讀者將以下示意圖進行收藏。

當然普通SDOCANID與快速SDO相同,依然發送方(客戶端)發送的報文CAN-ID600h+Node-ID,接收方(服務器)成功接收后,回應CAN-ID580h+Node-ID的報文。

下載協議download protocol 圖 4所示。

圖 4  普通SDO下載協議

上傳協議upload protocol 圖 5所示。

圖 5  普通SDO上傳協議


聲明: 聲明:凡本網注明"來源:儀商網"的所有作品,版權均屬于儀商網,未經本網授權不得轉載、摘編使用。
經本網授權使用,并注明"來源:儀商網"。違反上述聲明者,本網將追究其相關法律責任。
本網轉載并注明自其它來源的作品,歸原版權所有人所有。目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。如有作品的內容、版權以及其它問題的,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。
本網轉載自其它媒體或授權刊載,如有作品內容、版權以及其它問題的,請聯系我們。相關合作、投稿、轉載授權等事宜,請聯系本網。
QQ:2268148259、3050252122。