在CC2420的电路设计过程中发现,对于控制引脚SFD、FIFOP这两个用于检测中断接受数据的接口尤其重要,如果在这两条线路出现了干扰的话,在软件的实现方面将产生很多不必要的软件开销,例如去除干扰等。所以在PCB设计的时候要对这两条线加宽,不要横跨电源和地,这样会产生很大的干扰。
2.2 PC接入端硬件设计与实现
此部分将介绍接人设备的硬件设计与实现,在串口调试部分采用和手持端同样的硬件设计,而在无线接受模块,因为CC2420集合接收发送功能在同一芯片中,而应用电路也采用同样电路,故在接入设备部分可以使用相同模块。所以在这里将主要介绍USB模块的设计与实现。
在USB接IZl方面,为了使用上的方便,将设备设计成标准的HID类鼠标,这样可以直接使用操作系统自带的驱动程序而无需安装任何的驱动软件。在供电方面使用标准USB接口提供的5V电源为USB芯片供电,接人端的主要硬件架构可用图3所示:
![](../../../uploadfile/day_120507/20120507104425261.jpg)
图3接入端硬件构架图
在USB接口芯片的连接上,采用了与MCU控制器的INT0外部中断的方式连接,这样可以保证USB数据传输的实时性,而其他的控制接El使用一般的数据IO口,其8位数据传输口使用PICl6F877A的RD口连接。
3 系统软件设计与实现
在本部分,主要将介绍本设计的软件实现,其中包括接入端和手持端两大部分。
3.1整体设计方案的设计与实现环境
本次设计采用的控制芯片为PIC16F877A。
由于程序是在PC上设计,需要将程序下载到单片机上运行和测试,所以需要一个程序下载工具,本次设计所采用的程序烧录器为TOP WIN2004,该烧录器自身提供有一个下载软件,使用也非常方便,安装按照软件目录下的README一步步操作即可。
本设计中的软件均是在单片机内实现,运行在MCU内的软件控制着整个设计所要实现的模块。
但是由于MCU与传统Pc有着巨大的差别,必须考虑存储空间、运行速度、外界干扰等因素。在实现此次设计的过程中,除了首先要保证硬件环境的设计正确和优质之外,软件方面的严谨设计也是必不可少的一个重要部分。
本设计的软件总体框架图可如图4所示,为了使两端达到速度及任务的均衡,一些软件处理将在手持端完成,然后以接收端可以识别的格式打包发送过去,由图4也可以看出两端的任务处理基本处于均衡状态。
图4软件总体框架图
3.2手持端软件的设计与实现
在本部分将介绍手持终端的软件设计过程,以及各个模块部分的具体实现。软件的运行流程图如图5所示。
![](../../../uploadfile/day_120507/201205071045462944.jpg)
图5手持端软件流程
对于事件发生的获取是采用中断模式,也就是在有鼠标触摸板事件发生的时候,将唤醒MCU进行数据的采集处理,然后将采集到的PS/2数据进行一定规则的转换,然后将其打包发送。若没有数据需要处理,则进入睡眠状态以节省功耗。
3.2.1芯片初始化