USB工业摄像头设计之上位机
在工业相机中对摄像头要求较高,且采集的图像数据要求是源数据,未经过任何处理。
为了兼容xp、win7(32bit 64bit)
程序采用VS2008 MFC编制,参考网上一些应用。
CYUSB驱动与CYAPI开发包
以前68013上位机程序的编写过程中,应用程序端通过调用DeviceIoControl() API或CREATEPIPE() API与驱动进行交互,继而读写控制硬件设备,在新的68013A的驱动中采用了两种新的调用方法:
第一种是继续使用DeviceIoControl()函数读写,不同的是,IOCTL控制字和老驱动完全不同,具体定义参考CYUSB.PDF。用户可以通过这些底层API完成操作。
第二种是使用CYPRESS提供的面对对象的类,一共有9个类,调用这些类的方法就可以和硬件打交道。这些类是对第一种方法的封装,使用起来非常简便。用户可以根据需要选择这两种方法或混合使用,使用时需要加上头文件CyAPI.h和cyioctl.h,另外在项目中还要引用CyAPI.lib。
http://www.cypress.com/?rID=34870
需要在头文件中包含
#include "CyUsb.h"
#pragma comment (lib, "CyUsb.lib")
即可使用其接口。
摄像头型号不同,分辨率不同
需要在头文件中定义相应尺寸以便更换摄像头时,修改方便
#define BMP_width 1280 //640*480 1280
#define BMP_height 1024 //1024 1536
主要影响:
1、m_pDcDisplay->BitBlt 显示
2、CDataCapture
3、CDataProcess
主要功能;
从usb采集图像数据,图像数据按照每行同步传输,解析到一图像进行显示,
实测:
电脑硬件:
T420i 4G内存 WIN xp 32bit
1280*1024分辨率 帧率实测 25fps-27fps
640*480分辨率 帧率实测 82fps-85fps
参考板卡:
http://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-2707874652.25.cplWbC&id=44929449383