东方赛富3G学院学员项目实践案例介绍
——项目案例2:基于S3C2440 Linux视频监控系统
1. 项目背景
视频监控系统在工业、军事、民用领域有着广泛的应用,为这些行业的安全防范和环境监控起到了不可忽视的作用。视频监控系统正逐步由模拟化走向数字化,随着半导体技术的飞速发展和多媒体视频编解码技术的日益成熟,高性能、复杂的视频流压缩算法在嵌入式系统中的应用成为了现实。如今监控系统多采用专用处理器或RISC嵌入式处理器与DSP相结合的方法实现,本项目探讨的是用ARM Linux S3C2440处理器与软件压缩相结合的办法实现。
整个项目视频监控系统采用C/S结构,从主体上分为两部分:服务器端和客户端。服务器端主要包括S3C2440平台上运行的采集、压缩、传输程序,客户端是PC机上运行的接收、解压、回放程序。视频监控终端从现场的摄像头捕获实时的视频信息,压缩之后通过以太网传输到视频监控服务器上。
系统体系结构如图1所示,视频图像采集和打包发送在服务器端完成,图像的接收解包和回放将在客户端完成。

2. 系统的硬件设计
★ 系统采用模块化设计方案,主要包括以下几个模块:主控制器模块、储存电路模块、外围接口电路模块、电源和复位电路,如图2所示
3. 系统的软件设计
视频监控终端的软件设计主要完成两方面的工作:
1. 在硬件上搭建一个软件平台
搭建嵌入式Linux软件开发平台需要完成uboot移植、嵌入式Linux操作系统内核移植以及嵌入式Linux操作系统的设备驱动程序的开发等工作。
2. 构建基于S3C2440的Linux平台
在软件平台的基础上,开发系统的应用程序。借助交叉编译工具,开发视频监控终端上运行的采集、压缩、传输程序。构建嵌入式Linux开发平台需要先构建交叉编译环境。一套完整的交叉编译环境包括主机和目标机。在开发中主机是一台装有Ubuntu操作系统的PC机,目标机是基于S3C2440的视频监控终端。选用的交叉编译器是GCC3.4 for ARMv4版,嵌入式Linux内核源代码包含最新内核版本2.6.28。
3. 视频监控终端软件的设计
视频监控终端软件按功能分为三部分:视频采集、压缩、传输。这个软件的开发都是基于先前配置好的嵌入式内核。
4. 系统功能说明
◆ 使用USB摄像头实时获取图像信号:
◆ 使用Linux ov51驱动实现Linux视频驱动
◆ 使用网络通讯进行数据传输
◆ 使用数据压缩来处理数字图像信号
5、系统硬件要求
5.1 S3C2440主控硬件
| 名称 |
说明 |
| CPU |
S3C2440, 主频202M |
| FLASH |
2M norflash + 64M Nand Flash |
| SDRAM |
64M |
| USB |
2个USB Host接口, 1.1标准 |
| 网口 |
10M |
| 串口 |
2个3线串口 |
| SD卡接口 |
SD卡容量1G |
| 摄像头 |
USB 1.1接口 |
| I/O |
8路I/O |
| LCD |
3.5寸240*320 TFT屏 |
| 触摸屏 |
4线电阻式触摸屏 |
| A/D转换器 |
10bit 电压0-3V |
| 电机驱动器 |
|
5.2 远程PC机
| 名称 |
说明 |
| CPU |
Pentium 4 双核 |
| SDRAM |
1G内存 |
| USB |
6个USB Host接口, 2.0标准 |
| 网口 |
100M |
| 串口 |
2个串口控制器 |