1 緒論
隨著嵌入式技術的發展,嵌入式處理器 ARM 廣泛應用于數控系統。ARM 是英國劍橋從事基于 RISC(Reduced Instruction SetComputer)技術芯片設計開發,作為知識產權供應商 ARM 公司設計的芯片。根據各自不同的應用需要,在芯片外適當添加外圍電路,從而形成更具特色的 ARM 處理器。ARM 芯片具有RISC 體系的一般特點,如:具有大量的寄存器。絕大多數操作都在寄存器中進行,通過 Load/Store 的體系結構在內存和寄存器之間傳遞數據。尋址方式簡單。采用固定長度的指令格式。目前的 ARM 內核有ARM7、ARM9、ARM9E、ARM10E、ARM11、SecurCore 等多種類型。以最典型的 ARM920T 為例,該型內核具有400 多 MHz 的主頻在國內低檔數控系統應用最廣。但是隨著數控技術的發展,加工對象的復雜度增加,CPU處理運動控制插補運算的負載更大。要解決這一問題,除了更換更高性能的 ARM 芯片,就只能往多核方向發展。本文主要論述多核心 ARM 的數控系統的設計。
2 數控軟件的任務分析
整個數控系統的功能可以劃分為人機交互、數據預處理、運動控制、伺服控制、邏輯控制和輔助控制五大部分。人機交互為機床的準備工作提供數據和信息,反饋機床的運行狀態,監控整個加工過程。數據預處理主要包括數據指令的譯碼,刀具的長度補償、半徑補償、螺距補償、間隙補償等插補前的預處理工作。運動控制主要控制位移,速度,加速度或三者的組合,主要是機床各運動軸的插補運動控制和主軸速度、主軸定位的控制等。邏輯控制分為簡單的邏輯輸入、邏輯輸出及組合邏輯控制,主要是主軸電機的正反轉、電機停止、冷卻泵電機的啟動、停止控制等。在嵌入式實時系統中,通常把五大部分的數控系統功能劃分為:插補任務、譯碼任務、PLC任務、人機交互界面任務,底層輔助任務。如圖 1-1 所示:在單個CPU 上運行,各個任務的負載和實時等級。插補任務的實時性和負載最高達 43%;人機交互任務其根據不同用戶的需求,不同交互功能占的負載不同,最高達 24%,但是實時性要求最低;底層輔助任務支撐各個任務的運行。根據這些分析數據,我們對各個數控任務進行多 CPU 的劃分。
3 多核 CPU 軟件架構
多核 CPU 的架構是日益嚴苛的運算要求的必然結果。多核 CPU 并不僅限于雙核,多個核結構更靈活。嵌入式多 CPU 系統將一個特定的任務分割成較小的任務由多個處理器并行地執行,因而具有速度優勢.采用嵌入式多 CPU 系統使得信息處理模塊化,各個 CPU 采集分配的數據量并獨立處理信息,從而可以減輕單個CPU 的負擔,提高系統的信息處理速度和處理能力。根據數控系統的任務,本文引入三個 ARM+DSP 的結構,對原來單個 CPU 的數控系統進行升級改造。如圖 2 所示:把插補任務劃分為精插補任務和粗插補任務,粗插補任務主要是對譯碼數據的坐標點進行一定的速度規劃和細分,精插補任務需要對粗插補數據進行曲線擬合,速度規劃,發點控制等,需要更大的浮點運算要求。因此把精插補任務劃分到獨立的 DSP 芯片,粗插補任務與譯碼任務一起劃分到單一個 ARM 上。人機交互任務和邏輯控制(PLC)任務分別個占一個 CPU。各個任務的數據從原來的單 CPU 內部通信,變更為現在 CPU 之間的通信,所以通信需要經過一個握手應答協議,以協調不同 CPU 之間的時序。
該軟件劃分的優點主要有:
(1)原來單 CPU 模式下,由于人機交互任務的復雜性,導致負載的不確定性,使得軟件規模和功能受到很大的限制,任務優先級的低下,使得該任務容易受其他多任務的影響而不穩定,但在單獨占用 CPU 的情況下,資源充足,可以實現更強大更穩定的性能。
(2)獨立 CPU 的 PLC 功能,是 PLC 模塊獨立運作的基礎。現在在國外裝備行業,獨立的 PLC 已經成為主流產品。
(3)譯碼速度的提高,可實現更多的程序譯碼的前瞻功能。
(4)DSP 提高強大的浮點運算能力,可實現更高效的插補運算。
4 多 CPU 的數控主板設計
基于以上的軟件功能分析,本文設計的多 CPU 硬件是基于 ARM9、DSP6713、OMAPL138、FPGA 為核心,采用多 CPU 體系結構來設計,系統采用兩片 ARM9、一片 DSP 和一片大容量 FPGA,以及各種不同功能的存貯器、相關外圍器件組成系統的主控 CPU 板。系統中各 CPU 與相應的存貯器構成獨立的 CPU 子系統。主 ARM系統進行文件系統管理、系統參數管理、人機界面管理、USB 接口管理、系統邏輯任務管理等。DSP 子系統負責插補算法、GSK-LINK 總線部分管理工作等。從 ARM 子系統負責 PLC 邏輯任務。FPGA 利用內部雙口RAM 為各 CPU 子系統提供數據交換通道,FPGA 管理系統的各種外部設備,如 TFT 液晶顯示器、主軸電機、機床 IO、鍵盤管理、串口管理等。根根據上面功能劃分,同時考慮到后續的升級、維護等工作,將硬件劃分為幾個塊,具體內容在硬件模塊里有詳細的描述。大致內容包括:ARM9 處理器、DSP、58M/SDRAM、256K/NVRAM、電源電路、FPGA、LCD 數據口、DC 電路、緩沖電路、光電隔離器件、USB 通訊電路,AVR 對按鍵掃描電路等。簡易框圖如圖 3,實物圖如圖 4:
主要元器件說明如下:
(1)ARM9_CPU:采用 ARM920T 模型,采用三星 2440 芯片。
(2)FPGA:采用 Altera 公司的產品,負責中斷控制和機床 I/O 信號,機床 I/O 信號初步定為 48-IN/48-OUT。
(3)DSP6713:為 TI 的 DSP6000 系列,主要負責插補算法等工作。
(4)其他:除脈沖串發生器以外,采用 181 低速光電隔離。采用一個 AVR 單片機負責鍵盤、LED 等信號處理
5 結論
采用多 CPU 結構的數控系統,在數據運算能力方面大大增強,使得更多更強 的數控軟件功能得到發展。本文所設計的主板已經成功應用于廣州數控 GSK-218TD,GSK-980TE2 等數控系統上,獲得良好的市場反應和非常好的經濟效益。
上一篇:基于ARM+μC/OS-Ⅱ的斜井防跑車控制器設計
下一篇:基于嵌入式ARM9的USB通信設計與實現
推薦閱讀
史海拾趣
面對不斷變化的市場需求和技術趨勢,ADMOS公司始終保持著對創新的熱情和追求。公司投入大量資源用于研發新的技術和產品,不斷推出具有創新性和競爭力的產品。這些創新成果不僅提升了ADMOS在市場上的競爭力,也為公司的未來發展指明了方向。
2015年初,Cree曾計劃將其射頻產品線獨立出來,并以近3.5億美金賣給英飛凌。然而,由于某些限制原因,收購計劃最終終止。面對這一變故,Cree不得不重新建立射頻微波器件團隊,并創立了新的品牌wolfspeed。這一舉措不僅彰顯了Cree的應變能力和創新精神,也為其在射頻領域的發展注入了新的活力。
隨著公司業務的不斷發展,Cypress開始在全球范圍內拓展市場。公司不僅在加州硅谷設立了最早的設計中心,還在美國的其他州以及英格蘭、愛爾蘭、菲律賓等地設立了設計工廠。此外,Cypress還在菲律賓和印尼設立了組裝、檢測工廠,形成了全球化的生產網絡。這些舉措不僅提高了公司的生產效率和產品質量,也進一步鞏固了Cypress在全球電子芯片市場的地位。
隨著LED技術的興起,CML敏銳地捕捉到了這一趨勢,并成為第一家引進LED燈具的公司。這一決策為公司帶來了巨大的發展機遇。CML不斷投入研發資源,推出了一系列具有創新性的LED產品,不僅提高了照明效率,還降低了能耗。這使得CML在微型照明領域逐漸取得了領先地位,并贏得了廣泛的客戶基礎。
在XXXX年,CYANLITE公司迎來了一次重要的技術突破。他們成功研發出了一種新型的LED芯片,這種芯片具有更高的發光效率和更長的使用壽命。這一技術的突破使得CYANLITE公司的產品在市場上更具競爭力,公司也借此機會進一步擴大了市場份額。隨著品牌知名度的提升,CYANLITE公司開始拓展國際市場,其產品逐漸出口到歐洲、北美等地區,公司的業績也實現了快速增長。
1前言 軟件無線電(Software Radio)是隨著計算機技術和高速數字信號處理技術的發展迅速而發展起來的。其基本思想是將寬帶A/D及D/A變換器盡可能地靠近天線,將電臺的各種功能用一個開放性、模塊化平臺上的軟件實現。軟件無線電的 ...… 查看全部問答∨ |
|
請問各位大俠 這個要怎么設置啊?可以讓CE直接啟動,DOS啟動過程麻煩,而且看著讓人惡心。 Setupdisk.144和Bootdisk.144這兩個文件怎么提取啊? 謝謝各位了!… 查看全部問答∨ |
最近因為畢設需要,在移植Android1.5到urbetter s3c6410的板子上,需要使用板子上的USB來連接USB設備 內核編譯選項添加了usb host side driver,全選了usb host controller drivers,但是依然用不了USB設備,請問需要怎么配置內核?需要給內核打補 ...… 查看全部問答∨ |
近來嵌入式挺火,于是大家都往這里擠。我想提醒大家的是,嵌入式馬上也會成為如今的軟件業。在你進來之前請先考慮清楚。但只要我們真的學精了一樣東西,不管它將來變成什么樣,哪怕最后只剩下一個人,那個人也一定就是你自己。 很多人以為搞嵌入 ...… 查看全部問答∨ |
|
板子上P1.0,P1.1兩個口同時接到了觸摸屏中斷上,是這樣設置的P1DIR=0x00;(輸入模式),P1SEL=0x00;(普通IO口),P1IE=???????11;P1IES=???????1;P1OUT=??????00(電平置0), 請麻煩一下,怎么設置的P1IE,和P1IES,我原先理解的是該端口電平一旦置1就會 ...… 查看全部問答∨ |
///////////////////write pointer//////////////////////// always @(posedge clk or negedge rst_n) begin if(!rst_n) wrt_ptr <= 3\'b0; ...… 查看全部問答∨ |