本發明涉及集成電路技術領域,尤其涉及一種位置信號快速解碼方法及系統。
背景技術:
現有技術中利用專用的大規模集成電路比如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的計算負荷的同時降低對輔助芯片的成本要求,利用補償校正大大提高速度或者脈沖頻率計算的準確度。
以上是對本發明的較佳實施進行了具體說明,但本發明創造并不限于所述實施例,熟悉本領域的技術人員在不違背本發明精神的前提下還可做作出種種的等同變形或替換,這些等同的變形或替換均包含在本申請權利要求所限定的范圍內。