新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一種嵌入式運動控制器的實現

        一種嵌入式運動控制器的實現

        作者: 時間:2011-09-07 來源:網絡 收藏
        2.2 FPGA模塊

        本文引用地址:http://www.104case.com/article/150256.htm

          FPGA芯片選用Altera公司的Cyclone系列EP1C6TC44C8,這是一款高性能、低功耗的FPGA。EP1C6TC44C8具有2個鎖相環,包含5980個邏輯單元,相當于12萬門的規模,同時還包含了最高頻率200MHz、92160bit的內部RAM。該芯片所擁有的邏輯門數量、頻率和引腳I/O等資源都能很好地滿足的設計要求。由于本系統的控制對象是伺服電機,所以設計中主要利用EP1C6TC44C8的I/O口設計電機控制信號的輸入輸出、編碼器信號的輸入與部分數字量輸入輸出。另外,該芯片在整個硬件系統設計完畢后還可以通過JTAG接口對硬件進行重配置,可以增加系統設計的靈活性。

          2.3 FPGA外圍電路模塊

          

        X軸伺服電機控制電路

          X軸伺服電機控制電路如圖3所示。Y軸、Z軸、U軸伺服電機控制電路與X軸相同。

          (1)輸入輸出開關量接口設計。

          輸入信號主要包括限位開關信號LIMX+、LIMX-~LIMU+、LIMU-,伺服報警信號ALMX~ALMU和回零信號HMX~HMU。輸出信號主要包括伺服使能信號SRVX~SRVU和復位信號RSTX~RSTU。當檢測到這些信號后,確定具體觸發的信號,限位信號觸發,則立即停止對應電機該方向的,直到限位消除,電機才能在該方向繼續;回零信號觸發,則電機等待Index信號的輸入后立即讓電機反向運行用戶設定的回零距離作為機械零點;伺服報警信號輸入時,程序立即停止該電機的運動,直到用戶將報警清除。

          (2)輸出控制脈沖電路設計。

          輸出控制脈沖信號為伺服電機的4路脈沖控制輸出信號。此控制采用“脈沖+方向”指令,由于每個控制軸分別有脈沖和方向信號,所以4路共8個輸出信號。輸出控制脈沖信號由FPGA輸出,要先經過電平轉換,將FPGA的I/O引腳的3.3V變為5V,再經過光電隔離,然后再經過施密特觸發器整形后輸出。由于脈沖和方向信號需要進行差分,所以將信號接入差動線驅動器后再輸出。XPLS~UPLS為脈沖信號,XDIR~UDIR為方向信號。差動線驅動器由AM26LS31構成,該電路的功能是將輸入的單極性的方波信號轉化為一對極性相反的電機驅動信號,它的高阻抗輸出狀態在電源掉電時是有保障的。

          (3)反饋脈沖處理電路設計。

          伺服電機的編碼器信號直接接入到電機驅動器中,驅動器提供三對差分信號A+、A-、B+、B-、Z+、Z-作為反饋。這三對信號由于受到驅動器內部大電源的干擾,在電機旋轉時,所發出的信號會出現許多毛刺,直接接到FPGA中會引起誤判斷,所以三對信號經過差分電路轉化為單路信號A、B、Z。差分電路由AM26LS32構成,該芯片功能與AM26LS31相反,該電路的功能是將輸入的一對極性相反的編碼器反饋信號轉化為單極性的方波信號。A、B兩路為正交編碼脈沖,Z路每轉產生一個低電平脈沖,用于回零時的精確定位。

          2.4 數字量輸入輸出接口模塊

          考慮到系統的可擴展性和DSP的GPIO口的數量,此運動在DSP與FPGA上分別設計8路,共16路數字量輸入輸出。運動的所有數字量輸入輸出信號均采用光電隔離處理,并對每一路信號進行相應的數字濾波處理,以消除噪聲信號。數字量輸入通道可以根據用戶的要求自定義用途,用于零點、限位信號的輸入等;數字量輸出通道用于各軸方向、脈沖信號的輸出以及一些外部設備的啟停控制等。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        伺服電機相關文章:伺服電機工作原理




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 邛崃市| 彭山县| 高邑县| 松桃| 宿州市| 永城市| 麻城市| 古交市| 南郑县| 九台市| 如东县| 佛山市| 韶山市| 岗巴县| 中卫市| 广西| 历史| 望奎县| 新乐市| 临城县| 河北省| 高台县| 叙永县| 辽中县| 通化县| 深泽县| 清镇市| 鲁山县| 彩票| 万载县| 齐齐哈尔市| 东方市| 泊头市| 舞阳县| 托克逊县| 望城县| 乃东县| 安平县| 东丰县| 建昌县| 会昌县|