基于单片机的煤车称重系统-软件设计 下载本文

SLE4442IC卡 其主要指标: ●32位保护存储器; ●256字节EEPROM;

●3字节用户密码,密码错误计数:3次; ●温度范围:0℃~70℃; ●至少10万次擦写; ●至少10年数据保存期。 ●工作电压:5V。 SLE4442IC卡保密特性:

1、 写保护区(前32个字节)的每一字节可单独进行写保护,进行写保护后,

内容不可再更改(即固化数据)。

2、密码核对正确前,全部数据均可读,如果有需要,可对数据进行适当加密。 3、核对密码正确后可写入或修改。

4、三字节的用户密码,核对正确后本身可更改,有效至卡下电为止。

5、密码出错计数器,初始值为3,密码核对出错1次,便减1,若计数器值为0,则卡自动锁死,数据只可读出,不可再进行更改也无法再进行密码核对;若不为零时,有一次密码核对正确,可恢复到初始值。 6、字节地址21~26为用户代码。

7、字节地址0~5、6~7出厂前已由厂家写好,不可更改

4.3.1 复位模块

根据SLE4442 IC卡复位时序,编写一个高电平不小于5Ous的脉冲信号,在RST引脚输出高电平后,给时钟引脚32个时钟脉冲,可根据需要保存、提取或舍弃复位应答的数据。如图4.6所示。

输 出:0 复位成功; 1 复位失败,卡为无效卡或卡已损坏;

复位值正确,返回复位成功 复位值错误,返回复位失败

Y 比较复位值? N 置CLK和IO为复位时序图复位完成时的状态 接受复位响应值 各引脚设置 入口 图4.6 复位模块

4. 3.2密码校验模块

密码校验模块主要是完成为了防止非税务人员的卡插入读取数据,造成数据的外泄或被非法利用,给国家造成经济损失。

校验密码,其实是把Psw中的1,2,3字节的内容分别与加密存储器中的1,2,3字节比较,待校验的密码值,长度为3个字节。

其输出代码意义如下:

0卡已报废;

1只剩一次校验机会,校验密码失败; 2只剩二次校验机会,校验密码失败;

3核对密码成功;

4卡为无效卡或已损坏。

校验密码流程如图所示。

入口 读加密存储器 发送处理脉冲 校验密码 N 校验密码是否成功 Y 校验成功 N 计数器减一 计数器是否为0 Y 校验不成功卡报废

图4.7 密码校验模块

4. 3.3命令模块

SLE4442卡的控制命令均为三字节,所以命令的设置操作单独写成一个可更改控制字的模块。把要设置的命令字依次放入单片机的寄存器中,用该模块把这些命令字按字节顺序写到IC卡。流程如图4.8所示:

进入 放命令字入寄存器 发送命令 返回

图4.8 命令模块

4.4 MCS-51中断响应及处理

在程序中设置CPU中断控制位和中断允许控制位仪后,当中断源触发中断时,相应的中断标志位置1。MSC-51单片机的中断在每一个机器周期S5P2相采样所有中断标志位的状态,并且在以后的一个机器周期查询中断标志,以确定哪一个中断源请求中断。如果中断系统检查到某一个中断标志为1,表明该中断源向CPU发出了中断请求。可是CPU响应中断请求是有条件的。在不纯在下列3种情况时(1)CPU正在处理相同优先级或高级优先级的中断。(2)当前的机器周期不是指令的最后一个机器周期。(3)正在执行的指令时RETI,或者是访问特殊功能的寄存器IE或IP的指令。CPU响应这个请求。并且立即产生一个硬件调用,使程序转移到相应的中断处理程序入口地址处,调用中断处理程序。

CPU中断响应时,在一条指令执行结束之后。另外CPU执行RETI指令和对寄存器IE和IP访问的指令时,即使指令执行结束之后也不会立刻响应,必须至少再执行一条指令和再响应中断请求。

对于有的中断源,CPU在响应时会自动的中断请求的的标志。比如说外部事件中断T0和T1跳变触发时,由负跳变产生的外部事件中断请求标志IE0和IE1。定时器和计数器溢出产生的中断标志TF0和TF1。而本次关于煤车智能称重的软件设计就采用了外部中断的设计。

CPU响应中断请求时,根据中断源的优先级把中断系统中相对而言高级优先