介绍开发板的配置固件烧录第一种:通过手工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的串口芯片。还有一块语音放大芯片。
核心板
核心板背面
整个开发板硬件配置如下:
其他的外设资源
对于固件的使用来说,可以分为四个固件,这四个固件可以在网盘中下载得到。
在芯片内部,已经自带UBOOT,所以如果UBOOT被破坏,那只能用烧录器重新烧录了。
这种方式是将固件放到tf卡的根目录,然后通过uboot将TF卡中的rtthread.bin转移到Flash中,下次直接从flash中读取固件启动即可。
在倒数到3s之内按下键盘的任意键可以进入uboot的控制台。
接着将tf卡中的程序转移到内存中
fatload mmc 0 0xA0000000 rtthread.bin
然后将镜像转移到flash中(从 4M 位置,烧录 2M 数据)
sf probe
sf erase
sf write a0000000
选择设备
擦除扇区
烧写固件
设置uboot的启动项并保存配置
set bootcmd 'sf probe 0; sf read a0000000 400000 200000; go a0000000'
save
重新启动
reset
最后就可以正常的启动了
也可以通过从tf卡中直接读取rtthread.bin的固件到内存中,直接跳转即可。
set bootcmd fatload mmc 0xa0000000 rtthread.bin\; go 0xa0000000
save
reset
固件更新时,可以通过wget下载固件
很多时候,我们做调试的过程中,如果总是将TF插上然后再进行烧录,这样效率非常的差,所以可以采用wget的方式进行固件的下载。
首先启动python中的web_server
import SimpleHTTPServer
import SocketServer
PORT =
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.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元也会有相应的方案。
总的评估,我觉得,这款开发板其实做东西也可以做的出来,只是定位需求不对。