一区免费视频_亚洲精品成人av在线_久久99国产精品久久99果冻传媒_毛片网站多少

  為機床工具企業(yè)提供深度市場分析                     

用戶名:   密碼:         免費注冊  |   申請VIP  |  

English  |   German  |   Japanese  |   添加收藏  |  
便攜式3D掃描儀
檢驗測量

車床 銑床 鉆床 數(shù)控系統(tǒng) 加工中心 鍛壓機床 刨插拉床 螺紋加工機床 齒輪加工機床
磨床 鏜床 刀具 功能部件 配件附件 檢驗測量 機床電器 特種加工 機器人

檢驗測量

電工電力 工程機械 航空航天 汽車 模具
儀器儀表 通用機械 軌道交通 船舶

搜索
熱門關(guān)鍵字:

數(shù)控機床

 | 數(shù)控車床 | 數(shù)控系統(tǒng) | 滾齒機 | 數(shù)控銑床 | 銑刀 | 主軸 | 立式加工中心 | 機器人
您現(xiàn)在的位置:檢驗測量網(wǎng)> 技術(shù)前沿>基于 DSP 中 EMIF 端口的光柵尺數(shù)據(jù)采集
基于 DSP 中 EMIF 端口的光柵尺數(shù)據(jù)采集
2017-8-7  來源:哈爾濱工業(yè)大學(xué)航天學(xué)院   作者:萬勇利 魏 凱 韓紀曉 陳興林
 
      摘   要 : 光柵尺是設(shè)備中常用的位置檢測裝置 , 其測量輸出的信號為數(shù)字脈沖 , 具有檢測范圍大 , 檢測精度高 , 響應(yīng)速度快的特點。C6000 系列 DSP 芯片功耗低 , 而且具有高性能的處理能力 , 而且其 EMIF 接口與可以實現(xiàn)與外部存儲擴展的無縫連接。本文介紹一種利用 EMIF 與 FPGA 的無縫連接 , 實現(xiàn) DSP 對 FPGA 中存儲的光柵尺數(shù)據(jù)采集方法。

      關(guān)鍵詞 :DSP;EMIF;FPGA; 光柵尺 ; 數(shù)據(jù)采集

      1  引言

      DSP 芯片 , 也稱數(shù)字信號處理器 , 是一種特別適合于進行數(shù)字信號處理運算的微處理器 , 其主要應(yīng)用是實時快速地實現(xiàn)各種數(shù)字信號處理算法。DSP 有豐富的外設(shè)資源 , 其中 EMIF 端口更是滿足了DSP 的外部存儲擴展和數(shù)據(jù)交換的需求。通過 EMIF 與外部存儲器連接可以實現(xiàn) DSP 與存儲器的無縫連接 , 對于數(shù)據(jù)有更高效的存取速度 , 而且 64 位數(shù)據(jù)線有極高的數(shù)據(jù)吞吐量。DSP內(nèi)部對 EMIFA 與 EMIFB 進行了統(tǒng)一編址 , 對 EMIF擴展的存儲空間都有相應(yīng)的地址映射 , 通過直接訪問相應(yīng)的地址可以直接獲得存儲在外部擴展存儲器中的數(shù)據(jù) , 配置好 EMIF 外設(shè)后 , 訪問數(shù)據(jù)十分方便。嵌入式設(shè)計中常用作外部 FLASH 擴展、存儲擴展及和 FPGA數(shù)據(jù)交換。

      光柵尺 , 也稱為光柵尺位移傳感器 , 是利用光柵的光學(xué)原理工作的測量反饋裝置。光柵尺經(jīng)常應(yīng)用于閉環(huán)伺服系統(tǒng)中 , 可用作直線位移或者角位移的檢測。其測量輸出的信號為數(shù)字脈沖 , 具有檢測范圍大 , 檢測精度高 , 響應(yīng)速度快的特點。利用光柵尺作為位置傳感器可以精確地獲得控制對象的位置信息 , 而且光柵尺獲得的數(shù)據(jù)容易處理 , 通過簡單的精度計算和初始位置選擇就可以得到期望的位置信號。

      2  DSP 的 EMIF 端口結(jié)構(gòu)

      本文以 TMS320C64x 系列 DSP 進行說明。DSP 的EMIF 接口支持異步存儲器接口、同步突發(fā)靜態(tài)存儲器接口和同步動態(tài)存儲器接口 , 支持程序代碼訪問 64 位寬、32 位寬、16 位寬數(shù)據(jù)訪問。DSP 將 EMIF 接 口 分 為 兩 個 部 分 ,EMIFA 和EMIFB, 其中 EMIFA 可以支持 64 位、32 位、16 位和8 位數(shù)據(jù)訪問 ,EMIFB 支持 16 位和 8 位數(shù)據(jù)訪問。

      DSP 將 EMIF 接 口 分 為 兩 個 部 分 ,EMIFA 和EMIFB, 其中 EMIFA 可以支持 64 位、32 位、16 位和8 位數(shù)據(jù)訪問 ,EMIFB 支持 16 位和 8 位數(shù)據(jù)訪問兩

      兩個 EMIF 端口的存儲區(qū)均被分為 4 個片選空間 , 都可以單獨進行設(shè)置與擴展。DSP 對外設(shè) EMIF 端口進行統(tǒng)一編址[1], 其地址映射如表 1 所示。
      

      從圖中可以看出 EMIFA 和 EMIFB 分別被分為四個片選區(qū) CE0~CE3, 并且分別分配了地址 , 這樣使得 DSP可以同時與不同的存儲器擴展 , 通過訪問不同的地址區(qū)即可訪問相應(yīng)的外部存儲器 , 大大提高了 EMIF 端口的設(shè)計靈活性又提高了 EMIF 端口的使用效率。EMIF 的端口結(jié)構(gòu)[2]如圖 1 所示。

    

      ECLKIN:EMIF 的外部時鐘輸入 , 可以作為 EMIF對外輸出時鐘頻率。

      ECLKOUTn:EMIF 對外輸出時鐘頻率 , 它的選擇基于 EMIF 的輸入時鐘頻率(1/4  或 1/6 的 DSP 內(nèi)部時鐘頻率、外部時鐘頻率)。其中 ECLKOUT1 頻率等于 EMIF 輸入時鐘頻率。ECLKOUT2 可以編程設(shè)置為EMIF 輸入頻率的 1 倍、1/2 或 1/4。時鐘頻率的選擇影響外部存儲擴展存儲速度 , 配置 EMIF 需要注意。

      ED:EMIF 的數(shù)據(jù)線。

      EA:EMIF 的地址線。

      

      對于 EMIF 的外部存儲 , 它的兩個部分 EMIFA 和EMIFB 可以選擇不同的數(shù)據(jù)位 , 對于 EMIFA 的外部數(shù)據(jù)線位數(shù)選擇[2]。EMIFA 的數(shù)據(jù)線可以選擇 64 位 ,32位 ,16 位和 8 位 , 設(shè)計相當?shù)撵`活 , 可以根據(jù)擴展的存儲芯片的類型進行選擇。EMIFB 的數(shù)據(jù)線可以選擇16 位和 8 位 , 利用 EMIFB 可以進行低數(shù)據(jù)外部存儲的擴展。

      EMIFA 常用于與外部傳感器進行大量的數(shù)據(jù)交換 ,而 EMIFB 則可以用作 DSP 芯片的 FLASH 芯片擴展及外部 RAM 擴展。兩部分相結(jié)合 , 可以滿足數(shù)據(jù)存儲交換的需求。

      3  EMIF 端口與 FPGA 硬件連接設(shè)計

      對于 EMIF 端口的引腳我們需要將其與 FPGA 的通用引腳連接起來 , 以便在 FPGA 內(nèi)進行邏輯編程。其實 ,對于 FPGA 用作 EMIF 的存儲用不到所有的引腳 , 但是為了方便以后的設(shè)計變化 , 我們在原理圖中將 EMIF端口的所有引腳均在 FPGA 中分配了引腳。為了防止沒有用到的 EMIF 引腳的干擾 , 可以將沒有用到的引腳設(shè)為高阻態(tài)。本設(shè)計以 EMIFA 的端口設(shè)計為例進行介紹 ,EMIFB 端口可同樣道理進行設(shè)計。在 Altium  Designer 軟件中繪制原理圖。圖 3 為與EMIF 端口相關(guān)元件圖。左側(cè)為 DSP 芯片的 EMIF 引腳分布 , 右側(cè)為 FPGA 與 EMIF 相接管腳。將 DSP 與 FPGA 對應(yīng)管腳相連 , 如圖 2 所示結(jié)構(gòu)。

  

      圖 2  EMIFA 與 FPGA 連接圖

      4  DSP 中EMIF 程序配置

      在 DSP 中對 EMIF 端口的控制可由 EMIF 對應(yīng)的寄存器進行配置 , 然后利用 DSP 的庫函數(shù)應(yīng)用配置。以EMIFA端口配置為例進行介紹。在DSP中有如下宏定義:

      #define EMIFA_FMKS(REG,FIELD,SYM)\

      _ P E R _ F M K S ( E M I F A , # # R E G , # # 
FIELD,##SYM)

      此宏定義可以實現(xiàn)對于 EMIFA 的 REG 寄存器的FIELD 位賦予 SYM 值。這樣可以方便的對 EMIFA 寄存器進行配置。對于本設(shè)計 ,EMIF 只要控制好數(shù)據(jù)線和地址線及片選使能信號、讀寫控制信號即可, 其他的配置可以從簡。以下只給出本設(shè)計的一些關(guān)鍵配置 ,其參數(shù)可以自行調(diào)節(jié)。其他配置位可以根據(jù)技術(shù)手冊進行設(shè)置。

      (1) 對于 ENIF 全局控制寄存器 GBLCTL 配置

      E M I F A _ F M K S ( G B L C T L ,  E K2R A T E , HALFCLK)   //ECLKOUT2 輸出頻率為 1/2EMIF 輸入時鐘頻率。

      EMIFA_FMKS(GBLCTL,  EK2HZ,  CLK) //ECLKOUT2 輸出不間斷EMIFA_FMKS(GBLCTL,  EK2EN,  ENABLE) //ECLKOUT2 輸出使能EMIFA_FMKS(GBLCTL, NOHOLD, DISABLE) //  NOHOLD 關(guān)閉 ,FPGA 可以發(fā)起對 EMIF 總線占有申請。

      (2) 對于 ENIFCE 空間控制寄存器 CECTL 配置

      EMIFB_FMKS(CECTL,  WRSETUP,  OF(2)) // 寫信號到來前 , 地址線、片選使能先、位使能等信號能建立、讀信號完成后使能芯片需要兩個時鐘周期。EMIFB_FMKS(CECTL,  WRSTRB,  OF(6)) // 寫信號的寬度為 6 個時鐘周期。EMIFB_FMKS(CECTL, WRHLD, OF(2))   

      //寫信號到來后對地址線和字節(jié)存儲線占用 2 個時鐘周期。EMIFB_FMKS(CECTL, RDSETUP, OF(2))  //讀信號到來前 , 地址線、片選使能先、位使能等信號能建立、讀信號完成后使能芯片需要兩個時鐘周期。

      EMIFB_FMKS(CECTL,  RDSTRB,  OF(6))   //讀信號的寬度為 6 個時鐘周期。

      EMIFB_FMKS(CECTL,  MTYPE,  ASYNC64) // 存儲接口為 64 位同步接口。EMIFB_FMKS(CECTL, RDHLD, OF(2))  // 讀信號到來后對地址線和字節(jié)存儲線占用 2 個時鐘周期。

      (3) 其他寄存器配置

      由于本設(shè)計沒有使用 SRAM,SDCTL、SDTIM和 S D E X T 默認設(shè)置[3]即可。C E S E C 寄存器也保持默認設(shè)置。

      (4) 利用庫函數(shù)應(yīng)用配置

      聲明結(jié)構(gòu)體 EMIFA_Config, 并將配置好的寄存器值賦予結(jié)構(gòu)體的各個變量。然后利用庫函數(shù)void  EMIFA_config(EMIFA_Config *config);應(yīng)用配置即可。

      5  光柵尺數(shù)據(jù)采集設(shè)計

      光柵尺傳感器的讀數(shù)頭將讀到的數(shù)據(jù)匯集到采集卡上 , 采集卡可以實現(xiàn)對多路光柵尺數(shù)據(jù)的存儲 , 且按一定的周期刷新各路光柵尺存儲的數(shù)據(jù) , 因此 , 我們需要及時的將采集卡中的各路數(shù)據(jù)取出,送與DSP運算處理。本設(shè)計采用 FPGA 作為中間環(huán)節(jié) , 首先將采集卡上采集到的數(shù)據(jù)存入 FPGA 內(nèi)部的雙口 RAM 中 ,DSP 再通過EMIF 從 FPGA 的雙口 RAM 中讀取數(shù)據(jù)。

      接下來對 FPGA 采集光柵尺數(shù)據(jù)的邏輯進行設(shè)計。由于狀態(tài)機條理清晰、運行可靠 , 時序容易把握 , 故本設(shè)計采用三段式狀態(tài)機進行設(shè)計[4][5]。FPGA 對多路光柵尺數(shù)據(jù)采集的狀態(tài)機的狀態(tài)轉(zhuǎn)移圖如圖 3 所示。

      在 S0 狀態(tài) , 判斷 5k Hz 上升沿是否到來 , 用此來控制讀取光柵尺數(shù)據(jù)的周期 , 則周期為 200us(遠小于采集卡的刷新周期), 由此決定了 DSP 以 200us 為周期處理讀到的數(shù)據(jù)。在 S1 控制發(fā)向采集卡的地址和發(fā)向雙口 RAM 的地址為起始地址 , 延時 20ns, 等待地址線穩(wěn)定。在 S2 狀態(tài) , 將采集卡上得到的數(shù)據(jù)暫存 , 延時10ns 后 , 在 S3 狀態(tài)再次讀取采集卡同一地址的數(shù)據(jù)并暫存 , 通過 S4 狀態(tài)進行數(shù)據(jù)比較。到 S5, 第三次讀取采集卡同一地址的數(shù)據(jù)并暫存 ,10ns 延時后 , 在 S6 將三次的數(shù)據(jù)比較 , 得到中間值并暫存。這樣使得讀數(shù)可能存在誤碼率消除 , 系統(tǒng)更加穩(wěn)健。在 S7 狀態(tài)將比較的結(jié)果放到雙口 RAM 的數(shù)據(jù)線上 , 并且統(tǒng)計讀數(shù)次數(shù)為 0。延時 10ns, 保證數(shù)據(jù)線的穩(wěn)定 , 之后在 S8 狀態(tài) , 給雙口 RAM 寫信號 , 持續(xù) 10ns, 保證數(shù)據(jù)穩(wěn)定寫入。在 S9 狀態(tài) , 判斷多路光柵尺數(shù)據(jù)是否讀完 , 讀完(sg1=1), 則復(fù)位 S0 狀態(tài) , 否則進入 S10 狀態(tài)。在S10 狀態(tài) , 控制發(fā)向采集卡的地址和發(fā)向雙口 RAM 的地址加 1。S10 到 S18 狀態(tài)是對采集卡上下一路光柵尺數(shù)據(jù)的采集 , 原理與前述相同。在 S18 狀態(tài) , 讀取次數(shù)加 1, 回到 S9 狀態(tài)判斷是否讀取完畢 , 完畢(sg1=1),則復(fù)位 S0, 否則開始下一路光柵尺數(shù)據(jù)讀取。

      利用 Signal Tap II 對 FPGA 內(nèi)部邏輯進行監(jiān)控[6]。可得時序圖如圖 4 所示。

      圖 中 ,VMEEXAddr 為 FPGA 向 采 集 卡 發(fā) 送的地址 ,VMEEXData 為 FPGA 從采集卡得到的數(shù)據(jù)。VMEEXTo Dsp Addr 為 FPGA 發(fā)向雙口 RAM的 地 址 ,VMEEXTo Dsp Data 為 FPGA 發(fā) 向 雙 口RAM的數(shù)據(jù)。VMEEXTo Write 為雙口 RAM 寫信號。Read Times 為讀取光柵尺的路數(shù) , 從 0 開始。VMEEXTo Dsp Data_1-3 為三次讀取數(shù)據(jù)的暫存值。從圖中可以看出在相應(yīng)的地址內(nèi)有效地寫入了正確的數(shù)據(jù) , 而且實現(xiàn)了多路光柵尺數(shù)據(jù)的讀取 , 時序是正確的。

      參考圖 1 所示統(tǒng)一編址 , 在 DSP 中訪問相應(yīng)的 CE片的地址 ,EMIF 可以自動向 FPGA 中設(shè)置的雙口 RAM模塊發(fā)送相應(yīng)地址 , 取得相應(yīng)的數(shù)據(jù)到 DSP, 這樣大大簡化了訪問外部數(shù)據(jù)的步驟而且又很快的速率。通過上位機監(jiān)視 DSP 中處理得到的電機運行位置信息 , 可得到如圖 5 所示的結(jié)果。

      

      圖 3  狀態(tài)機轉(zhuǎn)移圖

      圖 4  光柵尺數(shù)據(jù)采集時序圖
      

      圖 5  光柵尺數(shù)據(jù)采集時序圖

      由圖可見 ,DSP 處理得到了正確的電機位置信息 ,且在運動過程中位置變化平滑無毛刺 , 故本設(shè)計達到了正確采集光柵尺數(shù)據(jù)的要求 , 方案是正確的。

      6  結(jié)束語
 
      本文設(shè)計討論了一種利用 DSP 的 EMIF 讀取多路光柵尺數(shù)據(jù)的設(shè)計方法 , 在實踐中得到良好了應(yīng)用 ,DSP可以準確、可靠地獲得光柵尺傳感器返回的電機位置信號 , 從而為接下來的控制算法打好基礎(chǔ)。在本設(shè)計中 , 我們僅討論利用了 DSP 的 EMIFA 端口 , 對于EMIFB 端口同樣可以加以利用 , 可以用來進行 RAM 或FLASH 擴展。設(shè)計中 , 利用了 FPGA 作為邏輯處理的中間環(huán)節(jié) , 讓其將采集卡的數(shù)據(jù)進行存儲 , 這樣大大減少了 DSP 的訪問壓力。由于本文主要針對 TMS32064X系列 DSP 進行了設(shè)計 , 對于不同系列 DSP 的 EMIF 配置也有不同 , 故讀者在設(shè)計時需要加以注意。




    投稿箱:
        如果您有機床行業(yè)、企業(yè)相關(guān)新聞稿件發(fā)表,或進行資訊合作,歡迎聯(lián)系本網(wǎng)編輯部, 郵箱:skjcsc@vip.sina.com