泸州市一期产业引导基金招募普通合伙人
06-17
摘要:设计了一种基于nRF24L01无线数据传输芯片和Fusion StartKit开发板的智能检测系统。
通过开启nRF24L01的ACK PAYLOAD功能,实现车载系统与上位机的双向通信。
采用Actel带有APB3总线的S软核在Fusion StartKit开发板上搭建片上系统,并在Windows环境下采用MFC编写人机交互。
接口,实现具有实时数据传输、自动避障、远程控制等功能的智能检测系统。
目前,人类还无法在一些恶劣或危险的环境中进行现场检查,例如危险的矿井巷道、地形崎岖的洞穴等,难以获取现场参数。
在这种情况下,只能使用智能检测设备。
由于智能小车易于控制、移动灵活,比其他载体工具更能胜任检测任务,因此成为各种检测仪器的首选工具。
本文设计的智能检测系统以汽车为载体,通过nRF24L01无线模块将测量的现场参数实时传输回上位机。
快速、灵活;实际工作时可左右转弯、后退,并自动避障。

同时,小车操控方便,可以通过MFC构建的人机交互界面,使用鼠标和键盘进行远程控制。
1。
系统总体结构设计 系统基于Actel FPGA实现,采用两颗Fusi。
nStartkit开发板,一个用作车辆控制板,另一个用作转接板。
车辆控制板负责采集温度、湿度、车载电压、当前路况和人体检测等现场信息,驾驶汽车行驶,同时无线发送和接收现场信息来自上位机的控制命令。
中继板负责将接收到的无线信号通过串口转发给PC机,同时将PC机通过串口返回的控制指令利用无线模块发送给车辆控制板。
使用MFC在PC上编写人机交互界面,显示小车所在环境的相关信息,同时还提供鼠标、键盘等完整的控制方法。
系统结构如图1所示。
GHz无线收发集成芯片,多达多个通道可供选择,支持1 Mb/s和2 Mb/s传输速率。
芯片采用SPI接口进行数据读写和参数配置,并采用寄存器映射的方式管理各个寄存器。
它还具有自动重传、动态有效消息长度(DPL)、携带有效信息的响应信号(ACK PAYLOAD)等先进功能。
2.1.2 功能 动态有效报文长度(DPL)是指发送端nRF24L01芯片通过写入有效数据区的数据长度来确定当前帧数据的大小,而接收端通过将数据写入有效数据区来确定当前帧数据的大小。
帧中的控制字段信息而不是寄存器中定义的数据长度提取有效数据。
该功能大大提高了无线信道的利用率,同时减少了冗余数据的传播,减少了数据在空中停留的时间以及数据被污染的概率。
再加上nRF24L0l的CRC校验和自动重传功能,可以在保证数据传输及时性的同时,有效降低数据错误率。
响应信号携带有效信息(ACK PAYLOAD)是指nRF24L01芯片基于开启自动重传和DPL实现的双向通信功能。
图2示出了一对无线模块之间携带有效响应信息的数据传输过程。
主发射模块(PTX)发送第一帧数据后,自动设置为接收模式,等待主接收模块(PRX)发送响应信号或携带有效数据的响应信号。
主接收模块收到主发送模块发送的第一个数据帧后,如果此时有需要附加的有效数据,则在发送ACK信号后继续发送有效数据。
主发送模块收到ACK信号后,继续接收有效信号,直到空中没有残留的无线信号,才开始发送第二帧信号。
使用ACK PAYLOAD可以实现车载系统与PC之间的双向通信。
该功能有效解决了手动切换无线收发器状态导致双方等待的问题。
同时,只有当车辆控制面板需要控制时它才会做出反应。
有效的信息可以减少不必要的通信过程,大大提高系统的稳定性。
图2 1次数据传输携带ACK PAYLOAD示意图 2.1.3 实现该功能的配置方法 要实现nRF24L01的ACK PAYLOAD功能,需要经过以下步骤: 首先,执行无线模块的基本配置,包括发送选择接收模式(CONFIG)、使能自动重传功能(EN_AA)、使能接收地址(EN_ADDR)、设置重传时间非零(SET-UP RETR)、 ETC。
;然后同时使能DPL和ACK PAYLOAD功能,要实现这两个功能,必须在完成第一步后使用nRF24L01白带的ACTIVATE命令加0x73数据打开默认隐藏的两个寄存器FEATURE和DYNPD 。
通过设置这两个寄存器,可以实现数据的双向通信。
但需要注意的是,接收端开启DPL后,必须使用R_RX PL WID命令读取当前数据帧的有效数据长度,写入ACK必须使用W ACK PAY-LOAD命令将有效负载放入 FIFO。
2.2 Core 5架构 Core S是Actel推出的基于APB3总线的IP核。
它兼容所有指令,并具有许多51单片机所没有的独特功能: (1)可配置 JTAG接口调试功能可以使用Flash_Pro下载器作为其调试工具;优化指令执行速度,设置内部流水线,单时钟周期执行一条指令,是普通51单片机的12倍。
(2)采用APB3外设总线结构和SER寄存器内存映射方式来管理外设,并使用外部扩展的64KB数据空间的最高4KB作为APB3外设的寄存器内存映射地址。
每个 APB3 外设占用 B 的地址,因此最多可以添加 16 个外设。
(3)使用CoreConsole软件通过图形界面添加CoreS等外设,直观、方便。
图3是基于CorelS和APB3总线,使用CoreConsole开发的50PC系统的典型架构。
该软件的开发过程与Altera基于NIOS II处理器的soPc开发过程类似,但它也有自己独特的优点:当系统不复杂且控制部分远远多于计算处理时,Core⊥s可以用于灵活快速的开发。
,通过安装ISA-Actel5 1为Keil提供调试驱动程序,可以直接使用Keil编写代码并进行在线程序调试,优化后的指令执行速度可以满足大多数应用的要求。
图3 CoreConsole下基于CoreS的开发示例 系统设计步骤: (1) 使用CoreConsole图形化设计片上系统所需的总线和外设,包括SPI、PWM、GP10、 UART等模块;配置各模块与APB3总线的连接关系,正确分配外设地址;然后生成。
将V文件导入Actel集成开发环境Libero中。
(2) 使用Libero的Flash Memory System Builder将Fu_S10n内部的Flash模块配置为CoreS的外部程序空间。
必要时也可使用福丝。
n StartKit开发板上的SRAM作为CoreS的外部数据空间。
(3)编译综合工程并下载到开发板,通过Keil编写程序并调试。
3。
系统软件设计 3.1车辆控制系统软件设计 车辆系统是本系统的核心部分。
担负着现场环境检测、远距离数据传输、未知区域检测等重要功能。
因此,该部分的设计对可靠性和稳定性有很高的要求。
系统软件流程图如图4所示。
图4车辆控制系统流程图 车辆系统软件包含两部分功能:采集现场各种参数和实现各种运行模式。
通过温湿度传感器和人体红外传感器,采集现场环境的温湿度值以及是否有人体信号;通过无线回传参数,确定小车当前的运行模式,包括自动运行模式、半遥控模式和全遥控模式。
自动运行模式下,汽车会根据采集到的光电管组信息分析当前路况,从而做出相应的行驶路径修正;半遥控模式下,鼠标控制Windows界面的参数来控制小车的动作;在全遥控模式下,控制键盘可以直接控制小车的运行。
当车载系统自动运行时,它使用内部算法来选择路径并避开障碍物。
由于光电管组的信息相对较少,因此采用查表映射的方法进行舵机电机驱动控制,即对光电管组采集的信息进行分类,不同的电机和舵机驱动值?根据不同的信息分配给汽车。
光电管组采集的信息为6位数据,即值为0到63,作为数组的下标。
根据下标表示的类型,在数组内容中设置不同的经验值。
通过大量的运行测试得到了理想的参数。
当车载系统检测到有小障碍物时,会在表格中查找舵机电机参数,然后转向一定角度避开障碍物并继续行驶。
当检测到较大障碍物且无法绕过时,车载系统会倒车返回安全区域继续运行。
由于光电管组上存在干扰信号,所以在算法上进行如下滤波处理:利用记忆功能保存之前的行驶路线,通过与当前输出状态进行比较来判断是否是干扰信息来决定是否丢弃当前的控制量。
上述算法保证了车辆系统在运行过程中出错的概率最小化。
3.2 人机交互界面设计 人机交互界面是使用微软基础类(MFC)开发的基于活动框架结构的应用程序。
CMSComm类用于处理转接板与PC机之间的串行通信,通过拦截软件系统的消息传递函数来实现键盘值的判断。
本文详细介绍了nRF24L01无线芯片的DPL和ACKPAYLOAD功能,实现了车载系统与上位机的双向通信。
它使用Actel的CoreConsole工具构建SoPC片上系统,并在PC上设计人机交互界面。
,改进了系统的操作和控制,实现了具有实时数据传输、自动避障、远程控制等功能的智能检测系统。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-17
06-17
06-18
06-17
最新文章
使用电子管有哪些注意事项?如何检查电子管之间是否短路?
博通支付1200万美元和解SEC财务欺诈指控
八名运营商高管确认加入虚拟运营商
内蒙古农牧区雷电灾害成因分析及防雷对策
北京联通将5G应用于世园会远程医疗急救
TD-SCDMA最后一轮冲刺测试启动,产业前景更加光明
专访阿里云总裁王健:云计算服务平台梦想成真
USB2.0控制器CY7C68013的接口设计与实现