当前位置:首页 > 智能硬件 > 智能硬件
[导读] 摘要:当前无线通信与单片机智能控制技术的应用越来越广泛,与日常生活应用的结合已经成为一大趋势。基于短距离无线收发芯片nRF24-L01,以单片机STC89C58RD+为微控制器,结合USB控制芯片PDIUSBDl2,设计了一套满

    摘要:当前无线通信与单片机智能控制技术的应用越来越广泛,与日常生活应用的结合已经成为一大趋势。基于短距离无线收发芯片nRF24-L01,以单片机STC89C58RD+为微控制器,结合USB控制芯片PDIUSBDl2,设计了一套满足实际应用要求的无线USB控制系统。无线USB控制系统分由3个部分组成:PC、无线USB控制器和多个终端节点,文章阐述了系统的功能以及无线USB控制器和多个终端节点的软硬件设计方案。该系统只需对终端节点进行扩展就可应用于不同场合,具有扩展性强、使用方便等优点。
关键词:无线通信;nRF24L01;STC89C58RD+;USB;PDIUSBDl2

0 引言
    当今,无线技术飞速发展,应用的领域越来越广,与有线技术相比,无线技术具有方便、灵活、减少布线施工难度、降低成本等优点。本文阐述了无线USB控制系统的组成、功能和设计方法,系统由PC、无线USB控制器和多个终端节点组成,本文分别给出了实现无线USB控制器和终端节点的一种方案:无线USB控制器的方案是以单片机STC89C58RD+为微控制器,基于Nordic公司的2.4GHz的无线收发芯片nRF24L01,结合Philips公司的PDISUBDl20D USB控制芯片来实现的;终端节点的方案是以STC89C58RD+为微控制器,基于nRF24L01无线收发芯片和根据需求的实际应用电路来实现的。

1 系统组成及其实现方案
1.1 系统描述
    如图1,无线USB控制系统的组成包括PC、无线USB控制器和终端节点(n个)。PC和无线USB控制器之间通过USB接口进行通信,在PC端,用VC++开发应用程序实现对无线USB控制器进行控制,无线USB控制器和各个终端节点通过无线收发芯片nRF24L01实现无线通信。


1.2 系统实现方案
1.2.1 无线USB控制器实现方案
    无线USB控制器实现方案如图2所示,主要包括微控制器STC289C58RD+、USB控制芯片PDIUSBD12和无线模块nRF24L01 Module。STC89C58-RD+内含32KB程序存储器、1280B RAM和16KB E2PROM,E2PROM可用来存储终端节点的地址及需要掉电存储的其他数据,32KB程序存储器和1280B RAM可以满足绝大多数应用需求。USB控制芯片PDIUSBD12是一个性能优化的USB控制器件,完全符合USBl.1规范,支持本地DMA传输,用于基于微控制器的系统。USBl.1最大支持的传输速度是12Mb/s,比一般的PC接口速度都快,足够满足无线USB控制系统的应用。无线模块部分采用Nordic公司的nRF24L01单片射频收发芯片,该芯片工作于2.400~2.4835GHz的ISM(工业、医学和科学)频段,工作电压为1.9~3.6V,有多达126个频道可供选择,支持多点间通信,最高速率达2Mb/s,内置链路层,减少了MCU的复杂性和成本,提高了数据传输的可靠性,而且只需少量的外围元件便可组成射频收发电路,具有体积小、功耗低、性价比高等优点。


1.2.2 终端节点实现方案
    终端节点实现方案如图3所示,主要包括微控制器STC89C58RD+、无线模块nRF24L01 Module和实际应用需求的扩展电路。STC89C58RD+微控制器和nRF24L01无线模块构成终端节点与无线USB控制器之间无线通信的基础,终端节点的扩展电路是根据实际应用需求来设计的,如应用于温度数据采集系统,则扩展电路应是温度传感器的电路,终端节点的灵活设置使得整个系统可以满足多种应用场合的需求。


2 系统的硬件部分
2.1 nRY24L0l无线模块原理图
    nRF24L01是挪威Nordic VLSI公司推出的单片射频收发芯片,20个引脚4mm×4mm QFN封装,内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,采用Enhanced ShockBurst技术,使用SPI接口与微控制器通信,速率为O~8Mb/s,配置方便。nRF24L01适用于无线数据通信、无线个人电脑外设、无线报警及安全系统、无线开锁、无线监测、家庭自动化和玩具等诸多领域。关于该芯片的具体功能和工作模式及其编程过程请参照参考文献。该模块电路原理图,如图4所示。


    nRF24L01模块在PCB布线时采用双面板,底层全部铺地,顶层放置元器件,所有电容电阻电感采用0402封装电容电感电阻尽量靠近芯片引脚,顶层也需大面积铺地,在顶层和底层放置大量的通孔。该模块供电电压为3.3V,SPI接口可以直接与5V的MCU的IO口相连接,无SPI接口的MCU可以用IO口模拟SPI时序,使用方便。
2.2 USB控制芯片PDIUSBDl2原理图
    PDIUSBD12是一款性价高的USB控制芯片,它与MCU配合使用,这使得设计者可以灵活地选择MCU,它与MCU之间通过并行接口通信,还支持本地DMA传输。图5是PDIUSBD12与STC89C58RD+单片机连接的原理图。
    上图未画出STC89C58RD+单片机,只给出了网点名称,如P00-P07、P27、ALE、INTl、WR、RD,STC89C58RD+与标准的80C51(如AT89S51)引脚完全兼容,PDIUSBD12与MCU的连接有2种方式:总线方式和分开的地址数据方式。采用总线方式时引脚10的ALE连接MCU的ALE,引脚28的A0接到高电平;采用分开的地址数据方式,则ALE连接低电平,A0连接任意的IO口,数据或地址(命令)由A0来区分。图5采用总线方式。另外该无线USB控制器直接使用USB接口供电,省去了电源,降低了成本。

3 系统的软件部分
3.1 USB的固件与PC端应用软件设计
    当USB设备连接到主机后,主机要先进行一系列的枚举过程,枚举就是从USB设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序。枚举过程使用控制传输,对于USB设备来说,固件所要处理的是必须对主机发来的标准设备请求进行相应的正确的响应,除此之外依据USB设备的类型还要响应主机发来的USB设备类请求。另外如果开发属于生产商自定义的USB设备类,则需要开发驱动程序。为了减少开发驱动程序的复杂性,可根据实际情况使用USB标准设备类,现有的设备类有以下几种:音频设备类、通信设备类、HID设备类、显示设备类、海量存储设备类、电源设备类、打印设备类、集线器设备类等,例如可选择做成assStorage类(海量存储设备类)或HID(人机接口)设备类,这样无需开发驱动程序,直接利用操作系统自带的驱动程序。本系统模拟成一个海量存储设备类,这样在枚举过程中固件除了要响应了标准的USB设备请求外,还需要响应2个类特殊请求:GetMaxLun和BulkOnlyMassStorageReset,正确枚举之后PC机通过发送SCSI命令来控制U盘设备,对于海量存储设备类要响应以下几个命令:INQUIRY、READCAPACITY、READ(10)、WRITE(10)、REQUEST SENSE、TEST UNIT READY等,除此外要自定义私有的SCSI命令,以实现控制无线USB设备。另外还要构造一个FAT文件系统的格式,要正确返回DBR和FAT文件分配表以及文件数据。
    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进行无线控制或无线数据采集的场合,只需要扩展终端节点的应用电路,即可以满足不同的应用需求。系统具有可靠性好、性价比高、扩展性强和使用方便。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭