基于nRF24L01和Actel FPGA的智能探测系统设计
电子元件,电子元器件深圳市创唯电子有限公司
您现在的位置: 首页 > 电子技术
基于nRF24L01和Actel FPGA的智能探测系统设计  2012/3/1
摘要:设计了基于nRF24L01无线数据传输芯片和FusionStartKit开发板的智能探测系统。通过开启nRF24L01的ACKPAYLOAD功能实现车载系统与上位机之间的双向通信,采用Actel公司带有APB3总线的8051S软核在FusionStartKit开发板上构建片上系统,使用MFC编写Windows环境下的人机交互界面,实现了具有实时数据传送、自动避障、远程操控等功能的智能探测系统。目前一些恶劣或危险的环境人类仍然无法置身其中进行现场检测,如出现险情的矿井地

    摘要:设计了基于nRF24L01无线数据传输芯片和Fusion StartKit开发板的智能探测系统。通过开启nRF24L01的ACK PAYLOAD功能实现车载系统与上位机之间的双向通信,采用Actel公司带有APB3总线的8051S软核在Fusion StartKit开发板上构建片上系统,使用MFC编写Windows环境下的人机交互界面,实现了具有实时数据传送、自动避障、远程操控等功能的智能探测系统。

目前一些恶劣或危险的环境人类仍然无法置身其中进行现场检测,如出现险情的矿井地道、地形崎岖的岩洞等,很难取得现场的参数。在这种情况下只有借助于智能探测装置。因智能小车控制方便、行动灵活,对比其他载体工具更容易胜任探测任务,因此成为各种探测仪器的首选工具。

本文设计的智能探测系统以小车为载体,将所测得的现场参数通过nRF24L01无线模块实时传回上位机,具有快速灵活的特点;在实际工作时可左右转向和后退,自动躲避障碍物;同时该小车操控方便,可通过MFC搭建的人机交互界面利用鼠标和键盘对小车进行远程控制。

1、系统总体结构设计

该系统基于Actel FPGA实现,采用两块Fusi。nStartkit开发板,一块作为车载控制板,另一块作为中转板。车载控制板负责采集温度、湿度、板载电压、当前路况以及人体检测等现场信息,驱动小车运行,同时通过无线发送现场信息以及接收上位机的控制命令。中转板负责将接收到的无线信号通过串口转发给PC机,同时将PC机由串口返回的控制指令利用无线模块发送给车载控制板。PC机上采用MFC编写人机交互界面,显示小车所在环境的相关信息,同时提供鼠标、键盘等完善的操控手段。

2、系统硬件设计

2、1无线数据传输芯片nRF24L01

2.1.1芯片简介H

nRF24L01是挪威NorDic公司的单片2.4 GHz无线收发一体芯片,有多达125个频道可供选择,支持1 Mb/s和2 Mb/s传输速率。该芯片采用SPI接口进行数据读写和参数配置,以寄存器映射方式对各个寄存器进行管理,同时具有自动重传、动态有效信息长度(DPL)、应答信号携带有效信息(ACK PAYLOAD)等高级功能。

2.1.2功能

动态有效信息长度(DPL)指的是发送端的nRF24L01芯片通过写人有效数据区的数据长度决定当前一帧数据的大小,而接收端则通过接收到的数据帧中的控制域信息而不是寄存器中定义的数据长度提取有效数据。这个功能极大地提高了无线信道的使用率,同时减少了冗余数据的传播,降低了数据在空中滞留的时间和数据被污染的概率。配合nRF24L0l的CRC校验和自动重传功能,在有效地降低数据误码率的同时保证了数据传输的时效性。

应答信号携带有效信息(ACK PAYLOAD)指nRF24L01芯片在开启自动重传和DPL的基础上实现的双向通信功能。图2为一对无线模块之间的一次携带应答有效信息的数据传输过程。主发送模块(PTX)发送完第1帧数据后,自动置为接收模式,等待主接收模块(PRX)发送应答信号或携带有效数据的应答信号。主接收模块收到主发送模块发送的第1个数据帧后,若此时有需要附加的有效数据,则在发送完ACK信号后继续发送有效数据。而主发送模块收到ACK信号后继续接收有效信号,直到空中没有残留的无线信号再开始发送第2帧信号。

使用ACK PAYLOAD可以实现车载系统和PC机的双向通信,该功能很好地解决了手动切换无线收发状态导致双方互相等待的问题,同时只在需要对车载控制板进行控制的时刻附带应答有效信息,可以减少不必要的通信过程,大大提高了系统稳定性。

与《基于nRF24L01和Actel FPGA的智能探测系统设计》相关列表
电话:400-900-3095
QQ:800152669
库存查询
Copyright(C) 2011-2021 Szcwdz.com 创唯电子 版权所有 备案号:粤ICP备11103613号
专注电子元件代理销售  QQ:800152669  电子邮件:sales@szcwdz.com  电话:400-900-3095