基于ARM的车辆检测系统控制单元电路设计

发布者:zonheny最新更新时间:2011-07-22 关键字:ARM微处理器  LPC2114  F1ash存储  车辆检测系统 手机看文章 扫描二维码
随时随地手机看文章

由于交通需求的不断增加,有越来越多的环形感应线圈检测器用于交通检测。这些埋设在道路表面下的线圈可以检测到车辆通过时的电磁变化进而精确地算出交通流量。交通流量是交通统计和交通规划的基本数据,通过这些检测结果可以用来计算占用率(表征交通密度),在使用双线圈模式时还可以提供速度、车辆行驶方向、车型分类等数据,这些数据对于交通管理和统计是极为重要的。通常高速公路车辆检测系统由多通道环形检测单元LD4和控制单元CCU组成,本文采用PHILIPS公司最新推出的ARM7内核微处理器LPC2114设计实现了车辆检测系统控制单元部分,并且和5个LD4环形检测器一起构成10通道高速公路车辆检测系统,其原理框图如图1所示。

 

图1 车辆检测系统原理框图

 

图2 控制板系统原理框图

总体方案设计

  本文设计的控制板系统原理框图如图2所示,以LPC2114为核心控制单元,该芯片是一种支持实时仿真和跟踪的16/32位基于ARM7TDMI-S 内核的CPU。内部集成了4路10 位A/D转换器,两个32位定时器、一个实时时钟和看门狗,多个串行接口,包括两个工业标准的UART、高速和两个SPI总线接口,外部多达46个与TTL电平兼容的通用I/O口,非常适用于作为主控单元。CPLD EPM7128作为微处理器的扩展输入/输出,通过光电耦合和LD4标准定义总线相连,该标准定义的总线基于RS-485总线通信协议。LD4和控制板通过标准总线进行数据交换,控制板每隔10秒扫描并发送一次请求数据的命令,相应LD4通道返回请求数据或者无效信息,ARM处理器对获得的各通道数据进行相应的统计运算处理。每隔用户设定的间隔时间就将统计数据存储于静态RAM,供中心站定时获取,同时,以分钟为单位将统计的数据备份至Flash电子硬盘中。中心站可以通过请求备份数据命令获取相应时间段的数据,并存入数据库。中心站和控制板采用RS-232串口方式通信,利用调制解调器实现远程数据传输。为了解决大容量存储问题,系统使用了三星公司提供的K9F2808来作为电子硬盘,16MB的容量能够存储11天备份数据,并且该电子硬盘能够灵活升级。

LPC2114与电子硬盘的接口实现

  为了防止传输及中心站故障等问题而导致数据丢失,系统要求对一段时间内的数据进行备份,因此在系统设计的过程中需要考虑大容量存储问题。

  设定本系统每分钟需要备份一次统计数据,根据环形检测器LD4的数据格式,一次数据量为1026B,若采用静态RAM作为存储单元,需要多片大容量RAM级联使用,价格昂贵,且存储容量扩展困难。若使用动态RAM作为存储单元,缺点在于控制困难,需要动态RAM控制器辅助操作。Flash作为存储器使用简单,容量大,尽管使用寿命有限,考虑到系统每1分钟存储1026B,就16MB容量而言,11天左右写满一次,那么一个月擦写约3次,以此计算,一年擦写约36次,而Flash寿命一般为擦写10万余次,所以本系统完全可以采用Flash作为电子硬盘用在车辆检测系统中。另外,Flash还具有掉电非易失特性,更适合应用于本系统。

  为了便于存储容量的升级扩展,本系统选用K9F2808作为存储器。K9F2808为48脚表面封装器件,芯片内部有(16M+512K)×8 bit的存储空间,可组成32768行,528列,其中后备的16列的列地址编码为513"527,可进行528字节为一页的读、写和32页为一块的擦除操作。此外,K9F2808的特点还在于其命令、地址和数据信息均通过8条I/O总线传输,接口标准统一,易于存储容量升级。

 

图3 LPC2114和电子硬盘连线示意图

  图3为LPC2114和Flash电子硬盘之间的连线示意图,由于LPC2114没有外部总线,所以对Flash操作只能采用I/O操作方式。K9F2808各种操作具有共同特点,即在I/O端口首先发送操作命令字到命令寄存器,其后的连续3个周期发送需要操作单元的地址,顺序为:A0"A7,A9"A16,A17"A23,其中A8由命令字确定。

  下面以页编程操作为例,给出K9F2808的ARM驱动程序(基于ADS1.2开发环境),而页读以及块擦除等方法与页编程类似,只是读是由#RE信号来锁存数据,而擦除时只须送两个周期的地址。

  row_add为页号,需要左移9位得到行地址。erase_flash( )——擦除Flash函数

  write_command( )——写命令函数

  write_address( )——写地址函数

  write_data( )——写数据函数

  read_data( )——读数据函数

  void flash_store(uint32 row_add, uint8 *buffer )

  { uint16 i;

  uint32 statue,address;

  //变量定义

  IO0DIR = 0x00ff0000;

  //设定IO方向

  if((row_add== 0) ((row_add%32)==0))

  {address = row_add<<9;

  address &= 0x00fffe00;

  erase_flash(address);}[page]

  //擦除Flash

  write_command(0x80);

  //写命令80H

  address = row_add<<9;

  address &= 0x00fffe00;

  write_address(address);

  //写地址

  statue = IO0PIN;

  //获取状态

  while((statue&fr_b)==0)

       {statue = IO0PIN;}

  //忙,等待

  for(i=0;i<528;i++)

  //写528字节

  {write_data(*(buffer+i));}

  //写入数据

  write_command(0x10);

  //写命令10H

  statue = IO0PIN;

  //获取状态

  while((statue&fr_b)==0)

  {statue = IO0PIN;}

  //忙,等待

  write_command(0x70);

  //写命令70H

  statue = read_data();

  //获取状态

  if(statue&0x01)

  {IO0SET = errorled;}

  //操作失败

  }

LPC2114串口通信实现

  控制系统通过LPC2114的两个UART实现和LD4以及中心站的数据交换,两个UART具备触发点可调的16B收发FIFO。其中,UART1比UART0增加了调制解调器接口。UART的基本操作方法和传统51内核单片机相似。

  首先,设置I/O连接到UART;然后设置串口波特率(如U0DLM、U0DLL);接着设置串口工作模式(如U0LCR、U0FCR);这时就可以通过寄存器U0THR和U0RBR发送/接收数据了,发送/接收模块的状态信息可以通过U0LSR寄存器读取。

  系统通过RS-485总线和LD4板卡通信,采用MAX3485作为RS-485总线控制器和LPC2114的UART1通信。MAX3485是3.3V供电的半双工收发芯片,将差分RS-485总线信号转换成ARM核能够接受的串口信号。为了实现和PC机通信,系统采用3.3V工作电压的MAX3232作为RS-232电平转换芯片。

LPC2114设计注意事项

  LPC2114在开发的过程中有一些需要特殊注意的问题,总结如下:

  (1)当用户程序写入Flash后不能运行时,首先,需要考虑中断向量表是否正确,中断向量表累加和必须为0。其次,需要考虑向量表的定位,向量表是否已经定位在0x00000000地址。然后,需要考虑MEMMAP寄存器的设置是否正确,否则中断无法执行。此外,还需要考虑ISP硬件条件是否满足,LPC2114的P0.14脚在#RESET为低时,该引脚线上的低电平将强制芯片进入ISP状态,硬件设计时必须在该引脚加10KW上拉电阻,否则,该引脚不稳定,对设备启动将会有影响。

  (2)LPC2114共有46个GPIO,这些I/O可以任意配置,但是个别引脚开漏输出(P0.2、P0.3),需加上拉电阻。另外,Flash存储器K9F2808状态输出引脚R/#B开漏输出,需加10KW的上拉电阻。

  (3)LPC2114芯片加密后,只能通过ISP对芯片全局擦除后才能恢复JTAG调试以及下载等功能。当#RESET为低时,P1.26的低电平使P1.26"P1.31复位后作为调试端口,注意在P1.26引脚和地之间需接一个弱偏置电阻。

系统软件设计思想及注意事项

  车辆检测系统ARM软件采用分层设计思想,整个软件由驱动程序和应用软件两部分构成。驱动程序部分封装了Flash操作、RS-485操作、实时时钟(RTC)操作、RS-232操作和I/O等操作。应用软件分成基本函数库和主程序。其中,主程序流程如图4所示。

  

  图4 主程序流程图

[page]

  在32位ARM核应用系统中,为了进行系统初始化,往往采用一个汇编文件作为启动代码,来实现堆栈、中断、系统变量、I/O初始化以及地址重映射等操作。开发平台ADS的策略是不提供完整的启动代码,不足部分需要开发人员自己编写。

  系统设计的启动代码包含中断向量表、堆栈初始化以及相应的中断服务程序与C语言的接口。对LPC2114而言,为了使向量表中所有数据32位累加和为0 ,向量表中设置保留向量值,将中断向量表中的32个字节数累加,其中,保留向量值不用累加,然后取累加值的补码,这个补码的低32位就是保留向量的值。该保留向量值将被BOOT装载程序用作有效的用户程序关键字。当向量表中所有数据累加和为0时,且ISP外部硬件条件不满足时,BOOT装载程序将执行用户程序。

结语

  本文基于PHILIPS公司最新的ARM7内核微处理器LPC2114实现了高速公路车辆检测系统的控制单元部分的设计。LPC2114使用简单、开发容易、具有较高的性价比,非常适用于嵌入式系统中。目前本系统已经推向市场,并取得了较好经济效益。

 

 

 

关键字:ARM微处理器  LPC2114  F1ash存储  车辆检测系统 引用地址:基于ARM的车辆检测系统控制单元电路设计

上一篇:德州仪器推出Stellaris最新开发套件
下一篇:基于STM32 MCU的太阳能-LED街灯解决方案

推荐阅读最新更新时间:2024-03-16 12:38

基于ARM7微处理器的中文液晶显示技术
1 引言 液晶显示屏LCD作为一种功耗低、体积小、无辐射的显示器件,近几年被广泛应用于各式各样的嵌入式电子产品中,LCD可分为段位式、字符式和点阵式三种,其中,段位式LCD和字符式LCD只能用于字符和数字的简单显示,不能满足图形曲线和汉字显示的要求,而点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动动画功能,分区开窗口、反转、闪烁等功能,用途十分广泛,为了简化液晶 显示电路的设计和应用,生产厂家通常将液晶显示单元、显示控制器,显示内存和显示驱动电路等装配在一起,做成液晶显示模块LCD Module(LCM) 。LCM对外提供标准数据和控制接口以及控制指令,本文以ATM1286
[应用]
2008-06-12 高性能嵌入式ARM MPU在医疗电子系统中的设计应用
  当前,全球医疗电子行业正逐渐展现出诱人的发展前景,产品更新换代的速度不断提高,同时,由于医疗电子产品自身的特殊性,对元器件的性能、功耗、可靠性和集成度等方面都提出了极高的要求。全球各大著名的半导体厂商纷纷推出一系列适合该应用领域的产品。   基于ARM内核的32位嵌入式微处理器(MPU),以其高性能、低功耗和丰富的片内资源,成为目前众多医疗电子产品开发平台的首选。其中,Cirrus Logic公司推出的旗舰产品EP9315,是目前集成度最高的ARM处理器。该处理器采用ARM920T内核,拥有200MHz主频的高性能,内嵌数学协处理器、图形加速引擎,集成包括IDE和PCMCIA等接口在内的丰富的外围电路,满足工业级的标准和极具
[单片机]
2008-06-12 高性能嵌入式<font color='red'>ARM</font> MPU在医疗电子系统中的设计应用
ARM——体系架构
1.ARM简介 ARM是Advanced RISC Machines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC (精简指令集)处理器。公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。 1.1 ARM(Advanced RISC Machines)的几种含义: 1、ARM是一种RISC MPU/MCU的体系结构,如同x86架构是一种CISC体系结构一样。另外,还有MIPS架构、PowerPC架构等等。 2、ARM是Advanced RISC Machine Limited公司的简称。 3、ARM是Advanced R
[单片机]
<font color='red'>ARM</font>——体系架构
基于ARM微处理器TCP/IP协议栈LwlP实现
  0 引 言   随着嵌入式系统与网络的日益结合,越来越多的嵌入式设备需要实现Internet网络化,支持嵌入式设备接入网络,已成为嵌入式领域重要的研究方向。而目前嵌入式系统中大量应用低速处理器,受内存和速度限制,实现完整的TCP/IP协议较为困难,LwIP作为较为成熟的嵌入式TCP/IP协议栈受到了广泛的应用。   1 硬件平台   本通信系统的硬件平台由以下几个部分组成:S3C2410主CPU芯片控制嵌入式外围设备的存储、通信、保护、调试、显示等操作;DSP和FPGA负责信号数据的采集和处理;CS8900A负责网络数据的收发;其他部分还包括串口RS232的通信、LCD的数据显示、数据存储FLASH和SDRAM以及其他硬
[单片机]
基于<font color='red'>ARM</font><font color='red'>微处理器</font>TCP/IP协议栈LwlP实现
基于ARM微处理器TCP/IP协议栈LwlP实现
0 引 言 随着嵌入式系统与网络的日益结合,越来越多的嵌入式设备需要实现Internet网络化,支持嵌入式设备接入网络,已成为嵌入式领域重要的研究方向。而目前嵌入式系统中大量应用低速处理器,受内存和速度限制,实现完整的TCP/IP协议较为困难,LwIP作为较为成熟的嵌入式TCP/IP协议栈受到了广泛的应用。 1 硬件平台 本通信系统的硬件平台由以下几个部分组成:S3C2410主CPU芯片控制嵌入式外围设备的存储、通信、保护、调试、显示等操作;DSP和FPGA负责信号数据的采集和处理;CS8900A负责网络数据的收发;其他部分还包括串口RS232的通信、LCD的数据显示、数据存储FLASH和SDRAM以及其他硬件控制等。本硬
[单片机]
基于<font color='red'>ARM</font><font color='red'>微处理器</font>TCP/IP协议栈LwlP实现
车辆网络攻击克星→盖瑞特整车入侵检测系统
随着自动驾驶及车联网的发展,车辆已然从单纯的交通工具变为了富有沟通感知功能的互联终端。借助各种传感器,车辆实现了车内外的信息互联,但同时遭受网络攻击的可能性也将不断增大。据汽车网络安全公司Upstream Security发布的2020年《汽车网络安全报告》数据显示,自2016年至2020年1月,汽车网络安全事件增长了605%,仅2019年一年就增长1倍以上。至此,保护车辆安全已刻不容缓。 应对之策:打造领先于攻击的全面、高效、灵活的盖瑞特智能网联汽车入侵检测系统 盖瑞特端到端的智能网联汽车网络安全解决方案主要由“车端网络入侵检测系统IDS”和“云端网络安全运营中心SOC”两个模块组成,将“检测-隔离-报告-修
[汽车电子]
<font color='red'>车辆</font>网络攻击克星→盖瑞特整车入侵<font color='red'>检测系统</font>
基于ARM7微处理器LPC2138实现OLED显示器的应用系统设计
ARM处理器凭借其强大的功能、极低的功耗、较小的封装广泛应用于门禁、无线抄表、智能温控等小型系统中,在这些系统中人机交互界面一般由LCD完成,但是通常LCD在显示亮度、环境适应等方面存在缺陷,所以越来越多新技术新产品逐渐出现,OLED就是一种。本文介绍了一种基于OLED的显示器VGS12864E的结构原理,给出了其在ARM7微处理器LPC2138系统应用中的硬件连接和具体程序设计。 系统简述 LPC2138简介 LPC2138是基于支持实时仿真和嵌入式跟踪的32/16 位ARM7TDMI-S CPU 的微控制器,带有512 KB高速Flash和32KB的SRAM。128位宽度的存储器接口和独特的加速结构使32 位代码能够在最大
[单片机]
基于<font color='red'>ARM</font>7<font color='red'>微处理器</font>LPC2138实现OLED显示器的应用系统设计
基于ARM微处理器的便携式管道泄漏检测仪
  中国电子科技集团第38研究所张宏财目前输油管道泄漏监测定位的主要方法可分为两大类,一类是检测输油管线的管壁状况,如管内探测球等,另一类则依赖于监测输油管内流体的状态,如压力、流量的变化,常用的方法有压力梯度法、负压力波法、流量平衡法、相关法等。随着计算机、通信和仪表技术的快速发展,监测输油管道内流体的状态变得越来越容易实现,逐渐成为输油管道监测的主流方法。由于这些依赖监测输油管内流体的状态的方法各有其优缺点,所以目前输油管道的泄漏监测往往是采用多种方法联合判断。近几年来,随着高性能、低功耗处理器ARM的出现,信号采集存储系统的功耗和体积不断减少,满足了便携式的要求,使得掌上仪器的开发成为可能。本文利用ARM核微处理器LPC22
[测试测量]
基于<font color='red'>ARM</font>核<font color='red'>微处理器</font>的便携式管道泄漏检测仪
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

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

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