嵌入式技术
1.智能交通系统(ITS)将先进的信息技术、数据通讯传输技术、电子控制技术、计算机处理技术等应用于交通运输行业,从而实现各种运输方式发展规划的现代化、决策的科学化和管理的智能化。数码电子警察是现在应用比较广泛的一种智能交通产品, 利用数码相机技术和相应的车辆检测与控制技术, 自动抓拍闯红灯的车辆。数字化、网络化、小型化和智能化已经成为当前电子警察的主要发展趋势。目前国内的产品多以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 内核, 制作根文件系统, 开发应用程序, 构建软硬件协作的嵌入式系统。
图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接口威廉希尔官方网站 设计
2.2 检测威廉希尔官方网站 设计
通常从交通指挥灯信号机中输出的红灯信号是220V/50Hz 的工频交流电, 需要设计一个整流滤波威廉希尔官方网站 将从信号机输出的交通指挥灯信号变换为TTL 电平。交通指挥灯信号检测部分采用一个光隔隔离内外威廉希尔官方网站 , 从交通指挥灯信号机输入至检测板的是220V/50Hz 的交流电, 通过二级管全波整流后, 得到大约200V 的直流信号, 再经过电阻分压, 接着使用100uF 的电容平波, 获得5V 左右的直流电, 加到4N25 光隔输入端, 输出经过一个反向器获得5VTTL 电平输出, 转换威廉希尔官方网站 如图5 所示。
本系统采用环形线圈检测系统, 环形线圈检测系统目前国内外使用最广泛的车辆检测系统, 它由3 部分组成: 埋设在路面下的环形线圈传感器、信号检测处理单元( 包括检测信号放大单元、数据处理单元和通信接口) 及馈线。检测单元、环形线圈与馈线线路共同组成一个LC 调谐威廉希尔官方网站 。此威廉希尔官方网站 中的电感主要决定于环形线圈的匝数, 环形线圈是此威廉希尔官方网站 的电感元件; 电容则决定于检测单元中的电容的大小。当电流通过环形线圈时, 在其周围形成一个电磁场, 当车辆行至线圈上方时, 在金属车体中感应出涡流电流, 涡流电流产生与环路耦合、但方向相反电磁场, 即互感, 使环形线圈电感量随之降低, 因而引起威廉希尔官方网站 谐振频率的上升。只要检测到此频率随时间变化的信号, 就可检测出是否有车辆通过。振荡威廉希尔官方网站 设计如图6 所示。
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, 简单、操作性强。
全部0条评论
快来发表一下你的评论吧 !