当前位置:首页 > 智能硬件 > 智能硬件
[导读] 摘要:当前无线通信与单片机智能控制技术的应用越来越广泛,与日常生活应用的结合已经成为一大趋势。基于短距离无线收发芯片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进行无线控制或无线数据采集的场合,只需要扩展终端节点的应用电路,即可以满足不同的应用需求。系统具有可靠性好、性价比高、扩展性强和使用方便。

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

摘要:详细分析了木地板自动铺设装置的工作原理,介绍了其结构组成、关键部位和控制系统,同时阐述了木地板自动铺设装置的特点,并从实用角度分析了木地板自动铺设装置的可用性。另外,运用UG NX12.0三维建模软件构建了该装置的...

关键字: 自动铺设装置 三维建模 控制系统

摘要:随着我国城镇化进程加快,汽车保用量剧增,土地资源紧缺,停车难问题日益严重,提升车位空间的利用率是目前解决这个问题的有效途径之一。鉴于此,设计了一种基于PLC与小程序的自助立体停车库,以PLC为控制系统的核心,服务器...

关键字: 控制系统 PLC 通信协议

地球作为一颗海洋覆盖率超过95%的星球,在海底还存在着许多人类从未探索过的区域。而探索这一区域目前最大的难题之一就是水下相机的供能技术,为它持续供电的成本太高。

关键字: 电池 无线 水下相机

USB-C接口全称为USB Type-C,属于USB 3.0下一代接口,其亮点在于更加纤薄的设计、更快的传输速度(最高可达10Gbps)、更强的电力传输(最高100W),此外USB-C接口还支持双面插入,正反面随便插,相...

关键字: iPhone 15 Lightning USB

越来越多的应用部署了时间敏感网络 (TSN)。但对基于5G的无线时间敏感网络 (WTSN) 来说,现在还为时尚早。WTSN可以将TSN引入到新的应用中,例如移动机器人、电网、化工厂、智慧城市和其他地理位置分散的应用,以及...

关键字: All 5G 通讯技术 无线 时间敏感网络 TSN 无线时间敏感网络 WTSN 侧行链路 时间同步 有界延迟 网络切片

GRL东莞实验室将与上海和台北实验室一同,提供Windows Host认证服务 加利福尼亚州圣克拉拉市2022年9月22日 /美通社/ -- 高速信号和充电技术测...

关键字: Windows THUNDERBOLT USB OS

接下来测试烧写功能,本次采用串口和USB烧写方式。使用ISP串口烧写这是51单片机常用的方案,本次测试比较顺利,没有遇到什么问题。但是USB烧写没有测试成功,USB烧写方式不需要任何的驱动和硬件支持,直接将USB线和ST...

关键字: PCB控制板 USB 串口

摘要:随着我国浮法玻璃技术的不断发展,生产浮法玻璃的厚度已发展至3~12mm,传统的浮法玻璃拉边机已不能满足生产的需要,所以,研制新型浮法玻璃拉边机已成为当务之急。鉴于此,在介绍现有拉边机工作原理的基础上,对已有拉边机功...

关键字: 拉边机 控制系统 厚度控制

仓储机器人领域的领先企业率先实现这一行业里程碑 马萨诸塞州威尔明顿2022年9月16日 /美通社/ -- 仓储处理自主移动机器人(AMR)市场领先企业Locus Robot...

关键字: ROBOTICS AMR USB 移动机器人

摘 要:将欧姆龙CP1H PLC应用于火化机控制系统 ,并使用程序控制燃烧系统 ,从而提高系统的稳定性以及工作效率 , 同时更好 地达到火化效果 。该系统基于欧姆龙的PLC ,具有成本低、效率高、成效好的特点。

关键字: 可编程控制器(PLC) 火化机 控制系统

智能硬件

22034 篇文章

关注

发布文章

编辑精选

技术子站

关闭