摘 要:由于Nordic公司2.4GHz的双向射频收发芯片NRF2401没有标准的SPI接口。所以在实际的应用过程当中很难发挥它的高速无线传输的性能。针对该问题,利用带SPI接口的LPC2104 ARM内核微控制器,介绍一种能实现高速无线数据传输的接口方法。 NRF2401与微处理的接口有两种方式:I/O直接连接方式和SPI连接方式,但是两种连接的方式各有优缺点。下面从NRF2401的时序上分析两种方法的优点及存在的问题,并介绍一种能有效地避开两种方式的缺点,同时又能发挥两种方式的优点的设计方法。下面假设CPU的晶振运行在11.0592MHz. 2 I/O直接连接方式的优点及存在的问题 这种连接方式的优点是可以非常方便地与各种高低速CPU接口,并且传输的误码率很低。缺点是因为CPU和NRF2401通信的方式是模拟SPI的串行移位,所以不得不耗费大量的时间来模拟SPI的时序,导致CPU与NRF2401的数据传输速度成为整个系统传输速度的瓶颈。通过图1的时序图分析导致传输速度下降的原因。 图1 NRF2401以ShoekBurst方式发送的时序图 通过时序图(图1)可以发现当希望以Shock-Burst方式发送一个数据包的时候,需要经过下面几个阶段: (1)边沿之间的延时Td,最短时间是50 ns。 (2)从CE引脚出现高电平到可以开始传输数据的延时Tce2data,最短时间是5 us。 (3)数据传输过程中的数据建立时间Ts,最短时间为500 ns。保持时间Th,最短时间为500 ns。 (4)由Stand-by模式到ShockBurst发射的延时Tsby2txSB,最短时间为195us。 (5)NRF2401真正发射刚才写入FIFO中的数据包的时问Toa。 NRF2401的数据发送方式是按照数据包的方式发送的。每发射一个数据包都要经过上述的5个阶段。所以计算发射每个数据包耗费的时间就可以计算出整个系统数据发射实际能达到的速度。现在我们就按照下面的NRF2401配置方式来计算。 ① 设定本机的地址长度为32 bit。 ② 本机每次发送数据和接收数据的长度为208 bit。 ③ 发送速率1 Mbps,CRC16,CRC使能。 ④ CPU的晶振为11.0592 MHz。 总时间 T=Td+Tce2data+(Ts+Th)*208+Tsby2txSB+Toa =Td+Tce2data+(Ts+Th)*208+Tsby2txSB+1 us*256 = 50ns+5us+(500ns+500ns)*208+195us+256us = 664.05 us 发送速率 V=208/(664.05/1000000)≈313 kbps 这是系统能够达到的最高的实际发送速率。但是在用I/O直接连接方式的时候,用下面的方法(如图2)模拟SPI的时序。可以发现用这样的方法,每发送一个数据所需时间远远超过1 us。假如(Ts+Th )部分的时间变成10 us时,速率将降低为75kbps,可见要想提高整个系统数据发送的速率,在数据包的长度达到最长的时候,只有通过缩短总时间中的(Ts+Th)部分才能达到。而利用ARM的SPI接口就可以达到目的。 图2 模拟SPI时序的流程图 3 SPI连接方式的优点及存在的问题 这种连接方式的特点是可以充分发挥SPI接口的高效以及NRF2401高速无线传输的优势,具有大的数据吞吐量。而且CPU只要将要发送的数据写入SPI的缓存,就可以执行别的其他程序,不用一直围绕发送数据去模拟时序而浪费宝贵的CPU时间。但是因为在用SPI进行数据传输的过程中会有误码产生,如果CPU直接用SPI的方式对nRF2401进行初始化,初始化成功率不是很高,也就会导致数据无法发送。下面就介绍一种能提高发送速率,同时又能保证成功初始化NRF2401的方法。 4 系统硬件及软件设计 与LPC2104的SPI接口相比较NRF2401只有一个DATA数据端口与之对应。所以将LPC2104的SPI接口MOSI和MISO接2k的电阻出来,另一端接到NRF2401的DATA端口,以实现阻抗匹配和隔离(见图3)。 软件设计的过程中,需要注意的是,因为在用SPI进行数据传输的过程中会有误码产生,如果LPC2104直接用SPI的方式对nRF2401进行初始化会导致初始化失败,所以采用先将LPC2104的MOSI配置成普通的I/O 口,以较慢的发送速率完成NRF2401的初始化工作,然后再将LPC2104的I/O配置成SPI接口并且初始化SPI寄存器(见图4)。这样可以保证对NRF2401芯片的配置字准确无误。 图3 硬件连接示意图 图4 软件流程示意图 5 结论 采用这种接口方式,能显著地提高对NRF2401的配置成功率和系统的数据传输速率。配合一定纠错办法,我们在HOLTER(心电数据采集器)的无线数据传输中采用了这种方式。这种接口为嵌入式系统的无线数据传输提供了一种比较实用且经济的解决方案。
|