FPGA内建FIFO的基本工作原理
FIFO即先进先出队列,采用环形存储电路结构,是一种传统的按序执行方法。先进入的指令先完成并引退,随后才执行第二条指令,是一种先进先出的数据缓存器。根据FIFO的读写时钟频率是否相同,可将FIFO分为同步FIFO与异步FIFO。FIFO的应用可以很好地协调不同时钟、不同数据宽度数据的通信,满足高/低速时钟频率要求。与普通存储器相比,FIFO没有外部读写地址线,使用方便。
采用FPGA异步FIFO连接基于ARM处理器的高速无人机陀螺仪模块与相对低速的无线数据传输外设。从硬件的观点来看,FIFO实质上就是一块数据内存。异步FIFO采用2个时钟信号控制其读写操作,分别为写时钟(wrclk)和读时钟(rdclk)。一个用来写数据,即将数据存入FIFO;另一个用来读数据,即将数据从FIFO中取出。与 FIFO操作相关的有两个指针:写指针指向要写的内存部分;读指针指向要读的内存部分。FIFO控制器通过外部的读写信号控制这两个指针移动,并由此产生 FIFO空信号或满信号。读写时钟相互独立设计,有效地保证了FIFO两端数据的异步通信。
基于ARM的无人机陀螺仪接口结构
由于机载燃油和电能储备的制约,无人机载设备要求小巧轻便,能效比高,因此对芯片的选型及电路结构提出了较高的要求。综合稳定性、数据精度、工作温度、封装体积以及能耗等各方面因素,对无人机陀螺仪传感器经行严格筛选,确定了所示的陀螺仪方案。无人机陀螺仪的主控芯片选用ARM 32 bit CortexTM M3内核的STM32F103T8($3.0391)处理器。其内建64 KB的闪存存储器和20 KB的运行内存,以及7通道的DMA、7个定时器、2个UART端口等。通过板载的8 MHz晶体和STM32内部的PLL,控制器可以运行在72 MHz的主频上,为姿态解算提供强大的硬件支持。
三轴加速度与三轴角速度传感器采用Invensense公司的MPU-6050($4.3178)单芯片方案,此芯片为全球首例整合性6轴运动处理组件,相比其他多芯片实现方案,免除了整合陀螺仪与加速度器轴间差的问题,大大减少了封装空间。三轴磁力计采用Honeywell公司的HMC5883L($1.2500)芯片,此芯片内部采用先进的高分辨率HMC188X系列磁阻传感器与行业领先的各向异性磁阻技术(AMR),具有轴向高灵敏度和线性高精度的特点,测量范围从毫高斯到8高斯,稳定可靠。气压传感器采用博世公司的BMP180芯片,该芯片性能卓越,绝对精度可以达到0.03 hpa,并且功耗极低。传感器采用强大的7 pin陶瓷无引线芯片承载(LCC)超薄封装,安装使用方便。各传感器与ARM处理器采用I2C总线连接,示意图如图3所示。
陀螺仪与FIFO及FPGA的连接
处理器采集各传感器信号,在ARM内部进行姿态解算,进而得到俯仰角、横滚角、航向角、气压、高度和温度信息。为了及时将解算得到的数据发送回地面站,处理器控制写请求信号wrreq和写时钟wrclk将这些数据高速写入FIFO,然后回到飞行控制程序,进行下一周期的姿态解算。FIFO在数据写满后,写满标志位 wrfull会置高电平,ARM处理器通过检测写满标志位的状态来判断是否继续写入数据。与此同时,在FPGA中通过检测所读取FIFO是否为空标志位 rdempty来判断是否继续读取数据。读空标志位为低电平代表FIFO中有数据,可以读取,则配合读请求信号rdreq和读时钟rdclk及时读取数据,直到将数据全部读出,标志位变为高电平,此时FIFO中已经没有数据。基于ARM的陀螺仪与FIFO及FPGA的连接如图4所示。
TOP5盘点无人机飞控大脑与MEMS传感器
制造一个大脑并不容易。大黄蜂的大脑中有100多万个相互联系的神经元细胞,帮助它完成各种意识活动。2014年年末,一个科学家团队曾给一个有轮子的乐高机器人安装过一个数字蠕虫大脑,但是这样的大脑只有302个神经元细胞。到目前为止,“绿色大脑计划”团队只重建了黄蜂大脑中与视觉有关的部分。但是这样的成果已经非常令人震惊了。无人机利用视频摄像头和人造大脑软件沿着走廊飞行,飞行模式就和经过训练完成同样任务的大黄蜂一模一样。现在,这个虚拟大脑还只能追踪位置的移动,而无法识别颜色或形状。“绿色大脑计划”的科学家希望,过一段时间能够用数字重建完整的大黄蜂大脑,并制造出第一台像大黄蜂一样自动行动的机器人。但是现在,他们的重点还放在重建大黄蜂的视觉系统和嗅觉系统。
飞控的大脑:微控制器
在四轴飞行器的飞控主板上,需要用到的芯片并不多。目前的玩具级飞行器还只是简单地在空中飞行或停留,只要能够接收到遥控器发送过来的指令,控制四个马达带动桨翼,基本上就可以实现飞行或悬停的功能。意法半导体高级市场工程师介绍,无人机/多轴飞行器主要部件包括飞行控制以及遥控器两部分。其中飞行控制包括电调/马达控制、飞机姿态控制以及云台控制等。目前主流的电调控制方式主要分成BLDC方波控制以及FOC正弦波控制。
新唐的 MCU负责人表示: 多轴飞行器由遥控, 飞控,动力系统, 航拍等不同模块构成, 根据不同等级产品的需求,会采用到不同CPU内核。例如小四轴的飞行主控, 因功能单纯, 体积小, 必须同时整合遥控接收, 飞行控制及动力驱动功能;中高阶多轴飞行器则采用内建 DSP 及浮点运算单元的, 负责飞行主控功能,驱动无刷电机的电调(ESC)板则采用MINI5($1.0889)系列设计。低阶遥控器使用 SOP20 封装的4T 8051 N79E814;中高阶遥控器则采用Cortex-M0 M051系列。另外, 内建ARM9及H.264视频边译码器的N329系列SOC则应用于2.4G及5.8G的航拍系统。在飞控主板上,目前控制和处理用得最多的还是MCU而不是CPU。由于对于飞行控制方面主要都是浮点运算,简单的ARM Cortex-M4内核32位MCU都可以很好的满足。有的传感器MEMS芯片中已经集成了DSP,与之搭配的话,更加简单的8位单片机也可以做到。
高通和英特尔推的飞控主芯片
CES上我们看到了高通和英特尔展示了功能更为丰富的多轴飞行器,他们采用了比微控制器(MCU)更为强大的CPU或是ARM Cortex-A系列处理器作为飞控主芯片。例如,高通CES上展示的Snapdragon Cargo无人机是基于高通Snapdragon芯片开发出来的飞行控制器,它有无线通信、传感器集成和空间定位等功能。Intel CEO Brian Krzanich也亲自在CES上演示了他们的无人机。这款无人机采用了“RealSense”技术,能够建起3D地图和感知周围环境,它可以像一只蝙蝠一样飞行,能主动避免障碍物。英特尔的无人机是与一家德国工业无人机厂商Ascending Technologies合作开发,内置了高达6个英特尔的“RealSense”3D摄像头,以及采用了四核的英特尔凌动(Atom)处理器的PCI- express定制卡,来处理距离远近与传感器的实时信息,以及如何避免近距离的障碍物。这两家公司在CES展示如此强大功能的无人机,一是看好无人机的市场,二是美国即将推出相关法规,对无人机的飞行将有严格的管控。
此外,活跃在在机器人市场的欧洲处理器厂商XMOS也表示已经进入到无人机领域。XMOS公司市场营销和业务拓展副总裁Paul Neil博士表示,XMOS的xCORE多核微控制器系列已被一些无人机/多轴飞行器的OEM客户采用。在这些系统中,XMOS多核微控制器既用于飞行控制也用于MCU内部通信。
Paul Neil说:xCORE多核微控制器拥有数量在8到32个之间的、频率高达500MHz 的32位RISC内核。xCORE器件也带有Hardware Response I/O接口,它们可提供卓越的硬件实时I/O性能,同时伴随很低的延迟。“这种多核解决方案支持完全独立地执行系统控制与通信任务,不产生任何实时操作系统(RTOS)开销。xCORE微控制器的硬件实时性能使得我们的客户能够实现非常精确的控制算法,同时在系统内无抖动。xCORE多核微控制器的这些优点,正是吸引诸如无人机/多轴飞行器这样的高可靠性、高实时性应用用户的关键之处。”
多轴飞行器需要用到四至六颗无刷电机(马达),用来驱动无人机的旋翼。而马达驱动控制器就是用来控制无人机的速度与方向。原则上一颗马达需要配置一颗8位MCU来做控制,但也有一颗MCU控制多个BLDC马达的方案。
多轴无人机的MEMS传感
某无人机方案商总经理认为,目前业内的玩具级飞行器,虽然大部分从三轴升级到了六轴MEMS,但通常采用的都是消费类产品如平板或手机上较常用的价格敏感型型号。在专业航拍以及专为航模发烧友开发的中高端无人机上,则会用到质量更为价格更高的传感器,以保障无人机更为稳定、安全的飞行。这些 MEMS传感器主要用来实现飞行器的平稳控制和辅助导航。飞行器之所以能悬停,可以做航拍,是因为MEMS传感器可以检测飞行器在飞行过程中的俯仰角和滚转角变化,在检测到角度变化后,就可以控制电机向相反的方向转动,进而达到稳定的效果。这是一个典型的闭环控制系统。
ADI亚太区微机电产品市场和应用经理表示,ADI产品主要的优势就是在各种恶劣条件下,均可获得高精度的输出。以陀螺仪为例,它的理想输出是只响应角速度变化,但实际上受设计和工艺的限制,陀螺对加速度也是敏感的,就是我们在陀螺仪数据手册上常见的deg/sec/g的指标。对于多轴飞行器的应用来说,这个指标尤为重要,因为飞行器中的马达一般会带来较强烈的振动,一旦减震控制不好,就会在飞行过程中产生很大的加速度,那势必会带来陀螺输出的变化,进而引起角度变化,马达就会误动作,最后给终端用户的直观感觉就是飞行器并不平稳。
除此之外,在某些情况下,如果飞行器突然转弯,可能会造成输入转速超过陀螺仪的测试量程,理想情况下,陀螺仪的输出应该是饱和输出,待转速恢复到陀螺仪量程范围后,陀螺仪再正确反应实时的角速度变化,但有些陀螺仪确不是这样,一旦输入超过量程,陀螺便会产生震荡输出,给出完全错误的角速度。还有某些情况下,飞行器会受到较大的加速度冲击,理想情况陀螺仪要尽量抑制这种冲击,ADI的陀螺仪在设计的时候,也充分考虑到这种情况,利用双核和四核的机械结构,采用差分输出的原理来抑制这种“共模”的冲击,准确测量“差模”的角速度变化。但某些陀螺仪在这种情况下会产生非常大错误输出,甚至是产生震荡输出。“对于飞行器来说,最重要的一点就是安全,无论它的硬件设计还是软件设计,都要首先保证安全,而后才是极致的用户体验。”
随着无人机的功能不断增加,GPS传感器、红外传感器、气压传感器、超声波传感器越来越多地被用到无人机上。方案商已经在利用红外和超声波传感器来开发出可自动避撞的无人机,以满足将来相关法规的要求。集成了GPS传感器的无人机则可以实现一键返航功能,防止无人机飞行丢失。而内置了GPS功能的无人机,可以在软件中设置接近机场或航空限制的敏感地点,不让飞机起飞。
TOP6 无人机系统模块开发设计与仿真
在开发的早期阶段,开发一个硬件在环(HIL)测试环境来测试无人机GNC解决方案。HIL测试环境是软件仿真和飞机实验的一个中间步骤,对于无人机GNC软件的开发过程非常关键。通过HIL环境,工程师可以在一个可控的仿真环境中对无人机软件进行测试。同时,它也能加速设计,缩短开发周期,通过HIL环境,工程师可以发觉软件仿真(主要是同步和定时)中没有出现的问题,从而避免现场试验的故障,并增加无人机团队的安全性。开发了一个通用的 HIL平台来设计验证控制和导航算法。这个HIL测试环境完全集成在一个基于模型的设计开发周期中(见图1)。
图1 : HWIL测试环境示意图
基于模型的开发
首先我们设计编改了无人机平台,将其用于仿真,并将控制器和算法部署至硬件中。根据基于模型的设计理念来完成这个任务。对于系统设计和仿真来说这是一个可靠方便的方法。使用代码自动生成工具可以使我们减少设计时间,轻松完成对于测试架构的重复利用,以及快速系统原型,从而形成一个连续的确认和验证过程。
构架的目的包括:在不同的硬件平台上不用任何改变即可对模型重复利用;对设计测试套件模型进行重复使用以验证目标系统;将透明模型完全集成到目标硬件中,并创建一个系统的,快速的流程,将自动生成的代码集成到目标硬件,从而使得控制工程师无需软件工程师的参与,即可以快速测试模型(见图2)。对于这个项目,使用Simulink®公司的MathWorks软件(我们还使用了Esterel Technologies公司的SCADE套件)开发了模型任务,并使用MathWorks和Real-Time Workshop®公司的软件实现自动编码。需要两次不同的编改:在无人机中进行测试及执行的算法是由ANSI C代码编写的,仿真无人机动态行为的数学模型将通过LabVIEW仿真接口工具包转换至NI LabVIEW软件动态库中。
图2: 基于模型的开发流程
在最终的系统中,我们使用多个LabVIEW I/O模块来仿真一些无人机航空电子和逻辑传感器以及激励器接口。
LabVIEW Real-Time PXI
PXI 是一个基于PC的平台,可用于测试,测量和控制,能够在不同的接口和总线中提供高带宽和超低的执行延时。在这个案例中,PXI需要在一个复杂的无人机模型中运行,该模型会在实时中以动态库的形式被执行。 在系统中使用PXI模块能让我们使用无人机上完全一样的接口进行HIL仿真。所以,我们会以现场实验完全相同的配置验证GNC算法处理单元。这对于一些使用纯仿真不足以捕捉所有硬件相关问题(例如信号噪音,错误和同步问题)的系统来说是十分重要的。通过Spirent GSS8000 GPS仿真器,我们能够仿真并生成用户选择的GNSS星座卫星所发出的相同的射频信号。这些信号会以飞行实验相同的方式传送到无人机上真实的GPS传感器,并能仿真惯性传感器(加速度计和回转仪)。可以指定不同的情况,降级信号,指定天线模式及模拟IMU传感器错误。
图3:实验中使用的基于CB5000 RC直升机改装而成的无人机
板载处理单元
在实时操作系统(QNX或VxWorks)中运行一个PC/104单元,操作系统中包含了算法和控制策略,用于测试自动代码生成工具和集成架构创建的代码的完成。我们在现场实验的真实无人机中也使用了相同的单元。我们可以使用Simulink External Mode软件对无人机进行调试。通过这个软件,我们可以监测用户需要实时知晓的信号值。此外我们可以改变嵌入式处理单元中所执行算法的参数。在操作中所使用的界面,与控制工程师在仿真设计算法时所使用的界面完全一样。由此,整个测试环境完全透明,而且能以同现场测试一样的方式进行HIL测试,从而大幅减少开发时间。
对比飞行遥测和使用同样的GNC算法的HIL仿真,可以表明HIL的精准性和与真实测试结果的相似性。在一架改装过的无线电控制的直升飞机上集成了几个传感器(加速度计,回转仪,磁力计,GPS和一个高度计)和一个处理单元(见图3),将其转变成一架无人机,进行飞行测试。无人机在没有过冲或任何一个永久误差的情况下,达到了水平面要求的参考值(见图4和图5)。HIL仿真和真实的飞行测试结果极其一致。
图4:北方位置对比结果
图5: 西方位置对比结果
HIL环境非常适用于测试包含真实硬件的整个系统。使用NI PXI,我们在实时状态下以低延时仿真了一个复杂的无人机模型,并完美模拟了航空设备界面。这个环境能检测出软件仿真中无法显示的错误,从而避免现场实验意外的发生。因为控制工程师在设计,开发和验证过程中也会使用相同的可视化和调试工具,由此可以快速重复循环,减少开发时间。
2022-01-07 10:39
2021-10-24 17:27
2021-10-23 11:21
2021-09-19 17:29
2021-09-19 17:27
2021-03-10 07:46
2020-12-31 14:25
2020-12-28 18:24
2020-12-15 11:41
2020-12-11 10:58