iot_camera 开发板试玩心得体会
扫描二维码
随时随地手机看文章
介绍开发板的配置固件烧录第一种:通过手工TF卡进行程序更新第二种:http服务器进行程序更新第三种:通过rboot启动上手体验系统编译最新版本开发开发板评估与思考
介绍
目前,对于可编程物联网摄像头来说,可以通过手机或者网页显示摄像头画面。这种应用只要在联网条件下就可以进行,所以从某种程度上来说通过网络传输,远程查看的方式将会成为物联网摄像头非常好的方式。这种方式主要是可以节约很多硬件成本,同时网络传输技术的不断成熟,数据管理也会慢慢的集中。我觉得物联网方向也需要去研究一下IP摄像头。
本次研究的对象是rtthread在2016年左右众筹的一块开发板iot_camera。

这块开发板在市面上已经见不到了,只有在二手市场淘到一块进行研究。
开发板的配置
下面来详细介绍对比一下具体的配置信息。
|
FH8620 | FH8632 | FH8852 |
---|---|---|---|
面向对象 | 面向中低端 | 高性能,低功耗 | 面向2M专业网络摄像头,高性能 |
处理器 | ARM1176 | ARM1176 | ARM1176 |
运行频率 | 216MHz | 480MHz | 600MHz |
cache | I/D-Cache 16KB/16KB | I/D-Cache 16KB/16KB | I/D-Cache 16KB/16KB |
内置 DRAM | 2M x 4banks x 16 bit LVDDR | 512Mbits,480MHz | 512Mbits,480MHz |
MIPI接口 | 不支持 | 支持 | 支持 |
CIS 输入 | 最大支持1280x720 | 最大支持2560X1440 | 最大支持1920X1080 |
图像处理 | 支持 | 支持 | 支持 |
H264编码率 | 1280x720@30fps | 1920x1080@30fps+720P@30fps | 1920x1088@30fps + 720x576@30fps |
JPEG 编码 | 1M Pixel@1fps | 1920x1080 @5fps | 2M@2fps |
I2C | X2 | X2 | X2 |
SPI | X2 SPI-Master | X2 SPI-Master, X1 SPI-Slave | X2 SPI-Master, X1 SPI-Slave |
uart | X1 | X2 | X2 |
PWM | x3 | x4 | x8 |
RTC | 不支持 | 支持 | 支持 |
音频接口 | 支持 | 支持 | 支持 |
SDIO | 支持 | 支持 | 支持 |
USB | 不支持 | 支持 | 支持 |
网络接口 | 不支持 | 支持 | 支持 |
功耗 | 小于650mW | - | - |
底板
底板的设计比较的简单,主要是相应的接口,主要的芯片的CP2102的串口芯片。还有一块语音放大芯片。

核心板

核心板背面

整个开发板硬件配置如下:

-
FH8620, ARM1176, up to 450MHz, Builtin 16MB DRAM
-
AP6181 (bcm43362) Wi-Fi
-
8MB SPI Nor Flash
-
GC1024 sensor
-
Hardware encoder for H.264, 1280x720 @ 30FPS
-
Hardware encoder for MJPEG
其他的外设资源
-
一个 iic 接口
-
一组 SPI 接口
-
一个串口
-
六个 gpio 接口
-
三路 pwm 接口
-
一个 micro SD 卡插槽
-
两路 ADC 输入
-
LINE IN 与 LINE OUT
固件烧录
对于固件的使用来说,可以分为四个固件,这四个固件可以在网盘中下载得到。

在芯片内部,已经自带UBOOT,所以如果UBOOT被破坏,那只能用烧录器重新烧录了。
第一种:通过手工TF卡进行程序更新
这种方式是将固件放到tf卡的根目录,然后通过uboot将TF卡中的rtthread.bin转移到Flash中,下次直接从flash中读取固件启动即可。
在倒数到3s之内按下键盘的任意键可以进入uboot的控制台。

接着将tf卡中的程序转移到内存中
fatload mmc 0 0xA0000000 rtthread.bin

然后将镜像转移到flash中(从 4M 位置,烧录 2M 数据)
sf probe 0 sf erase 400000 200000 sf write a0000000 400000 200000
选择设备

擦除扇区

烧写固件

设置uboot的启动项并保存配置
set bootcmd 'sf probe 0; sf read a0000000 400000 200000; go a0000000' save
重新启动
reset

最后就可以正常的启动了

也可以通过从tf卡中直接读取rtthread.bin的固件到内存中,直接跳转即可。
set bootcmd fatload mmc 0 0xa0000000 rtthread.bin\; go 0xa0000000
save reset
第二种:http服务器进行程序更新
固件更新时,可以通过wget下载固件
很多时候,我们做调试的过程中,如果总是将TF插上然后再进行烧录,这样效率非常的差,所以可以采用wget的方式进行固件的下载。
首先启动python中的web_server
import SimpleHTTPServer import SocketServer
PORT = 8000 Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", PORT), Handler) print "serving at port", PORT
httpd.serve_forever()
开启服务

访问http://localhost:8000/可以看到

此时,如果我们已经将wifi连接上网络(wifi join ssid password),在同一个局域网内就可以利用rtthread的wget工具进行下载了。
第三种:通过rboot启动
固件的启动顺序如下:

这种方式是rboot可以引导一个脚本rboot.sh,然后通过该脚本指定启动方式。
上手体验
如果要让开发板联网,需要配置init.sh,因为这个脚本会在main函数中执行。

而该脚本中的内容就是配置wifi和启动mjpeg

然后可以看到系统正常启动
通过ifconfig查看开发板的ip信息

在同一个局域网内的其他电脑上用浏览器访问该地址,可以看到ip摄像头的画面

这样,下图是手机浏览器上看到的效果

系统编译
到github上去下载源代码:https://github.com/RT-Thread/IoT_Camera
然后进入到firmware文件夹下,然后下载3.0.3版本的rtthread。

然后在env工具上进行配置

然后输入pkgs --update 更新固件

直接进行编译即可。
最新版本开发
如果要在最新版本上进行开发工作,可以直接到从github上下载最新版本的库进行相关的开发工作。

将固件转移到sd卡中,可以看到启动信息

开发板评估与思考
对于该富瀚微FH系列芯片来说,主要专注于视频监控方案,总的说来也是一款专用芯片。而这些芯片跑rtos又有着非常大的优势。但是款开发板从16年众筹开始,卖的并不乐观,而且fh8620芯片到目前为止已经停产。
个人认为,这款芯片应该说已经过时了,比这更好的有V3S等等,其性能都要比富瀚芯片的性能强大。
其实我觉得国内的这些IPC芯片SoC供应商怎么不通过RT-Thread之类的将芯片推广到通用市场,比如就当通用MCU用,做网关、做控制器,像富翰微的FH8630D、国科微的GK7102、华为海思的等待,这些芯片具有图像处理功能,有SPI、有网口、有SDIO、有UART,跟STM32F7、RT1050之类的比起来有超高的性价比,很多情况下都能替代,对用户很有吸引力,特别是移植好RTOS和驱动后,用起来就很顺了。但是,支持的并不给力。
用这个板子做方案,其实就是高不成低不就的东西。如果用MT6261,可实现录像,拍照定位和物联网设备,成本也才19.8元,虽然不支持视频传输,但是功耗可以做到很低。做远程视频监控之类的wifi摄像头,50到60元也会有相应的方案。
总的评估,我觉得,这款开发板其实做东西也可以做的出来,只是定位需求不对。