首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于nRF24L01的无线USB控制系统
来源:本站整理  作者:佚名  2010-04-14 11:55:37




    PC端应用程序的开发采用VC++6.O平台,本设备模拟成MassStorage设备,那么PC与设备通信通过SCSI命令,使用时候除了标准的SCSI命令外,可以自己定义私有的SCSI命令,程序主要通过自定义的私有的SCSI命令来实现与无线USB控制器的数据通信,应用程序首先用Create-File()打开设备,之后主要调用DeviceIoControl()函数来实现数据通信,最后用CloseFile()关闭设备。该函数的使用可参考MSDN。
    以上部分的软件是整个系统开发的难点,所涉及的知识点范围广,图6是实际开发成功的模拟成MassStorageDevice类的无线USB控制器。


3.2 nRF24L01的固件设计
    nRF24L01与MCU之间通过SPI接口通信,本系统所采用的单片机STC89C58RD+无SPI接口,故通过IO口模拟,nRF24L01采用ShockBurstTM进行可靠的发送和接收。采用AutoAck、自动重发的配置过程如下:
    发送过程配置:
    1)配置发射功率、数据速率、载波频率、CRC校验位数、发送的地址宽度和数据宽度、AutoAck、自动重发次数等。
    2)配置:PRIM_RX位为0。
    3)配置要通信的的终端节点地址TX_ADDR和要发送的数据到TX_PLD,配置发送端RX_ADDR的值与TX_ADDR的值一样。
    4)CE从低到高跳变芯片开始发送数据,CE至少需要10μs。
    5)读取STATUS寄存器,判断发射成功与否。
    接受过程配置:
    1)配置发射功率、数据速率、载波频率、CRC校验、接收的地址宽度和数据宽度等等,其中数据速率、载波频率、CRC校验位数、接收的地址宽度和数据宽度必须和发送端一致。
    2)PRIM_RX位配置为1,配置EN_RXADDR寄存器使能所有数据管道。
    3)CE从低电平跳变为高电平,130μs后nRF24L01开始监视空中的无线信号。
    4)当IRQ中断时,中断服务程序里面读取STATUS寄存器,判断是否接收到有效的数据。
    5)收到有效数据则设置CE为低电平,nRF24L01进入standby-I模式。MCU读取接收到的数据。
    图7和图8是无线USB控制系统应用于控制多终端频率发生器系统的实际软件和硬件。


4 结束语
    整个系统通过实际验证满足了设计要求,USB工作稳定,速度快,RF24L01无线模块通信正常、距离远、误码率低、稳定性高。本系统可应用于大部分需要PC进行无线控制或无线数据采集的场合,只需要扩展终端节点的应用电路,即可以满足不同的应用需求。系统具有可靠性好、性价比高、扩展性强和使用方便。

上一页  [1] [2] [3] [4]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:69,222.66000 毫秒