新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ARM的车辆检测系统控制单元电路设计

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

作者:时间:2011-07-22来源:网络收藏

  //擦除Flash

  write_command(0x80);

  //写命令80H

  address = row_add<<9;

  address = 0x00fffe00;

  write_address(address);

  //写地址

  statue = IO0PIN;

  //获取状态

  while((statuefr_b)==0)

{statue = IO0PIN;}

  //忙,等待

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

  //写528字节

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

  //写入数据

  write_command(0x10);

  //写命令10H

  statue = IO0PIN;

  //获取状态

  while((statuefr_b)==0)

  {statue = IO0PIN;}

  //忙,等待

  write_command(0x70);

  //写命令70H

  statue = read_data();

  //获取状态

  if(statue0x01)

  {IO0SET = errorled;}

  //操作失败

  }

串口通信实现

  控制系统通过的两个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总线控制器和的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 主程序流程图



评论


相关推荐

技术专区

关闭