在嵌入式工控板上接一个摄像头进行视频监控,看起来比较容易实现,但是往往是“理想很丰满、现实很骨感”历经千辛万苦效果却不是很理想,本文就给大家介绍各种解决方案。
这里给大家介绍的是既对外设有需求,又要连接摄像头的方案,比如既要有CAN总线、多路串口、SPI、LVDS等,又要有摄像头。这种需求在行车监控、驾培系统、医疗、机房监控等行业是比较常见的。如果对外设没啥要求的,只追求高清视频监控,出门左拐华为的Hi3518的方案更适合你。视频监控一般有两种方案:MCU自带摄像头接口、外扩摄像头接口。外扩摄像头又分为:USB方案、以太网方案、串口方案等。
在早期要做视频监控的比较通用的方法是选用X86架构的核心板,直接跑ubuntu系统安装USB摄像头,这种方法的缺点是价格昂贵、功耗大、跑不了低温,优点是开发难度小。
图 1
1、MCU自带摄像头
后来随着ARM9、ARM7、A8、A9相继推出市场,很多MCU也自带摄像头。这种方案显然成本比较低,但是像素不高、无法远距离传输。如果自己基于原厂给的驱动调试风险太高,可以选择一些核心板厂家使用他们调试好的驱动,即使这样也要求用户能够有一定的Linux基础否则还是玩不转。
图 2
2、USB摄像头方案
USB摄像头应用也是比较广泛,但是这个方案有一个比较让人头痛的问题(大神绕过),就是怎么解决USB干扰问题。有的时候是因为外围保护没做好,有的时候是摄像头本身掉链子。往往历经千辛万苦做出了两个样机演示都没问题,但是最后被一些细节打败了。
图 3
3、网络摄像头
网络摄像头现在市场的价格也比较便宜,720p球形摄像头的价格大约在100元左右。这种方案最大的优势是简单方便,可以通过交换机连接多个高清摄像头,在现场不方便布线的情况下可以使用wifi进行传输。
图 4
4、A9工控板
A9工控板中应用比较常见得是基于飞思卡尔MCIMX6U7C设计的工控整板,其最大的特点是支持H.264硬件解码,能够流畅的运行1080P视频。
图 5
市面上大多数的网络摄像头都都支持H.264编码,H.264提供了网络抽象层,使得H.264的文件能容易地在不同网络上传输。只要移植合适的播放器,均能够播放摄像头视频。
5、IP Camera播放器
Linux下播放网络摄像头的软件有很多:gplayer、gstreamer、ffmpeg、web浏览器等。在Linux下3.14.28版本的内核已经集成了gstreamer播放器,如果自己懒得搞可以咨询广州致远的工程师,要一个A9固件烧写一下,用以下命令行进行测试;