基于USB2.0的红外数据传输系统的设计与实现
在整个固件程序中,EZ-USB FX2设备上电或复位后,首先初始化所有内部状态变量,随后调用任务初始化函数TD_Init(),开启中断,此时固件程序不断检测控制端口0是否收到SETUP包。一旦收到,固件程序就开始调用用户函数TD_Poll(),其中用户需要完成的功能代码在TD_Poll()函数中。调用完成后,重复检测端口O是否收到SETUP包,若有,继续执行设备请求,调用TD_Poll()函数;否则检测USB核是否有USB挂起信号。若有则调用用户函数TD_Suspend(),其返回值为真时,检测USB核是否有重新开始事件,没有时,设备进入挂起状态,反之,调用TD_Resume()进行下一次循环;当。TD_Suspend()函数返回值为假时,直接转入下次循环。
此外,固件程序框架中还定义许多中断处理函数,当用到时可在相应的位置加入用户编写的代码,这样既清晰又便于理解,就可在无需改变整个程序的前提下,仅通过改变相应的模块,来实现用户设置的功能,本系统采用串口中断处理函数实现红外传输数据的接收。
3.2 驱动程序设计
USB系统驱动程序采用分层结构模型(WDM),该模型定义分层的驱动程序,USB设备驱动程序不直接与硬件对话,而是通过USB驱动程序接口将USB请求快速提交到总线驱动程序进而完成硬件操作。从系统的角度来说,在USB设备插入主机后,主机检测到USB设备,读取设备描述符,然后主机根据设备描述符中提供的厂商ID和产品ID等,启用相应USB设备驱动程序,读取USB设备中的配置描述符、接口描述符和端点描述符,根据需要选择恰当的配置、接口和端点,确定传输方式。这一过程完成后,PC机与USB设备之间就可传输数据。
3. 3 应用程序设计
应用程序是测试系统软件的核心,其对USB设备的操作功能为:开启或关闭USB设备,检测USB设备,设置USB数据传输管道。设置数据端口的初始状态,通过USB接口回传数据、存储、显示并分析数据。
4 结论
本文设计的数据传输系统具有低功耗、控制简单、实施方便等特点,系统将USB2.O接口技术与红外传输技术结合,实现了测试仪与PC机之间的无线数据传输,达到了设计应用要求。
为了保证传输数据的正确性,避免其他光波对传输数据的干扰,系统壳体安装红外滤光片:一方面,消除或减少散射辐射或背景辐射的有害影响:另一方面,分出具有特定波长区的红外波长。经多次试验证明,该系统能够可靠稳定传输数据,具有很好的实用性。
评论