查看: 2590|回复: 0

超越RPI-Zero,友善之臂全新力作NanoPI-NEO

[复制链接]
  • TA的每日心情
    奋斗
    2022-9-16 05:52
  • 签到天数: 1368 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2016-8-5 09:06:57 | 显示全部楼层 |阅读模式
    分享到:
    说起单板机,可能大家最先想到的就是鼎鼎大名的树莓派了,这个2012年面世的卡片电脑几乎成了众多开发板厂商争相学习并超越的标准,各种“派”都兼容了树莓派的接口,方便接驳各种附加模块,方便开发者的使用。
        而且各种“派”的硬件配置也几乎都要高于树莓派来体现自己的价值,吸引更多开发者的青睐。随着竞争的越发激烈,树莓派也在不断地升级,衍生出许多树莓派版本,以至于推出了最新的RPI3,四核的树莓派,在性能上提高了很多。不过呢,树莓派的另一个方向则是向着“小”来发展,这就是树莓派Zero,一个以小巧著称的版本。
        当然,小是有代价的,树莓派的Zero摒弃了多种传统的接口,只保留了最基本的功能以及标志性的40Pin的GPIO接口。然而树莓派Zero并不是最小的,在提供相似的功能下,友善之臂为我们带来了一款更加小巧的开发板--NanoPI NEO。
    它们有什么区别呢?对比一下就很直观了(参数占优的部分以红色标注)

        从参数中可以明显看到,树莓派Zero还在采用上一代的产品,双核的ARM11的CPU,而NanoPI NEO是四核的Cortex-A7的,并且频率还要高出一些,无论是单线程还是多线程的效率NanoPI NEO都会强很多。内存的容量都是512MB,而NanoPI NEO则是DDR3内存,同样高出一代。
        树莓派Zero带有一个Mini-HDMI的视频接口,可以用于连接显示器,这一点是NanoPI NEO所不具备的,但是NanoPI NEO多了一个有线网络的接口,和一个标准的USB接口,可谓是侧重点不同,各有千秋吧。两块板子均突出一个小字,由于板型不一样,并不好说出谁大谁小(单比面积的话还是NanoPI NEO更胜一筹),然而NanoPI NEO是个正方形,正好安装常见的4厘米风扇,为长期使用提供更好的保证。
        NanoPI NEO引出的排针,除了兼容树莓派1代的24Pin以外,还增加了12Pin特殊功能的引脚,可以自行扩展出两组USB、红外线接收器、音频输入和输出等功能。
        至于价格呢,5美元的树莓派确实是很便宜了,配置更高的NanoPI NEO的价格比树莓派Zero高了一点点,只是树莓派Zero到目前为止还是供货不足,甚至出现加价20倍才能买到的现象,友善之臂的NanoPI NEO则不会出现这样的情况,随时方便购买。
        上面提到了NanoPI NEO没有视频输出接口,那么该怎么用呢?其实NanoPI NEO主要面向的是IOT开发,运行的系统是Ubuntu Core系统,这是一个专为云平台和智能设备打造的全新ubuntu,采用与Ubuntu 相同的库但提供应用程序的机制却更加简单的极小服务器系统。
        在它的基础上可以开发自己需要的各种服务器程序。只要简单地用WinDD将镜像文件写入到TF卡中即可启动NanoPI NEO进入终端环境。同时可以依靠ssh客户端完成命令行的操作。可能有些朋友对Linux的命令行感到恐惧,所以这个操作系统也提供了sftp的服务,可以像操作Windows本地文件一样进行文件的操作,大大简化了难度。 而且友善之臂的官方wiki为这个开发板提供了详细的操作说明和一些相关的资料,按照教程来操作就能很快的上手了。NanoPI NEO的wiki的地址为:https://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO/zh
        NanoPI NEO的硬件和软件基本了解了,那么它的性能到底如何呢,是否能胜任当作一个小服务器呢?下面来测试一下吧,分数最能说明问题。测试使用的工具是Linux上很常见的sysbench,一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试,小巧易用。apt-get install sysbench后开始测试(请先添加源或自行编译,很快的):
        CPU测试,NanoPI NEO是四核的CPU,所以采用了四线程运行

        内存测试

        内存测试

        毕竟有着价格上的限制,虽然在性能上不是很突出,但是NanoPI NEO摒除了众多接口,没有添加其他的功能芯片,所以在功耗上还是有一定的优势的。待机功耗为5V 240mA,也就是1W多,没有安装风扇。

        满载大概在450mA左右,为了保证运行,这个是安装了风扇之后的电流。Linux上的开发比较简单,而且支持众多的语言,即使操作硬件也可以不必用C来完成,这次呢就用golang来尝试一下控制NanoPI NEO板载的两个LED灯。

        Golang是谷歌推出的一款编译型的语言,然而它却具有很多托管或静态语言的特征和优势,比如自动内存回收机制、变量随时声明等,而且最大的亮点是其天生支持协程,轻松应对高并发的场景。同时支持众多的平台,包括NanoPI NEO这样的ARM Linxu也没问题,直接将编译好的可执行文件拷到系统里即可运行,不需要其他的运行环境。至于操作硬件的方法,其实是Linux操作系统提供的接口,将硬件的物理地址通过API映射为内存地址,这样就可以在用户层的程序中操作寄存器了。
        先来看一看NanoPI NEO板载的两个LED灯对应的是哪个GPIO口。

        原理图上已经标注了电源灯是GPIOL10,也就是那个绿色的灯(图上写的是红色,产品改版后已改为绿色),状态灯是GPIOA10,蓝色的那个。知道了这些就可以来写程序了。

        程序的详细代码就不发出来了,都是手册上的东西,程序的作用是每次运行将这两个灯的状态改变,也就是亮的关掉,灭的打开。编译后,将生成的可执行文件通过sftp上传到NanoPI NEO上,使用root用户来执行


        同理,板子上其他所有的端口都可以用程序来控制,实现各种功能。前面已经提到过,NanoPI NEO面向的是IOT产品,没有视频输出接口,同时操作系统运行的是UbuntuCore,没有图形界面,但是胜在功耗低、体积小、价格便宜,所以把NanoPI NEO当作一个小服务器采集数据来用还是很合适的,通过自己编程或者安装对应的软件可以实现千变万化的功能,更可以集成到现有的产品当中而不需要做太多的工作,赶快来试试吧。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-18 04:25 , Processed in 0.122692 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.