华硕第一款单板计算机——ASUS Tinker Board评测
扫描二维码
随时随地手机看文章
提起华硕,可能很多人会想到的是它的主板和显卡,目前华硕的显卡和主板业务均为世界前三的水平,其产品特点是具有极高的稳定性。当这个以主板制造而闻名于世的企业进军单板计算机行业时,又会有怎样的表现呢?
前不久,华硕推出了一款单板计算机,名为ASUS Tinker Board,此款单板计算机基于ARM处理器,采取了与树莓派相同的外形设计,但是性能远远高于树莓派。很明显,华硕推出这款开发板的目的就是要进军SBC这个行业并与树莓派等抗衡,而这种底气,就是来自于华硕在主板制造行业多年的积累。
下面一起来了解一下这款ASUS Tinker Board。
开箱
Tinker Board的外盒采用的是纸盒包装,正面是一个tinker board的标志。
图1.1 包装正面
背面则包含了一些Tinker Board的特征,包括四核CPU、2GB RAM等,此外还有FCC等认证标志。包装十分专业。
图1.2 包装背面
包装内部包括:一块用防静电袋包装的Tinker Board,一份说明书,一块散热片。
图1.3 包装内物品
Tinker Board的正面,接口布局和树莓派几乎一模一样,正面包含了CPU等大部分元件。
图1.4 tinker board正面
Tinker Board的背面,包含了两块内存芯片和SD卡槽。
图1.5 tinker board背面
硬件介绍
Tinker Board的硬件组成和市面上目前大多数开发板相似,都包括了CPU、内存、电源管理系统以及可以用于开发的接口,包括USB、以太网、MIPI-DSI、MIPI-CSI、HDMI、SD卡槽、WIFI模组、音频接口以及兼容树莓派的40pin GPIO。下图展示了开发板的硬件布局。
图2.1 tinker board硬件布局
下面介绍一下各个部分
1、CPU:RK3288
RK3288为瑞芯微于2014年推出的一款应用处理器,是全球第一款采用ARM Cortex A17的应用处理器,ARM Cortex A17属于ARM 32位内核中最强的。此外,RK3288还采用了当时算是最先进的GPU,ARM Mali T764,即使放到现在,这款应用处理器仍然算是较高性能的。其具体参数如下
- 四核Cortex-A17 CPU,主频最高1.8GHz
- 多核Mali-T764 GPU,支持 OpenGL ES 1.1/2.0/3.1, OpenCL, DirectX9.3
- 支持4K 10bits VP9/H265/H264 视频解码,最多60fps
- 支持RGB、LVDS、MIPI-DSI、eDP、HDMI 2.0等显示接口
- 支持双通道64位 DDR3-1333
- 支持eMMC 4.51
- 支持 SDIO 3.0
- 支持USB、I2C、I2S、UART、SPI、PS2
- 支持千兆以太网
其框图如下
图2.2 RK3288框图
2、2GB DDR3
板载2GB DDR3,芯片型号为K4E8E324EB-EGCF,类型为LPDDR3-1866单片位宽为32位,此处两片组成双通道,位宽64位,每片容量1GB,两片共2GB。
3、PMU RK808
RK808为Rockchip公司为其处理器配套的一款电源管理IC,能够同时支持4路DC-DC,8路LDO,2路低Rds开关,使用I2C接口与CPU通信,同时可支持程控时序和时钟信号。
4、WiFi/BT模组
板载的WiFi/BT模组为azurewave(海华科技)的AW-NB177NF,此模组基于realtek公司的RTL8723BS,支持蓝牙4.0与802.11b/g/n 2.4GHz WiFi。
5、千兆以太网PHY
板载的千兆以太网PHY为RTL8211E,此芯片能够支持10/100/1000M以太网自适应,与RK3288采用RGMII接口通信
6、音频解码芯片
板载的音频解码芯片为Realtek的ALC4040,此芯片能够支持24bit/192KHz的音频播放与24bit/96KHz的录制。此芯片采用的是USB 2.0接口,而不是常见的I2S接口。
7、扩展接口
tinker board的40pin 接口兼容树莓派,它的接口有一大特色,就是用不同的颜色标记了不同作用的接口。其中红色代表5V供电引脚,黄色代表3.3V供电引脚,绿色代表常规IO,蓝色代表I2C接口,黑色代表GND。这样方便了DIY同时也有效避免了误接线造成的元件烧毁
图2.3 tinker board扩展口
与树莓派等开发板类似,tinker board也是在一张信用卡大小的空间上集成了丰富的功能,而且在元件的用料上,tinker board的配置更好,可以直接作为一款小型电脑来使用了。
[!--empirenews.page--]操作系统烧写与初步配置
由于开发板上面没有EMMC或者Nand flash等大容量存储器,因此要使用tinker board,首先要准备一张TF卡,推荐容量为16GB,类型为class 10的。目前开发板官方支持的系统包括Android与Debian。这里烧写的镜像为基于Debian 的Tinker OS。
首先要到官网下载img格式的镜像,下载的镜像名为20171115-tinker-board-linaro-stretch-alip-v2.0.4.img。下载完成之后使用镜像烧写工具Win32 Disk Imager进行烧写。
图3.1 烧写系统
烧写完成之后,将SD卡放入tinker board的SD卡槽中,此时有两种方法可以进行下一步操作
1、 使用鼠标+键盘+外置HDMI显示器,这种方法可以将tinker board作为普通PC来使用。
2、 使用网线+路由器,这种方法适用于没有外置HDMI显示器的情况。使用SSH命令进行交互,后续还可以加上远程桌面来访问桌面环境。
这里笔者选择后一种方法。tinker board接上路由器之后可以在路由器的设备界面找到tinker board,然后打开putty,输入IP和端口(固定为22)进行登陆,登陆的初始用户名和密码都为“linaro”,登陆完成后如下图所示
图3.2 SSH登陆
登陆之后可以开启VNC服务以便后续可以访问桌面环境。执行以下命令来安装VNC服务
$ sudo apt-get update
$ sudo apt-get install x11vnc
在安装完VNC之后,可以执行命令
$ vncserver :1
来启动VNC服务,初次使用VNC需要设置一个密码。PC上面安装一个VNC Viewer即可访问其桌面环境,如下图。
图3.3 VNC登陆
性能测试
在介绍完硬件配置并安装好操作系统之后,可以进行大家比较关心的性能测试,毕竟大家选择一款开发板的时候还是比较关心性能的。
性能测试项目包括CPU运算速度、内存读写速度与flash读取速度,对应的工具都为sysbench。参照的开发板为Banana PI m3。之所以选择这样对比,是因为tinker board与Banana PI m3的价格差不多,都为440元左右。两款开发板具体的相关参数对比如下:
此处性能测试都在Debian系统下进行。首先运行lscpu命令,确认所有核心都开启并都被操作系统识别。
图4.1 tinker board CPU信息
图4.2 Banana PI m3 CPU信息
然后分别安装sysbench,命令为$ sudo apt-get install sysbench。先来测试以下CPU的性能,执行命令
tinker board:$ sysbench --test=cpu --num-threads=4 run
Banana PI m3:$ sysbench --test=cpu --num-threads=8 run
来测试。这里由于前者为4核,后者为8核,因此thread参数分别为4与8。测试结果如下图,这里是计算1到10000中最大的素数,时间越短越好,tinker board使用23.75秒,Banana PI m3使用29.17秒。
图4.3 tinker board CPU性能测试
图4.4 Banana PI m3 CPU性能测试
然后进行内存测试,执行命令
tinker board:$ sysbench --test=memory --memory-block-size=2M --memory-total-size=20G --num-threads=4 run
Banana PI m3:$ sysbench --test=memory --memory-block-size=2M --memory-total-size=20G --num-threads=8 run
这里是测试读写20G空间的时间。tinker board花费0.0028s,Banana PI m3花费0.0018s。
图4.5 tinker board 内存测试
图4.6 Banana PI m3 内存测试
最后来进行文件存取测试。这里由于tinker board没有EMMC,因此tinker board的flash为SD卡,Banana PI m3的flash为EMMC。先测试写入,执行命令
tinker board:$ sysbench --test=fileio --file-test-mode=rndwr --file-total-size=32MB --max-requests=500 --num-threads=4 run
Banana PI m3:$ sysbench --test=fileio --file-test-mode=rndwr --file-total-size=32MB --max-requests=500 --num-threads=8 run[!--empirenews.page--]
这里测试写入一个32MB的文件500次,tinker board花费32.31s,Banana PI m3花费1.72s。
图4.7 tinker board 文件写入测试
图4.8 Banana PI m3 文件写入测试
再测试读取,执行命令
tinker board:$ sysbench --test=fileio --file-test-mode=rndrd --file-total-size=32MB --max-requests=5000 --num-threads=4 run
Banana PI m3:$ sysbench --test=fileio --file-test-mode=rndrd --file-total-size=32MB --max-requests=5000 --num-threads=8 run
这里测试读取一个32MB的文件5000次,tinker board花费0.0254s,Banana PI m3花费0.0210s。
图4.9 tinker board 文件读取测试
图4.10 Banana PI m3 文件读取测试
由上面的测试看出,tinker board的CPU略优于 Banana PI M3,内存与文件读取速度相差不大,但是由于没有EMMC,因此在文件写入速度方面不如Banana PI M3。可见,没有EMMC确实是tinker board的一大缺憾,ASUS后续推出的升级版tinker board S加上了EMMC,弥补了这一缺憾。
简单开发
tinker board自带了40pin的扩展接口,而作为一款开发板,tinker board与普通PC最大的区别就是可以在这个40pin的扩展接口进行相关开发。ASUS官方提供了一系列API可以调用。因此开发的方法也是先编写程序,然后在开发板上面编译运行。
首先下载GPIO相关库。执行命令
$ sudo apt-get install git
$ git clone http://github.com/TinkerBoard/gpio_lib_c.git
下载完成之后进行安装,执行命令
$ cd gpio_lib_c/
$ sudo ./build
完成之后执行
$ gpio -v
可以看到GPIO库的相关信息,如下图。
图5.1 GPIO库相关信息
下面来演示一个串口打印的程序。代码如下:
#include
#include
#include
#include
#include
int main ()
{
int fd ;
if ((fd = serialOpen ("/dev/ttyS1", 115200)) < 0)
{
fprintf (stderr, "Unable to open serial device: %s\n", strerror (errno)) ;
return 1 ;
}
for (;;)
{
serialPrintf (fd,"Hello \r\n ") ;
serialPrintf (fd,"this is tinker board \r\n") ;
delay (100) ;
}
}
图5.2 测试用的程序
将完成的源文件保存为serialprint.c,然后运行下面这个命令进行编译
$ arm-linux-gnueabihf-gcc serialprint.c -o serialprint -lwiringPi
这里编译选项需要加上-lwiringPi,意思就是使用wiringPi库。生成的文件为serialprint,这个可执行文件。如下图
图5.3 编译程序
然后将对应串口ttyS1通过串口线连接PC,由GPIO定义表可以看到ttyS1对应的引脚为6->GND,8->UART1TX,10->UART1RX。如下图。
图5.4 连接对应接口
然后执行命令$./serialprint,PC端使用串口调试软件可以看到如下打印内容。
图5.5 串口输出的结果
到这里就完成了一个简单项目的开发。
总结
本次评测介绍了来自ASUS的tinker board。与树莓派一样,这款开发板重点面向对象仍然是创客和Linux学习者,在性能上,tinker board可以与目前市面上的高性能开发板一争高下,当然价格也比较高,可以视为是树莓派系列的升级版。但是,与树莓派一样,这款开发板的底层不开源,取而代之的是,ASUS提供了一系列封装好的库与API供用户开发。综上所述,这款tinker board可以被认为是一款不错的Linux开发板。
相关链接:[!--empirenews.page--]
https://www.asus.com/Single-Board-Computer/Tinker-Board