微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 基于USB2.0的红外数据传输系统的设计与实现

基于USB2.0的红外数据传输系统的设计与实现

时间:07-16 来源:中北大学 仪器科学与动态测试教育部重点实验班 点击:

统要求高速持续传输大容量的数据,并且对数据的完整性要求较高,故采用块传输方式。
固件程序的编写采用Keil公司的KeilC51编译器(V6.10)。它为8051微控制器的软件开发提供C语言环境,同时保留汇编代码高效、快速的特点,相对于传统的汇编开发环境更加灵活、高效和易于使用。将代码在KeilC51环境中进行编译。编译通过后,将固件代码下载到USB单片机中,就可实现与外围设备的数据传输。

在整个固件程序中,EZ-USBFX2设备上电或复位后,首先初始化所有内部状态变量,随后调用任务初始化函数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.0接口技术与红外传输技术结合,实现了测试仪与PC机之间的无线数据传输,达到了设计应用要求。

为了保证传输数据的正确性,避免其他光波对传输数据的干扰,系统壳体安装红外滤光片:一方面,消除或减少散射辐射或背景辐射的有害影响:另一方面,分出具有特定波长区的红外波长。经多次试验证明,该系统能够可靠稳定传输数据,具有很好的实用性。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top