新闻中心

EEPW首页>嵌入式系统>设计应用> 基于USB通信的印制电路板AOI视觉检测系统*

基于USB通信的印制电路板AOI视觉检测系统*

作者:■ 何梓滨 段发阶 贾建禄 严海领 天津大学精密测试技术和仪器国家重点实验室(天津 300072) 时间:2008-04-30 来源:电子产品世界 收藏

DSP端的固件程序

本文引用地址://m.amcfsurvey.com/article/82037.htm

  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。

实验与结论

  笔者设计实现了一种印制电路板视觉检测系统,包括硬件电路和软件程序。硬件结构简单,可以实现通信传输的高度集成化,传输速率满足检测系统的实时性要求。图5为实验中采集到的PCB板图像。

图5 实验中采集到的PCB板图像

参考文献:

1. 贾建禄等,基于以太网的嵌入式视觉传感器,电子产品世界,2008.3
2. Moti Yanuka, Yossi Pinhassi,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设备驱动程序开发,电子工业出版社,2004


上一页 1 2 下一页

评论


技术专区

关闭