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

发布者:喜茶我要七分糖最新更新时间:2006-08-31 来源: 中国测控网关键字:框图  总线  线圈  控制 手机看文章 扫描二维码
随时随地手机看文章

  引言

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

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

            图2 控制板系统原理框图

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

         图4 主程序流程图


  总体方案设计

  本文设计的控制板系统原理框图如图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和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);}
//擦除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装载程序将执行用户程序。

  结语

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

参考文献
1周立功等. ARM微控制器基础与实践.北京航空航天大学出版社. 2003. 11
2马忠梅等. ARM嵌入式处理器结构与应用基础.北京航空航天大学出版社.2002

关键字:框图  总线  线圈  控制 引用地址:基于ARM的车辆检测系统控制单元设计

上一篇:基于ARM的车辆检测系统控制单元设计
下一篇:基于ARM的车载GPS智能导航系统

推荐阅读最新更新时间:2024-05-02 20:25

基于CAN总线EPB驻车电流采集节点系统电路设计
  电子驻车制动系统(EPB)指将行车过程中的临时性制动和停车后的长时性制动功能整合在一起,并且由电子控制方式实现停车制动的技术。为了能够获取各车辆已施加的理论驻车压力,并监控各车辆一体化执行机构的工作状态,防止驻车电机长时间工作在大电流状态,防止驻车电机过热烧毀,EPB一般配有驻车车电流采集节点,并通过CAN总线将驻车电流发送给中央控制节点(ECU)。文中主要介绍了基于AD574A的驻车电流采集节点的接口设置。   1 系统硬件设计   驻车电流采集节点的硬件电路设计包括CAN总线通讯电路设计与车速采集电路设计两部分,如图1所示。   1)CAN总线通讯电路设计   CAN总线通讯电路设计时,CAN控制器使用
[嵌入式]
实时控制技术满足实时工业通信发展的需求(4)
本系列博客文章的第1部分介绍了用于C2000™微控制器(MCU)的EtherCAT从站堆栈解决方案的市场机遇,以及从站堆栈开发快速入门的三个阶段指南。第2部分详细说明了TI C2000 MCU EtherCAT实施的特点和优势。第3部分分别介绍了使用EtherCAT从站和C2000 Delfino MCU controlCARD套件自行开发从站节点应用程序的三个阶段,并介绍了TI C2000 controlSUITE™软件中的EtherCAT包如何为每个阶段提供支持。本篇博文作为本系列文章的第4部分将介绍如何利用最新的C2000 TMS320F28388D实时控制器自行开发EtherCAT从站控制器。 C2000 F28388
[工业控制]
实时<font color='red'>控制</font>技术满足实时工业通信发展的需求(4)
STM32F030控制LED
(1)hardware_conf.h函数中: #define NETLED(tmp) GPIOA- ODR=tmp?(GPIOA- ODR|1 4):(GPIOA- ODR&(~(1 4))) //上网指示灯 #define DOORLED(tmp) GPIOA- ODR=tmp?(GPIOA- ODR|1 12):(GPIOA- ODR&(~(1 12))) //开门指示灯 #define MENCI(tmp) GPIOA- ODR=tmp?(GPIOA- ODR|1 11):(GPIOA- ODR&(~(1 11))) //门磁指示灯 (2)main函数中: void main(void) { NE
[单片机]
按键PWM控制led亮度单片机源程序
单片机源程序如下: //程序名:单片机实验仪配套程序--pwm控制led亮度 //电路简介:1、P0接J1的led共阳端; // 2、P2.6接J14单键键盘的6,作为增加亮度按钮 // 3、P2.7接J14单键键盘的7,作为减小亮度按钮 //saxmcu 20080518 #include reg51.h #define out P0 sbit INC=P2^6; //SW1 sbit DEC=P2^7; //sw2 //----------------------------------------------------------------- void Init(void) {
[单片机]
P80C592芯片在基于CAN总线显示通信模块中应用
摘要:PHILIPS公司的P80C592芯片是P8X592的无片内ROM版本,该芯片是现有P8XC522和Philips CAN控制器PCA82C200的功能相结合的产物。文中介绍了P80C592在开发基于CAN总线的显示通信模块中的应用方法。 关键词:CAN总线 显示通信模块 P80C592 1 P80C592芯片简介 P80C592是PHILIPS公司采用先进的COMS工艺制造的高性能8位单片机。该单片机的指令集与80C51 完全兼容,但在80C51标准特性的基础上又增加了一些对于应用具有重要作用的硬件功能。P80C592是P8XC592的无片内ROM版本,是现有P8XC522和Philips CAN控制器PCA82C2
[传感技术]
可穿戴医疗设备关键技术及其质量控制初探
近年来,随着人口老龄化进程的加快,许多慢性疾病在人群中呈现年轻化的趋势,人们的健康要求和保健意识与日俱增 ,这一切直接或间接推动了 医疗 模式从以症状治疗为中心转向以预防为主、早诊断、早治疗的模式转变。 医疗设备 的发展也从复杂的、应用于医疗机构的大型设备,转向既能适用于医院又符合家庭和个人需求的小型穿戴式,甚至是片状植入式。除此之外,某些特殊行业和领域,如深水作业、运动员训练和航空航天等对可穿戴医疗设备也有着迫切和广泛的使用需求。为了满足大众群体和相关行业的此种需求,国内外的很多研究机构和企业都在加大对可穿戴医疗设备的研发力度和投资,已经积累了一定的经验与研究成果。随着Google glass、Jawbone up、Fitbi
[医疗电子]
可穿戴医疗设备关键技术及其质量<font color='red'>控制</font>初探
PROFIBUS-DP总线在回转式水泥包装机及辅机电气控制中的应用
近几年来,随着我国水泥行业的迅速发展,水泥产量得到大幅度的提高,回转式水泥包装机以其包装速度快、效率高等优势越来越被更多的厂家所接受,也成为了各水泥设计院包装车间设备的主要选型产品。 随着水泥厂自动化程度的提高,水泥厂对各种设备分散控制集中管理(DCS)的需求越来越高。回转水泥包装机在被大量选用的同时,在电气控制方面也逐渐显露出一些问题。如:虽然包装机能够独立工作,但中控对包装机的工作状况不能作到实时监测;在中控室不能远程直接控制包装机的工作;对包装机及配套辅机也不能进行监控。各水泥设计院在做水泥厂新线设计和老线改造过程中,也充分考虑了这种需求,要求在中控室能够有效的对水泥厂各种设备的运行状况、主要技术数据进行监控。对于回转式水泥包
[嵌入式]
制作一个互联网控制的螺栓机器人车
手上正好有闲置的 Bolt WiFi 模块、机箱和一些?这个项目是最适合你的选择。 背景 我们从早上开始工作,日复一日的重复这一项事情,偶尔我们也会需要适当休息和娱乐。一直玩桌上足球并不能满足我们,同时由于游玩过程比较吵闹也会影响别人。因此,为了保持镇静,我们开始思考我们可以做些什么来使我们放松,但仍然会让我们保持在“工作区域”。于是,这个小机器人车就应运而生。 所以最终我们决定制作一个互联网控制的-wt-for-it-RC 机器人,它带有一点点额外的功能。 收集部件 我们到了店,里面装满了包和组件,让你的眼睛闪烁着贪婪的光芒,我们搜集了我们需要的东西: Bolt Wifi 模块 基本机器人
[机器人]
小广播
热门活动
换一批
更多
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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