刘红光,路瑞军,赵艳,李元耀,张欣
(天津市计量监督检测科学研究院,天津300192)
基于FPGA的无线通信系统设计
刘红光,路瑞军,赵艳,李元耀,张欣
(天津市计量监督检测科学研究院,天津300192)
nRF24L01是Nordic公司推出的一款工作在2.4~2.5 GHz世界通用ISM频段的新型高速无线收发器芯片,在中短距离无线通信领域应用非常广泛,其参数配置、模式转换、数据收发等操作都是通过SPI总线完成的。采用硬件的方法,实现了通信系统真正意义上数据收和发的同时进行,提高了数据传输的实时性。通过实验证明,基于FPGA的无线通信系统数据,传输效率高、性能稳定、可扩展性强,具有很高的应用价值。
FPGA;nRF24L01;SPI总线;Verilog
在现代工业数据传输现场,有线电缆往往扮演着十分重要的角色,与此同时,也引来了很多有线传输束缚仪器作业的系列问题,因此数据无线通信系统的研制越来越受到关注。nRF24L01芯片是挪威Nordic公司的一款射频收发器件,该芯片的数据传输速率可以高达2 Mb/s。nRF24L01芯片在提供较高数据传输速率的同时,只需要花较小的功耗,因此该芯片在中短距离的无线传输领域应用十分广泛。芯片的数字传输包括参数配置、模式转换、数据收发在内的操作都是通过SPI接口完成的。在目前的市场上,控制器件在控制芯片收发数据的时候大都采用软件扩展,利用I/O口通过软件模拟SPI接口进行数据交换。然而这种情况严重影响了无线芯片数据传输的高速性能,制约了无线通信系统的传输速率,类似问题在以单片机控制的无线通信系统里非常普遍,亟待解决。相比较单片机的控制,FPGA设计SPI总线只要对设计做简单的改动,即可对SPI总线的数据位数、工作模式等进行扩展,因此基于FPGA设计的无线通信系统,具有便于修改、可扩展性强的特点。
根据nRF24L01PA芯片的读写时序可以知道SPI主模块的工作模式应该是在CPOL=0,CPHA=0模式下进行的,本文选用的nRF24L01PA芯片模块如图1所示。整体的无线系统包括射频模块、控制模块、SPI主模块、串口模块、计算机。其中控制模块、SPI主模块、串口模块是通过FPGA设计实现的。
图1 nRF24L01PA模块
图2为nRF24L01芯片的引脚功能说明,其中CSN是芯片的输入引脚,作为SPI从机的片选信号,由主机控制输出。SCK为芯片的输入引脚,作为SPI的时钟信号。由此可以知道本文设计的SPI总线接口模块应为主机,nRF24L01的SPI模块为从机。
图2 nRF24L01引脚功能图
SPI时钟生成模块的设计如下:
使能信号(en)是SPI_Master模块的输入信号,当需要启动SPI_Master模块进行SPI数据传输的时候en置高,那么就需要设计一个模块来检测使能信号的变化情况。模块设计如下:
图3为使能检测模块的RTL视图。
图3 使能检测模块的RTL视图
每当一个周期的SPI发送完成以后,计数器count加1。以此类推,后面7个周期的数据传输过程与第一个周期类似,当全部8位数据传输完成之后,将字节传输完成信号byte_end置1。移位寄存器模块的RTL视图如图4所示。至此,完成了整个SPI主模块的设计,在QuartusⅡ软件下对SPI主模块进行综合与实现。
图4 移位寄存器模块的RTL视图
在本文设计中,串口是计算机和FPGA进行数据通信的桥梁。本文的设计中串口模块包括发送模块和接收模块,波特率设计为115 200 b/s(可调),发送的数据帧格式为:1位起始位,8位数据位,无校验位,1位停止位。上位机是通过串口调试助手进行调试的。通过FPGA设计的nRF24L01控制模块主要工作是控制射频模块,协调SPI模块和串口模块完成数据的采集和发送。数据的发送和接收流程如图5和图6所示。
图5 数据发送流程图
该系统的设计进行了最后的板级验证,使用ModelSim⁃Altera仿真工具对各个模块进行了仿真,实验证明设计的无线系统工作稳定,数据的传输速率有了明显的提高,达到了预期的目的。如图7所示为基于FPGA实现的无线通信系统实物连接图。其中EP2C5T144C8N开发板、USB转串口模块、nRF24L01PA模块组成通信系统的一端。USB转串口模块负责电脑和开发板的数据传送。
图6 数据接收流程图
图7 系统实物连接图
通过计算机向发送端传输1 056 KB的数据包,数据经过串口模块、控制模块、SPI模块、射频模块发送出去。接收端接收到有效数据后通过串口调试工具在计算机上显示出来,实验证明接收到了1 056 KB数据,数据正确,没有发生掉包现象。另外,nRF24L01PA模块设计了功率放大电路,经过实验测试在室内的情况下,整个无线通信系统的通信距离能达到15 m,证明该无线系统的实用性很强。
无线通信系统实用性强,而高速率的无线收发芯片nRF24L01应用十分广泛,本文是在实际应用的基础上,提出了一种基于FPGA实现的无线通信系统的设计。经验证该无线通信系统工作稳定、数据传输效率高、可扩展性强,发挥了nRF24L01芯片高速通信的优势。
本文创新点:根据SPI总线规范,采用硬件的方法扩展SPI接口,用Verilog HDL设计并实现带有移位寄存器的SPI总线模块、nRF24L01PA控制模块、串口模块,使用仿真工具ModelSim对其进行仿真,并在FPGA上完成了下载与验证。采用EP2C5T144C8N完成整个系统的控制和数据采集功能,性能大大优于传统的单片机控制数据无线通信系统。该系统具有数据传输速率高、简洁高效、便于修改、可扩展性强、工作稳定可靠等特点,提高了nRF24L01芯片无线数据传输的工作效率,具有较强的实用性。
[1]李大江,崔建明.一种基于FPGA的可配置SPI Master接口设计实现[J].电子技术应用,2010,36(10):60⁃62.
[2]周毅,朱超,吴武臣,等.基于FPGA的RFID无线通信系统的实现[J].现代电子技术,2010,33(17):69⁃72.
[3]王珏文,金伟信,蔡一兵,等.基于FPGA的SPI总线接口的实现[J].现代电子技术,2010,33(14):102⁃104.
[4]王松.基于FPGA的串行外围接口SPI设计与实现[J].微计算机信息,2010(32):117⁃119.
[5]杨承富,徐志军.SPI总线接口的FPGA设计与实现[J].军事通信技术,2004,25(2):72⁃76.
[6]夏宇闻.Verilog数字系统设计教程[M].北京:北京航空航天大学出版社,2003.
[7]梁祥,封吉平,安学军.基于PC/104总线与CPLD的SPI接口设计[J].微计算机信息,2005(35):29⁃32.
Design of FPGA⁃based wireless communication system
LIU Hongguang,LU Ruijun,ZHAO Yan,LI Yuanyao,ZHANG Xin
(Tianjin Institute of Metrological Supervision and Testing,Tianjin 300192,China)
nRF24L01 is a new high⁃speed wireless transceiving chip,which is launched by Nordic Company,works at 2.4~2.5 GHz of universal ISM frequency band,and is widely used in the domain of medium or short distance wireless communica⁃tion.Its parameter configuration,mode conversion and data transceiving are all completed by SPI bus.Hardware design method is adopted to realize communication system′s data transmitting and receiving in true sense at same time,and improve the real⁃time performance of data real time transmission.The experiment result proves that wireless communication system based FPGA has high transmission efficiency,stable performance,strong scalability and high application value.
FPGA;nRF24L01;SPI bus;Verilog
TN926⁃34
A
1004⁃373X(2015)13⁃0036⁃03
刘红光(1986—),男,河北衡水人,硕士研究生。研究方向为无线通信与电子测控技术。
2015⁃01⁃25