6

信息技术应用创新产业新选择 —— 国产开源套件飞腾派评测

 7 months ago
source link: https://www.eefocus.com/video/1659715.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

随着科技的不断进步和信息技术应用创新产业的不断发展,各种开源应用逐渐兴起,各大厂商也竞相推出了各种开源硬件产品,如Arduino树莓派、Micro bit等。为了能够加快国产软、硬件生态建设的进程,推动国产化发展,同时也为了解决目前国内学校教育仍然采用国外平台的痛点,飞腾携手萤火工场推出了全新的国产开源硬件产品 —— 飞腾派,共同推动国产信创生态发展和人才培养。

一、开箱 & 装系统

飞腾派的包装采用中国红为主要色调,凸显了国产化的风格。在包装盒的正面是飞腾派的LOGO,而在侧面则印有萤火虫工厂、飞腾官网、飞腾公众号的二维码。整个包装简洁大气,风格鲜明。

1705567353-image001.png

图1 飞腾派的包装

打开包装盒,呈现在我们面前的就是我们今天的主角,飞腾派评估板(如图2),由于为开源硬件平台,整个包装盒内部并没有过多的介绍,所有的相关资料都可以从互联网上下载。考虑到飞腾派呈现优秀的性能需要稳定的电源输入,飞腾公司还为其搭配了一个12V3A的电源作为其供电输入。

1705567391-image003-rotated.jpg

图2.飞腾派评估板

2.   飞腾派的硬件资源

整个飞腾派评估板的大小为119mm*93mm,采用经典的黑色PCB制作。虽然尺寸不大,但是整个评估板上集成了众多主流接口和器件。在PCB的正面最吸引我们注意的当属这个50mm*50mm的散热风扇了,而在散热风扇的下面则是我们今天的主角飞腾CPU,其采用铝作为封装外壳,在正面印有飞腾的Logo及标识,通过查阅资料可以知道其是一颗采用ARMV8架构的处理器,并具备四个核心(包含2个[email protected]及2个FTC310@1.5GHz)。

在CPU的右边则是4颗DDR4存储器芯片,芯片型号CXDQ3BFAM,这是一颗纯国产的DDR4芯片,由合肥长鑫存储制造,容量为1GB,位宽为16,4颗共组成64位4GB。这里值得注意的是,目前飞腾派根据DDR容量的不同分别推出了2G和4G两个版本,用户购买的时候需要注意。

1705567412-image005.png

图3 飞腾派CPU、风扇及4GB DDR4

作为一块可玩性极高的信创板卡,网络接口当然必不可少,在飞腾派的上同时包含了无线与有线两种网络接口。对于无线网络,由板卡上搭载的湖南欧智通科技推出的FN-LINK的6221-SRC蓝牙WIFI一体化模组完成,该模块同时支持蓝牙4.2和2.4G/5G双频WIFI。

1705567426-image007.png

图4 蓝牙、WIFI一体化模块

而对于有线网络部分,飞腾派则提供了2个千兆的以太网接口,所使用的接口芯片为Motorcomm(裕太微)公司推出的国产YT8521芯片。这是一款高度集成的国产单口千兆以太网物理层收发器。它符合10BASE Te、100BASE-TX和1000BASE-T IEEE 802.3标准,通过采用最先进的DSP技术和模拟前端(AFE),实现通过UTP电缆进行高速数据传输和接收。

1705567440-image009.png

图5 有限网络接口

由于目前绝大多数外设都采用USB接口,为了增加扩展性与可玩性,飞腾派还提供了1个USB 3.0 Host接口(左上),3个USB 2.0 Host接口,通过这些接口,用于可以将飞腾派连接上各种外设。而在显示/音频支持方面,飞腾派提供了一个标准的HDMI接口(最大分辨率支持1920*1080,采用龙迅半导体LT8711芯片)和一个标准的3.5mm孔径的音频接口(顺芯ES8336芯片)。

1705567452-image011.png?x-oss-process=image%2Fresize%2Cm_fill%2Cw_600%2Ch_221

图6 4个USB Host接口及HDMI接口

众所周知,电源是一个系统是否能够正常工作的关键,为了保证上述各种外设能够正常工作,飞腾派提供了一个支持12V3A输入的电源接口。在系统主电源输入后,首先利用杰华特JWH5085芯片将其降压至5V,然后再利用MPQ8645,JWH5046,SGM2048等一系列芯片将其转换为0.8v、1.8v、3.3v等,具体如下图所示:

resize,m_fill,w_726,h_498

图7 电源系统

除此之外,整个板卡的正面还包含有复位按键,EMMC焊位(),FLASH烧录接口以及启动方式选择跳线。整个板卡的正面如下图所示:

resize,m_fill,w_846,h_662

图8 飞腾派评估板正面接口资源

在PCB的背面,则包含有SIM卡槽、MiniPCIe接口、microSD卡槽、2个多功能接口(2.54mm间距排针形式)以及Flash存储器。其中, Flash存储器为选配件,在我们手中这块板卡上面没有焊接,若用户需要可以自行焊接或者购买带有Flash存储器的飞腾派版本。而SIM卡槽则作为信号连接到miniPCIe的连接器,使用时需要搭配支持USIM功能的4G/5G等MiniPCIe接口的模块使用。MiniPCIe接口主要用来连接4G/5G或AI加速模组(如云天励飞的IPU-X100)使用。多功能接口则主要是把飞腾CPU的引脚引出,它们的具体功能如下所示:

resize,m_fill,w_788,h_588
resize,m_fill,w_828,h_218

整个飞腾派背面如下图所示:

resize,m_fill,w_770,h_580

图9 飞腾派评估板背面接口资源

通过上面的介绍,可以看出飞腾派是一款国产化程度很高的、资源丰富的且具有高性价比的套件,下面是飞腾派与树莓派4的对比:

1705567675-Snipaste_2024-01-18_16-47-28.png?x-oss-process=image%2Fresize%2Cm_fill%2Cw_362%2Ch_600

3.   飞腾派的软件资源

硬件性能的充分发挥当然离不开软件的支撑。为了能够充分展示飞腾派的性能,官方提供了极其详尽的资料,从原理图到芯片手册,再到系统镜像和程序源码,各种资料一应俱全。由于针对的目标为信创用户,官方将所有资料都放在百度网盘中,地址链接为: https://pan.baidu.com/s/1pStiyqohrB3SxHAFFk8R6Q?pwd=dzdv

全部资料大小约为79.2个G,工程师们可以根据自己的需要下载(官方会不定期更新网盘内的资料)。整个资料包共分为9个文件夹(如图所示),每个文件夹都以其中的内容命名,这使得资料查找起来非常方便。

1705567694-image023.png

图10 官方提供的软件资源

在这里值得一提的是,为了提升飞腾派的可玩性和实用性,官方还提供了多种镜像供用户选择(如图11),这其中就包括我们所熟知的Ubuntu、Harmony、RT_Thread等系统以及PhytiumPIOS(这是一款运行在飞腾派开发板上的基于Debian11深度定制的Linux系统,它针对开发板的硬件定制了内核配置及对应的软件包等)。

1705567700-image024.png

图11 官方提供的系统镜像

既然飞腾派的功能如此丰富,那么上电试用当然必不可少。由于板卡上没有焊接MMC和FLASH存储器,因此我们选择从Micro SD卡启动并烧录基于Debian11的PhytiumPIOS作为系统镜像。烧录前要准备好MicroSD卡、读卡器。具体的烧录步骤可以参考前述百度云上下载的飞腾派资料包中用户开发手册文件夹里飞腾派软件开发手册(12页)。

resize,m_fill,w_898,h_308

图13 飞腾派软件开发手册

烧录完成后就可以上电运行了,将飞腾派连接HDMI显示器,同时插入鼠标、键盘,插上电源系统开始启动。这里特别注意要确保评估板上的跳线选择的是从SD卡启动(这也是默认的启动方式),如下图所示:

resize,m_fill,w_452,h_600

图14 飞腾派启动跳线设置

系统启动后输入用户名用户名:user 密码:user 就可以进入PhytiumPIOS的界面了。由于是基于Debian11系统进行定制的,所以整个界面和Debian相差不大,使用起来也非常的方便。同时,通过有线或无线将飞腾派连接至网络后,就可以通过板卡上SSH或远程桌面对板卡进行连接和访问了。

(1)   SSH访问:

首先用如下命令安装SHH服务器

$ sudo apt-get install openssh-server

安装完成后确认SSH是否已经正常启动,键入如下命令:

ps -e | grep ssh

若没有正常启动,则可以用如下命令进行启动

sudo /etc/init.d/ssh start

当然我们也可以用下面两个命令停止SSH服务和重启SSH服务

sudo /etc/init.d/ssh stop #server 停止 ssh 服务
sudo /etc/init.d/ssh restart #server 重启 ssh 服务

SSH服务启动成功后,就可以用我们的主机远程访问飞腾派了。首先下载一个SHH访问软件(比如PUTTY),在这里我们使用的是Tera Term这个软件,运行后如下图所示。我们首先输入飞腾派的IP地址(在这里为192.168.1.110,可以在评估板上用ifconfig命令得到),然后选择SSH服务,点击确定即可。

1705567991-image029.png?x-oss-process=image%2Fresize%2Cm_fill%2Cw_600%2Ch_408

图15 SSH客户端设置

在弹出的认证对话框中选择输入飞腾派的用户名和密码user,点击“确定”

1705568000-image031.png?x-oss-process=image%2Fresize%2Cm_fill%2Cw_600%2Ch_577

图16 输入用户名密码

可以看到我们已经成功登录飞腾派评估板了。

resize,m_fill,w_934,h_336

图17 SSH连接成功

(2)远程桌面访问

虽然使用SSH能够远程连接并操作飞腾派,但毕竟还是字符界面,对于喜欢使用图形界面的工程师们来说还是不太直观。为此,我们使用远程桌面对飞腾派进行访问。在这里我们采用的是XRDP进行远程桌面访问。

首先在板卡上使用如下命令安装xrdp

$ sudo apt-get install xrdp -y

如果以前安装过xrdp则会直接打印出XRDP的版本号,如果没有安装过则会会直接在线安装。成功后将会显示如下界面。

1705568026-image035.png?x-oss-process=image%2Fresize%2Cm_fill%2Cw_600%2Ch_369

图18 安装Xrdp包

然后配置登录会话,配置文件需要放在登录的用户目录下,在这里我们就放在user用户下。因此,在终端里输入如下信息

1705568038-image037.png?x-oss-process=image%2Fresize%2Cm_fill%2Cw_600%2Ch_135

图19 修改配置文件

确定xrdp服务状态:

sudo systemctl status xrdp

当出现以下类似的界面时表示安装成功。

resize,m_fill,w_856,h_608

图20 确定xrdp服务状态

随后就可以用windows自带的远程工具软件进行远程桌面访问了。运行windows远程桌面工具(使用 win+r 键打开运行解码,输入 mstsc 后回车),在弹出的对话框中输入飞腾派评估板的IP地址(可以用Ifconfig查看),弹出登录界面,在这里我们输入用户名、密码user。(特别注意,在使用远程桌面登录时,确保板卡上的user用户已经登出,不然会出现闪退)。

1705568057-image041.png

图21 输入用户名密码

随后,连接建立,我们已经能够远程访问飞腾派的桌面了。

resize,m_fill,w_1028,h_600

图22 显示远程桌面

二、应用飞腾派获取MQTT数据实例

通过上面的评测我们可以看出飞腾派功能强大,非常适合作为小型的服务器或者边缘计算网关。在我们的项目中将飞腾派作为现代化温室的控制器,来对温室中温度、湿度、光照、CO2等情况进行监测。整个系统的结构如下图:

resize,m_fill,w_986,h_286

为了实现获取MQTT转发过来的温室环境数据,我们采用Python语言编写整个逻辑。PhytiumPIOS中已经预先安装有python编译器,所以我们就不必要另外安装了。但是由于我们使用的是MQTT协议,进行Json格式的数据传输,因此需要在程序中引入MQTT包和Json包(若没有提前安装这两个包的话还需要用Pip命令安装这两个包),如下:

import paho.mqtt.client as mqtt
import json

随后,我们定义整个程序的主函数:

def main():
    client = mqtt.Client()
    # 注册事件
    client.on_connect = on_connect    #注册on_connect事件
    client.on_message = on_message   #注册on_message事件
    # 设置账号密码(如果需要的话)
    client.username_pw_set(username, password=password)
    # 连接到服务器
    client.connect(host, port=port, keepalive=60)
    # 守护连接状态
client.loop_forever()

其中,on_connect的源码如下:

def on_connect(client, userdata, flags, respons_code):
    if respons_code == 0:
        # 连接成功
        print('Connection Succeed!')
    else:
        # 连接失败并显示错误代码
        print('Connect Error status {0}'.format(respons_code))
        # 订阅信息
client.subscribe(topic)

on_message的源码如下:

def on_message(client, userdata, msg):
    # 打印订阅消息主题
    print("topic:", msg.topic)
    # print('msg.payload:', msg.payload)
    # 打印消息数据
    try:
        jsondata = json.loads(msg.payload)
    except Exception as e:
        print('数据格式错误', e)
        return

运行程序,同时将温室上电打开,系统开始接收温室控制器发送过来的数据:

resize,m_fill,w_956,h_596

飞腾派功能强大,各种外设接口一应俱全,软件资源非常丰富。特别是是其搭配了很多国产芯片,最大限度的实现了开源硬件的国产化。目前,飞腾派已经在智能机械臂、教学实验箱、自动化控制、边缘计算网关等领域崭露头角。相信在不久的将来,飞腾派将会成为国产信创领域的核心力量。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK