作者:殷蘇民,張春樹,田濤,李占發(fā)
1.引言
印刷電路板鉆床是印刷電路板生產(chǎn)中的重要裝備,隨著電子產(chǎn)品加工要求的提高,低檔的基于單片機(jī)的PCB 鉆床控制器已經(jīng)很難滿足要求。ARM7TDMI 是20 世紀(jì)末ARM 公司提出的一種32 位的RISC 微控制器結(jié)構(gòu), 基于該內(nèi)核的芯片種類豐富,具有運(yùn)行速度高,功耗小和價(jià)格低的特點(diǎn)。本文介紹了一種基于雙ARM 結(jié)構(gòu)的PCB 鉆床控制器,它既解決傳統(tǒng)低檔鉆床控制系統(tǒng)性能不高的缺點(diǎn),同時(shí)又具有很高的經(jīng)濟(jì)性,是高檔PCB 鉆床理想的控制器。
數(shù)控系統(tǒng)按結(jié)構(gòu)分,一般有單 CPU 和多CPU 之分。單CPU 一般采用集中控制分時(shí)處理的方式完成數(shù)控系統(tǒng)的各項(xiàng)任務(wù)。它具有結(jié)構(gòu)緊湊的特點(diǎn),但是功能相對(duì)比較簡(jiǎn)單。多CPU 結(jié)構(gòu)的數(shù)控系統(tǒng)采用多CPU 并行處理,可以使系統(tǒng)達(dá)到更高的性能。多CPU 一般采用共享總線或共享存儲(chǔ)器方式進(jìn)行通信。鉆床控制器的控制對(duì)象比較復(fù)雜:需要控制4套松下MINAS交流伺服系統(tǒng),4個(gè)主軸電機(jī)以及9路開關(guān)量輸入,11路繼電器輸出。如果控制器采用單CPU結(jié)構(gòu),控制器需要擴(kuò)展較多硬件,增加系統(tǒng)成本,降低了系統(tǒng)可靠性;如果控制器采用雙CPU結(jié)構(gòu),控制器可以根據(jù)功能進(jìn)行分層設(shè)計(jì):將信息處理量大的人機(jī)交互系統(tǒng)任務(wù)交由一個(gè)CPU負(fù)責(zé),而機(jī)床運(yùn)動(dòng)控制交由另一個(gè)CPU來(lái)處理。這樣減少了外擴(kuò)硬件的數(shù)量,降低了成本,提高了可靠性。具體是指:控制器用三星公司生產(chǎn)的S3C44B0X作為人機(jī)交互系統(tǒng)的CPU,用飛利浦公司生產(chǎn)的LPC2214作為機(jī)床運(yùn)動(dòng)控制系統(tǒng)的CPU。
2.控制器的硬件設(shè)計(jì)
控制器由系統(tǒng)板和接口板組成:系統(tǒng)板是由LPC2214 和S3C44B0X 及其相關(guān)外圍電路構(gòu)成的,是控制器的核心;接口電路板主要負(fù)責(zé)系統(tǒng)板和機(jī)床電器之間的驅(qū)動(dòng),電平匹配。系統(tǒng)的硬件結(jié)構(gòu)參考圖1。
圖1 控制器硬件結(jié)構(gòu)圖
2.1 控制器系統(tǒng)板硬件設(shè)計(jì)
控制器系統(tǒng)板由兩個(gè)子系統(tǒng)組成:人機(jī)交互系統(tǒng)和機(jī)床運(yùn)動(dòng)控制系統(tǒng)。人機(jī)交互系統(tǒng)和機(jī)床運(yùn)動(dòng)控制系統(tǒng)通過(guò)I2C 總線進(jìn)行數(shù)據(jù)交換。I2C 總線是飛利浦公司提出的串行總線,具有速度較高,硬件連接十分簡(jiǎn)單,無(wú)需增加硬件的特點(diǎn)。
2.1.1 控制器人機(jī)交互系統(tǒng)的硬件設(shè)計(jì)
控制器人機(jī)交互系統(tǒng)采用 S3C44B0X 為核心,擴(kuò)展一系列硬件,構(gòu)成一個(gè)具有完善的人機(jī)交互功能的系統(tǒng)。系統(tǒng)擴(kuò)展了一片具有16 位數(shù)據(jù)寬度,2MB 的存儲(chǔ)空間的NOR 型Flash 存儲(chǔ)器芯片SST39VF1601 作為系統(tǒng)程序存儲(chǔ)器。為了提高系統(tǒng)程序的執(zhí)行速度,我們擴(kuò)展了一片1M*4Bank*16I/O 的HY57V641620 型SDRAM。系統(tǒng)一上電,系統(tǒng)初始化程序就把SST39VF1601 中存儲(chǔ)的系統(tǒng)程序拷貝到HY57V641620 中,同時(shí),系統(tǒng)程序的數(shù)據(jù)存儲(chǔ)區(qū)也在HY57V641620 中,這樣系統(tǒng)程序可以完全在SDRAM 中運(yùn)行。為了保證機(jī)床鉆孔文件在機(jī)床停電后仍然能夠保存,系統(tǒng)擴(kuò)展了一片16MB Nandflash 芯片K9F2808 作為系統(tǒng)的電子硬盤。由于S3C44B0X 自帶液晶顯示控制器,所以系統(tǒng)選用三菱公司生產(chǎn)的不帶液晶顯示控制器的STN 型256 色640x480 像素的EDMGRB8KHF 液晶顯示模塊作為機(jī)床信息的輸出。系統(tǒng)操作信息的輸入采用PS/2 鍵盤。系統(tǒng)通過(guò)RS232 串口從PC 機(jī)上下載鉆孔文件。為了方便系統(tǒng)調(diào)試程序,人機(jī)交互系統(tǒng)設(shè)計(jì)了一個(gè)JTAG 口。
機(jī)床的一些重要的參數(shù)例如像機(jī)床進(jìn)給軸絲杠的螺距,交流伺服系統(tǒng)的脈沖當(dāng)量等數(shù)據(jù)需要永久保存,所以系統(tǒng)擴(kuò)展了一片512B 的基于I2C 總線的EEPROM 芯片AT24C04 。機(jī)床人機(jī)交互系統(tǒng)電路結(jié)構(gòu)如圖1 控制器系統(tǒng)板中以S3C44B0X 為中心的硬件結(jié)構(gòu)。
2.1.2 機(jī)床運(yùn)動(dòng)控制系統(tǒng)硬件設(shè)計(jì)
機(jī)床運(yùn)動(dòng)控制系統(tǒng)的核心是 LPC2214 微控制器。LPC2214 內(nèi)部自帶256KB 的flash存儲(chǔ)器和16KB 的SRAM,無(wú)需外擴(kuò)程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。系統(tǒng)設(shè)計(jì)了一個(gè)RS232串口,用于LPC2214 系統(tǒng)程序的ISP 下載。為了便于調(diào)試程序,運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)了一個(gè)JTAG 口。機(jī)床運(yùn)動(dòng)控制系統(tǒng)電路結(jié)構(gòu)如圖1 控制器系統(tǒng)板中以LPC2214 為中心的硬件結(jié)構(gòu)。機(jī)床電器都通過(guò)接口電路直接與LPC2214 相連。其引腳分配如下所示:
2.1.3 人機(jī)交互系統(tǒng)和機(jī)床運(yùn)動(dòng)控制系統(tǒng)的通信
數(shù)控系統(tǒng)的加工指令經(jīng)過(guò)S3C44B0X 的處理后要傳給LPC2214 進(jìn)行執(zhí)行,而LPC2214執(zhí)行的結(jié)果要返回給S3C44B0X 進(jìn)行處理和顯示。系統(tǒng)采用I2C 總線進(jìn)行通信。S3C44B0X工作在主器件模式,而AT24C04 和LPC2214 工作在從模式。AT24C04 的從地址是0xa0,LPC2214 的從地址是0x50,I2C 的速率為400KHz。S3C44B0X 和LPC2214 各自建立一個(gè)24 字節(jié)的全局?jǐn)?shù)組進(jìn)行通信。
3.軟件設(shè)計(jì)
軟件部分主要由人機(jī)交互系統(tǒng)軟件和機(jī)床運(yùn)動(dòng)控制系統(tǒng)軟件組成。人機(jī)交互系統(tǒng)軟件結(jié)構(gòu)比較復(fù)雜,所以軟件移植了μC/OS-II 操作系統(tǒng)。機(jī)床運(yùn)動(dòng)控制系統(tǒng)軟件結(jié)構(gòu)比較簡(jiǎn)單,但是這部分軟件有很強(qiáng)的實(shí)時(shí)性要求,所以軟件沒(méi)有移植操作系統(tǒng),而是采用時(shí)間觸發(fā)模式編寫。
3.1 人機(jī)交互系統(tǒng)軟件設(shè)計(jì)
人機(jī)交互系統(tǒng)軟件采用分層方式進(jìn)行編寫。軟件分為系統(tǒng)層和應(yīng)用層。系統(tǒng)層設(shè)計(jì)的主要任務(wù)是首先進(jìn)行嵌入式操作系統(tǒng)μC/OS-II 移植,然后再對(duì)操作系統(tǒng)內(nèi)核進(jìn)行擴(kuò)展,形成一個(gè)簡(jiǎn)單高效的平臺(tái)。應(yīng)用層設(shè)計(jì)是在這個(gè)平臺(tái)的基礎(chǔ)上實(shí)現(xiàn)加工文件的操作,機(jī)床手動(dòng)加工,機(jī)床自動(dòng)加工,機(jī)床參數(shù)設(shè)置等任務(wù)。
系統(tǒng)層以μC/OS-II 操作系統(tǒng)內(nèi)核為基礎(chǔ)進(jìn)行移植和擴(kuò)展。所謂移植,是指通過(guò)編寫一定代碼,使得操作系統(tǒng)能夠在特定的處理器平臺(tái)上運(yùn)行。根據(jù)μC/OS-II 的說(shuō)明,移植包括對(duì)與處理器相關(guān)的OS_CPU.H,OS_CPU_A..ASM,OS_CPU_C.C 三個(gè)文件中的代碼進(jìn)行移植[4]。在μC/OS-II 提供的內(nèi)核基礎(chǔ)上,通過(guò)設(shè)計(jì)驅(qū)動(dòng)程序模塊,系統(tǒng)任務(wù),操作系統(tǒng)的API 函數(shù)和任務(wù)調(diào)度模塊等對(duì)操作系統(tǒng)內(nèi)核進(jìn)行擴(kuò)展。通過(guò)設(shè)計(jì)實(shí)現(xiàn)LCD,鍵盤,K9F2808,I2C 總線和串口通信等的接口函數(shù),建立驅(qū)動(dòng)程序模塊,使操作系統(tǒng)API 函數(shù)和底層硬件分開。系統(tǒng)任務(wù)部分設(shè)計(jì)了LCD 刷新任務(wù),鍵盤讀取任務(wù),I2C 總線讀寫任務(wù)這三個(gè)基本任務(wù),并隨著操作系統(tǒng)的啟動(dòng)而運(yùn)行。
應(yīng)用層在系統(tǒng)層提供的 API 函數(shù)的基礎(chǔ)上,設(shè)計(jì)了主任務(wù)和機(jī)床手動(dòng)加工,自動(dòng)加工,文件傳輸,參數(shù)設(shè)置等任務(wù)。系統(tǒng)的入口函數(shù)Main 函數(shù)流程如圖2 所示。主任務(wù)函數(shù)結(jié)構(gòu)如圖3 所示:
3.2.LPC2214 程序設(shè)計(jì)
機(jī)床運(yùn)動(dòng)控制系統(tǒng)控制程序結(jié)構(gòu)比較簡(jiǎn)單,程序模塊間相對(duì)獨(dú)立,但是實(shí)時(shí)性要求很高。由于嵌入式實(shí)時(shí)操作系統(tǒng)會(huì)占用一部分系統(tǒng)資源,影響系統(tǒng)的實(shí)時(shí)性,增加系統(tǒng)設(shè)計(jì)難度,所以,我們沒(méi)有移植嵌入式實(shí)時(shí)操作系統(tǒng),而是使用簡(jiǎn)單時(shí)間調(diào)度方式。使用該調(diào)度方式可以使程序具有較好的健壯性和穩(wěn)定性。系統(tǒng)采用定時(shí)器來(lái)產(chǎn)生系統(tǒng)調(diào)度的節(jié)拍,利用定時(shí)器中斷程序進(jìn)行調(diào)度。系統(tǒng)使用定時(shí)器0 產(chǎn)生系統(tǒng)的節(jié)拍,定時(shí)周期為1ms。系統(tǒng)利用PWM控制器的中斷和四個(gè)比較寄存器控制交流伺服系統(tǒng)進(jìn)給脈沖的生成。我們把任務(wù)分成兩類:一類為周期任務(wù),另一類為非周期任務(wù)。每一個(gè)任務(wù)都有一個(gè)任務(wù)控制塊,任務(wù)控制塊的數(shù)據(jù)結(jié)構(gòu)如下:
typedef data struct
{void (*P_task)(void); //指向任務(wù)的指針
unsigned int Delay; //延時(shí)時(shí)間
unsigned int Period; //任務(wù)再次運(yùn)行的間隔時(shí)間
unsigned int run; //任務(wù)需要運(yùn)行的次數(shù)
}task;
任務(wù)控制塊包含了任務(wù)被調(diào)度的重要信息:任務(wù)是周期任務(wù)還是非周期任務(wù),以及任務(wù)在何時(shí)運(yùn)行,任務(wù)準(zhǔn)備就緒的標(biāo)志等。控制系統(tǒng)的主要任務(wù)有:X 進(jìn)給軸脈沖發(fā)送任務(wù),Y 進(jìn)給軸控制任務(wù),Z1 進(jìn)給軸控制任務(wù),Z2 進(jìn)給軸控制任務(wù),主軸電機(jī)控制任務(wù),換刀任務(wù)等。
4.結(jié)束語(yǔ)
在控制器方案考慮和設(shè)計(jì)中,我們充分考慮了嵌入式系統(tǒng)對(duì)功耗,成本和尺寸的敏感性。基于I2C 的雙ARM 結(jié)構(gòu)的鉆床控制器具有性能優(yōu)良,系統(tǒng)集成度高,性能可靠,人機(jī)交互友好,可擴(kuò)展性好的特點(diǎn),相對(duì)于傳統(tǒng)的基于單片機(jī)的鉆床控制器在性能上有很大的提高。本設(shè)計(jì)為嵌入式系統(tǒng)在印刷電路板控制器中的應(yīng)用提供了新的思路,具有較好的應(yīng)用價(jià)值。
責(zé)任編輯:gt
-
pcb
+關(guān)注
關(guān)注
4323文章
23130瀏覽量
398804 -
控制器
+關(guān)注
關(guān)注
112文章
16412瀏覽量
178709 -
cpu
+關(guān)注
關(guān)注
68文章
10887瀏覽量
212340
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論