娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

一種BiSS協(xié)議的編碼器數(shù)據(jù)讀取方法

發(fā)布者:美麗花朵最新更新時間:2025-05-13 來源: eepw關鍵字:編碼器  數(shù)據(jù)讀取 手機看文章 掃描二維碼
隨時隨地手機看文章

0   引言

BiSS 協(xié)議是一種快速雙向通信協(xié)議,具有通信速率高、抗干擾能力強、硬件電路簡單等優(yōu)點,在伺服系統(tǒng)位置傳感器領域得到了越來越廣泛的使用[1-2]。BiSS通信協(xié)議物理接口采用全雙工差分RS422 方式,但由于其時序較為獨立及長度不定,難以使用常用的通用異步串口直接對BiSS 協(xié)議編碼器數(shù)據(jù)解碼讀取。實際使用中,BiSS 協(xié)議的編碼器數(shù)據(jù)可通過編碼器廠商提供的專用解碼芯片、微控制器或FPGA 讀取[3]。編碼器廠商提供的專用解碼芯片一般價格較高且功能單一;文獻[4] 中提出使用CY8C29466 微控制器對BiSS 協(xié)議編碼器數(shù)據(jù)進行解碼,以讀取正確的解碼值,但受限于微控制器功能及性能,只能實現(xiàn)較低的采樣速率,難以滿足高速、高性能伺服控制系統(tǒng)的要求;文獻[5] 提出使用A3P400 型FPGA 對BiSS 協(xié)議編碼器數(shù)據(jù)進行解碼,以準確讀取解碼值且具有較高采樣速率,但FPGA 只用于編碼器數(shù)據(jù)采集,實際伺服電機由DSP 驅(qū)動,即伺服系統(tǒng)電路結(jié)構(gòu)采用DSP+FPGA 方式實現(xiàn)。這種雙控制器方式通過高性能DSP 實現(xiàn)控制算法的快速準確計算,同時利用FPGA 的并行機理完成信號采集[6]。如果可以使用較為簡化的硬件電路實現(xiàn)對BiSS 協(xié)議編碼器數(shù)據(jù)準確的解碼,并具有較高的數(shù)據(jù)采樣速率,這樣的方式顯然具有更高實用價值。

1626181653566461.png

圖1 BiSS-B協(xié)議傳感器模式時序圖

1   設計方案

BiSS-B 在BiSS 協(xié)議中應用最為廣泛,由于涉及專利保護問題,隨之開發(fā)出BiSS-C 協(xié)議,BiSS-C 與BiSS-B 可實現(xiàn)物理接口兼容[7],不同點在于兩者時序定義略有差異,文中編碼器使用BiSS-B 協(xié)議。BiSS 協(xié)議具有傳感器模式和寄存器模式兩種不同工作模式,前者可實現(xiàn)編碼器數(shù)據(jù)的快速讀取,后者可實現(xiàn)編碼器寄存器數(shù)據(jù)的讀寫雙向訪問[8],文中基于傳感器模式對方案的可行性進行了驗證。

BiSS 協(xié)議編碼器使用Hengstler 公司的AD36-1213AF.0RBI 多圈絕對式光電編碼器,其具有500 kHz 帶寬,適合作為無刷伺服電機位置傳感器。BiSS-B 協(xié)議傳感器模式時序如圖1 所示。

MA 為BiSS 總線的時鐘線,SLO 為Biss 總線的數(shù)據(jù)線。當MA 和SLO 同為高電平狀態(tài)時,總線處于空閑時間,不進行數(shù)據(jù)傳送。非空閑時間BiSS-B 協(xié)議編碼器數(shù)據(jù)線SLO 上的數(shù)據(jù)幀格式如圖2 所示,圖中括號內(nèi)的數(shù)字表示該段數(shù)據(jù)所占用的MA 時鐘個數(shù),不帶括號的表示與MA 時鐘個數(shù)無關。

image.png

根據(jù)3 種不同BiSS 協(xié)議編碼器數(shù)據(jù)解碼方式特點和BiSS-B 協(xié)議編碼器時序的分析, 文中采用XMC4500 微處理器實現(xiàn)對BiSS-B 協(xié)議編碼器數(shù)據(jù)的解碼,該方案硬件電路組成如圖3 所示。

image.png

XMC4500 是Infineon 公司推出的基于Arm Cortex-M4內(nèi)核的微控制器,主頻可以達到120 MHz,其內(nèi)部集成多種專用電機控制外設,有多達6 個通信接口方面,分別用于UART、SPI、IIC 和IIS 等4 種不同功能的通用串行接口。本文使用其SPI 功能接口實現(xiàn)對BiSS-B 編碼器數(shù)據(jù)的解碼。XMC4500 的SPI 接口MOSR 引腳作為輸出引腳,輸出BiSS 協(xié)議編碼器時鐘線MA 信號;MRSO 引腳作為輸入引腳,采集BiSS 協(xié)議編碼器數(shù)據(jù)線SLO 上的信號。LabVIEW 是一種圖形化編程的數(shù)據(jù)采集軟件,具有數(shù)據(jù)讀取、數(shù)據(jù)分析、數(shù)據(jù)管理等功能,可減少程序代碼編寫,縮短設計時間[9]。為方便對BiSS編碼器數(shù)據(jù)的觀察,使用LabVIEW 設計了對應的上位機,顯示XMC4500 通過UART 接口定時發(fā)出的編碼器解碼數(shù)據(jù)。

XMC4500 將BiSS-B 協(xié)議編碼器MA 線狀態(tài)由空閑時間的高電平狀態(tài)置為低電平狀態(tài),以啟動一次BiSS-B 總線上的數(shù)據(jù)發(fā)送。作為回應,編碼器會在一定時間后將SLO 線狀態(tài)由高電平置為低電平狀態(tài),并隨后再次置為高電平,以表示開始傳輸位置數(shù)據(jù)。位置數(shù)據(jù)以Start 位開始,后面依次為:12 位多圈計數(shù)值用于記錄編碼器旋轉(zhuǎn)圈數(shù);13 位單圈計數(shù)值用于記錄編碼器單圈位置;1 位錯誤位用于監(jiān)測光電編碼器LED 工作狀態(tài);1 位警告位用于監(jiān)測編碼器內(nèi)部傳感器工作環(huán)境溫度、6 位CRC 校驗位和Timeout 段。

image.png

2   軟件設計

XMC4500 的SPI 接口有長達64 位的FIFO 存儲空間,可以一次性存儲全部BiSS-B協(xié)議數(shù)據(jù)幀。初始化時,應對SPI 接口的波特率及FIFO 存儲空間進行相應設置。文中BiSS-B 協(xié)議編碼器數(shù)據(jù)通過定時中斷來讀取。根據(jù)BiSS-B 協(xié)議編碼器傳感器模式時序,XMC4500 的MOSR 引腳先發(fā)送若干Ack 位檢測時鐘,直到MRSO引腳檢測到Ack 位為止。由于編碼器輸出SLO 數(shù)據(jù)響應MA 時鐘和總線傳輸有一定延遲時間,需要測量并記錄Ack 位相對時鐘延遲時間以進行補償。然后,XMC4500 的MOSR 引腳根據(jù)數(shù)據(jù)幀有效位數(shù)不斷發(fā)送其他數(shù)據(jù)位時鐘,同時MRSO 引腳將SLO 線數(shù)據(jù)逐一存儲。當有效數(shù)據(jù)位數(shù)計數(shù)完畢后,XMC4500 讀取存于FIFO 中的數(shù)據(jù)幀位,并根據(jù)編碼器Timeout 延遲時間將MA 線拉高直至數(shù)據(jù)幀結(jié)束。根據(jù)前面記錄的Ack位延遲時間,對讀取的FIFO 數(shù)據(jù)幀位逐一處理,并采用多數(shù)表決方式確定每位的準確值,完成編碼器單圈和多圈位置值重組,并定時將通過CRC 校驗的正確位置值發(fā)送至上位機進行顯示。CRC 校驗方式為BiSS-B 協(xié)議編碼器數(shù)據(jù)幀中的多圈值+ 單圈值+ 錯誤位+ 警告位。根據(jù)編碼器CRC 計算等式,將計算出的6 位CRC校驗值與數(shù)據(jù)幀結(jié)尾處的6 位動態(tài)隨機CRC 校驗值比較,若兩者相同則表示接收編碼器數(shù)據(jù)正確,該讀取值可以使用;否則應判定為錯誤值,予以忽略。編碼器數(shù)據(jù)讀取軟件程序工作流程圖如圖4 所示。

1626181902898706.png

圖5 實物驗證平臺圖

3   實驗結(jié)果與分析

使用安川公司SGMM-A2C312 伺服電機配合AD36-1213AF.0RBI 多圈絕對值光電編碼器搭建的實物平臺對該方案實際效果進行了測試,實物驗證平臺如圖5 所示。

LabVIEW 上位機分別顯示編碼器上傳的單圈和多圈位置值,如圖6 所示。編碼器單圈位置值為13 位,最大值8 191,多圈值為12 位,最大值為4 195。

1626181945225440.png

圖6 上位機顯示效果圖

將同步采集伺服電機自帶的2 048 線增量式編碼器位置值與采集到的13位絕對式編碼器位置值進行對比,對比效果如圖7 所示。

1626182005177882.png

圖7 編碼器數(shù)據(jù)對比圖

記錄連續(xù)3 個周期采集到的絕對式編碼器和增量式編碼器輸出的位置值,并計算每個周期的平均速度,對比結(jié)果如表1 所示。

image.png

采用絕對式編碼器和增量式編碼器連續(xù)3 個周期獲得的平均速度相比誤差很小,可見采用XMC4500 采集的絕對式編碼器值與增量式編碼器相比具有較好的準確度和線性度。

使用XMC4500 的SPI 接口對BiSS-B 協(xié)議編碼器以傳感器模式讀取實際時序波形,如圖8 所示。圖中通道1 為MA 線波形,通道2 為SLO 線波形,與BiSS-B協(xié)議傳感器模式協(xié)議時序一致。

1626182098460713.png

圖8 編碼器實際時序波形圖

局部波形如圖9 所示,圖中可見,XMC4500 的SPI接口所提供的MA 線時鐘頻率大于5 MHz。

1626182143713100.png
圖9 編碼器局部時序波形圖

綜合圖8 和圖9 進行分析,使用XMC4500 微控制器SPI 接口對該型編碼器完成一次讀取用時少于28 μs,其中包含編碼器廠商設定的Timeout 時間約(10~15)μs,可實現(xiàn)較高的采樣速率。

4   結(jié)束語

文中提出了一種基于XMC4500 讀取BiSS 協(xié)議編碼器數(shù)據(jù)的方法,試驗結(jié)果表明,該方法可替代FPGA完成對BiSS 協(xié)議的解碼,具有較高的數(shù)據(jù)采樣速率。使用該方法可以用XMC4500 單控制器替代DSP+FPGA方式,實現(xiàn)對BiSS 協(xié)議編碼器伺服系統(tǒng)的控制,簡化了硬件電路設計,具有較好的參考價值。

參考文獻:

[1] 商懷昊,韓基鵬,肖鵬,等.基于BiSS-C協(xié)議的編碼器接口技術及在伺服驅(qū)動系統(tǒng)中的應用[J].工藝技術創(chuàng)新,2014,01(02):211-215.

[2] 俞小露,趙志方,盧欣霽.BiSS-C絕對式級聯(lián)光柵編碼器在工業(yè)機器人領域的應用[J].世界制造技術與裝備市場,2015 (2):119-120.

[3] 王希遠,成榮,朱煜,等.基于FPGA的BiSS-C協(xié)議編碼器接口技術研究及解碼實現(xiàn)[J].液晶與顯示,2016,31(4):386-391.

[4] 高長清,林輝,張輝.BiSS接口的光電編碼器數(shù)據(jù)讀出研究[J].計算機測量與控制,2009,17(5):957-958,961.

[5] 王列虎,皮佑國.基于BiSS協(xié)議的編碼器接口技術研究及研究[J].機床與液壓,2011,39(8):103-105,121.

[6] 李捷,盧子廣,楊達亮.基于DSP/FPGA的級聯(lián)型固態(tài)變壓器控制研究[J].電測與儀表,2016,53(24):39-43,55.孫彥超.基于XMC4500的PMSM的控制系統(tǒng)的設計[D].沈陽:沈陽航空航天大學,2016.

[8] 霍海龍.基于BiSS的編碼器及其在伺服驅(qū)動系統(tǒng)中的應用[J].電氣自動化,2011,33(3):12-14.

[9] 謝志遠,魏佳紅,時方,等.LabVIEW在中壓電力線信道噪聲發(fā)生器設計中的應用[J].電測與儀表,2014,51(14):120-124.


關鍵字:編碼器  數(shù)據(jù)讀取 引用地址:一種BiSS協(xié)議的編碼器數(shù)據(jù)讀取方法

上一篇:基于狀態(tài)變量摩擦模型的振動控制
下一篇:碳化硅用于電機驅(qū)動

推薦閱讀最新更新時間:2025-05-29 06:16

6410 ad 中斷讀取數(shù)據(jù)
中斷讀取數(shù),寫之前一直在datasheet中找不出是什么觸發(fā)中斷,后來發(fā)現(xiàn),數(shù)據(jù)轉(zhuǎn)換完成后就觸發(fā)中斷。所以對相應的中斷進行初始化后,打開ad轉(zhuǎn)換,就可以了。 相關的register:adccon:set ad channal,轉(zhuǎn)換頻率(prescaler value),prescaler enable, addcon【0】 enable ad conversion; adcdatax :對應的data in it adcclrint: clear interrupt ad 然后就是相關的vic的一些register了,對應的初始化就行了; 參考代碼: #include gpio.h #include
[單片機]
編碼器脈沖信號丟失怎么處理
編碼器脈沖信號怎么測量 要測量編碼器的脈沖信號,可以采取以下步驟: 1. 連接編碼器:首先,將編碼器正確地連接到編碼器接口,確保信號線與正確的引腳相匹配。通常,編碼器接口會有標記以指示每個信號線的功能。 2. 使用計數(shù)器或微控制器:通常使用計數(shù)器或微控制器來計量編碼器的脈沖信號??梢酝ㄟ^將編碼器的輸出信號接收到計數(shù)器或微控制器的輸入引腳上。 3. 編碼器信號的讀?。和ㄟ^讀取計數(shù)器或微控制器的輸入引腳上的編碼器信號,可以獲得脈沖信號的計數(shù)值。 4. 計數(shù)器配置:在使用計數(shù)器或微控制器之前,需要根據(jù)編碼器的編碼類型和工作條件對計數(shù)器進行相應的配置。這包括設置計數(shù)器的計數(shù)器模式、計數(shù)方向、計數(shù)精度等參數(shù)。 5. 計算位移或速度:編碼器的
[嵌入式]
伺服編碼器線最長多少米接線
伺服編碼器是一種高精度的測量設備,用于測量伺服電機的旋轉(zhuǎn)角度和速度。在伺服系統(tǒng)中,編碼器與伺服驅(qū)動器之間的連接至關重要,因為它們之間的信號傳輸質(zhì)量直接影響到系統(tǒng)的穩(wěn)定性和精度。 編碼器類型 伺服編碼器主要分為增量式和絕對式兩種。增量式編碼器輸出的是脈沖信號,用于測量角度的變化量;而絕對式編碼器輸出的是數(shù)字信號,用于表示當前的角度位置。增量式編碼器對信號傳輸距離的要求相對較低,而絕對式編碼器則需要較高的信號傳輸質(zhì)量。 信號傳輸方式 伺服編碼器的信號傳輸方式主要有模擬信號和數(shù)字信號兩種。模擬信號傳輸距離較短,容易受到干擾,而數(shù)字信號傳輸距離較長,抗干擾能力較強。因此,在信號傳輸距離較長的情況下,建議選擇數(shù)字信號傳輸方式。
[嵌入式]
用PLC怎么實現(xiàn)編碼器的定位功能
嚴格來講,編碼器只會告訴你改如何定位,要如何執(zhí)行,是需要靠PLC之類控制器或者步進電機來實現(xiàn)定位的,編碼器好比人的眼睛,知道電機軸或者負載處于當前某個位置,工業(yè)上用的一般是光電類型編碼器,下邊簡單說明一下 簡單說下編碼原理和位置測量 光電編碼器是在一個很薄很輕的圓盤子上,通過緊密儀器來腐蝕雕刻了很多條細小的縫,相當于把一個360度,細分成很多等分,比如成1024組,這樣每組之間的角度差是360/1024度=0.3515625度。 然后有個精密的發(fā)光源,安裝在碼盤的一面,碼盤的另外一面,會有個接收器之類的,使用了光敏電阻這些元件加放大和整形電路組成,這樣碼盤轉(zhuǎn)動時候,有縫隙的地方會透光過去。 接收器會瞬間收到光脈沖,經(jīng)過電路
[嵌入式]
用PLC怎么實現(xiàn)<font color='red'>編碼器</font>的定位功能
淺談PLC與旋轉(zhuǎn)編碼器的連接
1. PLC與主令電器類設備的連接 如圖6-4所示是與按鈕、行程開關、轉(zhuǎn)換開關等主令電器類輸入設備的接線示意圖。圖中的PLC為直流匯點式輸入,即所有輸入點共用一個公共端COM,同時COM端內(nèi)帶有DC24V電源。若是分組式輸入,也可參照圖6-4的方法進行分組連接 2. PLC與旋轉(zhuǎn)編碼器的連接 旋轉(zhuǎn)編碼器是一種光電式旋轉(zhuǎn)測量裝置,它將被測的角位移直接轉(zhuǎn)換成數(shù)字信號(高速脈沖信號)。因些可將旋轉(zhuǎn)編碼器的輸出脈沖信號直接輸入給PLC,利用PLC的高速計數(shù)器對其脈沖信號進行計數(shù),以獲得測量結(jié)果。不同型號的旋轉(zhuǎn)編碼器,其輸出脈沖的相數(shù)也不同,有的旋轉(zhuǎn)編碼器輸出A、B、Z三相脈沖,有的只有A、B相兩相,最簡單的只有A相。 如圖6-7所
[嵌入式]
淺談PLC與旋轉(zhuǎn)<font color='red'>編碼器</font>的連接
關于編碼器計反轉(zhuǎn)脈沖數(shù)不正常
出現(xiàn)的問題:在使用sscom32串口調(diào)試助手,首字符出現(xiàn)亂碼“tarttarttarttarttarttart” 原因:波特率過高 解決辦法:將波特率設置的低一點,通常9600即可 現(xiàn)象:亂碼為波特率較高; 正常顯示波特率較低 函數(shù)代碼如下: int main(void) { USART1_Init(); printf( Start ); } #include usart1.h void USART1_Init(void) { USART1_GPIO_Config(); USART1_Structure_Config(); USART_Cmd(USART1, ENABLE); }
[單片機]
關于<font color='red'>編碼器</font>計反轉(zhuǎn)脈沖數(shù)不正常
STM32的16位編碼器溢出問題
STM32定時器有編碼器接口,但是它的計數(shù)器只有16位。當要記錄的數(shù)過大時,會溢出。下文介紹了一種方法,能有效解決因計數(shù)器位數(shù)過少引起的溢出問題。 (在網(wǎng)上搜了好多,感覺不他們說的方法都不準。這個方法經(jīng)過我自己驗證,可以準確記錄編碼器的位置) 原理一: unsigned short int j;(j的長度為16bit) ① 當j=65535 ,運行j++后,j=0; ② 當j=0 , 運行j- -后,j=65535; 定時器的16位計數(shù)器寄存器(CNT)同樣符合上面的邏輯。在編碼器模式時, (一)當加計數(shù)時(up計數(shù)),加到65535后,再加1,CNT的值變?yōu)?,且溢出標志位 被置1(UIF=1),
[單片機]
stm32中編碼器模式讀出“負數(shù)”的問題
最近在調(diào)試平衡小車,在網(wǎng)上找到的關于直流電機編碼器的使用源碼。查看stm32使用手冊可以看到如下的配置,和圖片?;旧铣绦蛞彩沁@樣去設置的相關寄存器的。 如果TI1和TI2分別接電機的A相和B相的話,那么,當電機正轉(zhuǎn)的時候,如下圖計數(shù)器回想上計數(shù),反轉(zhuǎn)的時候會向下計數(shù),注意了這個向下計數(shù)并不會出現(xiàn)負的值,依舊是從(0-ARR)計數(shù)。 這種模式的好處:1.上升沿和下降沿都會計數(shù),所以被軟件4倍頻了。2.當某一相有毛刺的時候,計數(shù)器會在硬件上停止計數(shù)。 下面看網(wǎng)上找到的代碼。 int Read_Encoder(u8 TIMX) { int Encoder_TIM; switch(TIMX)
[單片機]
小廣播
最新嵌入式文章

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 遂宁市| 克山县| 元谋县| 南康市| 安阳市| 宁德市| 麻阳| 梓潼县| 安庆市| 冕宁县| 顺平县| 宁陵县| 靖远县| 商河县| 金川县| 景谷| 安达市| 绍兴县| 太康县| 沐川县| 栾川县| 永川市| 兴文县| 吐鲁番市| 六枝特区| 玉屏| 南开区| 灵石县| 康保县| 雅江县| 禹州市| 武宁县| 南京市| 芒康县| 北海市| 广东省| 博兴县| 滕州市| 景泰县| 金溪县| 诸暨市|