全面认识海思SDK及嵌入式层开发

Posted 小嵌同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全面认识海思SDK及嵌入式层开发相关的知识,希望对你有一定的参考价值。

一、全面认识和检测配套开发套装

购买方式:淘宝搜索->朱有鹏老师个人店

1、套装配件介绍

(1)主板

(2)默认安装SENSOR组合:AR0130

(3)备用SENSOR组合2:OV9712

(4) 隔离式 USB转串口小板+杜邦线
  开发板出现问题不会影响电脑,反之电脑出现问题也不会影响开发板。如开发板串口这边出现过高电压或者电流,通过usb传输到电脑主板,会导致电脑主板烧毁(我出现过,一个月修了4次电脑)或者电脑蓝屏,但隔离式可以避免这种问题。

我们开发板使用的是3.3v,故而将3.3v和DPT短接。VCC不接(其是给连接的调试模块供电的,但我们的开发板通过电源线供电了不需要,而且这个VCC是5v,而开发板的工作电压是3.3V)
(5)USB WIFI网卡

(6)DC供电线

(7)网线

2、检测开发板


资源下载链接:链接:https://pan.baidu.com/s/16JwtfjLgPZ6Zw4TMsqqTyw
提取码:vw4t
–来自百度网盘超级会员V5的分享

也可以去朱老师的微信公众号进行下载:《朱老师物联网大讲堂》

(1)开发板出厂默认烧录了系统,但是没有部署应用程序,所以测试略麻烦

(2)要测试先接线:USB转串口、网线、电源线三个缺一不可

(3)虚拟机(ubuntu 16.04)要布置好然后开启,自己安装一个(自己安装需要配置的内容比较多可参考我的另一篇文章《嵌入式linux开发环境搭建(VMware16.0.0+Ubuntu16.04.3_X64)》,这一两天会发布)或者去朱老师网盘中下载,下载打开朱老师提供的ubuntu16.04,其中的网卡名称为ens33,需要进行简单的配置才可以正常工作。

1、vi /etc/network/interfaces
将内容修改为:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto ens33
iface ens33 inet static
#iface ens33 inet dhcp
address 192.168.1.141
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameserver 8.8.8.8

# dhcp
#auto ens33
#iface ens33 inet dhcp

如下图所示:

2、vi /etc/NetworkManager/NetworkManager.conf
修改如下:
[main]
plugins=ifupdown,keyfile,ofono
dns=dnsmasq

[ifupdown]
managed=true

3、重启虚拟机,命令行执行:ifup ens33
若无法上网则关闭虚拟机,将电脑关机重启再打开虚拟机.
除了执行命令:ifup ens33,也可操作图形界面,如下:


(4)SecureCRT监视打开,开发板开机,自动挂载到/home/aston/rootfs中,通过共享文件夹或者samba服务器的方式将AR0130版本的RTSP流测试app.rar放到该目录中并解压(建议在windows中解压,ubuntu 16.04中解压该文件需要安装一个软件,略微麻烦),除了使用SecureCRT也可以使用其他软件,我给大家安利一个我正在用的开源免费软件:MobaXterm,可自行在应用商店或者百度下载。

(5)自动加入/mnt中,执行./sample_venc即可

(6)在vlc中输入地址,即可浏览实时画面

菜单栏:媒体->打开网络串流->网络,输入:rtsp://192.168.1.10:554/stream_chn0.h264
勾选:显示更多选项。在正在缓冲中设置为300(原来是1000192.168.1.10:开发板的ip


3、注意

(1)开发板上摄像头的镜头可以自己拧,一边拧一边看图像清晰度,调整到最合适,然后固定螺丝即可。注意有延时的,所以拧一下要停一下看效果。而且延时会累计,所以延时会越来越大。延时如果太大,把VLC关闭重新打开一次就ok了。

(2)图像的4个角可能会有黑边,原因是镜头没有装载正中间,镜头螺丝可以重新固定一下。


(3)图像是有畸变的(看到的画面偏圆、弯曲、有弧度,可通过软件算法消除畸变),正常的,镜头的原因。

二、视频设备开发的技术流

1、视频从产生到被消费的整个流程

(1)基本认知:视频是由单帧图像(即图片)以每秒x帧的速率连续组成的,单帧图像类似位图。我们常说的电影一般是每秒24张图片的速度(即每秒24帧)进行播放。

(2)原始视频产生:镜头(光信号->光信号)和sensor(光信号->电信号)
sensor本身直接出来的是一个模拟的电信号,经过AD转换得到数字的电信号(即一系列二进制数据,代表原始图像数据)

(3)图像处理:ISP(image signal processing),如对原始图像进行畸变矫正,处理后的图像仍是原始图像数据,未经过编码及压缩。

(4)视频编码压缩:如h.264/h.265压缩算法,运算,内置DSP进行压缩运算的(HI3518E是ARM+DSP双核),如果用CPU进行压缩运算,是十分耗费CPU的,需要高性能的CPU。

(5)视频流传输:网络传输、http/rtsp等

(6)视频存储:将视频流打包成MP4等格式存储,等待调阅

(7)视频回放:解码+播放

2、视频行业的商业角度分段

(1)主芯片商(海思,安霸等等,研究编码压缩算法,再以SDK的方式发布)、sensor(如索尼)、镜头等分立原件厂商

(2)模组厂商(海康威视,大华等,将(1)中的各部分集中到一起进行开发,目前全世界模组很大一部分都是中国提供的)

(3)视频服务器厂商(使编码后的视频可以通过服务器传输,传输到外网),类似大拿科技这种

(4)面向解决方案的方案开发商(买(2)、(3)的基础上提供一个解决方案,如工厂安防,幼儿园安防系统等等)

(5)工程商或销售商(没啥技术含量,主要体力活,安装设备之类的,有什么技术问题他们去找他们的供应商解决)

(2)、(4)是求职的不错选择!

3、几个疑问点

(1)视频为什么要编码和解码?
  原始的视频太大了,无法传输,网速是有限的。例如输出一路1920×1080分辨率、24位色、每秒30帧的高清视频,就这么一秒钟的视频,它的码率达就到了1.5Gbps.因此需要编码,尽最大可能将其压缩至最低。

(2)HI3518E主要解决什么问题?
  视频编码压缩算法。

(3)为什么使用linux而不是其他os?
  Linux的网络协议栈是最全的,Linux的网络开发是最多的,Linux的资源是最多的,其它系统相对较少,ISP这部分的处理有的用Linux,有的用了RTOS(如安霸),海思是全都用了Linux。

注:本资料大部分由朱老师物联网大讲堂课程笔记整理而来并且引用了部分他人博客的内容,如有侵权,联系删除!水平有限,如有错误,欢迎各位在评论区交流。

以上是关于全面认识海思SDK及嵌入式层开发的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式开发之hi3519---GPIO 驱动

Hi3516开发笔记:在QtCreator开发环境中引入海思sdk的bsp包,运行显示Qt界面

Hi3516开发笔记:在QtCreator开发环境中引入海思sdk的bsp包,运行显示Qt界面

海思3519av100开发:海思sample代码测试之tde

海思3519av100开发:海思sample代码测试之tde

checkpatch海思SDK代码遇见的常见错误《一》