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