基于PDIUSBD12的无线USB接口收发器的设计
1引言
通用串行总线(Universal Serial Bus,USB)为个人计算机外围设备输入输出提供了新的接口标准。他使设备具有快速、热插拔、即插即用、自动配置的能力,并标准化了设备连接。同时,USB的级联星型拓扑结构不仅使得连接外部设备多达127个,还解决了资源冲突、中断请求、直接数据通道等问题。传统的收发器一般以RS232接口与PC机通信,其硬件实现简单。如果改为USB接口,将使无线/有线收发器具备USB通信的诸多优点。
PDIUSBD12是一个完全符合USB11规范,性能优化的USB器件,通常用于基于微控制器的系统,并与微控制器通过高速通用并行接口进行通信,也支持本地DMA传输。该器件采用模块化的方法实现一个USB接口。允许在众多可用的微控制器中选择最合适的作为系统微控制器。允许使用现存的体系结构并使固件投资减到最小。这种灵活性减少了开发时间、风险和成本,是开发低成本且高效的USB外围设备解决方案的一种最快途径。
根据现场实际情况,选用TDX230RTMD电台及配套天线,该产品可提供语音或数据信号的透明传输,能适应各种点对点、点对多点的无线数据通信方式,具有收发一体、安装方便、使用简单、性价比高、稳定可靠等特点,广泛用于各种数据的远程采集、控制系统之中。
结合上述两种技术的优点,设计了一种无线USB接口收发器,可进行远距离数据的无线传输。
2硬件电路设计
本文设计的无线USB接口收发器的硬件电路总体框图如图1所示。
Philips公司的PDIUSBD12芯片符合USB1.1规范,采用28脚SO或TSSOP封装,可以在3.3±0.3 V或3.6~5.5 V两种电压下工作,内部集成SIE、320 B的FIFO缓存、收发器以及电压调整电路和终结电阻器,提供2 MB/s速率的并行接口,具有全自治本地DM A功能,芯片提供的多重中断模式有利于批量和等时数据传输模式。芯片还提供了可编程时钟、上电复位和低电压复位电路。芯片提供了双倍的输入输出缓冲,在批量模式达到1MB/s数据传输率,同步模式也可达到1 MB/s数据传输率。
微控制器MCU采用Atmel公司的
图2所示是采用了1个
3软件部分设计
软件设计主要包括两部分:一是USB设备端的单片机软件,主要完成USB协议处理与数据交换,以及其他应用功能程序。二是上位管理机端的程序,由USB通信程序和用户服务程序通过USB通信程序与系统的设备接口通信,由系统完成USB协议的处理与数据传输。
3.1单片机方面软件设计
单片机控制程序由三部分组成:初始化单片机和所有的外围电路(包括PDIUSBD12);主循环部分,其任务是可中断的;读写中断服务程序,其任务是对时间敏感的,必须马上执行。
单片机和PDIUSBD12通信主要是靠单片机给PDIUSBD12发命令和数据实现的。PDIUSBD12的命令字可以分为三种:初始化命令字、数据流命令字和通用命令字。PDIUSBD12给出了各种命令的代码和地址,单片机先给PDIUSBD12的命令地址发命令,根据不同命令的要求再发送和读出不同的数据。因此,可以编写不同功能的函数,用函数实现各个命令,之后直接调用函数即可。
后台D12中断服务程序和模块式无线数传收发模块中断服务程序与前台主循环程序之间的数据交换,通过事件标志和数据缓冲区来实现。后台中断服务程序由中断触发,通过标志位与主模块通信。主模块循环扫描各标志位,对相应的标志位做出处理。例如,模块式无线数传收发模块接收到有效数据后,送入串口触发串口中断,进入模块式无线数传收发模块中断服务程序,将数据接收后放入数据缓冲区,然后设置UART_DATA标志,退出子模块。主模块查询到UART_DATA被置位,则调用writendpoint()程序将数据发往PC。
根据USB协议,任何传输都是由主机开始的,这样
3.2主机方面软件设计
上位机的程序主要调用4个API函数。根据上位机对USB端口的使用情况,用Delphi调用这4个函数就可以实现上位机对USB端口的操作。
Philips为用户提供了D12的驱动程序,但是用户需要根据自己的要求更改inf文件,然后在Windows DDK中重新编译连接生成新的驱动程序,以满足实际应用的需要。
在编写主机应用程序时要注意对主终端的操作,应该在程序中将数据缓存加大,Philips提供的驱动程序支持64 B~64 kB的缓存,这样可以有效减少设备和主机的握手时间,提高传输速度。程序编译时,需要注意保持编译的路径。
4结语
本文结合USB接口和无线通信两种技术的优点,应用在多点测温控制系统中,为PC和智能仪器之间提供了一种快速方便的数据交换方式。
采用对单片微处理器直接扩展USB接口技术,连接简单,控制方便。随着USB技术的不断发展,USB也会和串口一样获得广泛的应用。
评论