图2.2 nRF905芯片结构框图
2.2.2 芯片寄存器简介
nRF905共有五个寄存器,分别为射频配置寄存器、状态寄存器、发送地址寄存器、发送数据寄存器以及接收数据寄存器。射频配置寄存器可以配置功率、频段、频道、CRC校验等信息,发送模块的自身节点地址(RX_ADDRESS)的设置也要通过该寄存器进行配置,这样就可以和接收数据所包含的地址信息作比对,如果两者相同则通过将AM置高来通知单片机,如果不一样则丢弃该数据,如果不对RX_ADDRESS设置,则默认自己的节点的地址为广播地址,可以接收所有的广播信息;发送地址寄存器用以设置发送数据的要发送到的节点的地址即TX_ADDRESS,当数据发送时,配置寄存器里面的地址信息会自动加在发送数据的前面构成ADDR+PAYLOAD(地址+发送数据)的数据帧,如果在发送数据之前不对配置寄存器配置节点地址,芯片就会以广播的方式进行发送,发送包的格式如图2.3所示,其中导前码是自动加入的,nRF905在接收时会自动处理;经过芯片硬件电路的计算,CRC校验码会自动加在数据的尾部,是否要启用CRC校验码可以通过配置寄存器来进行选择,校验码可以选择8位和16位;状态寄存器主要包含了数据准备好引脚状态信息和地址匹配引脚状态信息;由于发送数据寄存器TX_PAYLOAD有四个字节大小,所以芯片一次最多只能发送四个字节,用户把将要发送的数据写入到该寄存器,通过控制芯片的工作模式将数据发送出去;接收数据寄存器RX_PAYLOAD也只有四个字节大,所以一次最多也只能接收四个字节的数据,单片机会根据DR(数据接收或发射是否完成)信号在接收数据正确的情况下读取该寄存器的数据。文献综述
图2.3发送数据包格式
2.2.3 频率机制
nRF905芯片的频道的的设置时通过配置寄存器的CH_NO和HFREQ_PLL来进行计算的,计算公式为:
(2.1)
公式中HFREQ_PLL是个一位寄存器,0表示芯片工作的433MHz频段,1表示芯片工作的868和915MHz频段。CH_NO是个九位寄存器。所以由以上的公式可以看出,该芯片有着大量的频道支撑。本设计所用的频道是430MHz,根据上述公式便可以算出对应的CH_NO是001001100,HFREQ_PPL对应433MHz频段,所以为0。
2.2.4 管脚信息
nRF905有着14个引脚(如图2.4所示),管脚1为电源管脚,工作电压为直流电压,在1.9~3.6V之间;管脚2为TX_EN端口,是数字输入端,控制nRF905工作模式是发射还是接收;管脚3的TRX_CE端也是数字输入端,是芯片发射或接受的使能端;管脚4的PWR_UP端是数字输入端表示芯片是否上电;管脚5为uCLK时钟输出,该引脚在这个模块中是废弃的,只是为了能够向后兼容;管脚6为CD数字输出端,用于载波检测,检测到载波输出时CD置高;管脚7为AM数字输出端,用于地址匹配,载波数据中检测到的地址与自身的配置的接收地址相同时AM置高;管脚8为DR数字输出端,用于表示数据的接收或者发送的完成,当接收数据的数据字节存储有效时DR置高;管脚9为SPI输出端MISO;管脚10为SPI输入端MOSI;管脚11为SPI时钟CLK;管脚12为SPI是使能端CSN;管脚13和14都是数字地GND。