LPC2114设计实现车辆检测系统控制
eeskill 2021-10-12

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

总体方案设计

本文设计的控制板系统原理框图如图2所示,以LPC2114为核心控制单元,该芯片是一种支持实时仿真和跟踪的16/32位基于ARM7TDMI-S内核的CPU。内部集成了4路10位A/D转换器,两个32位定时器、一个实时时钟和看门狗,多个串行接口,包括两个工业标准的UART、高速和两个SPI总线接口,外部多达46个与TTL电平兼容的通用I/O口,非常适用于作为主控单元。CPLDEPM7128作为微处理器的扩展输入/输出,通过光电耦合和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)×8bit的存储空间,可组成32768行,528列,其中后备的16列的列地址编码为513~527,可进行528字节为一页的读、写和32页为一块的擦除操作。此外,K9F2808的特点还在于其命令、地址和数据信息均通过8条I/O总线传输,接口标准统一,易于存储容量升级。

图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()——读数据函数

voidflash_store(uint32row_add,uint8*buffer)

{uint16i;

uint32statue,address;

//变量定义

IO0DIR|=0x00ff0000;

//设定IO方向

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

{address=row_add<<9;

address&=0x00fffe00;

erase_flash(address);}

//擦除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所示。

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

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

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
热门推荐
  • 相关技术文库
  • 工业
  • 安防
  • 航空
  • CAN
  • 风电风机故障诊断远程无线管理方案

    风电行业作为可再生能源领域中最具前景的发电方式之一,在全球范围内分布广泛。但是,在风机发生故障时,却总是措手不及。本文将提供可行的方案,能够为解决故障带来便利。   风电行业现状概述 随着“碳中和”和“碳达峰”的热度疯涨,新能源行业势必崛起。风

    04-27
  • 如何将CAN总线升级成CAN FD?

    如何快速升级到CAN FD? 小致百科课堂 · ▴ 点击视频,关注查看更多 ▴ 21世纪初,CAN总线技术迎来了CAN FD时代,数据传输的速率不断提高的同时,极大地缩短了数据传输,尤其是程序下载的时间。那么如何才能将手头的CAN总线升级成CAN FD呢? 致远电子为您提供3

    04-22
  • 一张表看电机的分类

    据说尼古拉·特斯拉(Nikola Tesla)于1888年发明了交流电机。从那时起,由于各种元素创新,例如电机的组成材料(磁铁、钢板等),半导体元器件的材料、部件技术和控制技术等,使电机有了长足发展。例如,在1900年代初期开发的输出功率为5马力的感应电机,在2

    04-21
  • 解析电机的旋转动作和发电作用

    电机的旋转原理 作为电机基础知识,我们将介绍电机原理相关的内容。 关于电流、磁场和力 首先,为了便于后续电机原理说明,我们来回顾一下有关电流、磁场和力的基本定律/法则。虽然有一种怀旧的感觉,但如果平时不常使用磁性元器件,就很容易忘记这些知识。

    04-14
  • 运动控制T型曲线速度规划的matlab、 C语言实现

    ★ 本文介绍了运动控制中常用的梯形速度曲线规划的原理和程序实现,最后给出了测试结果; ” 1 前言 2 理论分析 3 matlab 实现 4 测试结果 5 C语言实现 6 总结 1 前言 在伺服系统以及控制系统的加减速动作中,为了让速度更加平滑,可以引入T型速度曲线规划(T

    03-31
  • CAN总线和RS485总线应用概述

    CAN总线和RS485总线的定义 CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并最终成为国际标准(ISO11898)。是国际上应用最广泛的现场总线之一。在北美和西欧,CAN总线协议已经成为

    03-30
  • 传感器这么多种,你都知道怎么工作的吗

    布料张力测量及控制原理 ▼ 直滑式电位器控制气缸活塞行程 ▼ 压阻式传感器测量液位的工作原理 ▼ MQN型气敏电阻结构及测量电路 ▼ 气泡式水平仪的工作原理 ▼ 扩散硅式压力传感器 ▼ 应变加速度感应器 ▼ 称重式料位计 ▼ 电子皮带秤重示意图 ▼ 电子吊车秤

    03-26
  • 一文看懂I2C(FPGA实测I2C波形)

    据非官方统计,90%电子行业的公众号都介绍过3种串行通讯协议:UART、SPI和I2C。这3种串行协议也是电子开发行业最常用的协议。前面介绍了 及其 , 。本篇文章介绍I2C通讯协议及其FPGA实测波形。 文末有【I2C官方标准文档下载方法】。 有哪些内容 I2C是什么 5种

    03-25
  • 红电线,黄电线,绿电线,各种颜色电线都代表什么?

    1、依导线颜色标志电路 黑色——装置和设备的内部布线。 棕色——直流电路的正极。 红色——三相电路的C相; 半导体三极管的集电极; 半导体二极管、整流二极管或可控硅管的阴极。 黄色——三相电路的A相; 半导体三极管的基极; 可控硅管和双向可控硅管的控

    03-26
  • 总线隔离后接地出现通讯异常该如何改善?

    在已为大家介绍隔离后接地的ESD作用机理,那么面对总线隔离后由于接地而出现的通讯异常问题该如何改善,本文将为大家介绍对应的改善措施以及电路作用详解。    前言 为保证总线网络的通讯稳定性,通讯接口通常会做隔离,隔离的主要目的: 安规考虑:保护设备

    03-19
  • 常用的电气电路图集

    1 单相照明双路互备自投供电电路 2 双路三相电源自投电路 3 茶炉水加热自动控制电路 4 简单的温度控制器电路 5 简易晶闸管温度自动控制电路 6 用双向晶闸管控制温度电路 7 XCT-101动圈式温度调节仪控温电路 8 电接点压力式温度表控温电路 9 TDA-8601型温度指

    03-08
  • 常见CAN总线干扰现象

    CAN总线由其高可靠和实时性被广泛应用于新能源汽车、轨道交通、医疗、工程机械等行业,但是由于大部分行业工作环境都比较恶劣,所以提高总线抗干扰能力是目前行业用户最为关注的方向。   常见CAN总线干扰现象 如下为一条流水线有两路CAN总线,一条总线有22个

    03-11
下载排行榜
更多
EE直播间
更多
广告
X
广告