SDR-X 2024-01-06T13:49:03+00:00 putaoshu@msn.com 卖掉了!(原贴:记录一下比利时根特买二手BMW-318d) 2023-09-16T12:00:00+00:00 Jiao Xianjun http://sdr-x.github.io/belgium-BMW-318d-sell 买车原帖:https://sdr-x.github.io/belgium-BMW-318d/

今天把车卖了10413欧元,7年开了145520km,贬值15587欧元。

  • 2016年购入,车初次注册是在2015,当初里程21000km,26000欧从宝马二手车购入。

  • 2023年卖出,里程166520km,卖给了wijkopenautos.be,10413欧元,贬值15587欧元。

卖车流程很丝滑:

在线输入车辆信息,给出评估价。然后去线下现场验车,核对无误后,给出最终报价。我的最终报价和在线评估价一模一样,因为我在线输入的信息完全准确,而且车辆状态的确也不错。立刻签订合同,卖车款2~3个工作日到账。车行拆下车牌我来带走。

也找了之前买车的宝马店,以及其他本地的二手车收购商。都很磨唧,只给9000到10000欧元。而且不少地方一听说是柴油车就不收。现在政府正在强推新能源,再差也要汽油车,2030年后一切燃油车都就买不到了。柴油车在2024(还是2027?)年后将会禁止进入城市核心/绿色区。想进也可以,交钱。

我和wijkopenautos.be签订的合同对方是在阿姆斯特丹的公司(但总部在德国)。还是荷兰人会做生意啊!还是德国人懂车啊!

卖车后流程:

  • 车牌交给邮局,由邮局去政府注销,(不然每年还要交车辆税),而且没收钱。。。?(会有账单吗?)

  • 拿邮局的回执去保险公司取消保险。

]]>
想DIY软件无线电?只看这一篇就足够了:SDR硬件方案一网打尽 2022-12-31T12:00:00+00:00 Jiao Xianjun http://sdr-x.github.io/SDR-DIY-SUMMARY 乔布斯2007年发布iPhone时,引用图灵奖得主Alan Kay的一句话“真正在乎软件的人,应该打造自己的硬件”。同样道理,想玩好软件无线电,也必须深入SDR(软件无线电)硬件。

本文以射频硬件为线索,梳理常见SDR(软件无线电)方案。SDR硬件位于天线和数字信号处理之间,负责把无线电信号数字化,交由主机或者嵌入式系统(FPGA、DSP,MCU)处理。SDR硬件一般包含射频和数字两部分。

这里的射频指广义的从天线到ADC、DAC这部分,包含了高频/射频,中频IF(如果有),零中频,模拟基带,相关的滤波以及混合信号ADC/DAC。之所以不以数字部分为线索,是因为数字部分的实现方案无外乎以下四种:

  • 基于FPGA(亦可接主机)。典型代表:USRP系列
  • 基于Xilinx Zynq SoC FPGA。典型代表:Xilinx开发板配合Analog Devices的射频板
  • 基于USB单片机/MCU。典型代表:HackRF+portapack(NXP LPC4320),孔雀石Malahit(STM32H7)
  • 基于主机或者SBC/单板计算机。典型代表:rtl-sdr电视棒、SDRPlay/RSP1、AIRSPY、RX888;KiwiSDR (采用BBB BeagleBone做主机),CaribouLite RPi HAT (采用树莓派做主机)

不难看出,数字部分相对成熟且标准化程度高,这离不开芯片制程和计算机产业的高度发达。

反观射频部分,由于包含高频以及模拟信号处理,数模混合电路ADC、DAC,结构复杂,较少受惠于高级数字电路制程的进步,往往成为各种SDR硬件性能的决定性因素。因此本文以射频方案为主线,介绍以下SDR射频方案:

  • PWM射频:无射频的射频
  • AD9361、AD9371、ADRV系列
  • LMS6002D、LMS7002M、LimeSDR系列
  • AT86RF215(Microchip公司支持I/Q采样的zigbee IoT芯片)
  • RFFC5072+MAX2837+MAX5864(HackRF的变频加Maxim WiFi套片)
  • E4000/R820T+RTL2832、rtl-sdr电视棒系列
  • E4000+TLV320ADC3140音频codec(Funcube Dongle)
  • R820T+LPC4370(AIRSPY)
  • MSI001+MSI2500(SDRplay/RSP1)
  • MSI001+NAU8822音频codec+STM32H7 (俄罗斯 Malahit 孔雀石收音机)
  • ADL5350+ADF4350 rtl-sdr 2.4GHz变频方案
  • 射频直采(RFSoC、KiwiSDR、RX888、RED PITAYA)
  • 传统业余无线电射频(uSDX)

正文开始:

PWM射频:无射频的射频

是的,你没看错,“剑法的最高境界,则是手中无剑”。随着数字芯片(FPGA、树莓派、单片机)的I/O速度越来越高,仅靠控制I/O基于PWM(脉宽调制)即可发送射频信号。类似原理,把高速I/O当做高速1bit ADC来用,亦可直接恢复射频信号。

比较早期的可以搜索2007年的这篇“An FPGA Based All-Digital Transmitter with Radio Frequency Output for SoftwareDefined Radio”,利用Xilinx Virtex2pro FPGA上的 MGT(multi-gigabit transceiver)高速引脚实现了800MHz载波,20MHz带宽的64QAM信号发射。临信道泄露比(ACLR)45dB,EVM优于1%。

现在FPGA速度比起2007年快了很多,可以搜索2017年的这篇“Real-time all-digital radio-over-fiber LTE transmission”,利用FPGA上的27.5Gbps的数字I/O配合PWM调制产生了3.44GHz载波上的5MHz LTE信号。

基于类似原理,FPGA的高速I/O口也可以看做是一个高速的1bit ADC,配合FPGA高速PWM输出和比较器,可以实现高速射频ADC。大家可以搜索2021年的这篇“All-digital FPGA receiver: on Intel Stratix 10 TX”。

以上都太高端了?不要怕,只需要很便宜的Lattice MachXO2 FPGA再配合三个电阻一个电容,你也可以在家直接用FPGA直连天线听收音机!大家搜索“FPGA + 3 R + 1 C = MW and SW SDR Receiver”。这个收音机长这个样子:

基于类似原理,人们也开发了利用树莓派的I/O口来发射射频信号的程序。比如发射FM广播,自行搜索“Turn Raspberry Pi into FM transmitter”。比如发射传真图像,自行搜索“Emitting Hellschreiber from a Raspberry Pi GPIO: combining gr-hellschreiber with gr-rpitx”。

AD9361、AD9371、ADRV系列

Analog Devices,我们的老朋友了。AD9361、AD9371、ADRV高集成度射频收发器系列广泛用于各种高端仪器、软件无线电、商用无线通信产品中。支持6GHz以下连续覆盖,带宽可达几十M甚至上百M,各项射频性能优异,灵活可配置。

除了高端商用,在广大软件无线电DIY爱好者中也大受欢迎。毕竟,它一颗芯片把那么大一堆从天线到ADC/DAC所必须的所有处理环节全包括了,而且性能没的说。你只需要给他连接天线和基带,自己在家就能DIY一个性能如此强悍的SDR设备,这在以前是很难想象的。

我们的openwifi(开源WiFi芯片设计)目前也只能跑在FPGA + AD9361的平台上,不得不说这颗射频芯片大包大揽、性能优异且全面。

基于Analog Devices高集成度射频收发器的SDR产品不完全列表:

  • USRP B系列
  • USRP E系列
  • USRP N3xx系列
  • Analog Devices FMCOMMS系列射频板
  • Analog Devices SoM模块 ADRV9361-Z7035,ADRV9364-Z7020
  • PlutoSDR
  • BladeRF二代
  • EPIQ Sidekiq系列
  • 国产 gridrf NH7020
  • 国产 MicroPhase 微相 系列
  • 国产 SDRPI
  • 国产 Pluto plus
  • 国产 Pluto Zynq7020增强版(LibreSDR)
  • 国产 PYNQSDR PYNQ-Z1 + AD936X SDR
  • 国产 Neptune SDR (B站 薛定谔的猫power)
  • 国产 类AD9361芯片
  • 等等

LMS6002D、LMS7002M、LimeSDR系列

Lime microsystems是一家英国公司,LMS系列是对标Analog Devices的AD93xx系列芯片。许多人熟知的LimeSDR系列设备即是基于LMS7002M。BladeRF第一代是基于LMS6002D(第二代转投AD9361了)。

LMS系列射频芯片几乎是市场上可公开购买到的AD9361唯一竞品,所以它存在的意义巨大。AD9361系列只是庞大的Analog Devices产品线和营收中的一小部分,而LMS射频芯片就是Lime microsystems公司的全部身家。

根据Lime microsystems公司官网,变频器LMS8001+已经支持到12GHz和120MHz带宽,LMS9000将会支持到100GHz和>2GHz带宽。

期待Lime microsystems公司越来越好!

AT86RF215(Microchip公司支持I/Q采样的Zigbee IoT芯片)

这是Microchip公司(就是出ATMEL单片机那家)的一款IoT芯片,支持sub 1GHz和2.4GHz的Zigbee标准,FSK、OFDM、O-QPSK。

它之所以出现在SDR射频方案里,是因为它在标准协议处理之外,也提供了ADC/DAC的IQ采样接口,因此也可以作为通用SDR射频芯片。支持射频带宽2.5MHz和采样率4MHz。

iotSDR采用了AT86RF215 + Zynq 7010的方案,可以看做是把PlutoSDR里的AD9363替换为了更低端的面向IoT的射频前端。

CaribouLite RPi HAT则是把AT86RF215做成了树莓派扩展板的思路,可以直接插在树莓派的IO插座上,构成完整系统。

RFFC5072+MAX2837+MAX5864(HackRF的变频加Maxim WiFi套片)

这是HackRF的射频方案。它实际上是Maxim公司(已被Analog Devices收购)的WiFi射频方案前面加上一个Qorvo的混频器RFFC5072。它将6GHz范围内的目标频率变频到2.4GHz之后,由成熟的2.4GHz WiFi射频套片(MAX2837+MAX5864)接手。

大家也可以上Maxim Integrated公司网站搜索类似的WiFi射频套片方案。使我惊奇的是,这样的射频和ADC/DAC分开的WiFi套片方案,比起当今的许多WiFi芯片指标并不高(或者可以说弱),而且板子面积还大,但仍旧是持续生产的状态,可谓是十分良心了。但,主要客户群是谁呢?

E4000/R820T+RTL2832、rtl-sdr电视棒系列

rtl-sdr即大名鼎鼎的电视棒。频率覆盖到1.7GHz左右,采样率和带宽最大约3.2MHz。电视棒由调谐器芯片(E4000或R820T,频率范围略有不同)和带有ADC、DVB-T解码器、USB的数字芯片RTL2832U构成(含8051单片机)。调谐器芯片又叫tuner。用过古老电视机的都知道,就是你拧动一个旋钮,就把电视调谐到不同的频率上,调谐器tuner的名字由此而来。

对于软件无线电应用来说,数字芯片里的DVB-T解码器是多余的。这里3.2MHz的带宽/采样率主要受制于RTL2832U数字芯片,毕竟它不是为串流I/Q采样到主机这种SDR应用而设计,怀疑是因为固件上的USB性能有一定瓶颈或内部数字中频架构限制。调谐器tuner芯片R820T并不是带宽限制因素,因为通常一个电视频道为8MHz,为了看电视必须有接收8MHz带宽信号的能力。

由于电视棒极其低廉的价格,群众基础十分庞大,资料也非常多,这里不再用过多篇幅介绍。主要介绍下面几种基于电视棒方案/芯片的各种SDR衍生设备。

E4000+TLV320ADC3140音频codec(Funcube Dongle)

既然常规电视棒里的DVB-T解码器在软件无线电里并不需要,那么可不可以只用那颗调谐芯片配合更简单的数字芯片来打造一款专门的SDR dongle呢?

Funcube Dongle就是采用这种设计。它使用TI的一颗双声道音频codec充当E4000输出的零中频基带I/Q信号的ADC,然后用Microchip公司的PIC24F USB单片机连接到主机。受限于音频codec ADC采样率,它的最大射频带宽约80KHz。

可能由于E4000这个tuner芯片太老了,据说新版的FUNcube Dongle Pro+已经换用MSI001 tuner芯片。参见后面的“MSI001+MSI2500”章节。

R820T+LPC4370(AIRSPY)

既然rtl-sdr电视棒的采样率/带宽主要受限于数字部分的RTL2832U,而不是调谐器tuner E4000/R820T,那么将数字部分替换为专门的ADC和USB芯片不就完全解锁了tuner的能力?的确,AIRSPY这个SDR设备就是这么做的。

可以看到,它在tuner之后直接接了一个带有80Msps高速ADC的NXP的单片机LPC4370,因此它直接可以支持到大约10MHz带宽(这时就受限于tuner芯片了,单片机80Msps采样率已完全超出tuner芯片带宽范围)。

MSI001+MSI2500(SDRplay/RSP1)

这是另一种电视棒套片。MSI001是tuner芯片,MSI2500是含ADC、USB等的数字芯片。神奇的是,这个MSI2500数字芯片并不包含电视解调解码器!(还记得rtl-sdr里的数字芯片RTL2832U里是包含了我们并不需要的电视解码器么?)

在MSI的电视棒方案里,电视信号解调解码完全是在主机端用软件做的,也就是这个电视棒本身就是个纯SDR方案。这也意味着这套SDR方案可提供的带宽必然超过8MHz,因为要在主机端软解码电视信号,必然意味着需要将一个电视频道的8MHz带宽I/Q全部实时采集到主机供软解码程序使用。实际上它最大可提供大约10MHz的带宽能力,频率覆盖到约2GHz。

上图中,USB2.0接口左侧就是MSI001+MSI2500构成的电视棒,右侧就是主机侧的电视信号解调解码软件部分。MSI001 tuner内部结构如下。

由于这个方案本身就是SDR的,不难想象用它来DIY SDR设备是多么方便,SDRplay/RSP1及其众多的变种(包括众多国产版)就是基于这个方案。

这家Mirics Semiconductor公司貌似有点神秘,如果你访问他们的网站Mirics,只会得到以下信息:We are sorry but we do not offer direct support to end users. Please address any queries you may have to the supplier of your hardware。

从有限的互联网信息来看,这又是一家英国公司,创始人曾经在LSI Corporation 和 Analog Devices 工作。

MSI001+NAU8822音频codec+STM32H7 (俄罗斯 Malahit 孔雀石收音机)

著名的来自俄罗斯的Malahit孔雀石收音机也是基于上述MSI方案,但它只采用MSI001作为射频前端,其输出的I和Q两路信号(每一路均为差分)连接至音频codec NAU8822,然后连接至主控:性能强劲的主频480MHz的STM32H7单片机。这种SDR完全摆脱对主机的依赖,大屏幕加解调以及声音播放全在掌中完成。以下是国产版孔雀石收音机:

ADL5350+ADF4350 rtl-sdr 2.4GHz变频方案

各种电视棒方案价格真香,美中不足的是频率覆盖一般都在2GHz以下,那么如何才能玩起更高频段,例如2.4GHz ISM频段,且仍可利用电视棒呢?那就是各种变频方案了。也就是通过混频器将2.4GHz(或者更高频信号)变频到电视棒覆盖的频率范围内,之后交由电视棒。

自行搜索“A LOW COST 2.4 GHZ DOWNCONVERTER FROM OFF THE SHELF DEV BOARDS”,你可以找到这个基于现成Analog Devices评估板的ADL5350+ADF4350 变频方案。ADL5350为混频器,ADF4350为本振,此外还需要一个STM32单片机来对这两颗芯片进行控制,最终完成完整的2.4GHz到1GHz的下变频功能。

射频直采(RFSoC、KiwiSDR、RX888、RED PITAYA)

射频直采可以说是SDR的“圣杯”了。概念上,只要ADC/DAC采样率够高,可以直接接上天线收发空中的信号。对于地面和卫星通信中常用的几GHz甚至几十GHz的信号,射频直采需要非常高速的ADC/DAC,这属于是“禁运”级别的高科技了。请自行搜索Xilinx RFSoC开发板以及USRP X410设备。这些设备采用基于Xilinx RFSoC直采架构FPGA,可以覆盖到6~8GHz载波频率,并提供400MHz的带宽,壕无人性!据说Intel/Altera正在憋大招,会推出一下子能够直采毫米波的射频FPGA!

但对于中波、短波、调频广播以及业余无线电玩家常用的几十MHz频率的信号来说,用ADC直采已经是“飞入寻常百姓家”了。这其中知名设备有KiwiSDR,RX888,RED PITAYA。

KiwiSDR直接用了一个65Msps的LTC2248 14-bit ADC来采集30MHz以下的HF信号,并通过FPGA连接到BBB(BeagleBone)单板计算机上。主要用途还是窄带业余无线电。

RX888 16BIT ADC SDR Receiver。

看照片应该是出自国人之手。但据说原始设计是基于BBRF103。

在BBRF103的设计中,使用LTC2217 105Msps 16-bit A/D来直采30MHz以下信号,30MHz以上信号仍旧采用电视棒的R820T来下变频至30MHz以下,以供ADC采集。

RED PITAYA主要用途是测量仪器,但由于它提供了高速ADC串流采样到主机的功能,也被很多人用来直采较低频率的射频信号构成SDR接收机。

此外,某些不知出于何种目的的单片机竟然自带了80M采样率的ADC,理论上可直接收听FM广播以及频段更低的所有广播和业余无线电信号(前提是信号或者天线够强。。。)。对,NXP LPC4370说的就是你!相关单片机直接听广播的方法请大家自行搜索“LPC4370 SDR receiver”。当然它也很适合直接作为软件无线电的中频或者基带数字部分,比如前面提到的AIRSPY。

传统业余无线电射频(uSDX)

射频和纯模拟解调是业余无线电传统艺能。当有了计算机,爱好者就开始在超外差接收机中采用低中频12KHz,然后连接到电脑声卡玩SDR。现在有了性能强劲的带有ADC的单片机,电脑也就不需要了,因为调制解调、音频全都可以在单片机内搞定。

为了产生低中频,可以采用传统模拟混频器,也可以采用所谓开关式混频器(类似D类功放?),也叫Quadrature Samplimg detector。它直接将射频信号通过一个高速开关(类似于窄带欠采样的概念)变至低中频。下图中的FST3253高速开关(QSD)就是用作下变频,然后低通滤波加放大后进入ADC。此即最近比较火的“uSDX: micro Software Defined Transceiver”

以上基本总结了现在能看到所有SDR方案。有没有被我漏掉的?欢迎留言补充!

]]>
MSV-ATC卫星移动通信技术研究 2022-09-11T12:00:00+00:00 Jiao Xianjun http://sdr-x.github.io/MSV-ATC MSV-ATC卫星移动通信技术研究 全文

MSV-ATC卫星移动通信技术研究

焦现军 曹桂兴

(中国空间技术研究院,北京100094)

摘 要 介绍了卫星移动通信的最新技术——辅助地面组件(ATC)。ATC技术主要由美国 移动卫星风险公司(MSV)研发,它是用于卫星移动通信系统的一系列新技术的集合,代表了卫星 移动通信的最新发展方向。采用了ATC技术的卫星移动通信系统可以为密集城市和室内用户提 供通信服务,从而实现卫星移动通信真正意义上的无缝覆盖。文章主要从发展历史、系统原理和关 键技术三方面对ATC技术进行了研究。

关键词 卫星移动通信 ATC最新进展

Introduction of MSV—ATC Technology in Mobile Satellite Systems

JIAO Xianjun CAO Guixing

(China Academy of Space Technology,Beijing 100094,China)

Abstract:Ancillary Terrestrial Component(ATC)technology,which is a powerful candidate of future mobile satellite systems(MSS),is introduced.ATC is deVeloped by Mobile Satellite Ven— tures(MSV)Corporation and represents a group of new technologies involved in MSS. The group of technoIogies give the MSS ability to serve subscribes in dense urban and indoor environ— ments,and bring the ubiquitous coverage of MSS into reality. We study three aspects of ATC: development history,system principle and key technologies.

Key words:MSS;ATC;new development

]]>
Optimization too early (过早优化) 2021-08-15T12:00:00+00:00 Jiao Xianjun http://sdr-x.github.io/early-optimization Optimization too early could kill the idea in cradle.

过早优化是万恶之源。

]]>
开源Wi-Fi芯片/FPGA设计以及背后的中国开发者 2020-01-02T12:00:00+00:00 Jiao Xianjun http://sdr-x.github.io/openwifi-chinese ”白菜价”的Wi-Fi芯片为何用软件无线电实现起来如此困难。openwifi项目为你揭秘。

站在21世纪后4/5开始之际,回望前段时间发布的openwifi项目(https://github.com/open-sdr/openwifi),对个人而言,再一次提升了自己的能力边界。对社区而言,我想说这是中国开发者给Wi-Fi研究领域的一点点基础性贡献。

知乎链接查看更多文章

正文:

Wi-Fi已经诞生20多年了。如今,Wi-Fi就像空气和水,视而不见却如影随形。一方面它是连接互联网的”生活必需品”,另一方面,因为十分低廉的硬件价格和无线电信号的开放性,也成为黑客们最喜欢的研究对象之一。

这里的黑客也包括各大学和研究机构的研究员们。他们的利用Wi-Fi开展了各种”脑洞”研究。比如从Wi-Fi信号里窃取或保护你的隐私,2015年央视315晚会上现场从Wi-Fi信号中获取的用户隐私展示仍历历在目。近几年,Wi-Fi信号甚至被用来探测物理世界里人的活动。MIT的研究人员利用无处不在的Wi-Fi信号实现了穿墙无源雷达,可以”看到”墙后面的人。其他”脑洞”研究还有比如利用Wi-Fi信号给低功耗物联网芯片供电等。这些有趣的研究工作大都是基于商用芯片或者软件无线电(SDR)。基于商用芯片主要采用开源驱动,反向驱动或固件的手段(比如github上的nexmon项目)。SDR在这些研究中一般“仅接收”或者“仅发射”,而不是”实时收发”。因为像商用Wi-Fi芯片那样实时收发对于SDR并不容易,原因后面会讲到。

说到软件无线电(SDR),在无线通信和安全研究领域它是一种重要的手段。SDR的基本思想是用软件实现无线通信硬件(比如芯片或基站)的功能。比如在移动通信领域,2G/3G时代的gsm监听以及伪基站,就是基于OsmocomBB发布的SDR硬件和软件。到了4G/5G时代,著名的SDR项目(LTE/5G软基站和UE)有:开源的srsLTE,OAI(Open Air Interface),以及非开源但性能逆天的Amarisoft(法国传奇黑客Fabrice Bellard出品)。

反观Wi-Fi领域,廉价/免费的且广为应用的开源设计却几乎没有。难道写出一个几块钱的Wi-Fi芯片功能的软件,比移动通信(2/3/4/5G)基带芯片更难?这种现象背后的原因涉及到Wi-Fi和移动通信频谱性质以及设计哲学的不同。

Wi-Fi工作在共享频谱(比如免费的2.4GHz和5GHz ISM频段)。在这个频谱中,不只Wi-Fi一种通信系统,蓝牙和Zigbee等也使用同一频谱,因此各国的无线电法规大都要求共享频谱中的设备采用Listen-Before-Talk (LBT)方式工作,即:发射前,先监听信道确保当前信道是空闲的,避免干扰到其他设备正在进行的传输。基于类似考虑,当一个设备发送完一个数据包之后最好能立刻从对方的反馈(ACK)中知道成功与否,这样可以缩短一次传输对信道的占用时间。因为,如果对方需要较长的时间才能给出反馈,那么其他设备则必须等待,此时信道白白浪费。如果其他设备不等待,那么这个关键的反馈信息可能被其他设备的传输所阻塞/干扰,其本身的不确定度加大,这是协议所不希望看到的,因为反馈信息对于协议是重要的状态信息。所以在尽可能短的时间内立即反馈成为一种简单有效的策略,它也可以避免芯片记录太长时间的状态/队列信息,从而减小片上RAM,降低成本。因此Wi-Fi协议规定如果成功接收到一个数据包(CRC校验通过),则需要在SIFS(Short Inter Frame Space)时间内发送给对方ACK包,这样对方就知道自己发送成功,可以发下一包了。如果对方在SIFS时间内没有接收到ACK包,则认为自己发送失败,对方会根据高层设置决定立刻重传(高层设置最大重传次数)或者放弃。SIFS在2.4GHz频段为10us,在5GHz频段为16us,在60GHz频段则更短。极短的SIFS时间保证了两个Wi-Fi设备每次通信对信道的占用是”连续”的(因为SIFS远小于包时间长度)。两个Wi-Fi设备的一次交互(数据包+ACK)未完成前,信道中的其他设备都会安静等待,但因为SIFS很短,这种等待造成的浪费并不严重。这种快速ACK只是Wi-Fi CSMA/CA MAC协议的一小部分,但对芯片来说也是收发时延要求最苛刻的部分。Wi-Fi标准中详细描述了CSMA/CA协议的各方面功能,确保信道共享公平且高效。这里不进一步展开。

与Wi-Fi不同,移动通信使用昂贵的授权频谱,追求最高的频谱利用率。所有终端的发送和接收都受到基站的管理和控制。发送(包括发送ACK这种反馈)都是被基站按时调度的。比如LTE的HARQ(混合自动请求重发)过程就规定,收到一个1ms的subframe数据后,给对方的反馈是调度在4ms之后的,这个反馈延迟比起Wi-Fi的10us那就长很多了。当然,这4ms之内信道并不会闲着,基站会调度有需要的终端继续发送/接收新数据。对频谱的调度式占用一般说来会比随机竞争效率更高,因为无需竞争信道时的随机等待时间。4ms的反馈延迟,也留给接收方足够的处理时间。

请记住这两个数字10us和4ms,他们决定了能否方便的用电脑软件来实现无线通信协议。最流行的软件无线电架构是电脑加射频前端(USRP/BladeRF/HackRF等)。他们之间的连接方式主要有pcie,以太网和USB这三种方式。目前主流射频前端(比如USRP)和电脑的通信延迟最快都在几百us量级。所以对于移动通信,可以利用电脑强大的处理能力按照协议要求从容计算,然后在规定时间之内发送反馈(比如LTE的4ms反馈延迟)。反而对于Wi-Fi的10us SIFS 反馈延迟,基于电脑软件的实现则变成了几乎不可能完成的任务。(我用了”几乎”,不是完全没可能,请看到最后)。

因此,用软件无线电(SDR)去实现Wi-Fi的合理选择是用FPGA芯片直接连接射频前端芯片。调制解调以及CSMA/CA MAC层都在FPGA内部实现,那么是可以实现10us的ACK反馈延迟的。这也是商用Wi-Fi芯片的实现方式,只不过商用Wi-Fi芯片从成本和功耗角度考虑不会使用FPGA而是设计并流片ASIC。

用基于FPGA的软件无线电平台去实现完整的Wi-Fi协议理论上不存在问题,问题是这世界上熟练的FPGA工程师数量估计不到软件工程师数量的百分之一。而开发同样一个功能模块,软件的开发时间可能是FPGA开发时间的几十分之一。因此,并不是说Wi-Fi的协议有多么复杂,而是用FPGA来开发Wi-Fi比起软件更耗时耗力。

以上只是介绍了Wi-Fi实现的一个关键点,并不是Wi-Fi实现的全部。要实现一个完整的Wi-Fi芯片功能,仅用FPGA实现Wi-Fi标准定义的OFDM调制解调是远远不够的,还需要MAC功能(CSMA/CA),驱动和上层协议软件(Association/Authentication/Encryption/etc)的支持。

以目前广泛应用(尤其在嵌入式,路由器和手机领域)的Linux操作系统为例,在 https://wireless.wiki.kernel.org/ 详细描述了它是如何支持Wi-Fi芯片的。Wi-Fi芯片厂家只需要按照Linux的要求提供Driver(即驱动程序,面向Linux内核实现Linux预定义的ieee80211_ops API)。在驱动之上,Linux内核提供了Wi-Fi的高层MAC支持(mac80211,cfg80211),链路速率自动调整功能,user space和kernel space的通信接口nl80211,以及user space丰富的工具软件,比如作为station模式的wpa_supplicant和作为AP模式的hostapd。因此,借助Linux对于商用Wi-Fi芯片的支持,可以减轻很大部分基于FPGA的Wi-Fi实现的工作量。即便如此,基于FPGA的Wi-Fi实现依然涉及到调制解调之外的许多工作。主要有:

  • 克服本振泄漏等零中频收发机自干扰(目前流行的射频前端架构是零中频)。因为Wi-Fi收发频率是相同的,即TDD半双工。这涉及到FPGA数字中频的一些设计考量。
  • 实时获取射频前端AGC增益,并根据I/Q采样值大小计算RSSI。因为Linux高层需要RSSI报告。RSSI在不同频率和射频通道/天线可能需要不同的校准/补偿值。RSSI也是判断信道是否被占用的重要依据,是CSMA/CA协议的基础。
  • 在FPGA上实现完整的CSMA/CA协议(Low MAC层)。根据Linux wireless的设计,Wi-Fi的MAC层分为实时的low MAC (比如SIFS,ACK,重传,CCA,NAV,backoff等CSMA/CA操作)和非实时的high MAC。Linux的mac80211子系统负责high MAC,但low MAC必须由FPGA实现,因为Linux的实时性不足以实现us量级的精确时延,此架构即典型的SoftMAC Wi-Fi芯片。还有一种Wi-Fi芯片类型是FullMAC芯片,此时high MAC也在芯片里而不是Linux中。这种芯片厂家不必依赖Linux mac80211子系统的high MAC实现,有更大的性能优化自由度,当然芯片开发也需要更多人力物力。
  • FPGA和Linux的通信接口。比如Wi-Fi包的DMA接口,FPGA寄存器配置和状态接口。需要在Linux驱动里去响应Wi-Fi包的收发中断,以及访问FPGA寄存器。
  • FPGA内发包队列的管理。因为Linux Driver把包交给FPGA后,FPGA需要等待合适的发送时机(CSMA/CA里的TXOP),因此必须先把包缓存到队列中。此队列需要被Linux Driver查询和操作。
  • Linux Driver和FPGA交互所需的各种信息(RSSI,timestamp,序列号等)的插入和提取,因为这些信息是Linux上层所需要的。有些信息跟随数据包,有些信息通过寄存器交换。
  • Linux Driver(驱动)的编写。驱动程序需要综合调用FPGA和射频前端的各种功能接口,实现Linux mac80211子系统预定义的ieee80211_ops API。
  • 基于nl80211的user space工具的编写(例如openwifi里的sdrctl)。如果你想从user space实时访问/配置一些driver/FPGA/射频底层功能的话,则需要通过nl80211接口与内核中的驱动程序通信。

从上面的介绍可以看到,看似简单的Wi-Fi芯片,”全栈”开发是必须的。在商业公司内部,Wi-Fi的实现需要一个工程团队密切分工合作,并假以年计来完成。但在研究领域,具有完整和丰富工程经验的学生和老师/研究员并不多,实现完整Wi-Fi对于大多数博士生来说是投入产出比太低的工作,这也是为何在研究领域鲜有完整Wi-Fi实现的原因。

openwifi项目的目标就是要为研究领域提供一个完整的Wi-Fi基带芯片/FPGA实现。这样广大博士生和研究人员就无需Wi-Fi实现所需的巨大投入,直接进入产出阶段。目前openwifi第一版基于Xilinx的Zynq FPGA实现(SoC,System on Chip)。这款FPGA内嵌了ARM处理器,可以跑Linux,即可以提供我们所需要的mac80211子系统,而且开发板可以方便的连接Analog devices的射频前端(例如AD9361)。因此在这个Xilinx加Analog devices的SDR平台上,射频,FPGA,ARM和Linux都齐了。因为是基于ARM处理器,并且ARM和FPGA在一颗芯片内(SoC),所以openwifi的设计也很适合用于嵌入式领域(无人机图传,Wi-Fi视频会议,IoT等)。

需要说明的是,虽然openwifi实现了”全栈”,但它并不是每个部分都从头开始,比如OFDM接收机模块就是在openofdm开源项目之上修改,添补,整合而来。下面梳理一下社区多年来不同研究者在Wi-Fi实现上的各种尝试,以及openwifi与他们的异同。

  • WARP 802.11 design

https://warpproject.org/trac/wiki/802.11, https://mangocomm.com/802.11-mac-phy/

这是rice大学很早就发布的基于FPGA的Wi-Fi参考设计。需要购买license才可以使用,费用大约30k欧左右(根据需要哪部分),费用不包括自己购买板子(比如ADRV9361-z7035)的费用。从公开资料来看,它并没有使用Linux mac80211子系统,而是high MAC和low MAC用FPGA里的MicroBlaze软核处理器实现。

  • National Instruments Labview 802.11 framework

http://www.ni.com/product-documentation/53279/en/, http://www.ni.com/product-documentation/54094/en/

来自大厂NI的基于FPGA的参考设计,除了这套集成在Labview的设计的license费用(6k欧左右)之外,你还需要购买9k欧左右的高端USRP-2944才能跑起来。从公开资料来看,它也没有使用Linux mac80211子系统,而是使用PC上的NS3网络仿真器作为high MAC,FPGA内实现low MAC。因为绑定Labview,所以开发环境必须Windows。

  • Microsoft SORA和ziria

https://github.com/microsoft/Sora, https://github.com/dimitriv/Ziria

微软亚洲研究院n年前发布的一个Wi-Fi实现。物理层和MAC全部使用PC上的软件实现,他们在多年前就做到了我之前说的“几乎”不可能。他们设计了一块pcie的RCB(radio control board,FPGA实现低延迟pcie接口)卡和射频板相连,这说明pcie延迟实际上足够低。项目的水平的确逆天,至今无人超越。涉及大量PC架构下的优化技巧(查表替代计算,缓存替代计算等),以及如何在Windows操作系统下隔离出几个核专用于高实时处理。RCB板加射频板大约2.5k欧的样子。许多高校也在此架构基础上做了4G/5G实现。在项目创始人Kun Tan离开去了华为之际,SORA放到github上开源了。但貌似github上开发活动并不活跃也基本不再更新。后来微软的两个老外设计了一种DSL(Domain Specific Language),并用这种新语言重写了SORA架构下的Wi-Fi实现。但即使用了DSL,要想实现最严苛的SIFS延迟,还是需要用基于pcie的RCB卡,使用其他接口的射频前端(例如基于USB的BladeRF和USRP)满足不了SIFS反馈延迟。公开资料来看也并没有使用Linux mac80211子系统。(Windows实现可能用Linux内核里的子系统么?)

  • mobicom 2017上北大Haoyang Wu的FPGA实现(tick)

http://metro.cs.ucla.edu/papers/mobicom17-tick.pdf

在2017年美国盐湖城mobicom会上,北京大学Haoyang Wu 发表了 The Tick Programmable Low-Latency SDR System。印象中还获得了community贡献奖,因为这是社区首次有人基于FPGA实现了全栈Wi-Fi,工作相当硬核,和我们的实现架构也非常接近。主要的不同是,他们做了USB3.0接口把FPGA接到电脑上,然后使用电脑上Linux的mac80211子系统,也就是说他们的驱动是基于USB3.0接口。而我们的openwifi是”全栈”都在单芯片上(SoC):Linux跑在片上ARM处理器,通过Xilinx AXI DMA通道和片上FPGA相连。因为省去了USB这种PC接口,端到端延迟更低。如果你用ping来测试openwifi,并与其他基于USB/pcie的Wi-Fi网卡对比,就会发现片上全栈的延迟更低。此外,在mobicom上作者貌似提到过将来会开源,但两年过去了依然没有任何消息。

  • gnuradio/USRP/RFNoC社区

这是目前最大最活跃的SDR社区。但对于Wi-Fi大都是一些小模块实现或者为了写论文的一些快速原型,没有相对完整的模块级和系统级实现。在USRP的FPGA开发框架RFNoC(RF Network on Chip)提出的初期,曾经在一个ppt Building an OFDM receiver with RFNoC 中提到过基于RFNoC框架在USRP的FPGA中实现Wi-Fi接收机,不过貌似始终没发布一个相对完整的RFNoC Wi-Fi接收机模块。而且RFNoC开发门槛还是略高,本来使用FPGA原厂工具链开发FPGA已经有一定门槛,使用RFNoC则还需要在FPGA基础架构上再多一层,涉及到和gnuradio companion的通信和控制接口,需要对整个USRP和gnuradio的概念有比较深入的了解。因此RFNoC框架中开发者贡献的IP core并不多,猜测RFNoC主要还是Ettus公司内部开发USRP上的FPGA用。

  • gr-ieee802-11项目

https://github.com/bastibl/gr-ieee802-11

这是Bastian Bloessl基于gnuradio的802.11实现。这是一个相对完整的和应用较为广泛的软件无线电Wi-Fi实现。因为使用PC上的gnuradio,所以不可能实现真正的SIFS反馈延迟以及和商用Wi-Fi芯片通信。作者很清楚这一点,也给出了一些workaround,比如关闭ACK机制。该项目对于不熟悉FPGA而是想从gnuradio入门的人来说,是一个可以很快上手并且根据需求二次开发的不错的选择。而且一台PC加一块廉价的SDR前端(HackRF,BladeRF,USRP B系列N系列等)即可工作。

  • openofdm

https://github.com/jhshi/openofdm

这是近两年开源的一个面向USRP N210的Wi-Fi FPGA接收机完整实现!作者是中国人Jinghao Shi (史经浩)。两年前有openwifi项目的想法时,老老实实的先开发了Matlab的Wi-Fi接收机算法,然后打算进行FPGA实现。后来偶然间发现openofdm项目,看了它的文档感觉相当靠谱,于是决定采用。openofdm采用了面向N210内部小容量FPGA的一种高度优化的设计,因此付出了一些解调性能上的代价,但对于第一版以验证全栈集成为主要目的openwifi来说够用了。使用过程中也发现了一些openofdm的bug和缺失的一些全栈集成必要功能,我们进行了相应的改进。目前openofdm的作者已经把openwifi对openofdm的改进合并进了openofdm。

这里用一张表格来说明openwifi和其他项目的异同:

此外,openwifi在软件无线电平台(Zynq SoC+AD9361)方面使用了Analog devices的HDL参考设计(https://github.com/analogdevicesinc/hdl)和它的Linux kernel版本(https://github.com/analogdevicesinc/linux),也使用了Xilinx的一些相关IP core和Xilinx AXI DMA Linux驱动例程,并根据Wi-Fi需求进行了必要的修改,这样可以省去大量的FPGA与射频前端和ARM的接口开发工作。openwifi对Analog devices和Xilinx相应的github资源进行了引用和说明。

openwifi的Linux驱动部分当然也是参考了Linux 里面的各种Wi-Fi芯片的驱动源代码。由于openwifi与Linux之间采用Xilinx AXI DMA接口(片内FPGA和ARM接口),而Linux内核代码中的Wi-Fi芯片大都是基于pcie和USB的,因此只能借鉴而无法直接移植。研究了Linux内核代码里的各种Wi-Fi芯片驱动后,发现台湾realtek公司的rtl8180/8187芯片驱动最为简单。我还专门淘到了一些古老的基于rtl8180/8187芯片的网卡,在Linux下通过学习和修改rtl8180/8187驱动学习真正的Wi-Fi网卡是如何工作的。参照这些芯片驱动,并结合Xilinx给的DMA驱动代码,成功实现了openwifi的mac80211子系统兼容驱动。

为了方便测试和调试,我们还自己开发了整套的Matlab基带收发算法,作为FPGA实现的benchmark。不然有问题时,会不知道目标在哪里。

回顾openwifi的诞生历程,有一点感到很自豪的是项目的主导和主要贡献来自中国开发者。

  • 我本人。两年多来几乎是120%的时间在投入。openwifi的工作是这个欧盟H2020项目(ORCA)https://www.orca-project.eu/ 的一部分。主要动机是希望2020年项目结束时能给社区留下一些真正广为使用和流传的东西。当然也十分感谢公司imec支持开源。
  • 我的中国同事刘薇(https://telefoonboek.ugent.be/nl/people/802000881827)。把openofdm从USRP N210平台移植到Zynq平台,并且配合我做了大量模块和系统级调试和测试工作。
  • openofdm的作者史经浩。看linkedin,这位同学毕业后去了Facebook而且貌似早就不搞Wi-Fi了。但他的openofdm开源实现,使得我们的openwifi在两年内做完成为可能,否则至少还需要额外的半年到一年。
  • 来自中国台湾的realtek公司的Wi-Fi芯片驱动是我学习Wi-Fi驱动的主要对象。大名鼎鼎的rtl-sdr电视棒也是这家公司的,堪称业界良心了。
  • 最后是一位开发者不是来自中国,但也必须提到:来自埃塞俄比亚的同事Michael Mehari (https://biblio.ugent.be/person/802001220721)。他在我们最初的Matlab仿真代码基础上开发出了ofdm tx FPGA模块。因为他没有看到过和参考过WARP 的PHY tx FPGA实现,所以我们的开源代码是”无污染”的。

最后想说明的一点是:openwifi现阶段一定是在各方面会被商用芯片吊打,这一点毋庸置疑。现阶段它对标的对象也不是商用芯片,而是前面的对比表格中的其他项目。但就像当初Linus Torvalds发布Linux的时候,在强大的商用UNIX面前Linux也只是nothing,谁也不会想到后面Linux竟然变得如此强大。这其中的关键就在于你—广大开发者。感到欣喜的是,我前段时间发布openwifi项目的twitter在短时间内就获得了13万次展示和2万4千次播放量(demo视频),来自东西南北半球的人们纷纷表示“这下有得玩了”。

“Talk is cheap. Show me the code.” – Linus Torvalds

我们动手吧。

]]>
飞行日记6及以后连载在知乎专栏 2020-01-02T12:00:00+00:00 Jiao Xianjun http://sdr-x.github.io/flight-diary-6 知乎专栏 飞行日记

]]>
飞行日记5 2017-12-27T12:00:00+00:00 Jiao Xianjun http://sdr-x.github.io/flight-diary-5 #飞行日记5#

谈谈体检吧。

先总结:基本上能开车的就能开飞机。。。。。

残疾人呢?其实这里残疾人可以开车,只要车经过改装和认证。你坐轮椅,只靠手就可以开车。这种车drive by wire。有个坐轮椅的同事就是每天开这 样的车上下班。

所以残疾人也是可以开飞机的。在那个驾校网站上特意说了有一架飞机是经过了改装的,残疾人也可以来学开飞机!充分体现了社会资源公平性。

体检证书与飞行执照对应,有三类:

Class 1 - CPL, ATPL – 相当于巴士司机或者大车司机,搞运输的,体检最为严格

Class 2 - PPL – 相当于私家车司机,体检标准一般

Class 3 - LAPL – 相当于三蹦子助力车或者卡丁车?总之要求最低了。目的就是纯玩玩。

Class 1 体检证书只能欧洲航空安全局(EASA)认可的体检中心发放。Class 2 体检证书可以体检中心或者有EASA资质的医生发放。Class 3 除了体检中心和 有资质的医生发放外,GMP也可以发放。(GMP我理解就是更普通一点的医生)。

有资质体检机构可以查询这里:https://mobilit.belgium.be/nl/Resources/publicaties/luchtvaart/pub_vergunningen_medisch_aeromedical_centra 有资质的医生可以查询这里:https://mobilit.belgium.be/nl/resource/aeromedical_examiners

我拿到的是Class 2体检证书,因为申请的是PPL驾照。

过程:先是找了一个距离最近的有资质的医生,预约体检(一般检查类的都要提前1~2个月预约)。约到了7月25日,跑去医生那里体检。医生有很大的 自主权,而且完全信任你的调查问卷答案(抽烟喝酒家族病史心里健康等等)。医生通过“望闻问切”决定检查哪些项目不检查哪些项目。这个医生仅仅给我检查 了一些常规的内科外科,听一听内脏,心电图,肺活量,血压,心率,四肢等等。其他主要靠询问。x光,血,尿在我们看来很常规的项目,医生大笔一挥, 不需要检查。。。。

他不是眼科医生,所以给了我一张Class 2的眼科检查项目表,让我去任何一家医院或者眼科诊所检查,然后结果给他就行。

眼科类的常规检查预约时间更长。找了一个诊所,一下子就预约到了10月中旬。赶上出差,取消又重新预约,就到了12月份。于是12月跑过去检查眼睛。 首先是一堆比较常规的检查,视力,眼压,色盲,眼底等。另外有一些比较奇怪的可调节器具对在鼻梁,让你盯着看的同时他调节器具上的目标,听他指令告诉他 何时出现重影等等,目的貌似是测量眼睛的聚焦或者肌肉调节范围,这一类的检查的确第一次见到。看荷兰语的最后检查结果也是一知半解,翻译过来貌似有些项目 是在检查眼睛神经反应,眼睛周围的肌肉反应。

检查完毕,医生说没问题,虽然矫正视力不是那么高(貌似只有1.0了),但他说不碍碍事。果然我把眼科检查结果扫描发给了7月份的那个医生,医生很快便邮寄过来 体检证书。show一下体检证书(medical certificate)

上面其实只是体检证书的很小一部分,展开后是一张大纸。上面详细列出了做了哪些项目,以及这个证书的适用范围和限制。在限制那里写了几句关于视力的话。我不是 很明白,就email医生问我是不是需要配个新的眼镜。医生回答,完全不需要配新眼睛,矫正视力足够了。唯一的限制是上飞机时必须携带一个备用眼镜,有时候 会有人检查。

至此体检完毕。我的证书有效期到2021年。Class 2体检间隔的要求是:40岁以下5年一次;40岁到49岁2年一次;50岁以上1年一次。

理论课程目前正在进行飞行仪表以及重量和平衡计算部分,考试亚历山大。

]]>
飞行日记4 2017-12-02T12:00:00+00:00 Jiao Xianjun http://sdr-x.github.io/flight-diary-4 #飞行日记4#

这一部分是飞行原理(principle of flight)。4次课加今天的1次测验。成绩凑合吧,20道题,对了16道。体会是想要取得更高的分数,只做习题是不够的。 俱乐部网站的习题和网上的题库覆盖的知识点并不全,一些老师课堂讲的内容并没有覆盖到。老师出的题也并非题库里的原题。 还是需要彻底理解了所有知识点的内容才能高分。

测验之前和本地同学讨论,一致认为这部分大家普遍应该能考比上一部分气象学更高分数。因为气象学实在是难,相比之下飞行原理理解起来容易一些,所需要 死记硬背的东西比气象学更少。结果左右两边的两位荷兰语母语的同学这次一个考了12分一个考了13分。。。。。难道他们上一次气象学考的更惨?(我上次只有12分)

今天错的题目以及自认为掌握不熟练的题目有:

question 3:

题目说在海平面机场,飞机起飞离地指示空速是60kts,请问在海拔6500ft的机场飞机起飞离地指示空速。英文rotate就是指飞机离地瞬间。看到这道题目 有点蒙,首先就没理解rotate是什么意思。其次把真空速大小搞反了。所以错答了c。

正确答案是a,仍然是60kts。而真空速应该是比60kts更大。

关于指示空速和真空速,网上有很多讨论。简单总结如下:

指示空速是飞机前进产生的动压减去大气的静压,是飞机和大气作用的结果。所以指示空速直接反映飞机当前性能。飞机手册里的起飞降落速度等都是 指示空速,一般不随高度变化。就是说无论在哪个机场起飞,都应该看指示空速是否超过最小离地速度。

相同的指示空速,海拔越高真空速越大。基本原理是,高海拔地区空气密度小,而动压Q=(空气密度*速度平方)/2,所以空气密度减小时,为了获得相同 的动压,需要提高速度(飞机相对于空气的速度,也就是真空速)。这就是为了高海拔机场,虽然你起飞的指示空速没变,但实际上飞机在空气中 运动的速度更大了。具体真空速比起海平面高了多少,取决于当地空气密度比海平面小了多少再开根号。

question 6:

虽然答对了。但这个颠覆之前的认知。是关于放下襟翼flap可以提高滑翔距离还是降低滑翔距离。我之前一直觉得放下襟翼,提高升力可以使飞机滑翔 的更远。其实不对。虽然放下襟翼可以提高升力系数,但同时也会提高阻力系数,总的说来最佳升阻比(滑翔比)会变差,也就是会滑翔的更近。 因为一般说来飞机机翼的设计是为了在不放下襟翼等装置的情况下达到最佳升阻比,所以放下肯定升阻比变差,滑翔比变差。

所以以后如果空中发动机失效,需要滑翔时,要慎重放下襟翼,如果距离机场太远会悲剧。

question 8:

关于飞机失速的。

a是错的,因为失速速度和飞机重量是有关系的,越重的飞机失速速度越高,也就是为了托起飞机重量需要飞的更快产生更多升力。关于失速速度和 哪些因素有关,可以从飞机升力公式出发:

升力=(空气密度速度平方机翼面积*升力系数)/2

因此:速度=根号下(2升力/(空气密度机翼面积*升力系数))

最小速度(也就是失速速度)在最小升力和最大升力系数时达到。而最小升力等于飞机重量。所以失速速度和飞机重量有关。

b是对的,因为在快要失速的时候,增大引擎功率会给予流过机翼上表面的气流更大的能量,推迟气流分离,推迟失速,因此失速速度会更低。

c错误。因为失速攻角就是按照失速的定义来的。超过这个攻角,机翼上表面气流分离,飞机失速。和其他都没关系。

d错误。根据指示空速的定义,飞机手册里的失速速度,起飞速度,着陆速度都是指示空速。这个不随高度变化。

question xxx:

一些问题是问飞机过载的(load factor)。小知识:飞机在协调转弯时,过载只取决于倾角(bank angle),过载=1/cos(倾角)。倾角60度时,过载为2, 也就是你会体会到两倍身体重量。飞机在转弯时失速速度会变大,因为飞机“重量”变大了(过载),需要更大的升力来支撑,也就是更大的速度。

question 13 14

凭感觉做对了。

spin的前提是一边机翼失速,另一边还有一些升力,所以飞机开始螺旋。

单引擎螺旋桨飞机会采用一些设计来抵抗螺旋桨转动产生的反向力矩,但这些设计一般是针对巡航速度设计的。在低速,大功率情况下,需要飞行员 的额外操作来抵抗螺旋桨产生的反向力矩。

question 15

关于翼尖涡流(wingtip vortices)的,大型飞机的翼尖涡流非常强,一般建议大飞机起飞后6~8分钟之后再起飞。否则进入它的涡流就死定了。

这道题目考的是,涡流的位置会在产生涡流的飞机的飞行高度之下几百米。如果非要在大飞机后面起飞,一定要尽快爬到它飞行高度之上。

网上有很多关于翼尖涡流(wingtip vortices)的视频,非常壮观。可以自行搜索。

question 18

关于恒速系统CSU (constant speed unit)以及变距螺旋桨控制的。

简单说来飞机螺旋桨相当于一个小机翼,螺旋桨转动时,这个“机翼”在空气中产生升力,只不过 这个升力方向是向前的,拉动飞机前进,同时也会产生阻力,和旋转方向相反。 这个机翼(螺旋桨)也有自己的攻角(angle of attack)。攻角超过关键攻角(critical angle of attack)也会失速,也会 升力(也就是拉力)下降。还有一个概念是,这个攻角不但受到螺旋桨本身安装角度的影响,还受到飞行速度的影响,因为攻角的定义是相对气流, 根据矢量合成原理,飞机有了飞行速度后也会改变螺旋桨处相对气流的方向。

飞机起飞前静止状态下,因为此时气流静止,相对气流方向仅仅是螺旋桨旋转的方向的反方向,螺旋桨攻角即安装角。而飞机具有一定速度之后,螺旋桨在空气中 前进,相对气流有了向后的方向分量(飞机在前进),所以会减小螺旋桨攻角(对于固定安装角的螺旋桨),降低了螺旋桨升力系数。此时需要提高发动机功率和转速来 提高螺旋桨速度,保持拉力(用于平衡飞行阻力)。

为了提高发动机效率,飞机设计了变角度螺旋桨(变距螺旋浆)。也就是螺旋桨安装角可以实时控制。它的作用类似于汽车上的1~5档。如果没有高挡位,那么 汽车高速行驶只能靠提高转速(2档上高速),很不经济。设计了5档之后,较低的转速就能有较高的速度。实际的浆距连续可变,类比于CVT的汽车,而不是1~5档的汽车。

CSU的作用是实时控制螺旋桨角度,来确保发动机恒定功率和转速情况下即可驱动螺旋桨(螺旋桨角度会影响旋转阻力,进而需要不同的发动机功率输出来克服, 如果螺旋桨角度能够被CSU自动调整保持合适的阻力,则可能一直用恒定发动机功率驱动)。有了变距螺旋桨,只需要起飞时设置一个较高的目标转速, CSU就会自动把螺旋桨设置在较小的安装角(fine pitch),确保不会超过静止空气中的关键攻角,并且阻力较小。此时螺旋桨效率和拉力有保障, 大功率快速起飞。

起飞后随着 飞行导致的相对气流变化,如果不调整螺旋桨攻角,则实际攻角会变小,阻力变小,如果发动机输出功率不变,则会转速上升。为了保持恒定转速(也就是发动机恒定 功率),CSU会自动加大螺旋桨角度(大角度即coarse pitch),保持实际气流中的攻角大致上不变,因此在恒定发动机输出功率的情况下,转速不变。CSU的设计 可以使得发动机恒定功率输出,有很大的好处。因为发动机一般在某一个较窄的功率转速范围内效率才最高,有了CSU,可以使得发动机大部分时间工作在 高效率区域,简化发动机点火系统的设计等。

关于气象报告里的能见度

0150 R8/0225N R26/0355N

上面有三个能见度,第一个150m是全向能见度,第二个和第三个是仪器测量的跑道能见度,R8是8号跑道,R26是26号跑道(其实是同一条跑道,仅仅是前一个跑道反方向),为啥同一条跑道仪器测量的能见度不同(225m和335m)?是因为是在跑道的两端各有两组仪器,并不是在跑道端一组仪器测量得到。最后的N代表无明显趋势,如果是U说明能见度正在上升,如果是D说明能见度正在下降。

昨天大雪,今天大雾,机场静悄悄:

下一部分是飞行仪表。

]]>
飞行日记3 2017-10-28T12:00:00+00:00 Jiao Xianjun http://sdr-x.github.io/flight-diary-3 #飞行日记3#

挑战来临!

飞机基础知识部分(三节课加最后一节课测验)让我觉得小case,测验20道题对了19个。这一部分的气象学(Meteorology)学习(四节课加今天这一节测验课) 让我觉得有挑战了。20道题只做对了12个,其中有一些是蒙对了,有一些是本该做对的做错了。原因一个是复习时间不足,只上了两节课,另外两节课因为在 美国出差没有上成,另一个是高中初中地理知识和大学物理知识实在忘的差不多了。还有一个原因是,老师是根特大学教授,教授嘛最拿手的就是考学生,他完全 自己想的题目,目的就是考你是否真的理解并且掌握扎实了,而不是简单的从某些题库拿了一些题。今天考完答疑时他还说:出题比做题要难,他花了整整 两天来出题。。。。。我即刻向他表示强烈感谢(心里活动:好吧,你很得意吧。。。。)!

记录一下错的题目,以免再犯。

飞机基础知识部分做错的题目是问飞机前轮(前三点)或者后轮(后三点)上的damper作用是什么。因为飞机地面滑行超过一定速度时,那个轮子会有flutter, 高频振荡,导致损坏。dumper是用来阻止这个高频振荡的。

今天错的题目以及自认为掌握不熟练的题目有:

第二题,答案为a

但我觉得老师翻译的有问题。应该问的是哪种现象是三圈环流理论特有的。b,c,d的现象就算是一圈环流理论里也会有,只有a的现象是三圈环流特有的,也就是北纬 30度附近由于科里奥利力的影响导致了高空气流的不连续,一圈环流无法蔓延到极地地区。

第五题,答案为c

第六题,答案为d

这道题考的是摩擦力和科里奥利力对风的影响。飞机在5000ft遇到东风(来自90度方向的风),问降落时风的角度是多少,我一开始选了60是对的,可惜后来 改120改错了。这道题和高气压低气压无关(我被迷惑了,因为高气压产生顺时针方向反气旋,低气压产生逆时针方向气旋,风向不同)。因为北半球 科里奥利力使得风向右偏转,在高空风会完全偏转到平行于等压线,在地面因为地面摩擦力,风还不会完全向右偏转到高空风的那个方向,也就是说地面 来自60度的风,到了高空继续右偏就90度了,也就是高空的东风。所以应该选60度。这里还有个狡猾的地方,老师说题目中的lands指的着陆,默认是在 陆地上空,因此摩擦立引起的地面高空风向差是30度,如果是水面上,因为水面摩擦力小,风向差就是15度了。

第七题,答案b,蒙对了。

这道题说的是迎风坡1000ft的地方温度18露点12,问气流翻越5000ft山峰到达背风坡1000ft时,温度是多少。首先对于我这种基础不扎实的人来说很容易 套用标准大气模型的每升高1000ft温度降低2度,但实际上现实中,干空气湿空气绝热膨胀和压缩时高度差1000ft导致的温度差是不同的。这道题是现实问题, 不能套用标准大气模型。

正确的计算方法如下:

开始是非饱和空气,那么空气绝热膨胀情况下每升高1000ft温度降低3度,所以1000ft升高到3000ft时,温度低至露点12,云开始形成,空气由干变湿, 湿空气绝热膨胀抬升1000ft温度只会降低1.5度,因为水的比热大,凝结也会释放热量。所以3000ft抬升到5000ft山顶时,温度变为9度。因为温度达到露点, 迎风坡会有 云和降水,失去一部分水。抬升过程中温度低过了露点温度之后,露点温度也会随着温度下降,基本上在山顶露点温度和温度相同。越过山丘,空气 下降,温度升高,此时空气变为不饱和,开始非饱和空气的绝热压缩,温度上升,一路上以1000ft升高3度计算,下降到1000ft时,温度变为9+3*4=21。 所以正确答案为21.

第八题,答案d,蒙对了。

我简单套用Cumulus云底计算公式 spread400ft 或者 spread125m,spread是气温和露点温度差,这题目中为6,得到2400ft,所以选择了最接近的2000ft。 正确计算方法还是按照干空气绝热膨胀的1000ft 3度来计算,升高2000ft即达到露点,开始形成云。

第九题,正确答案为c

各种云的性质,恐怕只有死记硬背了。lifting condensation level (LCL)

第十一题,正确答案为c。各种云的性质,被我蒙对了。。。。

第十四题,答案b。关于结冰。蒙对了。

第十五题,答案a

一个飞机在FL40(也就是4000ft)飞行,气压高度计没有调整(就是参考点是标准海平面大气1013hPa),这时候收到地面通信,修正海压QNH(1028hPa),那么请问调整 气压计参考点为QNH之后显示的飞行高度是多少。

正确计算方法:修正海压比比标准大气压力高,意味着飞机从低压区飞进了高压区,而此过程中飞机飞行规则是维持高度表读数不变,意味着飞机实际上必须飞的高一些 才能找到原来一样的低压。修正高度表之后,高度表指示实际高度,肯定要比4000ft高,高多少呢?就是压力差那么高。1028-1013=15hPa,1hPa = 30ft,也就是高了450ft,因此是4450ft。 答案a。

第十七题,答案a。考定义记得准不准。

第二十题,答案c

这道最坑爹。。。。题目中说飞行员看自己的手表,隐含的意思是手表显示的是当地时间而不是UTC或者zulu时间!你得知道当地时间是UTC加上几才能作对!我因为 那节课没上,没听到老师要讲的这个“阴谋”,默认所有时间都是UTC,于是必然就答错了。

]]>
飞行日记2 2017-09-23T12:00:00+00:00 Jiao Xianjun http://sdr-x.github.io/flight-diary-2 #飞行日记2#

随着9月2号驾校的开学,至今上了4次课(每周六9点半到下午1点),完结了第一部分aircraft general knowledge。课堂测验30道题答对29个,这下我放心多了。 要知道这是一个英语水平一般的没学过荷兰语的中国人在一个用荷兰语教学的驾校取得的成绩。果然当初驾校的CTO对我说没问题不是在忽悠我。

稍微总结,并上图。

  1. 虽然没学过荷兰语,但自我感觉貌似课堂上说的事情朦朦胧胧可以理解。因为平时耳濡目染,并且荷兰语的一些词语和英语很像,再加上航空术语更是很多来源于英语, 通过猜测,对照,翻译ppt,能感觉到一些东西。当然,真正主要的学习只能在课下,有问题可以在上课时问老师,老师英文都很好,因为毕竟空中通行的是英文。他们 考虑过用英语教学,但绝大部分学生都是说荷兰语的,也就作罢了。

  2. 理论课程9月开学,第二年6月去布鲁塞尔机考。都是选择题,有英文版。(他们口中的multiple choice,我一直以为是多选题,但其实不是,是单选题。英文水平有限, 不太理解为啥multiplle choice不是多选题)

  3. 和汽车驾校不同,参加和教练一起的飞行训练并不需要先通过理论考试。就算一节理论课没上过你也可以立刻开始和教练一起飞行训练。但是放单飞(solo)需要有三个 前提条件:有资质的医生或者机构出具的体检证明;市政厅出具的good conduct证明;去布鲁塞尔买一个飞行员记录本(log)

  4. 体检相当简单,正常人都没问题。PPL驾照需要的体检类别为class 2。 有资质体检机构可以查询这里:https://mobilit.belgium.be/nl/Resources/publicaties/luchtvaart/pub_vergunningen_medisch_aeromedical_centra 有资质的医生可以查询这里:https://mobilit.belgium.be/nl/resource/aeromedical_examiners

  5. 和汽车类似,获得PPL驾照需要:飞行训练至少45小时,其中至少25小时和教练一起,至少10小时单飞,单飞至少要包括overland flight(不知道是跨机场还是跨国)和 270km navigation(至少飞270km不迷路?),然后通过理论考试和实际道路(空中,考官坐旁边)考试。

  6. 教材。见照片(一大摞)。驾校用的是一套荷兰语教材。去年换过一套教材,有荷兰语和英语两个版本,但认为不如传统的荷兰语教材(主要是便宜), 所以又换回荷兰语版本。荷兰语教材对我就没什么用了。补钱买了一套Jeppesen的EASA PPL培训教材,貌似是德国出的。和老师讲的内容是对应的。

  7. 比起汽车,飞机还是落后很多啊。考试里不少内容都是关于发动机的化油器的,很多发动机的参数都需要通过仪表判断然后手工调节到最佳。印象中国内大规模 电喷车替代化油器车2000年就开始了。

  8. 机型。PPL驾照是限定机型的。你需要一开始就决定用什么机型学习。全都考完拿到驾照后,你就能开这种机型了。想换个其他飞机开,你还需要在你想开的飞机上 训练个4、5个小时,然后驾照上就能添加一种机型。可以以此节约学费,比如可以用Evektor Sportstar飞机训练和考试,这种机型只有两个座位, 训练飞行每小时费用最便宜。拿到Evektor Sportstar飞机驾照后要带你装b带你飞时,可以在Piper四座的飞机上再练习几小时,然后飞Piper。

  9. 驾校还是很繁忙,只要是天气允许,就有很多人过来训练。我看有时候下着小雨都有人在飞,可能是能见度满足目视飞行即可,PPL驾照仅限于目视飞行。有一个 预约系统,里面有教练和飞机的可用时段,和驾校约车差不多。飞行训练费用按分钟计算,分为飞机的费用和教练的费用两部分。最便宜的飞机训练一小时也要大概 130欧左右的样子?费用根据油价每年会略微浮动。

  10. 这里的小飞机用的大都是标号100的航空汽油,具体是100LL,LL意味着低铅。和汽车类似,加油可以加更高标号的,不能加低标号的。100LL航空汽油是蓝色的, 颜色是故意加的染料,为了防止加错油。

]]>