当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]针对长途客车“三超”(中途超载上人,超时,超速)以及在非正常停靠站私自停车上人导致的客车超载,同时目前市面上视频监控设备由于体积大、成本高等,使其难以推

针对长途客车“三超”(中途超载上人,超时,超速)以及在非正常停靠站私自停车上人导致的客车超载,同时目前市面上视频监控设备由于体积大、成本高等,使其难以推广应用在车辆中等问题,整合USB摄像头低成本、USB存储介质较SD(Secure Digital Memory Card)卡存储速度更快、支持更大容量等优点,提出了基于嵌入式。Linux及S3C2440平台的双USB接口车载视频存储方案。本方案主要利用单片机判别模块采集车辆行驶过程中运动状态信息(是否超速,存在急刹车、中途停车超时等),并结合车门在车速为零时的开闭对长途客车在非正常停靠点超载上人进行主动视频监控,便于以后的责任追究和认定,为监控中心的管理提供辅助。

1 系统总体结构设计

为方便系统扩展,本文将其划分为单片机判别模块和视频采集存储模块两部分。单片机判别模块采用C8051F040处理器,利用其充足的接口资源,对车辆是否超速、急停、超载等情况做出判断。本模块完成将力传感器信号、车速脉冲信号调理后供单片机处理并与存储模块通信。采用测周法测量车辆变速箱输出脉冲周期,进而可以得到车速、加速度等信息,配合力传感器测量结果为判定车辆是否超速、急停、超载等提供判断依据。单片机对以上情况进行编码,通过串口将不同信息编码发送给ARM视频存储模块,供其作出不同存储策略。系统总体结构如图1所示。

 

视频存储模块根据接收到单片机发出的串口信息,对后续行为做出判断,如是否存储、存储时间、存储位置等。模块硬件平台设计如图2所示:中央处理器选用三星公司ARM9架构S3C2440处理器(可以稳定工作在400 MHz,保证采集存储过程流畅);选用64 MSDRAM内存及64 MBFLASH作为系统程序存储设备。接口资源包括:2个USB口(均配置为HOST模式)、100 M以太网口、2个串口、音频口等。

 

2 S3C2440视频采集存储模块

整个模块正常情况下主要由单片机系统提供电源。另外,外接一独立直流电源装置,以免在交通事故时汽车熄火断电,影响系统工作。此模块主要完成视频的基于事件的存储功能,判断功能由单片机模块提供,另外依据串口实时扫描特性可提供时分复用触发功能。模块间独立性高,适合移植到其他场合推广使用。

2.1 USB硬件连接及Linux内核配置修改

2.1.1 USB硬件连接

三星公司S3C2440芯片共有2路HOST USB:DP[1:0]及DN[1:0]口,一路DIVICE PDN0,PDP0 口,其中DP1,DN1分别与PDP0,PDN0接口复用,根据相关寄存器配置不同而具有不同功能。本课题中,将其配置为2路HOST使用,一路连接 USB摄像头,另一路连接USB接口的存储设备(可以是优盘或者USB移动硬盘)。本文没有用到芯片自带的SD卡接口进行存储主要出于以下考虑:

a)速度:普通SD卡的数据传输速度约2 MB/s;高速SD卡数据传输速度约10 MB/s;极速SD数据传输速度约20 MB/s。而现在通用的USB2.0的全速传输速率是480 Mbps(60 MB/s),为普通SD卡传输速度的30倍。再者,USB3.0标准也已推出,速度可达5 Gbps,并向下兼容。USB已经成了高速、方便的代名词,本文选用USB也正出于其通用性和方便升级性考虑。

b)容量瓶颈:现有发行的嵌入式Linux2.4.X内核对SD卡标准模式容量的支持绝大数为2 G以下(不包含2 G),要支持到更大容量需要对SD卡驱动程序进行大量修改,并且协议标准推出相对较晚,较新的嵌入式Linux 2.6.24内核通过笔者实际验证可以支持到2 G容量,但要对驱动进行多处修改,后续升级复杂,稳定性也需要进一步验证。

鉴于以上两点,采用USB接口进行视频数据的采集和存储,两路USB接口部分硬件连接如图3所示。

 

USB接口部分硬件连接" />

2.1.2 Linux内核配置修改

在Linux下,所有外设都被看成是一种特殊的文件,称为设备文件。设备驱动程序为内核和外设之间提供接口函数,完成设备的初始化与释放、对设备文件的各种操作及中断处理等。这些接口函数为应用程序屏蔽了外设硬件的细节,使程序可以像普通文件一样对外设进行操作。Linux系统中子模块 Video4Linux向虚拟文件系统注册视频设备文件,为视频应用程序提供了一套统一的API,视频应用程序通过标准的系统调用即可操纵各种不同的视频捕获设备。

考虑到更好的推广性,采用市面上常见的中星微301系列zc0301pl芯片摄像头,此摄像头支持JPEG格式的图像采集。模块中分别对USB OV511 Camera support,Device Drivers等菜单选项进行适当配置。除此之外,还需对USB的配置文件进行修改,本文选用Linux 2.6.24内核,主要修改的文件如下:

linux-2.6.24/driVers/usb/host/Kconfig,linux- 2.6.24/drivers/usb/host/ohci-S3C2440.c和linux- 2.6.24/drivers/usb/core/hub.c.其中主要涉及对MISCCR寄存器进行正确设置。以修改ohci-s3c2440.c文件为例,部分需添加代码:

 

2.2 视频采集存储程序设计

Vide04Linux设备驱动程序只提供了在系统层面上访问硬件设备的一系列读、写等函数的接口,要实现存储,还需再编写一个对视频流采集的应用程序,总体上创建两个进程:进程一实时扫描串口接收到的信息,通过读取命名管道内容将编码信息发送给进程二;进程二根据接收到的编码做出判断,区别各种不规范驾驶行为,设定定时器不同时长以控制存储时间,并将视频分类存储到不同目录中。

Video4Linux设备驱动程序支持两种捕获图像的方式:内存影射mmap方式和直接读取read方式。mmap方式采用共享内存方式,数据采集速度快,但这种采集方式需摄像头硬件支持。结合本文中使用的摄像头,在图像采集过程中,采用read方式直接读取设备文件,将获得的一帧数据保存到缓冲区中,通过convertframe()函数将 pFramebuffer中的数据转换成完整的JPEG格式的数据存储到ptframe中,然后调用fWrite()函数将缓冲区中的JPEG格式的数据写到指定文件中,从而得到一副JPEG格式原始数据块。部分程序如下:[!--empirenews.page--]

 

对于存储的控制,本文采用“命名管道”方式,这是一种简单的进程间通信机制,在同一计算机的不同进程之间,支持可靠的,单向或双向的数据通信。

命名管道由视频存储进程利用函数int mkfifo(constchar*pathname,mode_t mode)创建,负责读取由串口扫描接收进程接收到的控制信息。部分程序如下:

 

程序总体流程图如图4所示。

 

3 试验结果

嵌入式内核采用较新的Linux2.6.24版本,配置成功后将编译生成的镜像文件下载到目标机。应用程序可执行文件通过宿主机上交叉编译器arm-linux- gcc4.4.1生成,向目标机移植成功后便可以在目标机上运行。本文中摄像头采用中星微301系列zc0301p1芯片,存贮器选用台电存储之星U盘,容量为4 G。

视频采集存储模块根据接收到的不同违章信息,在执行文件当前所在目录位置分别建立DOCn(n=1,2,…)文件夹,将视频信息分类保存在相应目录下。图5为驾驶员在岔道转弯时刻因超速产生触发条件,进而触发视频采集存储视频中的一副图片。另外,在系统运行时,还可以根据需要设置录制时间的长短,以满足不同的需求和存贮器容量的限制。

 

4 结论

本系统中单片机模块根据运算结果产生触发条件,通过串口发送不同编码信息来区别超速、紧急刹车、超载等情形。实验结果表明整个系统安装简便,成本低廉,工作稳定可靠。另外通过修改单片机模块触发条件,可扩展用于工厂、银行及小区等场合下基于事件触发的智能监控。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭