- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于USB的无线触摸鼠标板的设计
当CC2420收到有符合其起始序列的时候,其自动接收帧头和帧的长度,并且SFD、FIFO、FIFOP这3根输出引脚分别输出上图所示电平。当接收到帧的目的地址时候,CC2420自动进行地址匹配,若地址匹配成功,则接收进程继续进行,如果地址匹配不成功,则马上停止接收过程,并把3根输出引脚都置为低电平。MCU在控制时可以通过检测这3根输出引脚的电平来判断接收过程的状态。
如果地址匹配成功且接收完整个帧,则可以启动数据读取进程。
在数据读取阶段,CC2420提供了帧的正确接收的初始判断,由此可以知道该帧是否被正确接收,以决定是读取该帧还是放弃该帧。按照CC2420的规定,当一个帧接收完毕之后,如果出现FIFOP=l并且FIFO=0的情况,则说明该帧错误接收,应当向其连续写人两个CC2420_SFLUSHRX命令将数据冲刷。如果没有出现这种情况,则按照帧发送的相反过程从接收缓冲中读取数据。
3.3.2 USB设备HID类设计与实现
USB数据传输的软件设计,主要是集中在USB芯片的初始化以及协议的初始化、以及之后的枚举过程,在成功枚举并被主机正确识别之后,只需将数据写入发送缓冲即可将数据发送到主机。在协议的初始化时,需要将协议中规定的各个参数设定都按照设计的要求设定,并且将各种描述符,包括配置描述符、端点描述符、接口描述符、报告描述符等初始完毕,以供枚举过程使用。
USB芯片的初始化过程的最后一步是将其SoftConnect功能打开,从这时起,主机才能开始检测到设备的接入,也从这个时候起,USB芯片才真正开始与主机通信并开始设备枚举过程。在枚举过程中,主机首先向设备发送启动信号,设备在接收到这个信号之后向主机发送回送的协议数据以供主机识别,当识别到这个信号之后,主机则开始向设备获取描述符等信息,进而完成设备枚举过程。
初始化完成之后,主循环实际上不再参与USB通信。每次PDIUSBDl2接口芯片检测到USB总线上主机发给这个设备的信号时候就触发一次单片机的外部中断。中断处理子程序要做的工作就是首先D12读取中断信息,查看D12收到了什么样的封包,然后根据主机的不同要求做出响应,中断处理程序流程如图8所示。
%%%%%%%%%%7
图8中断处理程序流程
本系统设备中,固件程序只须处理端点0的输出和输入要求就可以完成设备的正常配置和基本工作。
在图8中,SOF包处理程序是自定义的部分,是为了更好地配合设备工作而添加的代码,与设备的实质没有太大关系,而结束状态改变引起的中断在这里不需要做处理。由于USB的数据传输都是由D12自动完成,端点1和2的输出/输入中断处理就没有什么实质内容。
4结束语
本设计所实现的基于USB的无线触摸鼠标板除了具有无线空中鼠标的所以功能外,且成本低廉,容易实现,无线传输距离远(20 m),无指向性,适应性强,能广泛应用于现有的多媒体教室。
1 2 3 4
上一篇:如果模拟技术消失会怎样?
下一篇:高效率低谐波失真E类射频功率放大器的设计


