国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      交流伺服串行通信編碼器位置反饋脈沖分頻輸出系統(tǒng)和方法

      文檔序號:10721495閱讀:763來源:國知局
      交流伺服串行通信編碼器位置反饋脈沖分頻輸出系統(tǒng)和方法
      【專利摘要】本發(fā)明一種交流伺服串行通信編碼器位置反饋脈沖分頻輸出系統(tǒng)和方法,由發(fā)出脈沖數(shù)計算模塊、分頻脈沖發(fā)生器模塊、發(fā)出脈沖計數(shù)器模塊、正交脈沖輸出狀態(tài)機模塊和原點信號輸出計數(shù)器模塊構成,將通信接收到的編碼器位置數(shù)據(jù)轉化為脈沖輸出至上位裝置,本發(fā)明以采樣周期內(nèi)輸出的脈沖數(shù)為切入點,給出了采樣周期內(nèi)輸出的脈沖數(shù)的計算方法及修正手段,能夠確保輸出脈沖的個數(shù),保證位置數(shù)據(jù)不丟失,系統(tǒng)的抗干擾性更好;且以采樣周期內(nèi)的系統(tǒng)時鐘個數(shù)為溢出門限,以系統(tǒng)時鐘為基準時鐘,可以突破編碼器實際單圈脈沖數(shù)的限制,能夠產(chǎn)生比編碼器原始單圈脈沖數(shù)更高的脈沖數(shù)輸出,且給出了原點信號的產(chǎn)生方式,使整個系統(tǒng)更加完善。
      【專利說明】
      交流伺服串行通信編碼器位置反饋脈沖分頻輸出系統(tǒng)和方法
      技術領域
      [0001] 本發(fā)明屬于伺服控制技術領域,涉及一種交流伺服串行通信編碼器位置反饋脈沖 分頻輸出系統(tǒng)和方法。
      【背景技術】
      [0002] 對于高精度的控制場合下,一般使用分辨率高的編碼器,為了減少數(shù)據(jù)傳輸過程 中受到的干擾,這類編碼器大都使用串行通信的方式與伺服驅動器連接。在一些場合下,上 位控制器需要伺服驅動器反饋編碼器的位置脈沖,脈沖式編碼器可以直接將分頻后的脈沖 輸出給上位裝置,而串行通信方式的編碼器只包含位置數(shù)據(jù),這就需要有一個方法,將通信 接收到的編碼器位置數(shù)據(jù)轉化為脈沖輸出至上位裝置。

      【發(fā)明內(nèi)容】

      [0003] 本發(fā)明的目的是提供一種串行通信編碼器位置反饋脈沖分頻輸出系統(tǒng)和方法,實 現(xiàn)將編碼器反饋的位置數(shù)據(jù)轉化為相互正交的兩路脈沖信號(0A信號和0B信號)輸出,同時 在原點位置輸出一個原點信號(0Z信號),將通信接收到的編碼器位置數(shù)據(jù)轉化為脈沖輸出 至上位裝置。
      [0004] 本發(fā)明一種串行通信編碼器位置反饋脈沖分頻輸出系統(tǒng),由發(fā)出脈沖數(shù)計算模 塊、分頻脈沖發(fā)生器模塊、發(fā)出脈沖計數(shù)器模塊、正交脈沖輸出狀態(tài)機模塊和原點信號輸 出計數(shù)器模塊構成,其中,
      [0005] 發(fā)出脈沖數(shù)計算模塊,接收預置的編碼器采樣周期T、電機旋轉單圈輸出脈沖數(shù) PPRSET、脈沖輸出基準信號分頻比DIV,編碼器實際單圈脈沖數(shù)PPRE,計算編碼器在采樣周 期T內(nèi)需要發(fā)出的脈沖數(shù)Ρ0ΡΤ,將在采樣周期T內(nèi)需要發(fā)出的脈沖數(shù)Ρ0ΡΤ和兩次中斷期間采 樣的位置數(shù)據(jù)的差值SMPT發(fā)送給發(fā)出脈沖計數(shù)器模塊,將計算得到的當前采樣周期T內(nèi)需 要輸出的脈沖輸出頻率P0FRQ發(fā)送給分頻脈沖發(fā)生器模塊,將電機旋轉單圈輸出脈沖數(shù) PPRSET發(fā)送給原點信號輸出計數(shù)器模塊;
      [0006] 分頻脈沖發(fā)生器模塊,根據(jù)發(fā)出脈沖數(shù)計算模塊給出的當前采樣周期T內(nèi)需要輸出的 脈沖輸出頻率P0FRQ和系統(tǒng)時鐘sysclk,計算其比值為:
      將2n作為溢出門限寄存器的溢出門限值,其中η滿足2n> (T X SYSCLK)的條件,在每個系統(tǒng)時 鐘上升沿對累加準值進行累加,即對RATIO X 2"進行累加,存取累加結果,將累加結果與溢 出門限值比較,若大于,則輸出進位標志carry信號,同時將累加結果減去溢出門限值,若小 于,則繼續(xù)累加直至大于溢出門限值,將該進位標志Carry信號作為所需的脈沖輸出基準信 號發(fā)送給發(fā)出脈沖計數(shù)器模塊;
      [0007] 發(fā)出脈沖計數(shù)器模塊,在分頻脈沖發(fā)生器模塊開始輸出脈沖輸出基準信號時,對 該脈沖輸出基準信號的高電平時間進行計數(shù),當計數(shù)值達到采樣周期T內(nèi)需要發(fā)出的脈沖 數(shù)Ρ0ΡΤ時,阻斷脈沖輸出基準信號的高電平輸出,在下一個采樣周期T開始時清空上述計數(shù) 值,在脈沖輸出基準信號為高電平期間,根據(jù)兩次中斷期間采樣的位置數(shù)據(jù)的差值SMPT的 正負,來確定輸出正向脈沖輸出標志up和反向脈沖輸出標志dn的電平,若SMPT為正,則正向 脈沖輸出標志up為高電平,反向脈沖輸出標志dn為低電平;若SMPT為負,貝lj正向脈沖輸出標 志up為低電平,反向脈沖輸出標志dn為高電平,并將正向脈沖輸出標志up和反向脈沖輸出 標志dn實時發(fā)送給正交脈沖輸出狀態(tài)機模塊;
      [0008] 正交脈沖輸出狀態(tài)機模塊,置分頻計數(shù)器初值div_cnt_init,根據(jù)發(fā)出脈沖計數(shù) 器模塊輸出的正向脈沖輸出標志up和反向脈沖輸出標志dn,對分頻計數(shù)器初值進行加減, 當正向脈沖輸出標志up為高電平時,該分頻計數(shù)器值加1,當反向脈沖輸出標志dn為高電平 時,該分頻計數(shù)器值減1,當正向脈沖輸出標志up為高電平且分頻計數(shù)器值等于脈沖輸出基 準信號分頻比DIV時,將分頻計數(shù)器值清零,同時輸出正向切換信號ring_up;當反向脈沖輸 出標志dn為高電平且分頻計數(shù)器值為0時,重置分頻計數(shù)器值為脈沖輸出基準信號分頻比 DIV的值,同時輸出反向切換信號ring_dn;當正向切換信號Ring_up為高電平時,將0A脈沖 信號超前0B脈沖信號九十度;當反向切換信號Ring_dn為高電平時,將0A脈沖信號滯后0B脈 沖信號九十度,通過該脈沖輸出正交化處理,即可得到所需的兩路互為正交的脈沖輸出信 號0A和0B信號,同時將正向切換信號ring_up和反向切換信號ring_dn輸出至原點信號輸出 計數(shù)器模塊;
      [0009] 原點信號輸出計數(shù)器模塊,接收預置的電機旋轉單圈輸出脈沖數(shù)PPRSET,根據(jù)正 交脈沖輸出狀態(tài)機模塊輸入的正向切換信號ring_up和反向切換信號ring_dn的電平對其 原點信號輸出計數(shù)器的初值進行加減,當原點信號輸出計數(shù)器值減小至零或者增大至電機 旋轉單圈輸出脈沖數(shù)PPRSET時,將原點信號輸出計數(shù)器值重置為電機旋轉單圈輸出脈沖數(shù) PPRSET或者重置為零,在原點信號輸出計數(shù)器值為0時,輸出原點信號。
      [0010] 所述的一種串行通信編碼器位置反饋脈沖分頻輸出系統(tǒng)的輸出方法,包括如下步 驟:
      [0011]步驟1:在系統(tǒng)運行前根據(jù)編碼器的實際位置對原點信號輸出計數(shù)器模塊的原點 信號輸出計數(shù)器的初值進行校正,以系統(tǒng)運行前編碼器位置數(shù)據(jù)校正原點信號輸出計數(shù)器 的初值 〇Z_CNT_INIT:
      [0012]先獲取編碼器的初始位置值P0S_DATA_INIT,然后計算原點信號輸出計數(shù)器的初 值0Z_CNT_INIT:
      [0014]其中,PPRSET為電機旋轉單圈輸出脈沖數(shù),PPRE為編碼器實際單圈脈沖數(shù);
      [0015]在系統(tǒng)運行前,以該原點信號輸出計數(shù)器的初值0Z_CNT_INIT來修正兩路互為正 交的0A和0B脈沖信號的初始相位關系,以保證兩路互為正交的0A和0B脈沖信號與原點信號 的相位關系滿足:
      [0016] {〇A,OB}= 0Z_CNT_INIT[1:0] (7)
      [0017]同時,計算正交脈沖輸出狀態(tài)機模塊的分頻計數(shù)器的初值div_cnt_init:
      [0018]其中 oz_cnt_init_rem 為 0Z_CNT_INIT 計算結果的余數(shù);
      [0019] 上述校正均只在系統(tǒng)運行前運行一次;
      [0020] 步驟2、發(fā)出脈沖數(shù)計算模塊接收預置的編碼器采樣周期T、電機旋轉單圈輸出脈 沖數(shù)PPRSET、脈沖輸出基準信號分頻比DIV,編碼器實際單圈脈沖數(shù)PPRE,計算編碼器在采 樣周期T內(nèi)需要發(fā)出的脈沖數(shù)Ρ0ΡΤ,計算公式如下:
      [0021] SMPT = P0S_DATAn-P0S_DATAn-i (1)
      [0022] 其中,SMPT為信號采樣中斷期間的編碼器脈沖數(shù),即兩次中斷期間采樣的位置數(shù) 據(jù)的差值,P〇S_DATAn*本次中斷采樣的位置數(shù)據(jù),POS+DATAr^為上次中斷采樣的位置數(shù) 據(jù);
      [0024]其中,PPRSET為預置的電機旋轉單圈輸出脈沖數(shù),DIV為預置的脈沖輸出基準信號 分頻比,取值1~32之間的任意整數(shù),REMA為上次計算的余數(shù),PPRE為編碼器實際單圈脈沖 數(shù);
      [0025]將計算得到的編碼器在采樣周期T內(nèi)需要發(fā)出的脈沖數(shù)Ρ0ΡΤ和兩次中斷期間采樣 的位置數(shù)據(jù)的差值SMPT發(fā)送給發(fā)出脈沖計數(shù)器;
      [0026]步驟3、發(fā)出脈沖數(shù)計算模塊根據(jù)步驟2計算得到的編碼器在采樣周期T內(nèi)需要發(fā) 出的脈沖數(shù)Ρ0ΡΤ,計算出當前采樣周期T內(nèi)需要輸出的脈沖輸出頻率P0FRQ,并發(fā)送給分頻 脈沖發(fā)生器模塊:
      [0028]步驟4、采樣周期T內(nèi)脈沖輸出的最高頻率為系統(tǒng)時鐘sysclk,則當前采樣周期T內(nèi) 需要輸出的脈沖輸出頻率P0FRQ與脈沖輸出的最高頻率的比值為:
      [0030] 將2n作為溢出門限寄存器的溢出門限值,其中η滿足2n> (T X SYSCLK)的條件,在每 個系統(tǒng)時鐘上升沿對累加準值進行累加,即對1^110\2"進行累加,存取累加結果,將累加 結果與溢出門限值比較,若大于,則輸出進位標志carry信號,同時將累加結果減去溢出門 限值,若小于,則繼續(xù)累加直至大于溢出門限值;將該進位標志Carry信號作為所需的脈沖 輸出基準信號發(fā)送給發(fā)出脈沖計數(shù)器模塊;
      [0031] 對脈沖輸出頻率P0FRQ進行修正,修正后的比值公式如下:
      [0033] 根據(jù)計算消耗的系統(tǒng)時鐘數(shù)以及中斷周期的偏移取Μ值,一般取4~8之間的任意 整數(shù),確保不會減少輸出的脈沖數(shù);
      [0034] 上述公式(1)至(5)在每個采樣周期Τ內(nèi)均只運算一次;
      [0035] 步驟5、分頻脈沖發(fā)生器模塊開始輸出脈沖輸出基準信號,發(fā)出脈沖計數(shù)器模塊對 該脈沖輸出基準信號的高電平時間進行計數(shù),當計數(shù)值達到采樣周期Τ內(nèi)需要發(fā)出的脈沖 數(shù)Ρ0ΡΤ時,阻斷脈沖輸出基準信號的高電平輸出,在下一個采樣周期Τ開始時清空上述計數(shù) 值,在脈沖輸出基準信號為高電平期間,根據(jù)兩次中斷期間采樣的位置數(shù)據(jù)的差值SMPT的 正負,來確定輸出正向脈沖輸出標志up和反向脈沖輸出標志dn的電平,若SMPT為正,則正向 脈沖輸出標志up為高電平,反向脈沖輸出標志dn為低電平;若SMPT為負,貝lj正向脈沖輸出 標志up為低電平,反向脈沖輸出標志dn為高電平,并將正向脈沖輸出標志up和反向脈沖輸 出標志dn實時發(fā)送給正交脈沖輸出狀態(tài)機模塊;
      [0036]步驟6、正交脈沖輸出狀態(tài)機模塊根據(jù)發(fā)出脈沖計數(shù)器模塊輸出的正向脈沖輸出 標志up和反向脈沖輸出標志dn,對分頻計數(shù)器的初值di v_cnt_ini t進行加減,當正向脈沖 輸出標志up為高電平時,該分頻計數(shù)器值加1,當反向脈沖輸出標志dn為高電平時,該分頻 計數(shù)值減1,當正向脈沖輸出標志up為高電平且分頻計數(shù)值等于脈沖輸出基準信號分頻比 DIV時,將分頻計數(shù)值清零,同時輸出正向切換信號ring_up;當反向脈沖輸出標志dn為高電 平且分頻計數(shù)值為0時,重置分頻計數(shù)值為脈沖輸出基準信號分頻比DIV的值,同時輸出反 向切換信號ring_dn,當正向切換信號Ring_up為高電平時,將0A脈沖信號超前0B脈沖信號 九十度;當反向切換信號Ring_dn為高電平時,將0A脈沖信號滯后0B脈沖信號九十度,通過 該脈沖輸出正交化處理,即可得到所需的兩路互為正交的脈沖輸出信號0A和0B信號,同時 將正向切換信號ring_up和反向切換信號ring_dn輸出至原點信號輸出計數(shù)器模塊;
      [0037]步驟7、原點信號輸出計數(shù)器模塊接收預置的電機旋轉單圈輸出脈沖數(shù)PPRSET,根 據(jù)正交脈沖輸出狀態(tài)機模塊輸入的正向切換信號ring_up和反向切換信號ring_dn的電平 對原點信號輸出計數(shù)器的初值〇Z_CNT_INIT進行加減,當原點信號輸出計數(shù)器值減小至零 或者增大至電機旋轉單圈輸出脈沖數(shù)PPRSET時,將原點信號輸出計數(shù)器值重置為電機旋 轉單圈輸出脈沖數(shù)PPRSET或者重置為零,在原點信號輸出計數(shù)器值為0時,輸出原點信號。 [0038]本發(fā)明以采樣周期內(nèi)輸出的脈沖數(shù)為切入點,給出了采樣周期內(nèi)輸出的脈沖數(shù)的 計算方法及修正手段,能夠確保輸出脈沖的個數(shù),保證位置數(shù)據(jù)不丟失,系統(tǒng)的抗干擾性更 好;本發(fā)明以采樣周期內(nèi)的系統(tǒng)時鐘個數(shù)為溢出門限,以系統(tǒng)時鐘為基準時鐘,可以突破編 碼器實際單圈脈沖數(shù)的限制,能夠產(chǎn)生比編碼器原始單圈脈沖數(shù)更高的脈沖數(shù)輸出,且給 出了原點信號的產(chǎn)生方式,使整個系統(tǒng)更加完善。
      【附圖說明】
      [0039]圖1是本發(fā)明電路的原理框圖。
      [0040]以下結合附圖和實施例對本發(fā)明作進一步詳述。
      【具體實施方式】
      [0041 ] 在本實施例中,F(xiàn)PGA選用ALTERA公司的EP4CE6E22I7。
      [0042]如圖1所示,本發(fā)明一種串行通信編碼器位置反饋脈沖分頻輸出系統(tǒng),由發(fā)出脈沖 數(shù)計算模塊1、分頻脈沖發(fā)生器模塊2、發(fā)出脈沖計數(shù)器模塊3、正交脈沖輸出狀態(tài)機模塊4和 原點信號輸出計數(shù)器模塊5構成,其中,
      [0043]發(fā)出脈沖數(shù)計算模塊1,接收預置的編碼器采樣周期T、電機旋轉單圈輸出脈沖數(shù) PPRSET、脈沖輸出基準信號分頻比DIV,編碼器實際單圈脈沖數(shù)PPRE,計算編碼器在采樣周 期T內(nèi)需要發(fā)出的脈沖數(shù)Ρ0ΡΤ,將在采樣周期T內(nèi)需要發(fā)出的脈沖數(shù)Ρ0ΡΤ和兩次中斷期間 采樣的位置數(shù)據(jù)的差值SMPT發(fā)送給發(fā)出脈沖計數(shù)器模塊3,將計算得到的當前采樣周期T內(nèi) 需要輸出的脈沖輸出頻率P0FRQ發(fā)送給分頻脈沖發(fā)生器模塊2,將電機旋轉單圈輸出脈沖數(shù) PPRSET發(fā)送給原點信號輸出計數(shù)器模塊5;
      [0044] 分頻脈沖發(fā)生器模塊2,根據(jù)發(fā)出脈沖數(shù)計算模塊1給出的當前采樣周期T內(nèi)需要輸出的 脈沖輸出頻率P0FRQ和系統(tǒng)時鐘sysclk,計算其比值為 將2n作為溢出門限寄存器的溢出門限值,其中η滿足2n> (T X SYSCLK)的條件,在每個系統(tǒng)時 鐘上升沿對累加準值進行累加,即對RATIO X 2"進行累加,存取累加結果,將累加結果與溢 出門限值比較,若大于,則輸出進位標志carry信號,同時將累加結果減去溢出門限值,若小 于,則繼續(xù)累加直至大于溢出門限值,將該進位標志Carry信號作為所需的脈沖輸出基準信 號發(fā)送給發(fā)出脈沖計數(shù)器模塊3;
      [0045] 發(fā)出脈沖計數(shù)器模塊3,在分頻脈沖發(fā)生器模塊2開始輸出脈沖輸出基準信號時, 對該脈沖輸出基準信號的高電平時間進行計數(shù),當計數(shù)值達到采樣周期T內(nèi)需要發(fā)出的脈 沖數(shù)Ρ0ΡΤ時,阻斷脈沖輸出基準信號的高電平輸出,在下一個采樣周期T開始時清空上述計 數(shù)值,在脈沖輸出基準信號為高電平期間,根據(jù)兩次中斷期間采樣的位置數(shù)據(jù)的差值SMPT 的正負,來確定輸出正向脈沖輸出標志up和反向脈沖輸出標志dn的電平,若SMPT為正,則正 向脈沖輸出標志up為高電平,反向脈沖輸出標志dn為低電平;若SMPT為負,貝lj正向脈沖輸 出標志up為低電平,反向脈沖輸出標志dn為高電平,并將正向脈沖輸出標志up和反向脈沖 輸出標志dn實時發(fā)送給正交脈沖輸出狀態(tài)機模塊4;
      [0046]正交脈沖輸出狀態(tài)機模塊4,置分頻計數(shù)器初值div_cnt_init,根據(jù)發(fā)出脈沖計數(shù) 器模塊3輸出的正向脈沖輸出標志up和反向脈沖輸出標志dn,對分頻計數(shù)器值進行加減,當 正向脈沖輸出標志up為高電平時,該分頻計數(shù)器值加1,當反向脈沖輸出標志dn為高電平 時,該分頻計數(shù)器值減1,當正向脈沖輸出標志up為高電平且分頻計數(shù)器值等于脈沖輸出基 準信號分頻比DIV時,將分頻計數(shù)器值清零,同時輸出正向切換信號ring_up;當反向脈沖輸 出標志dn為高電平且分頻計數(shù)器值為0時,重置分頻計數(shù)器值為脈沖輸出基準信號分頻比 DIV的值,同時輸出反向切換信號ring_dn;當正向切換信號Ring_up為高電平時,將0A脈沖 信號超前0B脈沖信號九十度;當反向切換信號Ring_dn為高電平時,將0A脈沖信號滯后0B脈 沖信號九十度,通過該脈沖輸出正交化處理,即可得到所需的兩路互為正交的脈沖輸出信 號0A和0B信號,同時將正向切換信號ring_up和反向切換信號ring_dn輸出至原點信號輸出 計數(shù)器模塊5;
      [0047]原點信號輸出計數(shù)器模塊5,接收預置的電機旋轉單圈輸出脈沖數(shù)PPRSET,根據(jù)正 交脈沖輸出狀態(tài)機模塊4輸入的正向切換信號ring_up和反向切換信號ring_dn的電平對其 原點信號輸出計數(shù)器的初值進行加減,當原點信號輸出計數(shù)器值減小至零或者增大至電機 旋轉單圈輸出脈沖數(shù)PPRSET時,將原點信號輸出計數(shù)器值重置為電機旋轉單圈輸出脈沖 數(shù)PPRSET或者重置為零,在原點信號輸出計數(shù)器值為0時,輸出原點信號。
      [0048] 本發(fā)明一種串行通信編碼器位置反饋脈沖分頻輸出方法,具體實現(xiàn)包括如下步 驟:
      [0049] 步驟1:由于原點信號位置與編碼器本身的位置相關,因此需要在系統(tǒng)運行前根據(jù) 編碼器的實際位置對原點信號輸出計數(shù)器模塊5的原點信號輸出計數(shù)器的初值進行校正, 以系統(tǒng)運行前編碼器位置數(shù)據(jù)校正原點信號輸出計數(shù)器的初值〇Z_CNT_INIT:
      [0050] 先獲取編碼器的初始位置值P〇S_DATA_INIT,然后計算原點信號輸出計數(shù)器的初 值OZ_CNT_INIT:
      [0052]其中,PPRSET為電機旋轉單圈輸出脈沖數(shù),PPRE為編碼器實際單圈脈沖數(shù);
      [0053]由于原點信號與0A和0B脈沖信號要保持相同的相位關系,因此還要在系統(tǒng)運行 前,以該原點信號輸出計數(shù)器的初值〇Z_CNT_INIT來修正兩路互為正交的0A和0B脈沖信號 的初始相位關系,以保證兩路互為正交的0A和0B脈沖信號與原點信號的相位關系滿足: [0054] {〇A,OB}= 0Z_CNT_INIT[1:0] (7)
      [0055]同時,計算正交脈沖輸出狀態(tài)機模塊4的分頻計數(shù)器的初值div_cnt_init:
      [0056]其中 oz_cnt_init_rem 為 0Z_CNT_INIT 計算結果的余數(shù);
      [0057]上述校正均只在系統(tǒng)運行前運行一次;
      [0058] 步驟2、發(fā)出脈沖數(shù)計算模塊1接收預置的編碼器采樣周期T、電機旋轉單圈輸出脈 沖數(shù)PPRSET、脈沖輸出基準信號分頻比DIV,編碼器實際單圈脈沖數(shù)PPRE,計算編碼器在采 樣周期T內(nèi)需要發(fā)出的脈沖數(shù)Ρ0ΡΤ,計算公式如下:
      [0059] SMPT = P0S_DATAn-P0S_DATAn-i (1)
      [0060] 其中,SMPT為信號采樣中斷期間的編碼器脈沖數(shù),即兩次中斷期間采樣的位置數(shù) 據(jù)的差值,P〇S_DATAn*本次中斷采樣的位置數(shù)據(jù),POS+DATAr^為上次中斷采樣的位置數(shù) 據(jù);
      [0062]其中,PPRSET為預置的電機旋轉單圈輸出脈沖數(shù),DIV為預置的脈沖輸出基準信號 分頻比,取值1~32之間的任意整數(shù),REMA為上次計算的余數(shù),PPRE為編碼器實際單圈脈沖 數(shù);
      [0063]這里引入脈沖輸出基準信號分頻比DIV,是為了在單圈輸出脈沖數(shù)PPRSET較小時, 保證計算精度,在此處放大的倍數(shù),通過正交脈沖輸出狀態(tài)機模塊4內(nèi)的分頻來抵消;
      [0064]將計算得到的編碼器在采樣周期T內(nèi)需要發(fā)出的脈沖數(shù)Ρ0ΡΤ和兩次中斷期間采樣 的位置數(shù)據(jù)的差值SMPT發(fā)送給發(fā)出脈沖計數(shù)器3;
      [0065]步驟3、發(fā)出脈沖數(shù)計算模塊1根據(jù)步驟2計算得到的編碼器在采樣周期T內(nèi)需要發(fā) 出的脈沖數(shù)Ρ0ΡΤ,計算出當前采樣周期T內(nèi)需要輸出的脈沖輸出頻率P0FRQ,并發(fā)送給分頻 脈沖發(fā)生器模塊2:
      [0067]步驟4、采樣周期T內(nèi)脈沖輸出的最高頻率為系統(tǒng)時鐘sysclk,則當前采樣周期T內(nèi) 需要輸出的脈沖輸出頻率P0FRQ與脈沖輸出的最高頻率的比值為:
      [0069]將2n作為溢出門限寄存器的溢出門限值,其中η滿足2n> (T X SYSCLK)的條件,在每 個系統(tǒng)時鐘上升沿對累加準值進行累加,即對1^1'10\2"進行累加,存取累加結果,將累加 結果與溢出門限值比較,若大于,則輸出進位標志carry信號,同時將累加結果減去溢出門 限值,若小于,則繼續(xù)累加直至大于溢出門限值;將該進位標志Carry信號作為所需的脈沖 輸出基準信號發(fā)送給發(fā)出脈沖計數(shù)器模塊3;
      [0070]由于各項數(shù)據(jù)的計算需要消耗系統(tǒng)時鐘,同時存在系統(tǒng)時鐘偏移的情況,需要對 脈沖輸出頻率P0FRQ進行修正,修正后的比值公式如下:
      [0072] 根據(jù)計算消耗的系統(tǒng)時鐘數(shù)以及中斷周期的偏移取Μ值,一般取4~8之間的任意 整數(shù),用于抵消數(shù)據(jù)計算及系統(tǒng)時鐘偏移消耗的時鐘數(shù),稍微增大輸出脈沖的頻率,確保不 會減少輸出的脈沖數(shù);
      [0073] 上述公式(1)至(5)在每個采樣周期Τ內(nèi)均只運算一次;
      [0074] 步驟5、分頻脈沖發(fā)生器模塊2開始輸出脈沖輸出基準信號,發(fā)出脈沖計數(shù)器模塊3 對該脈沖輸出基準信號的高電平時間進行計數(shù),當計數(shù)值達到采樣周期Τ內(nèi)需要發(fā)出的脈 沖數(shù)Ρ0ΡΤ時,阻斷脈沖輸出基準信號的高電平輸出,在下一個采樣周期Τ開始時清空上述計 數(shù)值,在脈沖輸出基準信號為高電平期間,根據(jù)兩次中斷期間采樣的位置數(shù)據(jù)的差值SMPT 的正負,來確定輸出正向脈沖輸出標志up和反向脈沖輸出標志dn的電平,若SMPT為正,則正 向脈沖輸出標志up為高電平,反向脈沖輸出標志dn為低電平;若SMPT為負,貝lj正向脈沖輸出 標志up為低電平,反向脈沖輸出標志dn為高電平,并將正向脈沖輸出標志up和反向脈沖輸 出標志dn實時發(fā)送給正交脈沖輸出狀態(tài)機模塊4;
      [0075]步驟6、正交脈沖輸出狀態(tài)機模塊4根據(jù)發(fā)出脈沖計數(shù)器模塊3輸出的正向脈沖輸 出標志up和反向脈沖輸出標志dn,對分頻計數(shù)器的初值div_cnt_init進行加減,當正向脈 沖輸出標志up為高電平時,該分頻計數(shù)器值加1,當反向脈沖輸出標志dn為高電平時,該分 頻計數(shù)值減1,當正向脈沖輸出標志up為高電平且分頻計數(shù)值等于脈沖輸出基準信號分頻 比DIV時,將分頻計數(shù)值清零,同時輸出正向切換信號ring_up;當反向脈沖輸出標志dn為高 電平且分頻計數(shù)值為0時,重置分頻計數(shù)值為脈沖輸出基準信號分頻比DIV的值,同時輸出 反向切換信號ring_dn,當正向切換信號Ring_up為高電平時,將0A脈沖信號超前0B脈沖信 號九十度;當反向切換信號Ring_dn為高電平時,將0A脈沖信號滯后0B脈沖信號九十度,通 過該脈沖輸出正交化處理,即可得到所需的兩路互為正交的脈沖輸出信號0A和0B信號,同 時將正向切換信號ring_up和反向切換信號ring_dn輸出至原點信號輸出計數(shù)器模塊5; [0076]該脈沖輸出正交化處理的具體做法為:通過正交脈沖輸出狀態(tài)機模塊4輸出兩路 互為正交的0A和0B脈沖信號,0A和0B脈沖信號組合起來共有00,01,11,10四種狀態(tài),通過正 向切換信號ring_up和反向切換信號ring_dn的電平可以確定脈沖信號輸出的正反相位(SP 兩路脈沖信號的相位超前與滯后關系,正轉為〇〇, 10,11,〇1,反轉為〇〇,〇1,11,10)和變換兩 路脈沖信號的狀態(tài),輸出符合要求的兩路正交脈沖信號;
      [0077]步驟7、原點信號輸出計數(shù)器模塊5接收預置的電機旋轉單圈輸出脈沖數(shù)PPRSET, 根據(jù)正交脈沖輸出狀態(tài)機模塊4輸入的正向切換信號ring_up和反向切換信號ring_dn的電 平對原點信號輸出計數(shù)器的初值〇Z_CNT_INIT進行加減,當原點信號輸出計數(shù)器值減小至 零或者增大至電機旋轉單圈輸出脈沖數(shù)PPRSET時,將原點信號輸出計數(shù)器值重置為電機旋 轉單圈輸出脈沖數(shù)PPRSET或者重置為零,在原點信號輸出計數(shù)器值為0時,輸出原點信號。 [0078]以上所述,僅是本發(fā)明較佳實施例而已,并非對本發(fā)明的技術范圍作任何限制,故 凡是依據(jù)本發(fā)明的技術實質對以上實施例所作的任何細微修改、等同變化與修飾,均仍屬 于本發(fā)明技術方案的范圍內(nèi)。
      【主權項】
      1. 一種串行通信編碼器位置反饋脈沖分頻輸出系統(tǒng),其特征在于:由發(fā)出脈沖數(shù)計算 模塊、分頻脈沖發(fā)生器模塊、發(fā)出脈沖計數(shù)器模塊、正交脈沖輸出狀態(tài)機模塊和原點信號輸 出計數(shù)器模塊構成,其中, 發(fā)出脈沖數(shù)計算模塊,接收預置的編碼器采樣周期T、電機旋轉單圈輸出脈沖數(shù) PPRSET、脈沖輸出基準信號分頻比DIV,編碼器實際單圈脈沖數(shù)PPRE,計算編碼器在采樣周 期T內(nèi)需要發(fā)出的脈沖數(shù)POPT,將在采樣周期T內(nèi)需要發(fā)出的脈沖數(shù)POPT和兩次中斷期間采 樣的位置數(shù)據(jù)的差值SMPT發(fā)送給發(fā)出脈沖計數(shù)器模塊,將計算得到的當前采樣周期T內(nèi)需 要輸出的脈沖輸出頻率POFRQ發(fā)送給分頻脈沖發(fā)生器模塊,將電機旋轉單圈輸出脈沖數(shù) PPRSET發(fā)送給原點信號輸出計數(shù)器模塊; 分頻脈沖發(fā)生器模塊,根據(jù)發(fā)出脈沖數(shù)計算模塊給出的當前采樣周期T內(nèi)需要輸出的脈 沖輸出頻率POFRQ和系統(tǒng)時鐘sysc化,計算其比值另將2。作為溢出口限寄存器的溢出口限值,其中η滿足2。> (T X SYSCLK)的條件,在每個系統(tǒng)時 鐘上升沿對累加準值進行累加,即對RATIO X 2"進行累加,存取累加結果,將累加結果與溢 出口限值比較,若大于,則輸出進位標志carry信號,同時將累加結果減去溢出口限值,若小 于,則繼續(xù)累加直至大于溢出口限值,將該進位標志化r巧信號作為所需的脈沖輸出基準信 號發(fā)送給發(fā)出脈沖計數(shù)器模塊; 發(fā)出脈沖計數(shù)器模塊,在分頻脈沖發(fā)生器模塊開始輸出脈沖輸出基準信號時,對該脈 沖輸出基準信號的高電平時間進行計數(shù),當計數(shù)值達到采樣周期T內(nèi)需要發(fā)出的脈沖數(shù) P0PT時,阻斷脈沖輸出基準信號的高電平輸出,在下一個采樣周期T開始時清空上述計數(shù) 值,在脈沖輸出基準信號為高電平期間,根據(jù)兩次中斷期間采樣的位置數(shù)據(jù)的差值SMPT的 正負,來確定輸出正向脈沖輸出標志up和反向脈沖輸出標志化的電平,若SMPT為正,則正向 脈沖輸出標志up為高電平,反向脈沖輸出標志dn為低電平;若SMPT為負,則正向脈沖輸出標 志up為低電平,反向脈沖輸出標志dn為高電平,并將正向脈沖輸出標志up和反向脈沖輸出 標志dn實時發(fā)送給正交脈沖輸出狀態(tài)機模塊; 正交脈沖輸出狀態(tài)機模塊,置分頻計數(shù)器初值div_cnt_init,根據(jù)發(fā)出脈沖計數(shù)器模 塊輸出的正向脈沖輸出標志up和反向脈沖輸出標志dn,對分頻計數(shù)器初值進行加減,當正 向脈沖輸出標志up為高電平時,該分頻計數(shù)器值加1,當反向脈沖輸出標志dn為高電平時, 該分頻計數(shù)器值減1,當正向脈沖輸出標志up為高電平且分頻計數(shù)器值等于脈沖輸出基準 信號分頻比DIV時,將分頻計數(shù)器值清零,同時輸出正向切換信號ring_up;當反向脈沖輸出 標志dn為高電平且分頻計數(shù)器值為0時,重置分頻計數(shù)器值為脈沖輸出基準信號分頻比DIV 的值,同時輸出反向切換信號ring_dn;當正向切換信號Ring_up為高電平時,將0A脈沖信號 超前0B脈沖信號九十度;當反向切換信號Ring_dn為高電平時,將0A脈沖信號滯后0B脈沖信 號九十度,通過該脈沖輸出正交化處理,即可得到所需的兩路互為正交的脈沖輸出信號0A 和0B信號,同時將正向切換信號ring_up和反向切換信號ring_dn輸出至原點信號輸出計數(shù) 器模塊; 原點信號輸出計數(shù)器模塊,接收預置的電機旋轉單圈輸出脈沖數(shù)PPRSET,根據(jù)正交脈 沖輸出狀態(tài)機模塊輸入的正向切換信號ring_up和反向切換信號;ring_dn的電平對其原點 信號輸出計數(shù)器的初值進行加減,當原點信號輸出計數(shù)器值減小至零或者增大至電機旋轉 單圈輸出脈沖數(shù)PPRSET時,將原點信號輸出計數(shù)器值重置為電機旋轉單圈輸出脈沖數(shù) PPRSET或者重置為零,在原點信號輸出計數(shù)器值為加寸,輸出原點信號。2.根據(jù)權利要求1所述的一種串行通信編碼器位置反饋脈沖分頻輸出系統(tǒng)的輸出方 法,其特征在于包括如下步驟: 步驟1:在系統(tǒng)運行前根據(jù)編碼器的實際位置對原點信號輸出計數(shù)器模塊的原點信號 輸出計數(shù)器的初值進行校正,W系統(tǒng)運行前編碼器位置數(shù)據(jù)校正原點信號輸出計數(shù)器的初 值 OZ_CNT_IWT: 先獲取編碼器的初始位置值P〇S_DATA_INI T,然后計算原點信號輸出計數(shù)器的初值0Z_ CNT-INIT:其中,PPRSET為電機旋轉單圈輸出脈沖數(shù),PPRE為編碼器實際單圈脈沖數(shù); 在系統(tǒng)運行前,W該原點信號輸出計數(shù)器的初值〇Z_CNT_INIT來修正兩路互為正交的 0A和0B脈沖信號的初始相位關系,W保證兩路互為正交的0A和0B脈沖信號與原點信號的相 位關系滿足: (0A,0B]=0Z_CNT_INIT[1:0](7) 同時,計算正交脈沖輸出狀態(tài)機模塊的分頻計數(shù)器的初值div_cnt_init:其中oz_cnt_init_rem為OZ_CNT_IN];T計算結果的余數(shù); 上述校正均只在系統(tǒng)運行前運行一次; 步驟2、發(fā)出脈沖數(shù)計算模塊接收預置的編碼器采樣周期T、電機旋轉單圈輸出脈沖數(shù) PPRSET、脈沖輸出基準信號分頻比DIV,編碼器實際單圈脈沖數(shù)PPRE,計算編碼器在采樣周 期T內(nèi)需要發(fā)出的脈沖數(shù)POPT,計算公式如下: SMPT = POS_DATAn-POS_DATAn-i (1) 其中,SMPT為信號采樣中斷期間的編碼器脈沖數(shù),即兩次中斷期間采樣的位置數(shù)據(jù)的 差值,POS_DATAn為本次中斷采樣的位置數(shù)據(jù),POS_DATAn-功上次中斷采樣的位置數(shù)據(jù);其中,PPRSET為預置的電機旋轉單圈輸出脈沖數(shù),DIV為預置的脈沖輸出基準信號分頻 比,取值1~32之間的任意整數(shù),REMA為上次計算的余數(shù),PPRE為編碼器實際單圈脈沖數(shù); 將計算得到的編碼器在采樣周期T內(nèi)需要發(fā)出的脈沖數(shù)POPT和兩次中斷期間采樣的位 置數(shù)據(jù)的差值SMPT發(fā)送給發(fā)出脈沖計數(shù)器; 步驟3、發(fā)出脈沖數(shù)計算模塊根據(jù)步驟2計算得到的編碼器在采樣周期T內(nèi)需要發(fā)出的 脈沖數(shù)POPT,計算出當前采樣周期T內(nèi)需要輸出的脈沖輸出頻率POFRQ,并發(fā)送給分頻脈沖 發(fā)生器模塊:步驟4、采樣周期T內(nèi)脈沖輸出的最高頻率為系統(tǒng)時鐘sysc化,則當前采樣周期T內(nèi)需要 輸出的脈沖輸出頻率POFRQ與脈沖輸出的最高頻率的比值為:將2。作為溢出口限寄存器的溢出口限值,其中η滿足2n>(TXSYS化K)的條件,在每個系 統(tǒng)時鐘上升沿對累加準值進行累加,即對RATI0X2n進行累加,存取累加結果,將累加結果 與溢出口限值比較,若大于,則輸出進位標志car巧信號,同時將累加結果減去溢出口限值, 若小于,則繼續(xù)累加直至大于溢出口限值;將該進位標志化r巧信號作為所需的脈沖輸出基 準信號發(fā)送給發(fā)出脈沖計數(shù)器模塊; 對脈沖輸出頻率P0FRQ進行修正,修正后的比值公式如下:根據(jù)計算消耗的系統(tǒng)時鐘數(shù)W及中斷周期的偏移取Μ值,一般取4~8之間的任意整數(shù), 確保不會減少輸出的脈沖數(shù); 上述公式(1)至巧)在每個采樣周期Τ內(nèi)均只運算一次; 步驟5、分頻脈沖發(fā)生器模塊開始輸出脈沖輸出基準信號,發(fā)出脈沖計數(shù)器模塊對該脈 沖輸出基準信號的高電平時間進行計數(shù),當計數(shù)值達到采樣周期Τ內(nèi)需要發(fā)出的脈沖數(shù) Ρ0ΡΤ時,阻斷脈沖輸出基準信號的高電平輸出,在下一個采樣周期Τ開始時清空上述計數(shù) 值,在脈沖輸出基準信號為高電平期間,根據(jù)兩次中斷期間采樣的位置數(shù)據(jù)的差值SMPT的 正負,來確定輸出正向脈沖輸出標志up和反向脈沖輸出標志化的電平,若SMPT為正,則正向 脈沖輸出標志up為高電平,反向脈沖輸出標志dn為低電平;若SMPT為負,則正向脈沖輸出標 志up為低電平,反向脈沖輸出標志dn為高電平,并將正向脈沖輸出標志up和反向脈沖輸出 標志dn實時發(fā)送給正交脈沖輸出狀態(tài)機模塊; 步驟6、正交脈沖輸出狀態(tài)機模塊根據(jù)發(fā)出脈沖計數(shù)器模塊輸出的正向脈沖輸出標志 up和反向脈沖輸出標志dn,對分頻計數(shù)器的初值d i v_c η t _ i η i t進行加減,當正向脈沖輸出 標志up為高電平時,該分頻計數(shù)器值加1,當反向脈沖輸出標志dn為高電平時,該分頻計數(shù) 值減1,當正向脈沖輸出標志up為高電平且分頻計數(shù)值等于脈沖輸出基準信號分頻比DIV 時,將分頻計數(shù)值清零,同時輸出正向切換信號ring_up;當反向脈沖輸出標志dn為高電平 且分頻計數(shù)值為0時,重置分頻計數(shù)值為脈沖輸出基準信號分頻比DIV的值,同時輸出反向 切換信號ring_dn,當正向切換信號Ring_啡為高電平時,將0A脈沖信號超前0B脈沖信號九 十度;當反向切換信號Ring_dn為高電平時,將0A脈沖信號滯后0B脈沖信號九十度,通過該 脈沖輸出正交化處理,即可得到所需的兩路互為正交的脈沖輸出信號0A和0B信號,同時將 正向切換信號ring_up和反向切換信號;ring_dn輸出至原點信號輸出計數(shù)器模塊; 步驟7、原點信號輸出計數(shù)器模塊接收預置的電機旋轉單圈輸出脈沖數(shù)PPRSET,根據(jù) 正交脈沖輸出狀態(tài)機模塊輸入的正向切換信號ring_啡和反向切換信號ring_dn的電平對 原點信號輸出計數(shù)器的初值〇Z_CNT_IN 口進行加減,當原點信號輸出計數(shù)器值減小至零或 者增大至電機旋轉單圈輸出脈沖數(shù)PPRSET時,將原點信號輸出計數(shù)器值重置為電機旋轉單 圈輸出脈沖數(shù)PPRSET或者重置為零,在原點信號輸出計數(shù)器值為加寸,輸出原點信號。
      【文檔編號】G01D5/244GK106092156SQ201610633929
      【公開日】2016年11月9日
      【申請日】2016年8月4日 公開號201610633929.7, CN 106092156 A, CN 106092156A, CN 201610633929, CN-A-106092156, CN106092156 A, CN106092156A, CN201610633929, CN201610633929.7
      【發(fā)明人】陳鑫, 張鐳, 陳天成, 王天來, 張暢
      【申請人】泉州市桑川電氣設備有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1