2.4GHz无线鼠标键盘接收器的设计(二)
这两种封包在应用层协议中的用途不同。数据包主要用于传送发射端和接收端之间的数据信息,应答包则是在自动应答功能选项被使能之后才会出现的,以便于发送 端检测有无数据丢失。一旦数据丢失,则通过自动重发功能将丢失的数据恢复。增强型的ShockBurst模式可以同时控制应答和重发功能而无需增加MCU 工作量。
在SCK时钟控制下,数据在主从设备间传输,而且严格地遵守SPI通信的时序。作为接收端(PRX),nRF24L01通过2.4 GHz无线通信技术与发射端(PTX)进行数据交换。收发器接收到数据后,通过中断nIRQ通知MCU已接收到数据,可以进行读入操作,然后MCU通过 MISO数据传输线读入数据。nRF24L01在接收到数据之后,会自动切换到发送模式发送应答信号给发射端(PIX),这样就完成了一次数据传输过程。
2.2 USB设备枚举过程
USB的枚举过程是USB规范中一个非常重要的“动作”或“过程”。这个动作将会让PC知道何种USB设备剐接上以及其所含的各种信息。若要完成一个设备 枚举的过程,需要执行诸多的数据交换以及设备请求。图4描述了一个HID设备的枚举过程,由于本设计是针对鼠标键盘复合设备的接收器,所以在取完第一次报 告描述符后还需要再取另一个设备的报告描述符。
3 固件设计
固件设计使用HT-ICE仿真器,它提供了多种实时仿真功能,包括多功能跟踪、单步执行以及设定断点功能。图5描述了USB无线鼠标键盘 接收器的程序执行流程。在程序中,键盘使用端点1,配置为输入;鼠标使用端点2,配置为输入。都采用USB通信协议中的中断传输。采用“轮询”的工作机 制,轮询间隔为8 ms。
接收器上电后,完成系统的初始化,包括MCU的初始化和收发器的接收模式配置过程。然后系统进入接收数据包的状态中,一旦收到数据包就通过中断的形式通知 MCU有数据包到来,MCU就会通过I/O口模拟SPI总线通信过程从nRF24L01中将接收到的数据读出,然后将数据写到相应的USB端点FIFO中。主机通过查询的方式读取各端点的数据信息,然后按照USB规范定义的鼠标和键盘的协议产生相应的动作(如鼠标的移动和按键的值)。
无线收发器的初始化过程:1)配置本机地址和要接收的数据包大小;2)配置CONFIG寄存器,使之进入接收模式,把CE置高;3)130μs 后,nRF24L01进入监视状态,等待数据包的到来;4)当接收到正确的数据包(正确的地址和CRC校验码),nRF24L01自动把字头、地址和 CRC校验位移去;5)nRF24L01通过把STATUS寄存器的RX_DR置位(STATUS一般引起微控制器中断)通知微控制器;6)微控制器把数 据从nRF24L01读出;7)所有数据读取完毕后,可以清除STATUS寄存器。nRF24L01可以进入4种主要模式之一。
4 结束语
本系统基于8位单片机Hr82K95E和nRF24L01型射频收发器设计了一个用于无线鼠标键盘复合设备的USB无线接收器。该接收器 能够实现鼠标键盘复合设备的全部功能,具有成本低、体积小、通信方向不受制约和通信距离较远等优点,使其替代蓝牙及红外遥控设备成为可能,实践表明,该接 收器具有广泛的应用前景。
评论