一種位置信號快速解碼方法及系統與流程
2023-04-30 04:02:16 2

本發明涉及集成電路技術領域,尤其涉及一種位置信號快速解碼方法及系統。
背景技術:
現有技術中利用專用的大規模集成電路比如fpga和cpld等邏輯門陣晶片進行處理光電信號的,一般通過某些運算得到這些脈衝信號的頻率,但是在一些應用中這些晶片需要與其他晶片配合工作,引起成本增加。
另外一種常用現有技術是dsp或者arm晶片的捕獲口(捕捉口)進行運算,但是該缺點比較明顯:脈衝信號頻率很低(低於100hz)時,容易丟失脈衝信號或者引起大量運算佔用很多運算指令周期,這在時間關鍵系統中容易引起時間不夠分配,從而引起計算失效。
最後一種最為常用的現有技術是dsp與可編程邏輯門陣配合使用:包括dsp與fpga並行計算、dsp與cpld並行計算。該方案避免了佔用主控晶片過多時間,但硬體成本隨之明顯上升。
技術實現要素:
為了解決上述技術問題,本發明的目的是提供一種能減少計算,並提高計算準確性的一種位置信號快速解碼方法及系統。
本發明所採取的技術方案是:
一種位置信號快速解碼方法,包括以下步驟:
選擇用來測量的兩路脈衝信號,並將該兩路脈衝信號進行硬體緩衝之後,接入到異或門電路中進行電壓調節之後結合得到採樣脈衝信號,並將其接入主控晶片中;
主控晶片對採樣脈衝信號的脈衝邊沿進行捕獲,並校正計算採樣脈衝時間間隔和脈衝數量;
根據脈衝數量和相鄰脈衝時間間隔,通過牛頓-拉夫遜方法進行迭代計算,得出脈衝頻率和速度。
作為所述的一種位置信號快速解碼方法的進一步改進,所述的主控晶片對採樣脈衝信號的脈衝邊沿進行捕獲,並校正計算採樣脈衝時間間隔和脈衝數量,這一步驟具體包括:
主控晶片對採樣脈衝信號的脈衝邊沿進行捕獲並計數,得到脈衝數量δn;
根據脈衝信號,計算得到時間校正值δtc;
根據時間校正值δtc,計算得到校正後的採樣脈衝時間間隔δt;
根據校正後的採樣脈衝時間間隔,得出校正後的脈衝數量δn。
作為所述的一種位置信號快速解碼方法的進一步改進,所述時間校正值δtc的計算方式為:
將當前周倩的採樣脈衝信號與最接近周期信號的採樣脈衝信號進行對比,得出時間校正值δtc。
作為所述的一種位置信號快速解碼方法的進一步改進,所述主控晶片包括但不限於dsp、arm、fpga或cpld。
作為所述的一種位置信號快速解碼方法的進一步改進,所述速度的計算公式為:v=kl*δn/δt;
其中,kl表示電機計算係數。
本發明所採用的另一技術方案是:
一種位置信號快速解碼系統,包括:
脈衝信號處理單元,用於選擇用來測量的兩路脈衝信號,並將該兩路脈衝信號進行硬體緩衝之後,接入到異或門電路中進行電壓調節之後結合得到採樣脈衝信號,並將其接入主控晶片中;
校正計算單元,用於主控晶片對採樣脈衝信號的脈衝邊沿進行捕獲,並校正計算採樣脈衝時間間隔和脈衝數量;
迭代計算單元,用於根據脈衝數量和相鄰脈衝時間間隔,通過牛頓-拉夫遜方法進行迭代計算,得出脈衝頻率和速度。
作為所述的一種位置信號快速解碼系統的進一步改進,所述的校正計算單元具體包括:
捕獲計數單元,用於主控晶片對採樣脈衝信號的脈衝邊沿進行捕獲並計數,得到脈衝數量δn;
時間校正單元,用於根據脈衝信號,計算得到時間校正值δtc;
時間間隔計算單元,用於根據時間校正值δtc,計算得到校正後的採樣脈衝時間間隔δt;
計數校正單元,用於根據校正後的採樣脈衝時間間隔,得出校正後的脈衝數量δn。
作為所述的一種位置信號快速解碼系統的進一步改進,所述時間校正值δtc的計算方式為:
將當前周倩的採樣脈衝信號與最接近周期信號的採樣脈衝信號進行對比,得出時間校正值δtc。
作為所述的一種位置信號快速解碼系統的進一步改進,所述速度的計算公式為:v=kl*δn/δt;
其中,kl表示電機計算係數。
本發明的有益效果是:
本發明一種位置信號快速解碼方法及系統通過將脈衝信號進行結合,能將脈衝邊沿數量放大一倍,從而降低晶片處理複雜程度和提高計時精度,特別是需要平行處理事件時能夠大大降低晶片指令數量,並且結合補償和校正方法能夠同時提高脈衝頻率的計數精度,大大提高計算的準確度。
附圖說明
下面結合附圖對本發明的具體實施方式作進一步說明:
圖1是本發明一種位置信號快速解碼方法的步驟流程圖;
圖2是本發明一種位置信號快速解碼方法中校正計算的步驟流程圖;
圖3是本發明一種位置信號快速解碼系統的模塊方框圖,;
圖4是本發明實施例的應用原理圖;
圖5是本發明實施例的第一種硬體連接原理圖;
圖6是本發明實施例的第二種硬體連接原理圖;
圖7是現有技術之中單顆處理器晶片處理的示意圖;
圖8是現有技術之中兩顆處理器晶片處理的示意圖。
具體實施方式
參考圖1,本發明一種位置信號快速解碼方法,包括以下步驟:
選擇用來測量的兩路脈衝信號,並將該兩路脈衝信號進行硬體緩衝之後,接入到異或門電路中進行電壓調節之後結合得到採樣脈衝信號,並將其接入主控晶片中;
主控晶片對採樣脈衝信號的脈衝邊沿進行捕獲,並校正計算採樣脈衝時間間隔和脈衝數量;
根據脈衝數量和相鄰脈衝時間間隔,通過牛頓-拉夫遜方法進行迭代計算,得出脈衝頻率和速度。
進一步作為優選的實施方式,所述主控晶片包括但不限於dsp、arm、fpga或cpld,本領域人員可以使用具有捕獲脈衝邊沿信號功能的晶片或者集成電路作為主控晶片,加入異或門電路和其他必要的附屬元器件,組成硬體方案,而且異或門電路的具體結構可根據實際情況進行調整。將脈衝信號進行異或操作後得到倍頻的脈衝信號,得到的倍頻信號不僅防幹擾防錯功能而且能將光電頻率提高一倍。
本實施例中,在運動控制系統或者測量系統中,將兩路相位差90°的脈衝信號或者三角函數信號接入到異或門電路中得到倍頻的脈衝信號,可以根據需要改變該脈衝信號的電壓幅值,將該倍頻的脈衝信號接入到具有捕獲脈衝邊沿信號的晶片或者集成電路中,倍頻後能夠明顯降低低頻時的晶片數據處理量。根據設計的算法,運算出高精度寬範圍的脈衝或者三角函數的產生速度值。
對比圖7和圖8中的現有技術通常做法是將同一路的脈衝信號進行捕獲,本發明使用兩路信號結合後的脈衝信號,利用倍頻後的脈衝時間間隔更短,能將脈衝邊沿數量放大一倍,從而降低晶片處理複雜程度和提高計時精度,特別是需要平行處理事件時能夠大大降低晶片指令數量,結合本發明提出的補償和校正的方法能夠同時提高脈衝頻率的計數精度。通過理論計算和試驗驗證,相對現有技術方案,該方案計算脈衝速度的複雜度大幅明顯降低,並且準確度明顯提高。試驗應用之一採用2000線的光電編碼器,可以快速實現0.001rpm(rotationperminute)的計算精度。
參考圖2,進一步作為優選的實施方式,所述的主控晶片對採樣脈衝信號的脈衝邊沿進行捕獲,並校正計算採樣脈衝時間間隔和脈衝數量,這一步驟具體包括:
主控晶片對採樣脈衝信號的脈衝邊沿進行捕獲並計數,得到脈衝數量δn;
根據脈衝信號,計算得到時間校正值δtc;
根據時間校正值δtc,計算得到校正後的採樣脈衝時間間隔δt;
根據校正後的採樣脈衝時間間隔,得出校正後的脈衝數量δn。
進一步作為優選的實施方式,所述時間校正值δtc的計算方式為:
將當前周倩的採樣脈衝信號與最接近周期信號的採樣脈衝信號進行對比,得出時間校正值δtc。
假如在採樣運算周期內捕獲不足兩個脈衝沿,當連續捕獲零個脈衝邊沿,則需要加入預先設計好的時間校正值。根據過去時刻的信號,預測推理得到兩個脈衝之間的校正值,該校正是基於過往信號的預測,並且是對編碼器非線性的校正。利用已收到的脈衝與當前時刻的脈衝進行比較,它們的差值即作為補償計算,該補償具有多種方法,但不局限於利用已收到脈衝與當前時刻的脈衝,比如還可以利用已收到脈衝預測得到補償值或者選取某些特殊脈衝作為補償值的數據來源。本實施例中採用最接近周期信號的採樣脈衝信號作為補償值來源。
進一步作為優選的實施方式,所述速度的計算公式為:v=kl*δn/δt;
其中,kl表示電機計算係數。
參考圖4~圖6,本發明實施例中,以dsp、arm或者fpga等具有捕獲脈衝邊沿信號功能的晶片或者集成電路作為主控晶片,加入異或門器件和其他必要的附屬元器件,組成硬體方案,其具體實施例如下:
s1.以c2000系列的dsp晶片為例,將硬體處理後得到的信號輸入到晶片其中一個的計數功能口,啟動外設捕獲脈衝並計數,得到的脈衝數量δn作為速度v的計算,根據脈衝數量δn對應的時間間隔作為速度v的分母計算數字量。那麼速度:v=kl*δn/δt,其中kl是電機計算的係數:kl=(編碼器總脈衝n)/(δt的時間標量s)。其脈衝頻率計算方法是單位脈衝的速度計算;
s2.利用信號數量δn段內的脈衝進行對δt進行校正計算,時間校正值δtc計算方法包括利用上一周期的信號數量和當前周期的信號進行計算補償校正值,其值依賴於選擇的信號,如果該信號靠近周期信號那麼其值δtc精度越高,一般情況下是dsp等處理器的計時器的時間運算,經過對比和差化計算得到δtc。然後通過δt=δt+δtc,由於分母的誤差對速度計算結果準確度影響非常明顯,所以經過補償校正後的時間刻度值能夠大大提高速度計算準確度。根據實時處理的情況,與該補償對應地對δn進行校正處理操作;
s3.將原始脈衝信號直接輸入到晶片的能夠判斷脈衝發生方向的功能口,該口是為了辨識速度方向;
s4.將得到的δn和δt數據應用於牛頓-拉夫遜方法除法運算速度,對牛頓-拉夫遜方法計算進行20次的迭代得到高精度的速度;
s5.根據需要不斷更新δn和δt數據、時間校正值δtc,同時反覆進行s1~s4步驟,即可以實時測算脈衝頻率和速度。
參考圖3,本發明一種位置信號快速解碼系統,包括:
脈衝信號處理單元,用於選擇用來測量的兩路脈衝信號,並將該兩路脈衝信號進行硬體緩衝之後,接入到異或門電路中進行電壓調節之後結合得到採樣脈衝信號,並將其接入主控晶片中;
校正計算單元,用於主控晶片對採樣脈衝信號的脈衝邊沿進行捕獲,並校正計算採樣脈衝時間間隔和脈衝數量;
迭代計算單元,用於根據脈衝數量和相鄰脈衝時間間隔,通過牛頓-拉夫遜方法進行迭代計算,得出脈衝頻率和速度。
進一步作為優選的實施方式,所述的校正計算單元具體包括:
捕獲計數單元,用於主控晶片對採樣脈衝信號的脈衝邊沿進行捕獲並計數,得到脈衝數量δn;
時間校正單元,用於根據脈衝信號,計算得到時間校正值δtc;
時間間隔計算單元,用於根據時間校正值δtc,計算得到校正後的採樣脈衝時間間隔δt;
計數校正單元,用於根據校正後的採樣脈衝時間間隔,得出校正後的脈衝數量δn。
進一步作為優選的實施方式,所述時間校正值δtc的計算方式為:
將當前周倩的採樣脈衝信號與最接近周期信號的採樣脈衝信號進行對比,得出時間校正值δtc。
作為所述的一種位置信號快速解碼系統的進一步改進,所述速度的計算公式為:v=kl*δn/δt;
其中,kl表示電機計算係數。
從上述內容可知,本發明的突出優點是:硬體成本低,實現脈衝計算的速度/頻率計算快捷。其根本原因在於代替解決了軟體上需要的複雜處理,在保證信號完整性的同時對信號實現快速處理。這也意味著,本發明的計算簡單,該特徵非常適用於低成本方案和對計算量有要求的應用場合(例如應用於電動機驅動器)。
總之,本發明利用硬體異或門電路代替軟體倍頻,大大減少軟體計算並降低了成本,高響應速度的異或電路能夠提高計算的實時性,明顯減小主控晶片cpu的計算負荷的同時降低對輔助晶片的成本要求,利用補償校正大大提高速度或者脈衝頻率計算的準確度。
以上是對本發明的較佳實施進行了具體說明,但本發明創造並不限於所述實施例,熟悉本領域的技術人員在不違背本發明精神的前提下還可做作出種種的等同變形或替換,這些等同的變形或替換均包含在本申請權利要求所限定的範圍內。