引 言
隨著表面組裝技術(SMT)中所使用的印制電路板(PCB)導體圖形的細線化,SMT元器件的微型化,以及SMT組件的高密度組裝和快速組裝的發展趨勢,采用目檢或人工光學檢測的形式檢測SMT組裝質量已不能適應。為此,自動光學檢測(AOI)技術作為SMT組裝質量檢測的主要技術手段,在SMT中應用越來越普遍。
AOI,也稱為自動視覺檢測,是基于光學原理,綜合采用圖像分析、計算機和自動控制等多種技術,對生產中遇到的缺陷進行檢測和處理,是較新的確認制造缺陷的方法。AOI系統按技術劃分為精密機械、電氣控制、視覺系統、軟件系統4大部分組成,其核心是一套基于CMOS或CCD的圖像采集系統、交流伺服控制x、y工作臺及圖像處理軟件系統。圖1為所設計的PCB板AOI檢測系統框圖。
圖1 PCB板AOI檢測系統框圖
視覺檢測系統硬件設計
AOI系統究其本質是一套基于機器視覺技術的表面缺陷檢測系統。如何獲取高質量的PCB表面圖像信息成為PCB光學檢測中首要解決的難題和重點,這是PCB表面缺陷檢測的關鍵。由于PCB缺陷的特殊性,AOI系統對視覺采集系統提出了很高的要求:高分辨率、高速率、實時檢測等。
視覺采集系統
針對AOI系統要求,選用基于DSP+CPLD的圖像采集處理模式。圖2為視覺采集系統框圖。系統通過DSP給CPLD發出一個采集命令,由CPLD控制CMOS圖像傳感器向FIFO的寫入圖像數據,同時DSP通過DMA將圖像轉移至SDRAM中并進行圖像處理,在處理結束后,將處理的結果通過DSP內置的USB接口傳給微機或其他設備。 I/O接口經擴展后,將控制觸發信號交由工作臺及電氣控制系統,完成系統采集控制的目的。
圖2 視覺采集系統框圖
USB通信接口電路
本設計采用的DSP芯片TMS320VC5509A集成了一個USB控制模塊(USB2.0 full speed),可以完成和USB主機系統之間的讀寫操作,具有無需外加邏輯電路、使用方便等優點。使用TMS320VC5509A的片上USB模塊,完成DSP前端圖像采集系統與后臺PC機之間的通信硬件電路設計,簡化了圖像采集系統的硬件控制軟件和后臺PC機的驅動程序。
圖3 TMS320VC5509A的USB接口電路
圖3為DSP片內USB模塊與PC機進行數據通信的硬件接口電路。其中左邊3個引腳PU、DP、DN是TMS320VC5509A的片上引腳,右邊的6個引腳組成了一個Mini USB接口,利用USB連接線就可以完成與PC機的連接。中間的阻容電路起加強輸入輸出可靠性的作用。
軟件程序設計
圖4 視覺系統中USB通信數據流
如圖4所示,本系統中USB通信的軟件程序主要由四部分組成。在設備端:設備端驅動程序,也稱之為固件程序;設備端應用程序,主要完成數據搬運,以及與其他硬件設備的交互工作。在主機端:主機端驅動程序;主機端應用程序。由于USB是分層結構,主機端驅動和設備端驅動完成對USB設備的枚舉和配置;而在主機端應用程序和設備端應用程序之間實現數據的通信。
本系統中,DSP作為USB傳輸的設備端,同時由于USB是嚴格的主從結構,所有的配置、枚舉及數據傳輸命令都必須由主機下達,所以在設備端的程序設計時,固件程序設計成一個復雜的中斷服務程序,用以主機對DSP作為USB設備配置、枚舉時的應答。而原本在CCS中運行的DSP采集主程序也必須改寫成中斷程序,這樣才能完成對DSP固件程序和DSP采集程序的整合,使之整合到一個main()運行程序中,程序運行時,啟動對DSP的初始化,時鐘配置和USB模塊初始化;當主機發出采集圖像命令時,DSP程序進入采集中斷程序,執行實時采集中斷程序;當主機發出USB模塊配置枚舉命令時,USB中斷服務程序對主機做出回應;當主機發出傳輸圖像命令時,DSP程序進入數據搬運中斷程序。
DSP端的固件程序
USB固件程序的結構一般是基于中斷處理的。主程序完成必要的初始化之后就等待USB中斷,接收到USB中斷后依據中斷的類型進入不同中斷服務程序。USB協議的主從模式決定了USB總線上傳輸的發起和終止都是主機控制的,因此,固件編程中只要滿足了主機的要求,或者說對主機的請求給予了及時的響應,那么固件的編程也就完成了。
USB固件應用程序主函數例程:
void main()
{
EnableAPLL( );
//使能USB模塊的模擬鎖相環
CSL_init( );
// DSP的CSL庫初始化函數
INT_DisableGlobal(); // 關閉全局中斷
INT_SetVec(0x03ff00);
// 設置中斷向量表在RAM中的地址
PLL_Init(48); // 將USB模塊
的時鐘調整到48MHz
Collect_main(); // CMOS圖像
采集程序
USBTest_Init(); // 初始化USB
模塊,初始化完畢打開全局中斷
while(1); // 循環等待狀態
}
端點0的控制傳輸是USB枚舉的默認傳輸端口,其中斷服務程序是USB固件程序設計的難點和關鍵。
PC端的驅動程序及上位機應用程序
PC端的驅動程序及上位機應用程序設計相對比較簡單,選用Driver Studio開發工具開發USB驅動程序,Driver Studio對設備驅動程序開發工具DDK中操作進行封裝,減少了開發時間,提高了效率。通過Driver Studio的工具Driver wizard生成的驅動程序為開發者提供了一個基本框架,使用者只需修改較少的或者基本不用代碼就可以實現相應的功能了。
Windows XP中的上位機程序不能直接訪問底層的硬件,需要通過驅動程序進行(讀、寫、中斷等)操作。設備的驅動程序由I/O管理器管理和調動。上位機程序在用戶模式下通過Win32子系統對Win32API函數進行調用。Win32API函數通過I/O管理器向內核模式下的驅動程序傳遞IRP。驅動程序通過處理IRP,來完成應用程序和硬件程序信息的交互。訪問USB設備驅動的Win32API函數:
(1) CreatFile 函數創建或打開文件,并返回一個可用于訪問文件的句柄。
(2) DeviceIoControl 函數直接給指定的設備驅動程序發送控制代碼,使得相應的設備執行指定操作。函數若成功,返回一個非0值,否則返回0。
(3) ReadFile 函數讀由文件指針表示的位置開始處的文件讀數據,讀操作完成后,文件指針調整實際讀的字節數。函數若成功,返回一個非0值,否則返回0。
(4) CloseHandle 函數關閉打開的文件句柄。函數若成功,返回一個非0值,否則返回0。
實驗與結論
設計實現了一種印制電路板AOI視覺檢測系統,包括硬件電路和軟件程序。硬件結構簡單,可以實現通信傳輸的高度集成化,傳輸速率滿足AOI檢測系統的實時性要求。圖5為實驗中采集到的PCB板圖像。
圖5 實驗中采集到的PCB板圖像
責任編輯:gt
-
dsp
+關注
關注
552文章
7962瀏覽量
348280 -
pcb
+關注
關注
4317文章
23010瀏覽量
396330 -
AOI
+關注
關注
6文章
143瀏覽量
24349
發布評論請先 登錄
相關推薦
評論