基于USB通信的印制電路板AOI視覺(jué)檢測系統*
DSP端的固件程序
本文引用地址:http://dyxdggzs.com/article/82037.htmUSB固件程序的結構一般是基于中斷處理的。主程序完成必要的初始化之后就等待USB中斷,接收到USB中斷后依據中斷的類(lèi)型進(jìn)入不同中斷服務(wù)程序。USB協(xié)議的主從模式?jīng)Q定了USB總線(xiàn)上傳輸的發(fā)起和終止都是主機控制的,因此,固件編程中只要滿(mǎn)足了主機的要求,或者說(shuō)對主機的請求給予了及時(shí)的響應,那么固件的編程也就完成了。
USB固件應用程序主函數例程:
void main()
{
EnableAPLL( );
//使能USB模塊的模擬鎖相環(huán)
CSL_init( );
// DSP的CSL庫初始化函數
INT_DisableGlobal(); // 關(guān)閉全局中斷
INT_SetVec(0x03ff00);
// 設置中斷向量表在RAM中的地址
PLL_Init(48); // 將USB模塊
的時(shí)鐘調整到48MHz
Collect_main(); // CMOS圖像
采集程序
USBTest_Init(); // 初始化USB
模塊,初始化完畢打開(kāi)全局中斷
while(1); // 循環(huán)等待狀態(tài)
}
端點(diǎn)0的控制傳輸是USB枚舉的默認傳輸端口,其中斷服務(wù)程序是USB固件程序設計的難點(diǎn)和關(guān)鍵。
PC端的驅動(dòng)程序及上位機應用程序
PC端的驅動(dòng)程序及上位機應用程序設計相對比較簡(jiǎn)單,選用Driver Studio開(kāi)發(fā)工具開(kāi)發(fā)USB驅動(dòng)程序,Driver Studio對設備驅動(dòng)程序開(kāi)發(fā)工具DDK中操作進(jìn)行封裝,減少了開(kāi)發(fā)時(shí)間,提高了效率。通過(guò)Driver Studio的工具Driver wizard生成的驅動(dòng)程序為開(kāi)發(fā)者提供了一個(gè)基本框架,使用者只需修改較少的或者基本不用代碼就可以實(shí)現相應的功能了。
Windows XP中的上位機程序不能直接訪(fǎng)問(wèn)底層的硬件,需要通過(guò)驅動(dòng)程序進(jìn)行(讀、寫(xiě)、中斷等)操作。設備的驅動(dòng)程序由I/O管理器管理和調動(dòng)。上位機程序在用戶(hù)模式下通過(guò)Win32子系統對Win32API函數進(jìn)行調用。Win32API函數通過(guò)I/O管理器向內核模式下的驅動(dòng)程序傳遞IRP。驅動(dòng)程序通過(guò)處理IRP,來(lái)完成應用程序和硬件程序信息的交互。訪(fǎng)問(wèn)USB設備驅動(dòng)的Win32API函數:
(1) CreatFile 函數創(chuàng )建或打開(kāi)文件,并返回一個(gè)可用于訪(fǎng)問(wèn)文件的句柄。
(2) DeviceIoControl 函數直接給指定的設備驅動(dòng)程序發(fā)送控制代碼,使得相應的設備執行指定操作。函數若成功,返回一個(gè)非0值,否則返回0。
(3) ReadFile 函數讀由文件指針表示的位置開(kāi)始處的文件讀數據,讀操作完成后,文件指針調整實(shí)際讀的字節數。函數若成功,返回一個(gè)非0值,否則返回0。
(4) CloseHandle 函數關(guān)閉打開(kāi)的文件句柄。函數若成功,返回一個(gè)非0值,否則返回0。
實(shí)驗與結論
筆者設計實(shí)現了一種印制電路板AOI視覺(jué)檢測系統,包括硬件電路和軟件程序。硬件結構簡(jiǎn)單,可以實(shí)現通信傳輸的高度集成化,傳輸速率滿(mǎn)足AOI檢測系統的實(shí)時(shí)性要求。圖5為實(shí)驗中采集到的PCB板圖像。
圖5 實(shí)驗中采集到的PCB板圖像
參考文獻:
1. 賈建祿等,基于以太網(wǎng)的嵌入式視覺(jué)傳感器,電子產(chǎn)品世界,2008.3
2. Moti Yanuka, Yossi Pinhassi, AOI vs. AFI in PCB Defect Detection, Circuitree, July 2001
3. TMS320VC5509 DSP Universal Serial Bus (USB) Module Reference Guide, Texas Instruments Incorporated
4. TMS320C55x CSL USB Programmer's Reference Guide, Texas Instruments Incorporated
5. 武安河、邰銘、于洪濤,Windows 2000/XP WDM設備驅動(dòng)程序開(kāi)發(fā),電子工業(yè)出版社,2004
評論