小区智能车库系统的软件设计

时间:2013-07-25

  摘要:RFID射频识别是一种非接触式的自动识别技术,单片机结合RFID技术的应用将给智能车库系统带来革命性变革。本文基于现实生活中进入出库的不便和延误,对车库控制系统进行可行性智能化设计,使车库达到智能化、无人化管理的目的,减少进出车库的时间,提高车库的效率。

  1.引言

  智能车库是近年来快速发展的一种先进的停车方式,为日益严重的城市停车难提供了一个有效的解决办法。通过软件控制车库,加快了车辆进出车库的速度,提高了车库利用效率,降低了劳动力成本,使车主的时间和车库的利用效率大幅度提高。

  本文设计的智能车库在软件控制下使用STC11F32单片机接收通过RFID传回的磁卡信号并做出处理,对车库的运行和管理做出控制总体上的软件设计方案。软件以STC公司生产的STC 11F32XE单片机作为硬件平台,对软件系统中各个功能模块的具体设计进行了详细介绍。控制系统以C语言作为主要编程语言,对系统的监控程序以及主要软件功能模块子程序进行了具体设计。此方案在模型车库中已经通过验证和实际的信息采集并做出修改,为实际运用。

  2.整个智能车库程序控制器部分

  2.1 智能车库程序软件流程

  整个智能车库程序除了智能小车控制部分的程序以外,还包括硬件控制部分的程序、射频识别部分的程序,其软件流程框图如图1所示。

  

  2.2 硬件控制模块STC 11F32XE芯片

  S T C 1 1 F 3 2 X E单片机是一种独特的微处理器,具有高可靠性、功能强、高速度、低功耗和低价位等优点。将S T C11F32 XE在系统程序中进行寄存器的初始化程序设置,经过这样的初始化操作后,对芯片的使用,就可以和其他的普通51单片机相同了,便于提高系统的移植性和通用部署,其设置程序如下:

  void InitPort(void) / / 寄存器初

  始化,便于后面对芯片的操作

  {

  P0M1=0×00; //I/O口0模式控制器1

  P0M0=0xff; //I/O口0模式控制器0

  //整个P0口为推挽输出模式,强上拉

  输出,可达20mA,硬件电路需要加限流电

  阻

  P1M1=0×00; //I/O口1模式控制器1

  P1M0=0×00; //I/O口1模式控制器0

  //整个P1口选择准双向口,传统8051

  I/O口模式,灌电流可达20mA,拉电流为

  230mA

  P24=1;

  //接按键硬件模式选择接口,系统不同服

  务场景使用

  P2M1=0×10; //I/O口2模式控制器1

  0001 0000

  P2M0=0×88; //I/O口2模式控制器

  1000 1000

  //P2^3和P2^7为推挽输出;P2^4仅为

  输入,空闲为高阻状态;其余位全为准双

  向口

  P30=1; //接max232电平转换芯。

  片,从输入串口获得需要电位

  P36=1; //接按键1、2,和P24一

  起选择控制权限、模式

  P3M1=0×41; //I/O口3模式控制器1

  1000 0001

  P3M0=0xa2; //I/O口3模式控制器0 1010 0010

  //P3^7为开漏(Open Drain)状态,

  内部使用上拉电阻断开,要外加上拉电阻

  P41=1; //接磁卡控制端

  P4M1=0×02; //I/O口4模式控制器1

  0000 0010

  P4M0=0×04; //I/O口4模式控制器0

  0000 0100

  }

  对I/O口工作模式在同一个函数中的设置,减少了相同代码的反复编写,优化了程序结构,便于更加灵活的使用芯片内部的寄存器和存储器

  2.3 射频识别部分RC522芯片

  射频识别部分采用解读器RC522读取信息并解码后,通过M-MFMOSI、M-MFMISO和M-MFRST送至STC 11F32芯片,通过信号相互传递,程序在进行有关的数据处理。

  MF RC522在13.56MHz下的被动非接触式通信方式和协议。

  系统软件设计中,STC 11F32XE通过M-MFMOSI、M-MFMISO和M-MFRST连接中选取串行UART(类似RS232)模式,数据传输速率高达424kbit/s,有利于减少连线,缩小PCB板体积,降低成本,便于大规模推广。其设置程序如下:

  //功能:读取M1卡一块数据

  //参数说明: addr[IN]:块地址

  //pData[OUT]:读出的数据,16字节

  //返回:成功返回MI_OK

  char PcdRead(unsigned char data

  addr,unsigned char *pData)

  {

  char data status;

  unsigned int data unLen;

  unsigned char data i,ucComMF

  522Buf[MAXRLEN];

  ucComMF522Buf[0] = PICC_READ;

  ucComMF522Buf[1] = addr;

  CalulateCRC(ucComMF522Buf,2,

  &ucComMF522Buf[2]);

  status=PcdComMF522(PCD_TRANSCEIVE,u

  cComMF522Buf,4,ucComMF522Buf,&unLen);

  if ((status == MI_OK) && (unLen

  == 0×90))

  {

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

  { *(pData+i) =

  ucComMF522Buf[i]; }

  }

  else

  { status = MI_ERR; }

  return status;

  }

  3.总结

  整个智能车库程序设计过程中,考虑了现有正在使用的车库,根据对磁卡的不同操作,设置成多个工作模式,通过外部硬件进行选择,尽可能的降低程序间的相互影响,达到系统的通用性和易于操作。

上一篇:嵌入式机车车辆车载播放系统软件设计与实现
下一篇:LED屏幕显示系统的设计与研究

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料