本节将介绍无人机和负载之间的常用通信协议,以及E-Port转接板和Payload SDK接口拓展板以及硬件连接的基本方法。
在PSDK中,无人机和负载之间主要采用UART、USB和网络这3种通信方式,实现无人机状态的获取,并下达控制指令。
1.串口通信
串口即串行通信接口,是实现硬件交互最常见的形式。显然,串口通信是一个宽泛概念,包括UART、COM等不同的硬件形式,后文介绍的USB通信也是一种串口通信。这里所介绍的串口通信是指UART(Universal Asynchronous Receiver/Transmitter),即通用异步收发器。
UART通常采用TTL(Transistor-Transistor Logic)电平信号,这是一种全双工的电平信号,收发分别采用1根数据线完成,如图2-17所示。UART包括发送端TX和接收端RX两个通信接口,以及用于平衡两个设备电源基准的GND接口。必要时,某个设备还需要向另一方供电,提供3V3、5V接口等。
图2-17 UART通信连接方式
注意: UART是硬件标准,TTL是通信标准。相对于RS232、RS422、RS485等标准,TTL的传输速率很短,一般不能超过2m。
UART通信时,会将数据转换为二进制的字节表示,并且每次传输时传输1个字节,按照先低位、后高位的方式发送,如图2-18所示。在低电平(0~0.5V)下表示数字0,在高电平(2.4~5V)下表示数字1。
图2-18 UART通信数据发送示意
UART通信的速度取决于波特率,是指1秒发送二进制数据的数量,单位为bps。常见的波特率有14400、19200、38400、57600、115200等。波特率越高,传输速率越快,但是对设备和线材的要求也越高。
2.USB通信
通用串行总线(Universal Serial Bus, USB)是一种重要且常用的外部总线标准,广泛应用在手机、电脑等各类电子产品中。如无特别需求,USB几乎是电子设备之间通信的最佳选择。
USB硬件标准和通信协议
USB通信需要遵循一定的USB标准,包括USB硬件接口和USB通信标准。
(1)USB硬件接口包括Type-A、Type-B和Type-C等类型。Type-A接口和Type-B接口按照体积大小还分为标准(Standard)、小型(Mini)和微型(Micro)3种类型,如图2-19所示。
图2-19 USB硬件接口
标准的Type-A和Type-C接口是最常见的USB硬件接口,如树莓派包括了4个Type-A接口和1个Type-C接口。近几年,Type-C标准正在取代Type-A和Type-B,成为更加流行的硬件接口。
注意: 许多打印机、硬盘盒等设备仍然使用标准的Type-B接口。老式的手机多采用Mini Type-B接口和Micro Type-B接口,常被称为Mini-USB“T口”和Micro-USB“扁口”。
全功能的Type-C接口有24个引脚,如图2-20所示(B6和B7接口可以省略)。
图2-20 Type-C接口的引脚定义
注意: 通常绝大多数的Type-C接口和Type-C数据线都是引脚不全的“阉割”版,可能难以支撑最新的USB4、PD3.0等协议。
(2)USB通信标准则包括USB 2.0、USB 3.0、USB4、雷电3、雷电4等,其中USB开头的标准为USB标准化组织(USB-IF)制定的,雷电标准最初是由苹果和微软联手制定的,雷电3捐赠给了USB-IF,而雷电4仍然由英特尔主导研发。各类USB通信标准及其带宽和支持接口类型如表2-3所示。
表2-3 USB通信协议
USB4和雷电3、雷电4接口是相互兼容的,并且支持USB-PD(Power Delivery)供电协议。在PD 3.0协议下,可以最高提供100W的供电功率。USB4可以一统外设江湖,不仅支持常用的USB设备,还可以当作电源接口、外接显卡显示器。
3.网络通信
网络通信也是一种串行通信方式,通常采用RJ45接口,共有8个引脚。常见的网线是双绞线,同样也是8根线,其中两两配对。不过,在实际的网络通信中可以仅采用其中4个引脚,也可以使用其中的8个引脚,如表2-4所示。
表2-4 网口引脚定义
4芯网线最大支持100Mbps的传输速度,而8芯网线则可以达到千兆或者万兆速度。
在后文中,将会使用到UART通信、USB 2.0通信和4芯网络通信。上述几种通信方式的对比如表2-5所示。
表2-5 几种通信方式的对比
续表
为了连接硬件和设计负载方便,开发者还需要理解E-Port接口和标准负载工具的接口定义。本小节将介绍这些接口,以及如何通过E-Port转接板和接口扩展板使这些接口标准化,方便开发调试。
1.E-Port接口(OSDK接口)和E-Port转接板
通过E-Port开发套件能够轻松地利用E-Port接口设计和开发负载,支持M3D/M3TD、M350 RTK、M300 RTK、M30/M30T和M3E/M3T无人机,如图2-21所示。
图2-21 E-Port接口位置
在M300 RTK中,E-Port接口为OSDK接口,它们具有相同的引脚定义,在此一并介绍。
1)E-Port接口(OSDK接口)
E-Port接口的硬件形态和USB Type-C接口的硬件形态是相同的,但接口的定义不同。E-Port接口各引脚的定义如图2-22所示。
图2-22 E-Port接口各引脚的定义
从图2-22中可以发现,E-Port接口的引脚并不是对称的,其中A5~A8、B5~B8具有独特的引脚功能。作为比较,USB Type-C接口引脚的定义则是对称的,如图2-20所示。
在开发过程中,E-Port同轴线没有防呆设计,如果反接则功能无法正常使用。不过,在开发者设计负载并量产后,应当有防呆设计;可以使用SDK同轴线或者参考SDK同轴线设计。
E-Port接口主要提供电源输出和以下3种通信功能,其各引脚的功能如表2-6所示。
❑ UART串口信号传输。
❑ USB 2.0/Ethernet数据传输。
❑ PPS信号实现时间同步。
表2-6 E-Port接口各引脚的功能
(1)电源:E-Port接口的电源供电使用4个VCC引脚输出,建议同时使用4个引脚为负载供电,以提高供电的稳定性和安全性。不同无人机的供电电压和能力是不同的,如表2-7所示。
表2-7 不同无人机的供电电压和供电能力
在设计和量产负载时,建议选择宽电压输入的电源转换模块,以适配表2-7中的各类无人机,为负载的处理器和各类传感器提供稳定的电压。无人机可以自动检测和限制电源功率,当负载出现大功率输出(或短路)等情况时,会在Polit 2中出现过载提示。
注意: M3E/M3T无人机具有自动断电功能。在开机状态下,接入负载后的15s内如果PSDK程序没有正常启动,E-Port接口将会自动断电。
(2)UART: E-Port接口的串口包括TX引脚和RX引脚,用于无人机和负载质检的串口通信。 E-Port接口的串口所支持的波特率如表2-8所示。
表2-8 E-Port接口的串口所支持的波特率
从表2-8中可以发现,选择921600bps波特率可以适配所有的无人机机型。
(3)USB:通过ID引脚切换USB的主从设备,同时也控制VBUS是否输出电压。当ID引脚被拉低时,无人机为主设备;反之为从设备。默认情况下,M350 RTK、M30/M30T和M3E/M3T默认作为USB主设备,而M300 RTK默认作为从设备。
VBUS引脚是USB的5V电压输出。不过,VBUS输出的电源有以下限制。
❑ 当无人机设置为主设备时,VBUS才会输出电源。
❑ 最高输出电流为500mA。
❑ M350 RTK和M3E/M3T不支持VBUS输出,只能检测是否存在外部电压。
VBUS引脚的供电能力有限,建议开发者使用VCC引脚和电源转换模块对负载供电,而不是通过VBUS引脚取电。
(4)DET引脚: DET引脚用于负载检测,支持M350 RTK、M30/M30T和M3E/M3T。 当DET引脚被拉低,监测到负载连接,才会输出额定电压。 因此,在设计时需要将DET引脚直接接地(仅M350 RTK、M30/M30T、M3E/M3T)。 经过测试,M30/M30T无人机在DET引脚没有接地的情况下,无法使用UART等通信协议。
(5)PPS引脚:PPS引脚可以同步无人机和负载的时间。如果负载需要采集照片等各类数据,可以使数据采集时间与无人机的有关数据相匹配。
注意: PPS引脚需要RTK的支持,否则无法正常使用。
(6)NC引脚:实际上,NC(Not Connected)引脚并非“未连接”,而是预留的信号引脚。因此,在硬件设计时需要将NC引脚置空,避免影响或损坏E-Port接口和飞行平台。
2)E-Port转接板
E-Port转接板是E-Port开发套件的核心,如图2-23所示。
E-Port转接板的主要功能是将E-Port接口转换为常用的接口,便于开发调试,这些接口主要包括以下几类。
(1)电源输出:E-Port转接板的电源输出接口为3个XT30电源接口,分别用于直接输出VCC电源(VCC标识)、输出5V/2A电源(5V2A标识)和输出12V/2A电源(12V2A标识)。 一般情况下,5V/2A电源和XT30转USB-C电源线可以用于STM32开发板供电,12V/2A电源和XT30转DC5.5电源线可以用于树莓派供电。如果有特殊的电源电压需求,开发者可以通过VCC转换合适的电源输出,其中VCC输出电压可以参考表2-7。
图2-23 E-Port转接板
注意: XT30是一种常见的无人机电源插头类型,一般为黄色外壳;额定电流一般为15A,最大瞬时电流可以达到30A左右。除XT30外,还有更大尺寸、更大规格的XT60和XT90插头。
(2)USB连接:USB输出包括USB主/从设备切换开关和USB 2.0 Type-C接口。不过,USB连接并不支持RTOS运行环境。在实际使用PSDK时,USB连接方式包括RNDIS连接和Bulk链接两种方式。
❑ RNDIS连接:远程网络驱动接口规范(Remote Network Driver Interface Specification, RNDIS)是一种在USB设备上执行TCP/IP协议的一种规范(TCP/IP over USB)。
❑ Bulk连接:USB Bulk通信方式。
注意: USB有4种传输模式,分别是控制传输、同步传输、中断传输和批量传输。控制传输(Control),控制指令、状态查询等,按照先进先出的原则处理数据;同步传输(Isochronous),需要建立连接,以固定的传输速率连续传输数据,主要用于正确性要求不高但是对实时性敏感的数据传输,如常用于麦克风或音响设备的语音数据;中断传输(Interrupt),传输量小但实时性强,如键盘、鼠标或手柄等设备;批量传输(Bulk),数据量大且正确性要求较高的数据,如打印机、相机等。
(3)排针连接:通过排针可以输出5V电压(5V0)、3V电压(3V3),以及串口(RX、TX)和PPS时钟同步接口(PPS)。
注意: 默认情况下,E-Port转接板下方的排针被防护塞遮住。为了避免电源短路,建议在未使用相应的排针时保留防护塞。例如,当仅使用UART/PPS时,可以使用防护塞遮住电源排针部分。
3)E-Port同轴线
使用E-Port转接板时,需要通过E-Port同轴线连接E-Port接口,并打开电源开关; 电源指示灯会显示当前的开关状态。E-Port同轴线两侧分别是Type-C的公头和母头,可以理解为1条全功能24引脚的Type-C延长线,如图2-24所示。Type-C公头插入E-Port转接板,Type-C母头插入无人机E-Port接口。
图2-24 E-Port同轴线
由于E-Port接口是非对称的,因此E-Port同轴线分为A、B两面;在实际接入无人机和E-Port转接板时,需要按照一致的方向插入,否则无法正常使用。在E-Port同轴线正确连接无人机和负载时,A面表示A1~A12引脚所在方向,B面表示B1~B12引脚所在方向。
注意: 与普通的高速数据线相比,同轴线(Coaxial Line)不仅更细更容易弯曲,并且可以与外部环境隔离,具有高阻抗、隔离外部高频信号的特点,通常用于无人机图传、云台,以及折叠手机等无线电干扰较强或需要经常弯折的场景,比如SKYPORT V2、DJI O3图传设备,以及高端的USB 4数据线都使用了同轴线技术。
在产品发布时,可以使用SDK同轴线代替E-Port同轴线。SDK同轴线具有结构防水和防呆的特点,可以实现快速拆装。也就是说,SDK同轴线不会有插反的情况出现。另外,开发者也可以根据SDK同轴线的引脚定义,将其集成至定制的负载设备中。
2.E-Port Lite接口
E-Port Lite接口的定义与Type-C接口的定义相同,如图2-20所示。由于E-Port Lite接口也作为无人机的调参接口,因此当需要使用到E-Port Lite接口功能时,需要开启接口的USB-OTG功能,即使用D+、D-、CC1、VBUS和GND引脚,且保持CC1引脚和GND引脚之间存在5.1kΩ的电阻。为了保证接口运行的稳定性,负载设备连接E-Port Lite接口时,除上述引脚外,务必保证其他引脚悬空。
另外,由于E-Port Lite接口的供电能力较弱,不建议设计大功率负载。对于M3D/M3TD无人机来说,可以使用E-Port接口设计大功率负载。对于FlyCart 30无人机来说,可以配合FlyCart 30空吊系统接口进行供电,如图2-25所示。
图2-25 FlyCart 30空吊系统接口
FlyCart 30空吊系统接口各引脚的定义如表2-9所示。引脚VCC_60V_FZ为电压所处端,可以提供42~60V的电压输出,GND_BAT为公共地引脚。空吊系统的额定功率为460W,瞬间功率为1024W,请不要超功率运行。
表2-9 FlyCart 30空吊系统接口各引脚的定义
3.DGC 2.0接口和接口转接板
DGC 2.0接口为云台接口,目前大疆并没有开放该接口的引脚定义,只能配合SkyPort V2转接环或者X-Port标准云台开发负载。此类硬件仅支持M350 RTK和M300 RTK这两种机型。
1)SkyPort V2转接环
SkyPort V2转接环可以将DGC 2.0接口转换为排线接口和同轴线接口,并可以起到固定负载的作用。SkyPort V2排线接口和同轴线接口的引脚定义如图2-26所示。
图2-26 SkyPort V2排线接口和同轴线接口的引脚定义
排线和同轴线的连接方式二选其一即可:两者的功能是相同的,不能同时使用。
注意: 排线接口请注意红色线缆与圆点标记位对齐插入,反插会导致短路循环。
SkyPort V2各引脚接口的说明如表2-10所示。
表2-10 SkyPort V2各引脚接口的说明
续表
下面详细介绍这几种接口的基本能力。
(1)电源:SkyPort V2的排线供电使用3个VCC引脚输出,同轴线采用16个VCC引脚输出,建议同时使用排线或同轴线内所有的引脚为负载供电,以提高供电的稳定性和安全性。SkyPort V2转接环输出的电源为13.6V/4A(正常电压)或17V/4A(高功率申请)。高功率申请是通过HIGN_POWER_APPLY接口实现的。
(2)串口: SkyPort V2的串口包括UART_TX和UART_RX,用于无人机和负载质检的串口通信。 M350 RTK与M300 RTK的DGC 2.0接口所支持的串口波特率为115200bps、230400bps、460800bps、921600bps。
(3)网口:网口包括LAN_TXP、LAN_TXN、LAN_RXP和LAN_RXN。
关于PPS和NC引脚的用法,与E-Port接口相同,此处不再赘述。
2)X-Port标准云台
X-Port标准云台可以将DGC 2.0接口转换为排线接口,并可以起到固定和稳定负载的作用:X-Port排线接口的引脚定义如图2-27所示。
图2-27 X-Port排线接口的引脚定义
从图2-27中可以发现,X-Port标准云台和SkyPort V2转接环的排线引脚是相同的,可以参考上文的说明,但两者的输出电源的最大电流不同:X-Port标准云台输出的电源为13.6V/2A(正常电压)或17V/2.5A(高功率申请)。
3)接口转接板
Payload SDK转接板(接口扩展板)是Payload SDK开发套件2.0的核心,如图2-28所示。
图2-28 Payload SDK转接板(接口扩展板)
与E-Port转接板类似,Payload SDK转接板的主要功能是将标准负载工具的引线接口转换为常用的接口,便于开发调试,这些接口主要包括以下几类。
(1)排线和同轴线输入:Payload SDK转接板需要通过排线或同轴线和SkyPort V2连接,或者通过排线和X-Port连接。
(2)电源输出:Payload SDK转接板的电源输出接口为3个XT30电源接口,分别用于直接输出13V6/17V电源(13V6/17V标识)、输出5V/2A电源(5V/2A标识)和输出9V/2A电源(9V2A标识)。
(3)排针输出:通过排针可以输出5V电压(5V)、串口(UART_RX、UART_TX)、高功率申请(HPWR)和PPS时钟同步接口(PPS)等,可用于连接负载。
(4)网口输出:标准的网络端口RJ45,可用于连接负载。
不同飞行平台、不同接口以及不同开发套件的硬件连接方式不同。由于M350 RTK的接口很全,因此本小节以M350 RTK为例介绍硬件连接的基本方式,最后介绍M3D/M3TD无人机E-Port Lite接口的连接方式。其余飞行平台的硬件连接方式是类似的,开发者可作为参考,也可以访问大疆开发者网站查询相应的硬件连接方式。在开发阶段,M350 RTK的硬件连接方式如图2-29所示。
E-Port转接板(或接口扩展板)实际上作为“中间件”,将开发板和飞行平台连接起来。本小节将介绍E-Port转接板(或接口扩展板)连接飞行平台和连接开发板的方法。
图2-29 M350 RTK的硬件连接方式
1.E-Port接口硬件连接
无人机和开发板的连接如图2-30所示。
(1)通过E-Port同轴线连接无人机和E-Port转接板:对于M350 RTK、M300 RTK和M30/M30T无人机,E-Port同轴线母头连接无人机时,A面向内(朝向中心),公头连接转接板时,B面向上(朝向芯片器件面);对于M3D/M3DT、M3E/M3T无人机,E-Port同轴线母头连接无人机时,A面向左(以前向为正方向),公头连接转接板时,B面向上(朝向芯片器件面)。
(2)连接负载电源:将电源输出接口连接到负载设备(开发板),注意电压匹配,谨防高压烧毁开发板。
图2-30 无人机和开发板的连接(E-Port接口硬件连接)
(3)连接串口:通过杜邦线或排线插头连接E-Port转接板和负载设备的串口(包括TX、RX和GND)。按照串口的通信协议,负载的发送端口(TX)与E-Port转接板接收端口(RX)连接,负载的接收端口(RX)与E-Port转接板发送端口(TX)连接。如果负载设备没有串口,可以在负载端使用USB转TTL模块(如CH340设备等)。
注意: 某些树莓派的串口性能较差,建议使用USB转TTL模块连接串口。
对于STM32F4xx开发板来说,为了便于调试,还需要通过ARM仿真器(JLINK、STLINK等)和串口与计算机相连接;其中ARM仿真器用于烧录和调试应用程序;串口用于输出调试内容,如图2-31所示。
图2-31 STM32F4xx开发板连接方式
注意: 连接时需要避免串口线、电源线和J-Link交叉供电,以免烧坏电路板。当一种供电方式供电能力不够时,建议独立供电。
STM32支持系统编程(In-System Programming, ISP)和电路编程(In-circuit Programming, ICP)两种常用的烧录方式。其中,ISP需要通过自举程序(Bootloader)和外围的UART/SPI等接口进行烧录,但是一般难以进行调试。ICP主要使用SWD、JTAG接口进行烧录,包括JLINK和STLINK仿真器等。JLINK是德国SEGGER公司推出的产品,主要支持ARM内核的芯片,如ARM7、ARM9等。而STLINK是STMicroelectronics(意法半导体)公司推出的仿真器产品,主要支持STM8和STM32系列的微控制器。
此外,还可以通过串口线直接下载程序进行烧录。这种方式需要设置BOOT0=1,BOOT1=0,使单片机从系统存储器启动,运行出厂预置的BootLoader程序,然后通过串口接收程序并将其写入主存储器。烧录完成后,需要将BOOT0引脚拉低,在主存储器处运行刚烧录的代码。
(4)连接网口或连接USB:这两种连接方式选其一即可。对于Linux开发板,USB或网口连接是非必须的,但功能受到限制;对于RTOS开发板,无须此类连接。
首先,需要将USB主/从切换开关切换为主设备(Host),即拨动开关靠向USB 2.0接口方向,然后通过USB网卡连接或者直接USB连接,如下所示。
❑ USB网卡连接(适用于M3D/M3TD、M350 RTK、M30/M30T和M3E/M3T等无人机):使用USB网卡芯片对接E-Port转接板的USB接口和负载,建议选择AX88179A、RTL8152等Type-C接口的USB网卡,如图2-32所示。
❑ USB连接(适用于M3D/M3TD、M350 RTK、M30/M30T、M3E/M3T和M300 RTK等无人机):直接通过USB线连接E-Port转接板的USB接口和负载。 此类连接方式直接通过USB对负载供电,无须独立的供电连接,如图2-33所示。
注意: 对于树莓派4B来说,RNDIS或Bulk通信只能采用USB 2.0协议,因此并不需要全功能的Type-C数据线。但是,为了屏蔽干扰,建议选择USB同轴线。
(5)打开E-Port转接板的电源开关:朝向远离E-Port接口的方向波动开关。
图2-32 通过USB网卡连接树莓派4B
图2-33 通过USB连接树莓派4B
2.SkyPort V2转接环硬件连接
SkyPort V2转接环硬件连接(见图2-34)相对简单,其步骤如下所述。
(1)将SkyPort V2转接环安装固定在负载的云台支架上,既可以安装在上云台支架,也可以安装在下云台支架。
图2-34 SkyPort V2转接环硬件连接
(2)通过排线或者同轴线连接SkyPort V2与接口拓展板。
(3)连接串口。
(4)连接网口(可选)。
注意: 由于接口扩展板上存在网络接口,因此直接使用网线连接Linux开发板(树莓派)的网口即可,无须USB网卡。另外,RTOS开发板不支持使用该网络接口。
(5)连接电源。
3.X-Port标准云台硬件连接
X-Port标准云台硬件连接(见图2-35)和SkyPort V2非常类似,步骤如下所述。
(1)将X-Port标准云台安装固定在负载的云台支架上,既可以安装在上云台支架,也可以安装在下云台支架。
(2)通过排线或者同轴线连接X-Port与接口拓展板。
(3)连接串口。
(4)连接网口(可选)。
(5)连接电源。
图2-35 X-Port标准云台硬件连接
关于串口、网口和电源的连接方法可以参考上述E-Port转接板中的连接方法,这里不再赘述。
4.E-Port Lite接口硬件连接
E-Port Lite接口支持M3D/M3TD和FlyCart30无人机,是大疆行业无人机系列最新的接口标准。E-Port Lite接口经过了阉割,仅支持与负载之间的UART串口通信,因此这种连接方式更加适合于FreeRTOS操作系统(如STM32开发平台等)。E-Port Lite接口的连接方式非常简单,只需要以USB-OTG的方式通过USB转TTL模块与负载设备连接即可。 M3D/M3TD和FlyCart 30无人机的E-Port Lite接口与负载连接的连接方式分别如图2-36和图2-37所示。
图2-36 M3D/M3TD无人机E-Port Lite接口与负载的连接方式
图2-37 FlyCart 30无人机E-Port Lite接口与负载的连接方式
在选用USB-TTL串口模块时,尽量选择官方支持验证的CP2102、FT232模块,一些低成本的USB-TTL模块产品可能因性能不佳导致负载连接失败,需要开发者特别注意。