基于linux的嵌入式视频监控系统构建方法与流程

文档序号:29723231发布日期:2022-04-16 19:49阅读:217来源:国知局
基于linux的嵌入式视频监控系统构建方法与流程

1.本发明属于数字信号处理技术领域,具体涉及一种基于linux的嵌入式视频监控系统构建方法。


背景技术:

2.随着经济技术的发展和人们生活水平的提高,视频监控技术已经广泛应用于人们的生产和生活当中,给人们的生产和生活带来了无尽的便利。近年来,随着信息科学技术的发展,视频监控系统中已经充分运用了芯片技术,实现了全数字视频监控。全数字视频监控的需求常见于行车监控、医疗、机房监控等行业,相应的视频监控产品也在不断的升级、完善和优化。
3.针对基于linux的嵌入式视频监控系统的研究,目前尚处于起步阶段。目前尚没有一种通用的、可靠的和完整的针对基于linux的嵌入式视频监控系统的开发和构建方法。


技术实现要素:

4.本发明的目的在于提供一种可靠性高、实用性好且通用完整的基于linux的嵌入式视频监控系统构建方法。
5.本发明提供的这种基于linux的嵌入式视频监控系统构建方法,包括如下步骤:s1. 搭建摄像头、嵌入式开发平台和液晶屏的硬件系统;s2. 搭建步骤s1得到的硬件系统的软件实现流程;s3. 搭建嵌入式视频监控系统的软件平台;s4. 完成基于linux的嵌入式视频监控系统构建。
6.所述的步骤s1,具体为摄像头、嵌入式开发平台和液晶屏依次串接;摄像头用于采集图像数据,并将图像数据通过dvp接口发送给嵌入式开发平台中的dvp模块;dvp模块接收到图像数据后,通过axi总线存储到自身的ddr模块中;嵌入式开发平台中的lcdc模块读取ddr模块中的图像数据,并发送给液晶屏进行显示。
7.所述的步骤s2,具体包括如下步骤:a. 打开摄像头,并通过sccb总线配置摄像头的参数;b. 向内核申请多帧图像数据的内存空间;所述内存空间对应于ddr物理地址空间;c. 内存映射:将内核内存空间与应用层内存空间关联,将物理地址转换为虚拟地址,并供供应用层使用;d. 将每帧图像数据内存空间加入队列;e. 打开lcdc设备,并对lcdc设备进行参数设置;f. 根据lcdc的设定参数中固定参数中显示的大小,申请一块显存并得到对应的物理地址,通过映射获取显存的虚拟地址基地址,并供供应用层使用;g. 打开视频流,dvp模块开始工作;
h. 将已经捕获视频的内存拉出已捕获视频的队列,将捕获的视频图像数据拷贝到lcdc显存,液晶屏开始显示图像。
8.所述的步骤s3,具体包括交叉编译环境搭建的步骤、linux内核移植的步骤、sd卡启动的根文件系统制作的步骤以及dvp模块/lcdc模块驱动实现的步骤。
9.所述的步骤s3,具体包括如下步骤:a. 安装交叉编译工具链arm-none-linux-gnueabi-gcc;b. linux-3.4内核移植,修改makefile指定交叉编译器;c. 通过menuconfig修改内核配置,对内核进行裁剪,修改完成后保存退出,编译内核;d. 获取busybox源码,配置源码、编译、安装,制作根文件系统;e. 将sd卡分成两个区mmcblcp1和mmcblkp2,将mmcblcp1格式化为fat格式,mmcblcp2格式化为ext3格式;f. 将制作好的根文件系统拷贝到sd卡mmcblcp2分区中;g. 修改该嵌入式平台的设备树文件,指定内核启动方式为sd卡启动;h. 实现dvp模块和lcdc模块内核驱动,编译内核;i. 下载内核镜像文件和设备树文件到的ddr中,linux操作系统自动从sd中加载根文件系统,并启动内核;j. 执行应用软件程序,lcdc显示摄像头捕获的视频信息。
10.所述的交叉编译环境搭建的步骤、linux内核移植的步骤、sd卡启动的根文件系统制作的步骤,具体包括如下步骤:下载gcc-4.6.4.tar.xz,解压并安装交叉编译工具链,并添加到全局环境变量path中;下载linux-3.4内核版本,在内核驱动程序中driver目录下添加自主设计的嵌入式开发平台的dvp驱动程序、lcdc驱动程序和sd驱动程序,通过makemenucofig对内核进行配置裁剪,选择需要的设备驱动及文件系统,保存并退出,在内核设备树文件中添加嵌入式开发平台的设备树文件,并在设备树文件中指定内核的启动方式为sd卡启动,修改makefile文件,指定交叉编译器,编译内核生成image镜像文件;将制作的根文件系统拷贝到sd卡中,并将sd卡插入到嵌入式开发平台的sd卡槽中,嵌入式开发平台重新上电,将image文件load到嵌入式开发平台的ddr中,linux操作系统将从sd卡挂载根文件系统并启动。
11.所述的dvp模块/lcdc模块驱动实现的步骤,具体包括如下步骤:基于v4l2架构编码,dvp驱动向下层提供对摄像头控制接口,通过i2c总线对摄像头进行配置,控制摄像头采集图像的参数,向上层提供对本驱动的操作接口;lcdc模块驱动的实现基于fb架构,根据lcdc屏幕规格如可变参数和固定参数填充fb_info结构体,应用层通过字符设备接口获取屏幕的相关信息,及对显存进行数据读写。
12.本发明提供的这种基于linux的嵌入式视频监控系统构建方法,通过创新性的方法设计及步骤创新,不仅实现了基于linux的嵌入式视频监控系统构建,而且本发明方法可靠性高,实用性好,通用且完整。
附图说明
13.图1为本发明的方法流程示意图。
14.图2为本发明的摄像头、嵌入式开发平台和液晶屏的硬件系统示意图。
具体实施方式
15.如图1所示为本发明方法的方法流程示意图:本发明提供的这种基于linux的嵌入式视频监控系统构建方法,包括如下步骤:s1. 搭建摄像头、嵌入式开发平台和液晶屏的硬件系统;具体为摄像头、嵌入式开发平台和液晶屏依次串接;摄像头用于采集图像数据,并将图像数据通过dvp接口发送给嵌入式开发平台中的dvp模块;dvp模块接收到图像数据后,通过axi总线存储到自身的ddr模块中;嵌入式开发平台中的lcdc模块读取ddr模块中的图像数据,并发送给液晶屏进行显示;具体如图2所示;s2. 搭建步骤s1得到的硬件系统的软件实现流程;具体包括如下步骤:a. 打开摄像头,并通过sccb总线配置摄像头的参数;b. 向内核申请多帧图像数据的内存空间;所述内存空间对应于ddr物理地址空间;c. 内存映射:将内核内存空间与应用层内存空间关联,将物理地址转换为虚拟地址,并供供应用层使用;d. 将每帧图像数据内存空间加入队列;e. 打开lcdc设备,并对lcdc设备进行参数设置;f. 根据lcdc的设定参数中固定参数中显示的大小,申请一块显存并得到对应的物理地址,通过映射获取显存的虚拟地址基地址,并供供应用层使用;g. 打开视频流,dvp模块开始工作;h. 将已经捕获视频的内存拉出已捕获视频的队列,将捕获的视频图像数据拷贝到lcdc显存,液晶屏开始显示图像;s3. 搭建嵌入式视频监控系统的软件平台;具体包括交叉编译环境搭建的步骤、linux内核移植的步骤、sd卡启动的根文件系统制作的步骤以及dvp模块/lcdc模块驱动实现的步骤;具体实施时,包括如下步骤:a. 安装交叉编译工具链arm-none-linux-gnueabi-gcc;b. linux-3.4内核移植,修改makefile指定交叉编译器;c. 通过menuconfig修改内核配置,对内核进行裁剪,修改完成后保存退出,编译内核;d. 获取busybox源码,配置源码、编译、安装,制作根文件系统;e. 将sd卡分成两个区mmcblcp1和mmcblkp2,将mmcblcp1格式化为fat格式,mmcblcp2格式化为ext3格式;f. 将制作好的根文件系统拷贝到sd卡mmcblcp2分区中;g. 修改该嵌入式平台的设备树文件,指定内核启动方式为sd卡启动;h. 实现dvp模块和lcdc模块内核驱动,编译内核;i. 下载内核镜像文件和设备树文件到的ddr中,linux操作系统自动从sd中加载根文件系统,并启动内核;
j. 执行应用软件程序,lcdc显示摄像头捕获的视频信息s4. 完成基于linux的嵌入式视频监控系统构建。
16.此外,交叉编译环境搭建的步骤、linux内核移植的步骤、sd卡启动的根文件系统制作的步骤,具体包括如下步骤:下载gcc-4.6.4.tar.xz,解压并安装交叉编译工具链,并添加到全局环境变量path中;下载linux-3.4内核版本,在内核驱动程序中driver目录下添加自主设计的嵌入式开发平台的dvp驱动程序、lcdc驱动程序和sd驱动程序,通过makemenucofig对内核进行配置裁剪,选择需要的设备驱动及文件系统,保存并退出,在内核设备树文件中添加嵌入式开发平台的设备树文件,并在设备树文件中指定内核的启动方式为sd卡启动,修改makefile文件,指定交叉编译器,编译内核生成image镜像文件;将制作的根文件系统拷贝到sd卡中,并将sd卡插入到嵌入式开发平台的sd卡槽中,嵌入式开发平台重新上电,将image文件load到嵌入式开发平台的ddr中,linux操作系统将从sd卡挂载根文件系统并启动。
17.dvp模块/lcdc模块驱动实现的步骤,具体包括如下步骤:基于v4l2架构编码,dvp驱动向下层提供对摄像头控制接口,通过i2c总线对摄像头进行配置,控制摄像头采集图像的参数,向上层提供对本驱动的操作接口;lcdc模块驱动的实现基于fb架构,根据lcdc屏幕规格如可变参数和固定参数填充fb_info结构体,应用层通过字符设备接口获取屏幕的相关信息,及对显存进行数据读写。
18.最后,本发明的linux嵌入式监控系统的工作流程如下:打开video设备,检查设备属性,设置摄像头分辨率、帧格式和帧率,向内核申请多帧内存,采用内存映射的方式为应用层和设备进行交数据交互,将每帧图像数据内存加入队列。打开lcdc设备,取可变参数和固定参数并初始化时序参数和显示参数等设置到lcdc中,根据lcdc固定参数中显示的大小申请一块内存,应用层通过映射拿到显存的虚拟地址基地址。启动视频数据流,将已经捕获视频的内存拉出队列,获取一帧图像数据,拷贝到lcdc显存,液晶屏显示图像,将获取到的图像数据内存插入到队列尾部,如此循环获取视频数据,供液晶屏显示。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1