1 引言
半導(dǎo)體后封裝工藝中關(guān)鍵設(shè)備劃片機是通過主軸高速旋轉(zhuǎn)、y向精密分度定位、x向?qū)к壐咚龠\動、θ向多角度旋轉(zhuǎn)實現(xiàn)對多個芯片圖形劃分加工的設(shè)備。可用于硅集成電路、SAW器件、Ga/As、鈮酸鋰、銻化鉍、厚膜電路、磷化銦等特種材料和脆硬材料晶片的劃切分片。
a鑒于在精密劃片機檢測系統(tǒng)的檢測速度和精度上的要求,需要分辨率較高的CCD攝像機對劃切圖像進行快速提取。PC-Based產(chǎn)品的硬件技術(shù)已經(jīng)實現(xiàn),但PC結(jié)構(gòu)中仍存在諸多因素影響劃片機的實際使用,如硬盤可能出現(xiàn)的機械故障、風(fēng)扇帶來的不穩(wěn)定因素、抗震性能指標,抗干擾指標等等,這些因素依然是制約IPC(PC工控機)應(yīng)用于半導(dǎo)體設(shè)備的問題之一。通過引入嵌入式硬件方案解決了這個難題,同時也大大降低了成本。
基于嵌入式硬件平臺的精密劃片機硬件部分采用主從式雙CPU結(jié)構(gòu)模式,主CPU為ARM處理器。精密劃片機控制主體由3個單元構(gòu)成:監(jiān)控管理單元、四軸運動控制單元和劃片機視覺單元。劃片機視覺單元是通過對圖像實時采集來監(jiān)測晶圓劃切過程;監(jiān)控管理單元主要功能是監(jiān)測設(shè)備運行、設(shè)置加工參數(shù)等;四軸運動控制單元是采用專用運動控制芯片,接收S3c2510傳遞的參數(shù)來直接控制電機完成運動控制。
視覺采集系統(tǒng)基于的PCI總線具備32Bit數(shù)據(jù)總線,時鐘頻率可達66 MHz,最快傳輸速率達到264 MB/s,能夠滿足劃片機視覺系統(tǒng)需要,設(shè)計的核心板擴展2個PCI插槽。嵌入式設(shè)備需編寫PCI設(shè)備的驅(qū)動程序?qū)F(xiàn)有的PCI設(shè)備應(yīng)用到嵌入式主板中。
劃片機的視覺采集系統(tǒng)由光學(xué)照明系統(tǒng)、CCD攝像器件、圖像處理軟件等部分構(gòu)成,視覺系統(tǒng)構(gòu)成見圖1。
2 硬件電路設(shè)計
根據(jù)PCI系統(tǒng)的總線拓撲結(jié)構(gòu)設(shè)計了劃片圖像采集系統(tǒng)的硬件結(jié)構(gòu)。其中的攝像頭,根據(jù)劃片機視覺的要求選用35萬像素的PCI接口的圖像采集模塊。
系統(tǒng)主處理器采用三星公司的S3C25lO,考慮到S3C2510內(nèi)置PCI控制器,擴展的2塊PCI接口可分別和四軸嵌入式運動控制芯片MCX314As和圖像采集模塊連接。系統(tǒng)框圖見圖2。
芯片為ARM 940T內(nèi)核,最高運行頻率可達200 MHz,芯片內(nèi)置的SDRAM控制器、PCI控制器、USB控制器和10M/100M以太網(wǎng)控制器等一系列接口控制器。滿足精密劃片機的實時控制要求,主板的外部時鐘源為10 MHz,通過S3C2510的4個內(nèi)置倍頻率器,設(shè)置引腳CLKMOD0、CLKMODl、CPU_ FREQl、BUS_ FREQ0為高;設(shè)置引腳CPUFREQ0、CPU_FREQ2、BUS_FREQl、BUS_ FREQ2為低,使系統(tǒng)內(nèi)核運行頻率為133MHz,PCI設(shè)備運行頻率為66 MHz,USB設(shè)備運行頻率為48 MHz。圖3是S3C2510的PCI插槽圖。
系統(tǒng)上電后,PCI插槽上圖像采集模塊將等待CCD攝像頭模擬信號的輸入,當(dāng)圖像采集模塊得到模擬數(shù)據(jù)后便對模擬數(shù)據(jù)進行編碼,處理后的數(shù)據(jù)通過S3C2510內(nèi)部AHB總線傳輸?shù)絊DRAM,主控管理單元利用主板上嵌入式Linux系統(tǒng)中的視頻服務(wù)程序使用解碼播放器即可對晶圓監(jiān)測劃切。
S3C2510 ARM處理器,內(nèi)部PCI(MINI-PCI)&PC Card控制器符合PCI總線規(guī)范2.2版本,將S3C2510的PCI(MINI-PCI)&PC Card控制器設(shè)置為PCI Host工作模式(見表1),具有32bit地址/數(shù)據(jù)復(fù)用總線,支持非線性傳輸和突發(fā)傳輸,最高數(shù)據(jù)傳輸速度可以達到264 MB/s及66 MHz(132 MB/s及33 MHz)。而且?guī)в械刂纷儞Q機制,可以將內(nèi)部的PCI總線地址映射到內(nèi)存或者外圍設(shè)備。在設(shè)計中設(shè)定PCI總線的時鐘頻率為66 MHz,因此主板上PCI總線的最高傳輸速度可以達到264 MB/s,能夠滿足數(shù)據(jù)的快速傳輸。系統(tǒng)利用時鐘反饋來彌補PCI的時鐘延遲。
當(dāng)PCI控制器工作在PCI HOST、模式下時,其時鐘源是由系統(tǒng)內(nèi)部提供的,S3C2510有3個PCI時鐘輸出信號PCICLK1,PCICLK2和PCILK3,將PCI設(shè)備診斷寄存器PCIDIAG0的DC3位設(shè)置為l,即將PCICLK3設(shè)置為輸出無效,此時PCICLK1與PCICLK3相連,通過PCICLK3將時鐘信號反饋給處理器內(nèi)核,這樣可以使外部PCI設(shè)備與PCI時鐘保持一致,從而彌補時鐘延遲。
系統(tǒng)以及PCI控制器的啟動順序如圖4所示。其中在對PCI控制器的特殊功能寄存器進行配置時需要首先關(guān)閉中斷,即設(shè)置PCIINTEN=0。然后設(shè)置PCI控制和狀態(tài)寄存器PCICON[ARB,ATS,SPL,IOP,MMP],某些需要的情況下還要設(shè)置PCI診斷寄存器,這個寄存器是針對測試功能的,在PCMCIA Host工作模式下不需要進行設(shè)置。然后要對與基地址有關(guān)的寄存器PCIBAM0~l和PCI-BATPA0~2進行設(shè)計,設(shè)置完之后要配置有關(guān)PCI重啟和時鐘的寄存器,其中關(guān)鍵的一步是設(shè)置PCI重啟和時鐘寄存器PCIRCC[MSK]=0,這是為了防止重啟信號和時鐘信號的沖突。
在PCI控制器偵測外圍設(shè)備并初始化外圍設(shè)備的寄存器時,需要完成以下工作:
(1)讀取所有的配置寄存器值,包括PCIHID,PCIHSC,PCIHSSID等;
(2)檢查BAR(Backup Address Register)的范圍并一一分配空間;
(3)使能外部設(shè)備并激活總線。
以上配置都是在PCI圖像采集模塊的驅(qū)動中完成的,因為已經(jīng)把驅(qū)動程序加載到了ARM Linux的內(nèi)核中,所以系統(tǒng)啟動之后,操作系統(tǒng)會自動配置PCI外部設(shè)備。
3 ARM Linux移植和設(shè)備驅(qū)動實現(xiàn)
3.1 Boot Loader的移植
Boot Loader是和硬件緊密連接的,系統(tǒng)是通過Boot Loader。來調(diào)用操作系統(tǒng)內(nèi)核并最終運行操作系統(tǒng)。本系統(tǒng)采用了U-Boot(Universal Boot Loader)作為。Boot Loader,U-Boot相當(dāng)于一個小型的Linux系統(tǒng),其工作涉及到硬件系統(tǒng)的初始化、存儲空間分配等,在設(shè)計過程中主要完成了以下工作,相關(guān)的程序編寫根據(jù)U-Boot提供的例程來完成:
(1)修改Makefile配置文件,添加針對目標板的編譯命令行;
(2)在CPU目錄下建立arm940t目錄,主要包括中斷設(shè)置函數(shù)代碼interrupts9c,系統(tǒng)入口函數(shù)start.S,CPU相關(guān)代碼文件cpu.c以及串口初始化代碼相關(guān)文件serial.c等;
(3)在Board目錄下建立S3C2510目錄,主要包括FLASH初始化代碼flash.c,連接器文件u-boot.1ds,內(nèi)存分配代碼memsetup.S等;
(4)編寫配置文件,即:include/configs/s3c25 l0.h,對寄存器的定義等系統(tǒng)配置,大部分工作是參考S3C25l0的數(shù)據(jù)手冊來進行的;
(5)編寫flash.c文件,根據(jù)使用的AMD的NOR Flash來編寫Flash的驅(qū)動,包括flash芯片的型號,打印信息,容量大小,flash擦除函數(shù)等;
(6)修改SDRAM的大小,修改配置文件in-clude/configs/s3c25 10.h 中 的 #define PHYS _SDRAM_ SIZE值。其大小是根據(jù)實際應(yīng)用中SDRAM的大小來確定;
(7)修改串口參數(shù)文件serial.C。主要是設(shè)置串口波特率,波特率計算公式為:RUBRDIVO=((int)(MCLK/16./(gd_>baudrate)+0.5)-1);
(8)修改start.S文件,一個可執(zhí)行的Image必須有一個入口點并且只能有一個唯一的全局入口,修改start.S中的.globl _start _start:使其放在Rom(flash)的0×0地址。編譯U-Boot,通過Jtag口下載到目標板進行調(diào)試。
3.2 ARM Linux設(shè)備驅(qū)動編寫
Linux的內(nèi)核是由設(shè)備管理、進程管理、文件系統(tǒng)和內(nèi)存管理一起組成,Linux設(shè)備驅(qū)動可以分為字符類設(shè)備,網(wǎng)絡(luò)接口類設(shè)備,塊類設(shè)備和其他非標準驅(qū)動。PCI設(shè)備被看作是字符型設(shè)備。每個PCI外設(shè)都由一個總線號、一個設(shè)備號和一個功能號來標示,共有3個訪問空間,即I/O端口、內(nèi)存空間和配置寄存器。PCI配置空間由256個字節(jié)組成,且每個設(shè)備功能都有一個配置空間,用于決定PCI器件的工作方式和映射到系統(tǒng)中的地址。
添加系統(tǒng)的PCI設(shè)備驅(qū)動主要步驟:
(1)創(chuàng)建1個PCI設(shè)備,命令:mknod pci_dev c247 0,其中c表示字符設(shè)備,247表示主設(shè)備號,0代表次設(shè)備號。
(2)初始化外部設(shè)備,將函數(shù)pci_ dev_ init()添加到ARMlinux/linux/drivers/chal/mem.c文件的chr _dev_ init()中,chr _dev _init()將在系統(tǒng)啟動時被調(diào)用,會完成設(shè)備驅(qū)動的初始化工作:
(3)設(shè)備驅(qū)動文件pci__dev.c的編寫。設(shè)備注冊接口函數(shù),中斷處理函數(shù)等構(gòu)成了PCI設(shè)備驅(qū)動主要代碼。即file_operationgs根據(jù)S3C2510的PCI配置寄存器所給定的基址來讀寫數(shù)據(jù)。PCI定義的I/O空間是32位地址空間,內(nèi)存和I/O可使用相同的配置接口。
(4)PCI設(shè)備的加載。ARMlinux不支持設(shè)備驅(qū)動的動態(tài)加載,因此需要把驅(qū)動編譯到ARM Linux內(nèi)核中,首先需修改makefile文件,添加下行:obj_$(CONFIG_ PCI_ DEV)+=pci _dev.o接著修改config.in, 添 加 :bool'pci _dev install'CONFIGPCI DEV,添加這行的目的是為了在配置目標板Linux系統(tǒng)內(nèi)核時以便對這個設(shè)備進行選擇。最后在目標系統(tǒng)的makefile中添加設(shè)備節(jié)點:pci _dev,C,247,0這樣在配置Linux內(nèi)核時就可以選擇pci_dev install,然后進行編譯,這樣PCI設(shè)備驅(qū)動就加載到了ARM Linux系統(tǒng)中。
4 主控單元圖像采集編程
內(nèi)核針對數(shù)碼攝像頭等視頻設(shè)備提供V4L函數(shù)接口,V4L提供針對視頻設(shè)備進行基本的I/O操作的接口函數(shù)如:open、read、write、close,中斷處理,內(nèi)存映射及I/O通道的控制ioctl等,并定義在struct file_operations數(shù)據(jù)結(jié)構(gòu)體中。當(dāng)應(yīng)用程序?qū)υO(shè)備進行諸如open、read、Write、close等系統(tǒng)調(diào)用操作時,內(nèi)核將通過file_operation結(jié)構(gòu)訪問驅(qū)動程序提供的函數(shù)接口.具體的采集程序如下:
PCI接口視頻采集流程如圖5所示。
V4L為視頻采集圖像提供兩種方案①:read()直接讀取,②:mmap()內(nèi)存映射。read()通過內(nèi)存緩沖區(qū)來讀取數(shù)據(jù);而mmap()通過把設(shè)備內(nèi)存映射到用戶進程地址空間中,繞過內(nèi)核緩沖區(qū),所以mmap()方式加速I/O訪問。另外mmap()系統(tǒng)調(diào)用使用進程間通過映射同一文件實現(xiàn)共享內(nèi)存,各進程可像訪問普通內(nèi)存一樣對文件訪問。訪問時只需要指針而不用調(diào)用文件操作函數(shù).因此用mmap()采集圖像。初始化函數(shù)(camera_pict_init,canera_mmap _init.camera_get_mbuf和采集圖像函數(shù)(camera_grap-image)介紹如下:
5 結(jié)語
高速實時圖像數(shù)據(jù)的處理和傳輸是劃片自動化的基礎(chǔ)和精度效率的重要保證?;谕獠吭O(shè)備互連PCI總線嵌入式視覺系統(tǒng),選用了高性能的ARM處理器,嵌入可配置ARMLINUX操作系統(tǒng),可高效的完成劃切要求。整個系統(tǒng)具有高可靠性,擴展能力強,避免傳統(tǒng)工控機的病毒、補丁、死機等不便利因素。