作者:殷蘇民,張春樹,田濤,李占發
1.引言
印刷電路板鉆床是印刷電路板生產中的重要裝備,隨著電子產品加工要求的提高,低檔的基于單片機的PCB 鉆床控制器已經很難滿足要求。ARM7TDMI 是20 世紀末ARM 公司提出的一種32 位的RISC 微控制器結構, 基于該內核的芯片種類豐富,具有運行速度高,功耗小和價格低的特點。本文介紹了一種基于雙ARM 結構的PCB 鉆床控制器,它既解決傳統低檔鉆床控制系統性能不高的缺點,同時又具有很高的經濟性,是高檔PCB 鉆床理想的控制器。
數控系統按結構分,一般有單 CPU 和多CPU 之分。單CPU 一般采用集中控制分時處理的方式完成數控系統的各項任務。它具有結構緊湊的特點,但是功能相對比較簡單。多CPU 結構的數控系統采用多CPU 并行處理,可以使系統達到更高的性能。多CPU 一般采用共享總線或共享存儲器方式進行通信。鉆床控制器的控制對象比較復雜:需要控制4套松下MINAS交流伺服系統,4個主軸電機以及9路開關量輸入,11路繼電器輸出。如果控制器采用單CPU結構,控制器需要擴展較多硬件,增加系統成本,降低了系統可靠性;如果控制器采用雙CPU結構,控制器可以根據功能進行分層設計:將信息處理量大的人機交互系統任務交由一個CPU負責,而機床運動控制交由另一個CPU來處理。這樣減少了外擴硬件的數量,降低了成本,提高了可靠性。具體是指:控制器用三星公司生產的S3C44B0X作為人機交互系統的CPU,用飛利浦公司生產的LPC2214作為機床運動控制系統的CPU。
2.控制器的硬件設計
控制器由系統板和接口板組成:系統板是由LPC2214 和S3C44B0X 及其相關外圍電路構成的,是控制器的核心;接口電路板主要負責系統板和機床電器之間的驅動,電平匹配。系統的硬件結構參考圖1。
圖1 控制器硬件結構圖
2.1 控制器系統板硬件設計
控制器系統板由兩個子系統組成:人機交互系統和機床運動控制系統。人機交互系統和機床運動控制系統通過I2C 總線進行數據交換。I2C 總線是飛利浦公司提出的串行總線,具有速度較高,硬件連接十分簡單,無需增加硬件的特點。
2.1.1 控制器人機交互系統的硬件設計
控制器人機交互系統采用 S3C44B0X 為核心,擴展一系列硬件,構成一個具有完善的人機交互功能的系統。系統擴展了一片具有16 位數據寬度,2MB 的存儲空間的NOR 型Flash 存儲器芯片SST39VF1601 作為系統程序存儲器。為了提高系統程序的執行速度,我們擴展了一片1M*4Bank*16I/O 的HY57V641620 型SDRAM。系統一上電,系統初始化程序就把SST39VF1601 中存儲的系統程序拷貝到HY57V641620 中,同時,系統程序的數據存儲區也在HY57V641620 中,這樣系統程序可以完全在SDRAM 中運行。為了保證機床鉆孔文件在機床停電后仍然能夠保存,系統擴展了一片16MB Nandflash 芯片K9F2808 作為系統的電子硬盤。由于S3C44B0X 自帶液晶顯示控制器,所以系統選用三菱公司生產的不帶液晶顯示控制器的STN 型256 色640x480 像素的EDMGRB8KHF 液晶顯示模塊作為機床信息的輸出。系統操作信息的輸入采用PS/2 鍵盤。系統通過RS232 串口從PC 機上下載鉆孔文件。為了方便系統調試程序,人機交互系統設計了一個JTAG 口。
機床的一些重要的參數例如像機床進給軸絲杠的螺距,交流伺服系統的脈沖當量等數據需要永久保存,所以系統擴展了一片512B 的基于I2C 總線的EEPROM 芯片AT24C04 。機床人機交互系統電路結構如圖1 控制器系統板中以S3C44B0X 為中心的硬件結構。
2.1.2 機床運動控制系統硬件設計
機床運動控制系統的核心是 LPC2214 微控制器。LPC2214 內部自帶256KB 的flash存儲器和16KB 的SRAM,無需外擴程序存儲器和數據存儲器。系統設計了一個RS232串口,用于LPC2214 系統程序的ISP 下載。為了便于調試程序,運動控制系統設計了一個JTAG 口。機床運動控制系統電路結構如圖1 控制器系統板中以LPC2214 為中心的硬件結構。機床電器都通過接口電路直接與LPC2214 相連。其引腳分配如下所示:
2.1.3 人機交互系統和機床運動控制系統的通信
數控系統的加工指令經過S3C44B0X 的處理后要傳給LPC2214 進行執行,而LPC2214執行的結果要返回給S3C44B0X 進行處理和顯示。系統采用I2C 總線進行通信。S3C44B0X工作在主器件模式,而AT24C04 和LPC2214 工作在從模式。AT24C04 的從地址是0xa0,LPC2214 的從地址是0x50,I2C 的速率為400KHz。S3C44B0X 和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,I2C 總線和串口通信等的接口函數,建立驅動程序模塊,使操作系統API 函數和底層硬件分開。系統任務部分設計了LCD 刷新任務,鍵盤讀取任務,I2C 總線讀寫任務這三個基本任務,并隨著操作系統的啟動而運行。
應用層在系統層提供的 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 的雙ARM 結構的鉆床控制器具有性能優良,系統集成度高,性能可靠,人機交互友好,可擴展性好的特點,相對于傳統的基于單片機的鉆床控制器在性能上有很大的提高。本設計為嵌入式系統在印刷電路板控制器中的應用提供了新的思路,具有較好的應用價值。
責任編輯:gt
-
pcb
+關注
關注
4294文章
22773瀏覽量
393217 -
控制器
+關注
關注
112文章
15884瀏覽量
175353 -
cpu
+關注
關注
68文章
10699瀏覽量
209352
發布評論請先 登錄
相關推薦
評論