首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» 图像采集压缩SOC系统在FPGA中的实现
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
图像采集压缩SOC系统在FPGA中的实现
发短消息
加为好友
yuchengze
当前离线
UID
1062083
帖子
5837
精华
0
积分
2921
阅读权限
70
在线时间
222 小时
注册时间
2016-6-30
最后登录
2018-9-9
金牌会员
UID
1062083
性别
男
1
#
打印
字体大小:
t
T
yuchengze
发表于 2016-8-22 10:46
|
只看该作者
图像采集压缩SOC系统在FPGA中的实现
控制系统
,
采集卡
,
工控机
,
可靠性
,
嵌入式
图像采集和处理已经成为了现代工业控制中必不可少的环节。传统的方法一般采用的是图像采集卡加工控机来实现整个系统。但随着嵌入式技术的发展,芯片的性能大大增强,嵌入式系统在工业控制系统中普及。作为前端的图像采集系统此时就不适宜再以图像采集卡的形式出现,而应当以更加简捷,方便的接口与主系统相连。 本设计使用Alera的FPGA实现了整个图像采集系统。整个系统完成了图像的采集、压缩和传输。系统采用流行的工业总线CAN做为其传输总线,不仅接口简易,成本低,而且可靠性较高。
系统描述
本设计中图像采集系统预期的目标是每秒采集2~3幅30万像素(640×480)的图像,压缩后通过CAN总线进行传输。按照1:8的压缩比计算,压缩后每帧数据量大约为0.3Mb,CAN总线峰值传输速度是1Mb/s,因此这样的一个总体的设计方案是可行的。
根据系统所实现的功能,决定整个系统要包括六大模块,分别是图像采集及存储接口、I2C主控制模块(对SAA7113H进行配置)、JPEG编码器、CAN总线控制器、Wishbone总线和中央控制模块。图1为系统的结构框图。
图1 系统结
构框图
摄像头产生的原始模拟图像数据流首先通过SAA7113H转换为数字信号,并携带有一定的同步及控制信息,传入FPGA内部异步FIFO内。图像采集及存储接口从异步FIFO读取数据并分析,提取所需要的保存至外部SRAM中,当存满一帧数据时,便可以进行压缩了。当JPEG编码模块压缩好数据后,便等待CAN总线进行传输,最后直至整帧数据处理完毕。
整个系统的实现大约是60~100万门左右,因此可以采用Altera CycloneII系列中器件的EP2C20,它拥有2万个LE,24万左右的存储单元和52个乘加单元。系统Fitter之后的结果如表1所示,占用了芯片63%的逻辑资源和12%存储资源。在这其中,JPEG编码模块以及JPEG模块与Wishbone总线的接口占用了绝大多数部分资源。可以看出,使用EP2C20实现本文所描述的系统还是非常富余的。
[img][/img]
图2 PCB调试样板
图2为最后制成的样板,这块样板上还包括了一些便于调试和其他研发目的的额外部件,真正产品的PCB板将会更加小巧。
视频信号采集及存储接口
本设计采用Phillips的SAA7113H芯片做模拟视频信号的采集。它的功能非常强大,最多可同时采集4路CVBS格式的视频数据。它通过VPO口输出数据,并支持多种视频格式输出,同时在输出数据流中包含同步信息和场信息,接口比较简单。
VPO的数据输出与27M时钟同步的,这与JPEG encoder采用30M内部系统时钟处于两个时钟域。因此,使用异步FIFO进行跨时钟域的数据传递。
数据采集以后便是对其进行识别和存储。从SAA7113H传出数据的最小单位是一个扫描行,以0xFF 0x00 0x00为标识,并且在行首尾分别有SAV(start of active video)和EAV(end of active video)字段。SAV和EAV中含有该扫描行是否是有效行,属于第几场这样的信息。JPEG编码器需要的数据是一整幅图像,即一个场对。因此对采集的图像,需要使用帧解码(Frame Decoder)子模块处理原始数据流中的同步信息,垂直扫描消隐信号。
本设计的存储器件使用了一块4Mb的SRAM,正好可以保存一副未经压缩的30万像素的图片。对SRAM存储和读取地址的产生应该完全采用不同的方式,在本设计中分别采用两个子模块分别负责这两项功能。Frame Decoder输出的数据在存入SRAM时是按照行的顺序逐个存入,而JPEG encoder在读取的时候则应该是按照对像素处理顺序——以8×8块的方式读出。整个读写由控制状态机(Read &Write Control)来进行统一控制。视频采集及存储接口的结构图如图3所示。
图3 视频采集及存储接口模块
JPEG压缩模块
JPEG压缩标准从1993年提出至今已有14年了,从各个方面来看都已经非常成熟,并且被广泛的使用于各个领域,这也正是本设计采用JPEG压缩模式的原因之一。JPEG压缩的过程包括了8×8 DCT(离散余弦变换)、Zig-Zag扫描、量化、游程编码和熵编码(使用Huffman编码)五个主要的过程。本设计中的JPEG压缩模块除了包括这五大部分之外还要有字节分包处理、字节码处理(主要是插入一些特殊的码字)、FIFO、wishbone总线接口和配置寄存器等一些功能模块来协调整个系统的运作。该模块的结构如图4所示。
图4 JPEG压缩模块结构图
Huffman编码出来的数据是变长码,它包括了两部分,即码字本身和码字长度。在Byte Pack模块中,根据码字的长度对码字进行适当的移位,然后整理成8位长度,送入Byte Code Insetion模块。该模块根据码字的实际值进行判断,如果当前码字的值是FF,便在其后插入0x00,如果当前码字是本帧最后一个码字的话,便在其后插入0xFFD9(0xFFD9是JPEG图像标准中的结束标志)以标示该帧的完结。这样在接收端中就可以用0xFFD9对数据流中每一帧压缩的数据进行分割。最后处理好的字节流将送入FIFO中,以等待CAN总线空闲。
另外,还有Control Regs模块,可以使用总控制器通过Wishbone Bus对其中的功能寄存器进行修改,进而操控整个JPEG编码的过程。这个操作必不可少,只有使JPEG编码具有可控性,才能协调采集、压缩、传输等环节的顺利进行。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议