随着USB串行总线的流行,USB设备越来越多,价格也非常便宜。U盘我们用得多了,USB鼠标和键盘,我们也经常在用。所以,很多人认为,做一个USB的数据采集卡,一定没什么技术含量。其实不然,对于我们做应用科技的工程师来讲,技术并没有高低贵贱之分,能够把产品做得稳定,可靠,价格便宜,使用方便,都是非常不容易的事情。所谓细微处见功底。
有人做了一块USB数据采集板,用了之后发现存在两个比较大的问题:1、XP下面不认识这个USB设备,必须得自己安装驱动。2、用起来不稳定,容易发生数据传输中断,拔插USB居然还可能导致XP蓝屏。我仔细分析了问题的原因,对于第一个问题,原因应该出在初始化USB控制器方面,不符合XP的要求,应该对照XP对USB HID设备的要求来进行设置。对于不稳定的问题,原因应该归结为两点:第一,USB传输线比较长,但没有选用高质量的屏蔽线。屏蔽的基本原理是静电场的表面效应,也就是说只要将USB数据传送线的外表面包上一层金属膜并将这个屏蔽层与“地(机箱壳)”相接,就可以很好地将数据线与空间干扰信号隔离!第二,USB控制器和MCU之间通过data bus相连,data bus工作在接近12MHz的频率,属于高频,容易受到工业现场各种电磁干扰的影响。要解决这个问题:第一,采用优质的USB屏蔽线;第二,选用USB控制器和MCU合一的IC如HT82K95E或EM78M611。第三,应用软件要监控通信链路,一旦发生故障,应通过看门狗复位USB,重新连接,保证发生问题后可以自愈合。
就这样,一个USB数据采集卡,就要求我们具备如下知识:
USB协议,HID规范,windows XP下的VC++编程,单片机ASM/C编程,EMI理论知识,软件工程知识,可靠性设计知识。
做产品就是做人,浮燥不得。