北京工业大学毕业设计(论文)
3 系统软件设计
3.1 系统主程序设计
该系统的功能是当有用户刷卡时读取卡中的信息,如果用户具有进入的权限,执行机构将解锁门禁 。同时,用户的信息将被保存在存储器中,通过GSM/GPRS模块以短息或通过TCP/IP协议将信息发送到监控设备中。
终端机开机上电后首先要进行初始化。其中包括I/O口、I2C、USART、RTC等控制器的外设。然后对存储器、GSM/GPRS模块和RFID读写器、时间设置等4部分进行初始化。其流程如图3.1所示
图 3.1 系统初始化流程图
系统初始化结束后,设置微控制器为1秒唤醒一次的模式,随后进入活跃暂停模式。在该模式中只有外部低速时钟和RTC运行,CPU和其余外设都进入关闭状态,从而达到最低功耗的状态。当1秒钟到达后系统被唤醒,RFID读写器进行寻卡处理,如果没有卡接近RFID读写器,系统将重新设置成1秒唤醒模式并进入低功耗状态;如果此时有用户持卡接近读写器,用户卡中的信息将被RFID读写器读出。读取信息后传给STM8L处理器,判断该用户是否具有开锁权限,如果用户具有权限则控制执行机构解锁。然后将用户信息存入存储器中,并通过GSM/GPRS模块将信息发送到监控设备上。发送结束后再次设置系统为1秒唤醒模式并进入低功耗状态。其流程如图3.2所示。
16
北京工业大学毕业设计(论文)
图 3.2 主程序流程图
3.2 数据传输部分程序设计
SIM900A模块是数据传输部分的重要组成部分,微控制器是通过AT指令集对SIM900A进行设置和操作的。AT指令集是从终端设备或数据终端设备向终端适配器或数据电路终端设备发送的,一套专为GSM设计的指令集。该指令集是由主要的移动电话生产厂商诺基亚、爱立信、摩托罗拉和HP共同为GSM研制的一整套AT指令。AT指令在此基础上演化并被加入GSM07.05标准以及现在的GSM07.07标准。现在已经是一套完全标准化和比较健全的标准了。表3.1列出了本系统主要的AT指令。
17
北京工业大学毕业设计(论文)
表3.1 该系统主要的AT指令 指令 AT+CSCLK AT+CCLK AT+CREG ATH AT+CMGF AT+CMGS AT+CMGR AT+CMGD AT+CIPSTATUS AT+CIPCLOSE AT+CIPSTART AT+CIPSEND 功能 配置慢时钟 设置时钟 网络注册信息 挂机控制 选择短消息格式 发送短消息 读取短消息 删除短消息 查询当前连接状态 关闭TCP或UDP连接 建立TCP连接或注册UDP端口号 发送数据
系统上电后,进行GSM/GPRS模块的初始化,首先要控制SIM900A模块开机。开机后STM8L微控制器要通过USART发送“AT<回车>”与SIM900A模块进行波特率同步,完成后将发送指令查询并等待SIM卡注册成功。注册成功后设置SIM900A为允许进入SLEEP模式。随后,设置传输数据的模式(短信模式或TCP协议模式)。
(1)短信模式:首先要设置为发送Text模式和接收短信的号码。随后等待需要上传数据时,将存在存储器中的数据读出并编辑成短信发送到指定号码上。
(2)TCP协议模式:首先要发送AT指令通过TCP协议连接监控终端的IP地址和端口号。随后就同短信模式一样等待需上传数据时,从存储器读出数据并发送给监控终端。
在允许进入SLEEP模式下,如果超过5S通用串口没有数据传输并且没有中断产生(来电,来短信等),模块就会进入SLEEP模式,功耗低并且模块仍能接收来自网络的呼叫和信息,不会影响数据的发送和接收。
GSM/GPRS模块初始化流程如图3.3所示。
18
北京工业大学毕业设计(论文)
图 3.3 GSM/GPRS模块初始化流程图
当信息采集部分采集到用户信息后,会将用户信息存在一个结构体中,这些信息包括用户姓名、ID号、联系方式以及用户是否具有进入权限。当数据传输部分需要发送信息时,将该结构体中的信息存储到一个存放发送内容的字符数组中。同时获取RTC的时间存入该数组,从而组成一个完整的发送信息字符串。随后通过GSM/GPRS模块发送出去。
3.3 数据采集部分程序设计
在数据采集部分我们使用的是恩智浦公司的MFRC522芯片,其支持ISO 14443A/MIFARE标准。本文中使用的IC卡片是Philips 开发的无线智能卡芯片 Mifare MF1 IC S50,该卡片工作频率为13.56MHz,通信速率为106KBPS,每张卡有唯一的序列号,数据可以保存10年,可改写10万次,容量为8K位EEPROM。该卡片的存储器结构为1024x8位的EEPROM,存储器被分成16个扇区,每个扇区中有4个块,每块有16字节。每个扇区的最后一个块存储着密码A(6个字节)、存储控制(4个字节)、密码B(6个字节),其
19