新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于I2C和雙ARM的PCB鉆床控制器設計

        基于I2C和雙ARM的PCB鉆床控制器設計

        作者: 時間:2012-11-26 來源:網絡 收藏
        為400KHz。 和LPC2214 各自建立一個24 字節的全局數組進行通信。

          3.軟件設計

          軟件部分主要由人機交互系統軟件和機床運動控制系統軟件組成。人機交互系統軟件結構比較復雜,所以軟件移植了μC/OS-II 操作系統。機床運動控制系統軟件結構比較簡單,但是這部分軟件有很強的實時性要求,所以軟件沒有移植操作系統,而是采用時間觸發模式編寫。

          3.1 人機交互系統軟件設計

          人機交互系統軟件采用分層方式進行編寫。軟件分為系統層和應用層。系統層設計的主要任務是首先進行嵌入式操作系統μC/OS-II 移植,然后再對操作系統內核進行擴展,形成一個簡單高效的平臺。應用層設計是在這個平臺的基礎上實現加工文件的操作,機床手動加工,機床自動加工,機床參數設置等任務。

          系統層以μC/OS-II 操作系統內核為基礎進行移植和擴展。所謂移植,是指通過編寫一定代碼,使得操作系統能夠在特定的處理器平臺上運行。根據μC/OS-II 的說明,移植包括對與處理器相關的OS_CPU.H,OS_CPU_A..ASM,OS_CPU_C.C 三個文件中的代碼進行移植[4]。在μC/OS-II 提供的內核基礎上,通過設計驅動程序模塊,系統任務,操作系統的API 函數和任務調度模塊等對操作系統內核進行擴展。通過設計實現LCD,鍵盤,K9F2808, 總線和串口通信等的接口函數,建立驅動程序模塊,使操作系統API 函數和底層硬件分開。系統任務部分設計了LCD 刷新任務,鍵盤讀取任務, 總線讀寫任務這三個基本任務,并隨著操作系統的啟動而運行。

          應用層在系統層提供的 API 函數的基礎上,設計了主任務和機床手動加工,自動加工,文件傳輸,參數設置等任務。系統的入口函數Main 函數流程如圖2 所示。主任務函數結構如圖3 所示:


          3.2.LPC2214 程序設計

          機床運動控制系統控制程序結構比較簡單,程序模塊間相對獨立,但是實時性要求很高。由于嵌入式實時操作系統會占用一部分系統資源,影響系統的實時性,增加系統設計難度,所以,我們沒有移植嵌入式實時操作系統,而是使用簡單時間調度方式。使用該調度方式可以使程序具有較好的健壯性和穩定性。系統采用定時器來產生系統調度的節拍,利用定時器中斷程序進行調度。系統使用定時器0 產生系統的節拍,定時周期為1ms。系統利用PWM控制器的中斷和四個比較寄存器控制交流伺服系統進給脈沖的生成。我們把任務分成兩類:一類為周期任務,另一類為非周期任務。每一個任務都有一個任務控制塊,任務控制塊的數據結構如下:

          typedef data struct

          {void (*P_task)(void); //指向任務的指針

          unsigned int Delay; //延時時間

          unsigned int Period; //任務再次運行的間隔時間

          unsigned int run; //任務需要運行的次數

          }task;

          任務控制塊包含了任務被調度的重要信息:任務是周期任務還是非周期任務,以及任務在何時運行,任務準備就緒的標志等。控制系統的主要任務有:X 進給軸脈沖發送任務,Y 進給軸控制任務,Z1 進給軸控制任務,Z2 進給軸控制任務,主軸電機控制任務,換刀任務等。

          4.結束語

          在控制器方案考慮和設計中,我們充分考慮了嵌入式系統對功耗,成本和尺寸的敏感性。基于I2C 的 結構的具有性能優良,系統集成度高,性能可靠,人機交互友好,可擴展性好的特點,相對于傳統的基于單片機的在性能上有很大的提高。本設計為嵌入式系統在印刷電路板控制器中的應用提供了新的思路,具有較好的應用價值。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 抚顺县| 鹤庆县| 亳州市| 泸州市| 潮州市| 渑池县| 阿拉善左旗| 左云县| 昌平区| 屯昌县| 瑞丽市| 华亭县| 樟树市| 玛纳斯县| 吉水县| 沙洋县| 察雅县| 玛沁县| 奎屯市| 赣榆县| 扎赉特旗| 宁国市| 体育| 玛曲县| 县级市| 宁陕县| 平武县| 驻马店市| 闽侯县| 台南市| 滨海县| 聂拉木县| 讷河市| 神木县| 阜南县| 平南县| 图木舒克市| 罗甸县| 容城县| 富锦市| 通城县|