基于RFID和短信猫技术的智能教室考勤系统设计与实现(4)

2018-11-18 21:26

每个扇区的块3(即第四块) 包含了该扇区的密码A(6个字节)、存取控制(4个字节)、密码B(6个字节),是一个特殊的块。其余三个块是一般的数据块。存取控制的结构及其控制方式如表2-1至表2-4所示。

表2-1存取控制四字节的位结构

(注:_b表示取反,如C2X3_b即C2X3取反;X表示扇区号;Y表示第几块;C表示控制位;B表示备用位)

表2-2存取控制对块3的控制

(注:KEYA|B表示密码A或密码B;Never表示没有条件实现;X=0-15)

表2-3 控制位对数据块的控制(X=0-15扇区,Y=每个扇区的0-2块)

块3的初始化值为:ff,ff,ff,ff,ff,ff,ff,07,80,69,ff,ff,ff,ff,ff,ff共16个字节,其中KEYA是{ff,ff,ff,ff,ff,ff},KEYB是{ff,ff,ff,ff,ff,ff},控制存取的四个字节为{0xff,0x07,0x80,0x69}。

表2-4 卡片初始各存取控制位

从给定的卡片初始控制字,通过表

2-1可得各控制位的值:

C1x0,C2x0,C3x0=000;C1x1,C2x1,C3x1=000;C1x2,C2x2,C3x2=000;C1x3,C2x3,C3x3=001,而KEYA和KEYB相等为{0xff,0xff,0xff,0xff,0xff,0xff}。C1x0 C2x0 C3x0=000 C1x1 C2x1 C3x1=000 C1x2 C2x2 C3x2=000查表2-3可知:每个扇区0-2块的数据读、写、增1、减1、传送、保存均需进行密码A或密码B验证;C1x3,C2x3,C3x3=001查表2-2可知:密码A永远不能读取;通过KEYA或KEYB验证可以写密码A;通过KEYA或KEYB验证可以读存取控制;通过KEYB验证可以写存取控制;通过KEYA或KEYB验证可以读写密码B。 3.MFRC500寄存器组

微处理器是通过对MFRC500内核特殊的内存寄存器的读写来控制S50的。这些寄存器位于MFRC500中的ASIC(特殊应用IC)的内部。寄存器按功能不同分成8组,每组为一页,包含8个寄存器。在对S50进行读/写操作时,各寄存器担负着不同的功能和作用,并且不是所有的寄存器都是可写或可读的,即有些寄存器只能读而不能写,有些则反之。每页的功能如表2-5所示。

表2-5 MFRC500控制寄存器组

每一个寄存器里的每一位按其功能都有不同的读写权限,共有四种权限,如表2-6所示:

表2-6 寄存器位权限表

2.2 短信猫

图2-4 本系统用到的短信猫

短信猫的应用开发原理是通过串口数据线将猫连接电脑,并在猫内放入手机的SIM卡,于是,电脑就可以作为移动通信的终端,实现短信交流。同时,本系统用到了串口通信相关的控件MSCOMM控件以及AT指令集。通过发送不同种类的AT指令,实现各种功能。

2.2.1 MSCOMM控件介绍

(1)MSCOMM的基本介绍

MSComm 控件通过串行端口来传输和接收数据,从而为应用程序提供串行通讯功能。MSComm控件在串口编程时非常方便,为程序员省去大量时间,不必了解较为复杂的API函数,且在VC、VB、Delphi等开发环境中均可使用。 Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控

件,它为应用程序提供了通过串行接口收发数据的简便方法。具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,二是查询法。在本系统中使用的是事件驱动方式,因此这里对这种方式稍作介绍。

事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,都可参阅 CommEvent 属性。所以在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时,可靠性高,另外每个MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。

(2)MSComm 控件的常用属性

MSComm 控件有很多重要的属性,但首先必须熟悉几个属性。 CommPort 设置并返回通讯端口号。

Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。 PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口。 Input 从接收缓冲区返回和删除字符。 Output 向传输缓冲区写一个字符串。 下面分别描述:

CommPort属性 设置并返回通讯端口号。

语法 object.CommPort[value ] (value 一整型值,说明端口号。) 说明 在设计时,value 可以设置成从 1 到 16 的任何数(缺省值为 1)。

PortOpen 属性打开一个并不存在的端口时,MSComm 控件会产生错误 68(设备无效)。 注意:必须在打开端口之前设置 CommPort 属性。

RThreshold 属性:在 MSComm 控件设置 CommEvent 属性为 comEvReceive 并产生 OnComm 之前,设置并返回的要接收的字符数。

语法 object.Rthreshold [ = value ](value 整型表达式,说明在产生 OnComm 事件之前要接收的字符数)

说明 当接收字符后,若 Rthreshold 属性设置为 0(缺省值)则不产生 OnComm 事件。例如,设置 Rthreshold 为 1,接收缓冲区收到每一个字符都会使 MSComm 控件产生 OnComm

事件。

InputLen 属性:设置并返回 Input 属性从接收缓冲区读取的字符数。 语法 object.InputLen [ = value] InputLen 属性语法包括下列部分:

value 整型表达式,说明 Input 属性从接收缓冲区中读取的字符数。

说明:InputLen 属性的缺省值是 0。设置 InputLen 为 0 时,使用 Input 将使 MSComm 控件读取接收缓冲区中全部的内容。

若接收缓冲区中 InputLen 字符无效,Input 属性返回一个零长度字符串 (\。在使用 Input 前,用户可以选择检查 InBufferCount 属性来确定缓冲区中是否已有需要数目的字符。该属性在从输出格式为定长数据的机器读取数据时非常有用。

OnComm 常数,见表2-7

表2-7 OnComm 常见属性值

InputMode 常数,见表2-8

表2-8 InputMode 常见属性值

2.2.2. AT指令介绍

AT 即Attention,AT指令集是从终端设备(Terminal Equipment,TE)或数据终端设备(Data Terminal Equipment,DTE)向终端适配器(Terminal Adapter, TA)或数据电路终端设备(Data Circuit Terminal Equipment,DCE)发送的。通过TA,TE发送AT指令来控制移动台(Mobile Station,MS)的功能,与GSM 网络业务进行交互。用户可以通过AT指令进行呼叫、短信、电话本、数据业务、传真等方面的控制。

起初,AT指令仅被用于Modem操作。没有控制移动电话文本消息的先例,只开发了一种叫SMS BlockMode的协议,通过终端设备(TE)或电脑来完全控制SMS。几年后,主要的移


基于RFID和短信猫技术的智能教室考勤系统设计与实现(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:青岛版数学三年级下册教材分析 (2)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: