基于USB的通用无线传输接口设计

2007-03-09 19:03:27来源: 互联网
摘 要:介绍一种基于Philips公司的32位ARM7T[)MI—s微处理器LPC2210的USB接口设计,并使用Nordic公司生产的单片射频收发芯片nRF2401设计USB接口的无线通信模块。阐述该系统的工作原理、硬件构成及软件设计方案。实现了基于USB接口的无线串行通信。 关键词:无线传输 LPC2210 USB nRF2401 CY7C63231 引 言 USB通用串行总线主要用于USB设备与主机之间的数据通信,特别为USB设备与USB主机之间大量的数据传输提供了高速、可靠的传输协议。射频通信以其优点也应用在越来越多的场合。本文所设计的USB无线串行接口电路由nRF2401单片射频收发器、LPC2210微控制器和USB接口芯片组成。本系统充分利用USB口数据传输功能,设备连接方便,系统可用于进行无线串行数据双向传输,在仪器仪表、计算机遥测遥控系统、家庭网络系统等中得到了应用。 1 硬件设计 整个硬件设计分为两个部分:使用带并行总线的USB接口器件PDIUSBD12设计LPC2200的USB接口,其电路图如图1所示;使用Cypress公司的USB外围控制芯片CY7C63231设计射频芯片nRF2401的USB接口,其电路图如图2所示。两个部分通过USB口相接,整个硬件设计系统框图如图3所示。 图1中,USB接口芯片采用的是Philips公司的并行USB接口芯片PDlUSBD12,符合通用串行总线(USB)1.1版本规范。这里以LPC2200微控制器与PDIUSBI)12构成USB设备,PDIUSBD)12连接到LPC2200的硬件原理图如图1所示。 PDIUSBD12使用LPC2200外部存储控制的Bank2部分,数据地址为0x82000000,命令地址为Ox82000001。RST_USB、SUSP为LPC2200的输出引脚,PDIUSBD)12中断信号为中断输入信号,且为外部中断O。C1、C2和X1为PDIUSBD)12提供工作所需的时钟输入。发光二极管GoodLink在正常通信时闪烁。PDIUSBD12的AD0连接到LPC2200的A0,当LPC2200在A0引脚输出l时,表示输出到PDIUSBD12数据总线DO~D7上的数据为命令字;当A0引脚输出0时,表示输出到PDIUSBD)12数据总线DO~D7的数据为数据字。 图2中,CY7C63231是8位RISC微处理器,特别适用在USB嵌入式方面,工作电压为5 V。nRF2401是单片射频收发芯片,有四种工作模式:收发模式、配置模式、空闲模式和关机模式。所有配置工作,工作模式选择和收发数据都是通过CY7C63231的PO引脚控制完成的。用电压调整芯片LP2980IM5—3.3产生nRF2401的工作电压(3.3 V),同时SN74LVC4245产生控制口3.3 V和5 V的电平转换,使工作在不同电压的这两种芯片能正常的相连。 2 软件设计 2.1 PDIUSBDl2驱动软件构架 为了使驱动软件可移植性强、易维护,采用分层的方法编写PDIUSBDl2的驱动程序,图4为USB驱动程序软件分层结构图。 USB驱动程序软件包提供给用户6个API函数,这6个函数都在USB应用层中定义,功能描述如表1所列。 下面以接收和发送数据任务为例,演示了一个任务从端点2发送1024个字节。部分源代码如下: #define RW_NUMS 1024 //任务收发数据字节数 void TaskRecl(void*pdata) {#if OS_CRlTICAL_METHOD==3 //为CPU状态寄存器分配存储空间 OS_CPU_SR cpu_sr; #endif INT8U Buff[RW_NUMS]; //接收及发送缓冲区 INT8U ack=0x01; //应答主机数值 INT8U err; //函数返回值 pdata=pdata; //避免编译器警告 for(;;){ OSSemPend(TaskReel_Sere,0,%26;amp;-err);//等待TaskStart的命令 err=WritePortl(1,&ack,200); //应答USB主机 if(err==USB_NO_ERR){ //应答正确 err=ReadPort2(RW_NUMS,Buff,200);//接收数据 OSTimeDly(1); //延时一个时钟周期 if(err==USB_NO_ERR){ //接收正确 Buff[0]=OSPrioCur; //标识该任务 err=WritePort2(RW_NUMS,Buff,200);//发送数据 } } }} 2.2 CY7063231软件设计 USB外围控制器CY7C63231控制nRF2401射频芯片,同时与LPC2210微控制器的USB口相连,实现无线数据的接收和发送。下面以接收无线数据为例。主程序UsbTaskLoop,它是一个无限循环,仅仅在中断的时候跳出。程序检测nRF2401的DRl和DR2引脚,当DRl上的电平为高时,产生中断跳到Receivechl子程序,当DR2 上的电平为高时,产生中断跳到Receivech2子程序。USBSend程序负责从端口1向上位机发送数据,WaitforAck程序等待上位机对端口1的应答信号,Receivechl和Receivech2程序分别从nRF2401的通道1和通道2接收数据。最后调用DATAOUT把数据传给上位机,然后调用WaitforAck。Prg2401程序段负责对nRF2401进行操作控制,能够通过设置不同的参数使nRF2401工作在三种不同的工作模式。 结 语 本系统采用32位嵌入式微处理器进行核心控制,具有强大的数据处理能力。该设计可以通过无线局域网进行无线传输,并且可在ARM中对无线接收的数据进行处理,以进一步应用于图像处理,智能监控,以及远程电视电话会议等。因此,基于ARM的嵌入式USB口无线接收处理系统具有广阔的应用前景和市场。
编辑: 引用地址:http://www.eeworld.com.cn/designarticles/others/200703/8808.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved