基于ARM9的交通违章抓拍设计与实现

发布者:技术旅人最新更新时间:2013-05-03 来源: 21IC关键字:ARM9  交通违章抓拍  ITS 手机看文章 扫描二维码
随时随地手机看文章

1 引言

智能交通系统将先进的信息技术、数据通讯传输技术、电子控制技术、计算机处理技术等应用于交通运输行业,从而实现各种运输方式发展规划的现代化、决策的科学化和管理的智能化。数码电子警察是现在应用比较广泛的一种智能交通产品, 利用数码相机技术和相应的车辆检测与控制技术, 自动抓拍闯红灯的车辆。数字化、网络化、小型化和智能化已经成为当前电子警察的主要发展趋势。目前国内的产品多以Windows操作系统和x86 硬件体系为核心构建, 有成本高、体积大、稳定性欠缺的不足之处。

以Linux 操作系统和RAM7 或RAM9 系列芯片为核心构建嵌入式系统是目前最流行的嵌入式开发策略。Linux 是典型的嵌入式操作系统, 发展最快, 应用最广泛。Linux 是开源的、免费的, 从技术和经济的角度来看都是最佳选择。S3C2410 是韩国三星( Samsung) 公司设计的32 位RISC 嵌入式处理器。该处理器为手持设备和一般性应用提供了一个高性价比、低功耗、高性能的解决方案。该芯片基于ARM920T 内核, 采用五级流水线和哈佛结构, 提供1.1MIPS/MHz 的性能。ARM920T 具有全性能的内存管理单元MMU(Memory Management Unit) 、独立的16KB 指令和数据Cache 以及高速AMBA 总线接口。为了减少应用系统设计的成本, S3C2410 集成了众多的常用资源, 例如: LCD 控制器、NAND Flash 控制器、SDRAM控制器、系统片选逻辑以及一些常用的通讯接口等资源。

本文针对交通违章抓拍系统的特点, 以S3C2410 为核心合理设计硬件电路, 并提供必须的USB 接口、串口、网络接口和JTAG 口; 充分考虑抓拍的实时性和准确性, 采用裁减的实用的Linux2.6.12 内核, 制作根文件系统, 开发应用程序, 构建软硬件协作的嵌入式系统。

2 硬件设计

图1 硬件总体结构图

2.1 基于S3C2410 的电路设计

电路设计如图2 所示。

 

通讯接口部分包括USB 接口、以太网接口、串口。其中串口为常见的接口形式。这里主要说明USB 接口和以太网接口。

S3C2410 集成了USB 控制器, 支持两路USB Host 和一路USB Device.与USB Rev1.1 兼容, 支持低速和全速USB 设备。

本系统中设计两路USB, 都作为Host 使用。USB 接口接线图如图3 所示。

网络接口芯片选用台湾DAVICOM 公司的DM9000,DM9000 是带有通用处理器接口的单片快速以太网MAC 控制器, 并带有10/100M物理层接口, 内部集成4K 字SRAM, 接口支持8 位、16 位、32 位处理器。接口设计电路设计如图4 所示。

图4 Ethernet接口电路设计[page]

2.2 检测电路设计

通常从交通指挥灯信号机中输出的红灯信号是220V/50Hz 的工频交流电, 需要设计一个整流滤波电路将从信号机输出的交通指挥灯信号变换为TTL 电平。交通指挥灯信号检测部分采用一个光隔隔离内外电路, 从交通指挥灯信号机输入至检测板的是220V/50Hz 的交流电, 通过二级管全波整流后, 得到大约200V 的直流信号, 再经过电阻分压, 接着使用100uF 的电容平波, 获得5V 左右的直流电, 加到4N25 光隔输入端, 输出经过一个反向器获得5VTTL 电平输出, 转换电路如图5 所示。

本系统采用环形线圈检测系统, 环形线圈检测系统目前国内外使用最广泛的车辆检测系统, 它由3 部分组成: 埋设在路面下的环形线圈传感器、信号检测处理单元( 包括检测信号放大单元、数据处理单元和通信接口) 及馈线。检测单元、环形线圈与馈线线路共同组成一个LC 调谐电路。此电路中的电感主要决定于环形线圈的匝数, 环形线圈是此电路的电感元件; 电容则决定于检测单元中的电容的大小。当电流通过环形线圈时, 在其周围形成一个电磁场, 当车辆行至线圈上方时, 在金属车体中感应出涡流电流, 涡流电流产生与环路耦合、但方向相反电磁场, 即互感, 使环形线圈电感量随之降低, 因而引起电路谐振频率的上升。只要检测到此频率随时间变化的信号, 就可检测出是否有车辆通过。振荡电路设计如图6 所示。

3 软件平台的构建和应用程序的开发

3.1 构建软件平台

系统的引导过程包括以下步骤:

( 1) 处理器重新启动以后, 执行ROM启动代码。

( 2)ROM启动代码初始化CPU、内存控制器以及片上设备,然后配置存储映射。随后执行bootloader.

( 3) bootloader 将内核从闪存解压到RAM中, 然后跳到内核的第一条指令处执行。

( 4) 内核初始化各种硬件设备, 挂载根文件系统, 然后执行init 进程。

( 5) Init 进程装载运行时共享库, 读取配置文件/etc/inittab,执行脚本/etc/rc.d/rcS.

构建嵌入式软件平台需要准备以下工作: 制作内核、创建根文件系统和生成启动代码bootloader.

3.1.1 制作Linux 内核

采用Linux2.6.12 的内核。在Linux2.6 中, 引入了很多非常有利于嵌入式应用的功能。这些新功能包括实时性能的增强、更方便的移植性、对大容量内存的支持、支持微控制器和I/O系统的改进等。2.6.12 提供了针对S3C2410 的配置, 使用命令make s3c2410_defconfig, 然后配置内核使用命令make menuconfig,配置体系结构( System Type) , 选择S3C2410 Implementation,配置处理器类型, 选择ARM9T, 接着配置通用选项, 支持网络、SYSVIPC 机制、支持ELF 文件格式, 选择根文件系统为JFFS2, 然后再配置网络, 选择网络设备支持, 选择串口支持、选择文件系统与网络文件系统, 配置USB 设备选项, 由于数码相机是USB 设备, 我们使用libusb0.1.10 版本的驱动支持, 所以需要修改内核源码usb.c 文件, 不把数码相机作为USB 存储设备。编译内核映像使用命令make zImage, 建立模块使用命令make modules.

3.1.2 创建根文件系统

根文件系统是所有Unix 系统不可或缺的组件, 顶层目录/bin、/dev、/etc、/lib、/proc、/sbin 和/usr 是必须的。有几项工作非常重要, 首先是建立安装GNU C 链接库, glibc 套件包括若干链接库, 比如数学链接库libm- 2.2.3.so, 共享c 链接库libc- 2.2.3.so.

除了链接库文件, 还要复制动态链接库及其符号连接。再就是建立设备文件, 按照Unix 的传统, 任何对象都可视为文件, 所有设备节点都放在/dev 目录下, 包括zero、random、tty0、tty1、ttyS0、tty、console、mem、null, 另外还需要建立必要的符号连接:

fd- >/proc/self/fd, stdin- >fd/0, stdout- >fd/1, stderr- >fd/2.然后选择主要的系统命令, BusyBox 无疑是最方便的套件, 成功安装后, /bin 目录下会出现二进制文件busybox, 对需要的命令建立对BusyBox 的符号连接。

为根文件系统选择文件系统是很重要的工作。JFFS2 文件系统的特点是可被写入、具有永久性、断电可靠性而且可以压缩。JFFS2 会为垃圾回收功能维护空间, 提供断电可靠性和损耗平衡这两个对flash 系统非常重要的特性。由于抓拍系统工作在开放式的环境中, 稳定性、可靠性是首先要考虑的, 所以选择JFFS2.用mkfs.jffs2 工具程序建立文件系统的映像: mkfs.

jffs2- r rootfs/- o images/rootfs- jffs2.image.

3.1.3 Bootloader 代码。

Bootloader 主要负责加载内核, 尽管它在系统启动期间执行的时间很短, 但是非常重要的系统组件, 对嵌入式系统来说是一件特别的工作。Bootloader 是严重依赖于硬件而实现的, 目前以ARM为基础的系统还没有标准的Bootloader, 针对本系统的硬件特性, 在ppcboot 的基础上加以修改, 生成适合本系统的启动代码。

3.2 应用程序的开发

程序主要实现以下功能: 现场红灯和线圈信号的采集; 控制相机拍照、保存参数、传输照片和删除照片; 处理按键信息并送数码管显示; 通过以太网远程下载照片, 也可以用U 盘本地下载照片。应用程序的总体结构如图7 所示。

系统软件的设计主要是控制相机的USB 通讯模块的编写、网络传输模块的编写、信号采集模块的编写和串口通讯模块的编写。其中USB 通讯模块是关键, 需要严格遵守数码相机的通讯协议; 网络传输采用客户机服务器方式, 本机作为客户机, 工控中心设置为服务器。检测信号模块主要是读取并口信息, 并口的操作使用端口I/O, 简单、操作性强, 并且可以清楚说明编写设备驱动程序开发所必需的底层硬件控制过程。在Linux 中有一个用于输入的命令inb( address) 和一个用于输出的命令outb( value, address) .C 语言的宏扩展实现了这两个函数, 而且不涉及任何函数库, 但使用这两个函数需要一些额外的函数, 函数ioperm( ) 从内核中申请和释放端口访问权。在Linux 下, 串口一般作为一个终端接口, 即tty 接口, POSIX.1 定义了一个查询和操作终端的标准接口, 该接口被称作termios,在系统的头文件中定义。termios 是一个数据结构和一系列操作这些数据结构的函数, 这些函数一起构成了通用的终端界面, 提供对终端的有效控制操作, 使得系统具有复杂的异步串口设备处理能力。

程序处理流程如图8 所示。

4 结束语

该数码电子警察系统采用高分辨率的数码相机, 清晰度高, 在运行的过程中, 抓拍成功率达到98%, 照片合格率达到95%, 误拍率低, 适用于各种恶劣的环境条件。采用实时性高的Linux2.6.12 的内核, 提供对S3C2410 的专门的支持。该系统稳定、可靠、实时性强, 且完全自主开发, 可有效控制成本, 有很强的市场竞争力。结合图像处理技术, 构建数码视频电子警察系统有更广阔的前景, 这将是下一步开发的重点。

关键字:ARM9  交通违章抓拍  ITS 引用地址:基于ARM9的交通违章抓拍设计与实现

上一篇:基于触摸屏技术和ZigBee的校园LED公告板系统
下一篇:图解ADS+JLINK调试ARM

推荐阅读最新更新时间:2024-03-16 13:22

Analog Bits采用微捷码FineSim SPICE加速模拟IP验证
美国加州圣荷塞 2011年11月21日– 芯片设计解决方案供应商微捷码(Magma(r))设计自动化有限公司(纳斯达克代码:LAVA)日前宣布,集成时钟和接口IP领导者Analog Bits公司采用FineSim(tm) SPICE多CPU电路仿真技术来加速其精密时钟宏、可编程互连解决方案和专用存储器的模拟IP验证。 通过采用FineSim SPICE多CPU仿真技术,Analog Bits显著缩短了仿真运行时间,在不牺牲精度的前提下扩大了仿真的范围。 “我们认为FineSim SPICE与我们先进混合信号设计环境十分搭配,” Analog Bits公司执行副总裁Mahesh Tirupattur表示。“采用FineSim SPI
[模拟电子]
基于ARM9的CMOS图像采集系统的设计与实现
机器视觉在国民经济、科学研究以及国防建设等领域都有着广泛的应用。在大批量工业生产过程中,用人工视觉检查产品质量效率低且精度不高,用机器视觉可以提高生产效率和自动化程度。图像采集系统是机器视觉系统的重要组成部分,目前图像采集常用的两种图像传感器为CCD与CMOS图像传感器。CCD一般输出带制式的模拟信号,需要经过视频解码器得到数字信号才能传入微处理器中,而CMOS图像传感器直接输出数字信号,可以直接与微处理器进行连接。不同的CMOS图像传感器有不同的性能,主要表现在图像分辨率大小不同、帧速率不同、曝光方式不同等,CMOS图像传感器可直接通过I2C来设置图像分辨率大小及曝光、增益等参数,而CCD图像传感器则需要对视频解码器进行设置
[工业控制]
基于<font color='red'>ARM9</font>的CMOS图像采集系统的设计与实现
Atmel AT91SAM9x5系列ARM9
Atmel最新的AT91SAM9x5系列包括了5个型号的低功耗ARM926EJ-S处理器, 公共的特性: 400MHz ARM926EJ-S core / 16KB Data/Instruction Cache / DDR2 / MLC NAND / 3xHS USB HOST 1xHS USB DEVICE / HS SDIO SD MMC / Software Modem / BGA217 差异化的外设主要针对不同的应用场合: AT91SAM9G15 (LCD) 适合手持式人机界面的应用,AT91SAM9261,AT91SAM9G10升级版 AT91SAM9G25 (Et
[单片机]
Atmel AT91SAM9x5系列<font color='red'>ARM9</font>
ARM9 (2440A) 从启动代码到应用程序(Main) 1
ARM9(2440A) 从启动代码到应用程序 说一下从启动代码到Main函数的过程,以及到了Main还需要设置些什么,才算是一个完整的应用程序。 启动代码 我们知道,uboot的第一阶段的功能是:(1)定义入口;(2)设置异常向量(exception vector);(3)设置CPU的速度、时钟频率及中断控制寄存器;(4)初始化内存控制器 ;(5)将rom中的程序复制到ram中;(6)初始化堆栈;(7)转到ram中执行; 其实我们要实现的启动代码功能也就是实现这些功能,最后跳转到我们自己的应用程序入口。只是这里的启动代码,我们不用uboot来实现,可以说是根据自己的需求来实现,毕竟uboot代码量不小。 keil下创建
[单片机]
<font color='red'>ARM9</font> (2440A) 从启动代码到应用程序(Main) 1
基于ARM9嵌入式开发平台的心电除颤模拟发生系统方案
随着社会的发展,人们的医疗保健意识越来越强,所以医生的培训也就成为非常重要的环节。心电除颤技术作为医生培训的一个主要方面,若操作规范,动作熟练,往往在紧急关头可以救人于危难之间,在培训的时候,如果能够真实地模拟急救除颤的场景,将会起到良好的学习效果。因此,在急救、有创性临床操作训练上,医学模拟教学日益显示出其成本低、重复性高、教学效率高以及符合医学伦理要求等优势。 除颤模拟发生系统可以任意选择34种状态(包括成人和儿童两大类)时也可以连接医用监护仪,使除颤模拟更加逼真。学员可以进行不同能量的除颤练习,同时这也便于老师检验学员的学习效果。 该系统是根据心电图的有关原理以及监护仪的信号合成原理研制的,严格按照医学的相关
[单片机]
基于<font color='red'>ARM9</font>嵌入式开发平台的心电除颤模拟发生系统方案
基于ARM9处理器S3C2410的LCD显示系统设计
  0 引言   Xscale处理器是Intel公司推出的基于ARMv5TE体系结构的ARM处理器。PXA270是该公司于2003年第四季度推出一款全性能、高性价比、低功耗的Xscale处理器,其最高主频可达624MHz。   PXA270拥有的 Quick Capture(快速拍摄)、Wireless MMX(无线MMX指令)和Wireless Speed Step(无线动态节能)技术,大大提升了多媒体处理能力;同时在保证CPU性能的情况下,最大限度地降低移动设备功耗。   嵌入式Linux(Embedded Linux)是指对标准Linux经过小型化裁减处理之后,能够固化在容量只有几KB或者几MB的存储器芯片或者单片
[单片机]
基于<font color='red'>ARM9</font>处理器S3C2410的LCD显示系统设计
linux 2.6.32 在arm9(s3c2440)平台的移植
板子用的友善的mini2440, 起初按照光盘提供的手册, 照猫画虎,,,,,,,,,但是遇到各种问题, 很多未解决.....原因是还没理解每层目录的Makefile和Kconfig的关系, 以及在Kernel Configure菜单树中对应的选项, 以及对nand_flash设备的结构体的意义没搞清楚,~ so~ 在http://www.kernel.org/ 下载2.6.32的源代码. 编译器用的arm-linux-gcc 4.1.2 . 1 内核代码/uboot代码中中机器码的定义位置,在/root/linux-2.6.32/arch/arm/tools/mach-types 和 uboot/include/asm-
[单片机]
LCD---那些年我们一起玩mini2440(arm9)裸机
LCD-liquid crystal display 的简称,液晶显示器按驱动方式分为1.静态驱动、2.简单矩阵驱动及3.主动矩阵驱动。 其中,简单矩阵又可分为1.扭转向列型(TN)和超转向列型(STN)两种,而主动矩阵驱动则以TFT为主。 TN与STN都采用场电压驱动方式,如果显示尺寸加大,中心部分对电机变化的反应时间就会变长,显示器的速度跟不上。为解决这个问题,主动矩阵驱动TFT被提出,他通过晶体管显示信号开启过关闭液晶分子的电压,从而避免了显示器对电场效应的依靠。 LCD一块屏显示图像不但需要LCD驱动器,还需要LCD控制器。很多主芯片cpu集成了LCD控制器。 依据显示原理:作为帧同步信号的vsync,每发出一个脉
[单片机]
LCD---那些年我们一起玩mini2440(<font color='red'>arm9</font>)裸机
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved