为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

具有预付费功能网络智能化的IC卡热量表的设计

2017-10-26 50页 doc 133KB 17阅读

用户头像

is_477730

暂无简介

举报
具有预付费功能网络智能化的IC卡热量表的设计具有预付费功能网络智能化的IC卡热量表的设计 河南理工大学毕业设计(论文)说明书 摘 要 在经济发达国家,户用热量表的应用己经相当广泛。热量表作为供热公司与用暖用户之间收费的计量依据,不仅已被用户广泛接受,而且能明显地起到节能的作用。热量表的计量是手段,实现合理收费才是目的,采用预付费热量表是供暖体制改革的必然趋势。 本设计主要研究的是具有预付费功能网络智能化的IC卡热量表。本文采用了热量计量的科学方法,采用最新的元件和较为先进的电子技术,从软件和硬件不同方面系统的采取多种技术手段,精心设计,极大地降低了仪表的功耗,提...
具有预付费功能网络智能化的IC卡热量表的设计
具有预付费功能网络智能化的IC卡热量表的设计 河南理工大学毕业设计(论文)说明书 摘 要 在经济发达国家,户用热量表的应用己经相当广泛。热量表作为供热公司与用暖用户之间收费的计量依据,不仅已被用户广泛接受,而且能明显地起到节能的作用。热量表的计量是手段,实现合理收费才是目的,采用预付费热量表是供暖体制改革的必然趋势。 本设计主要研究的是具有预付费功能网络智能化的IC卡热量表。本文采用了热量计量的科学方法,采用最新的元件和较为先进的电子技术,从软件和硬件不同方面系统的采取多种技术手段,精心设计,极大地降低了仪表的功耗,提高了仪表的测量精度,使仪表具有较高的可靠性,科学的热计量方法,为用暖用户与供热公司之间提供了准确的收费依据;从根本上解决供热公司供热收费难的问题。同时针对市场上的众多预付费热量表的数据安全性不够理想的情况,从IC卡密码安全、卡上数据加密、数据校验等几个方面进行深入工作,提出了一个新的“一卡一密、数据加密、双向鉴别”的综合数据安全,该方案简单实用、安全可靠,能有效防止系统数据遭受攻击,为预付费仪表的进一步研究提供了一个新思路。 关键词: IC卡、热量表、低功耗、网络通讯、数据安全性、加密。 1 河南理工大学毕业设计(论文)说明书 ABSTRACT In economy-developed countries, residential heat meters have gained quit wide application. Heat meter, as the metering basis for collecting fees between heat supply companies and heat users,not only has been widely accepted by users. As far as our reforming and opening country is concerned, according to international convention, heat-suppling charging by meter is imperative. Metering by heat meters is only a method, while realizing reasonable charging is our purpose.Furthermore, the use of prepayment heat meters is the certain trend for heat system reform. Despite many kinds of heat meters available in current market,there are different problems, more or less, in them. After making researches on the scientific methods of heat metering, we first use the latest components and the comparatively advanced electronic technology, and then synthetically use many technique methods from different aspects of software and hardware, and finally make an elaborate design, which extremely reduces the efficiency cost of the meter, promotes the measuring precision of the meter, and makes it have more reliability. On the other hand, the scientific nature of metering the heat used provides an accurate basis for collecting fees between heating users and heat supply companies; possessing the prepayment function essentially solves the difficult problem that heat supply companies collect heating fees. In the meanwhile, in view of the situation that the majority of the heat meters on the market haven't solved the data security problem perfectly, we make a deep investigation from the password security of the IC card, encrypting and checking the data on the IC card, and several other topics. We then provide a novel comprehensive data security design scheme that 2 河南理工大学毕业设计(论文)说明书 characterized by "one password per card, data encrypting, and two-way recognizing". This scheme, simple and practical, safe and reliable, is able to efectively avoid the attacks on system data, and provide a new idea for the IC card prepayment meters. Key words: IC card; heat meter; low eficiency cost;data securities ;encrypting recogzing. 3 河南理工大学毕业设计(论文)说明书 目 录 1 绪 论 .................................................... 1 1.1 课题背景、内容和意义 ..................................................................... 1 1.2 热量表发展现状 ................................................................................ 1 1.2.1 国外热量表发展现状 ................................................................. 1 1.2.2 国内热量表发展现状 ................................................................. 2 1.3 本论文的主要研究工作和创新之处.................................................. 3 2 IC卡热量表总体结构 ....................................... 4 2.1 原 理 .................................................................................................. 4 2.1.1 热量计算原理 ............................................................................. 4 2.1.2 IC卡热量表工作原理 ................................................................ 4 2.2 IC卡热量表总体结构 ........................................................................ 5 2.2.1 流量传感器 ................................................................................. 6 2.2.2 温度传感器 ................................................................................. 7 2.2.3 电动阀 ........................................................................................ 7 2.2.4 CPU及其他元器件 ...................................................................... 7 2.2.5 IC卡 ........................................................................................... 8 2.2.6 供电方式 ..................................................................................... 8 3 硬件部分 ................................................. 9 3.1 CPU ..................................................................................................... 9 3.1.1 低功耗,快速起动和省电模式 .................................................10 3.1.2强大的处理能力 ......................................................................... 11 3.1.3 片内12bitADC ...........................................................................12 3.1.4 Flash存储器 .............................................................................13 3.1.5 输入输出端口及中断 ................................................................14 3.2 温度测量电路 ...................................................................................15 3.2.1 温度测量电路原理 ....................................................................15 3.2.2 线性校正 ....................................................................................16 3.3 流量传感器 .......................................................................................17 3.3.1工作原理 .....................................................................................17 3.4 LCD液晶显示 ....................................................................................18 3.5 供电系统和节电方式 ........................................................................19 1 河南理工大学毕业设计(论文)说明书 3.5.1 采用LI/SOCL2高能电池供电 ...................................................20 3.5.2 运放电路的电源控制 ................................................................21 3.6 电动阀及驱动 ...................................................................................21 3.7 IC卡及接口电路 ..............................................................................22 3.8 热量表网络串行通信 ........................................................................25 3.8.1方案设计 .....................................................................................25 3.8.2 热量表与外网的连接 ................................................................25 3.8.3 Web服务器的设计 .....................................................................26 4 软件部分 ................................................ 28 4.1 系统概述 ...........................................................................................28 4.2 睡眠及唤醒 .......................................................................................30 4.3 A/D转换子程序 ................................................................................33 示子程序 .........................................................................35 4.4 LCD液晶显 4.5 按键处理子程序 ...............................................................................39 5 IC卡安全及加密 .......................................... 41 5.1 IC卡数据安全性 ..............................................................................41 5.1.1 安全性内容 ................................................................................41 5.1.2 SLE4442卡的安全性分析 ..........................................................41 5.2 IC卡密码保护 ..................................................................................43 5.2.1 IC卡密码校验 ...........................................................................43 5.2.2 IC卡密码的生成及传递 ............................................................45 5.3 IC卡数据加密 ..................................................................................46 5.3.1 IC卡数据加密机制 ...................................................................46 5.3.2 IC卡数据加密步骤 ...................................................................48 5.4 双向鉴别 ...........................................................................................49 6 结 论 ................................................... 52 致 谢 ..................................................... 53 参考文献 .................................................. 54 2 河南理工大学毕业设计(论文)说明书 1 绪 论 1.1 课题背景、内容和意义 在经济发达国家,户用热量表的应用己经相当广泛。热量表作为供热公司与用暖用户之间收费的计量依据,不仅己被用户广泛接受,而且能明显地起到节能的作用。对于改革开放的我国来说,依据国际惯例,供暖计量收费势在必行,为此,中华人民共和国建设部76号令《民用建筑节能管理规定》于2001年2月28日发布。此令的发布,标志着沿用多年的“免费取暖”这一不符合经济发展规律的制度的结束、热能商品化时代的到来。热量表由于应用前景极为广阔,受经济利益的驱动,在短短的时间内,国内外有许多厂家进军热量表市场,造成了热量表产品的种类繁多,但或多或少的存在各种问题:有的只具备计量功能,不能满足供暖体制改革的要求,有的热量计算不科学,不符合行业标准,有的虽然具备预付费功能,但是数据安全性不够,有的造价太高,凡此等等。现行任务就是开发符合行业标准的新型智能热量表,力争在低成本、高精度、高可靠性等之间达到最佳,提供用暖用户与供热公司之间收费的计量依据,从根本上解决供热公司供热收费难的问题。 1.2 热量表发展现状 1.2.1 国外热量表发展现状 欧洲各国早在20世纪二十年代就开始实行热计量。1925年欧洲安装了第一块热量分配表,到40年代中期,这种使用热量分配表的供热计量方式已在欧洲得到普遍应用。七十年代的能源危机及能源消耗带来的环境污染促使欧洲各国积极投入到采暖节能的研究中,从而促使了热计量技术的长足发展,欧洲的热量表也是在这一时期开始研究开发的。1976年欧洲经济委员会正式提出全面实行集中供热按户计量,此举得到欧洲各国的积极响应。到80年代末,全欧洲使用的热量表超过4000万台。 国外在热量表的研制上技术已经相当成熟,从标准的制定到仪器的检 1 河南理工大学毕业设计(论文)说明书 测和使用都有完善的法规。热量表经历了从机械式、电子模拟积分式、电子数字积分式,直到以微处理器为基础的智能式的发展过程。1998年,国际法制计量组织公布了OIML-R75号国际建议《热量表(Heat meters)》,建议上规定了热量表的总体要求及测试方法。20世纪90年代,户用热量表基本已经定型,设计也趋于一致。1997年4月,欧共体正式通过了欧洲热量表标准EN1434,对热量表的硬件设计、计量方法、计量精度和安装使用方法等都作出了明确的规定。 1.2.2 国内热量表发展现状 我国热量表的自行研制始于1989年。当时欧洲的热量表样表已经在国内出现。90年代初有关单位开始仿制国外的热量表,但大多数都是在不了解热量表的相关标准的情况下进行的。1995年10月,国内研发的热量表首次接入供暖管道进行运转试验并安全地使用了整个采暖季。1998年,首台样机在全国建筑节能展览会上展示。在国外大公司,如西门子、斯伦贝、Honeywell等进入中国市场的同时,国内热量表的研制开发工作发展迅速。1998年后,全国已有近20家企业现在研制或小批量生产热量表,其产品各具特色。2000年2月18日,建设部发布了“76号令”《民用建筑节能管理规定》,从法规上落实了供热体制的改革,明确了“鼓励发展分户热量计量技术与装置”和“推行温度调节和户用热量计量装置”,激励了国内开发热量表的热情。与此同时,热量表的国家标准也在编制之中,使许多生产热量表的企业主动地提高其产品的质量和技术含量。以国际标准为参考,相关部门制定了热量表的国内行业标准。 国内自行研制热量表的时间很短,热量表的实际使用时间则更短。事实上,除了一些试点工程中使用了热量表进行分户热计量的研究外,可以说住宅并没有真实地利用热量表进行热计量。虽然供热体制改革是大势所趋,热量计量仪表的市场是巨大的,但是目前国内热量表市场并未形成。由于热量表是多数热量表企业的唯一产品,市场的不成熟使企业无法从市场上获得经济效益,限制了对热量表进一步研究开发的投入。 2 河南理工大学毕业设计(论文)说明书 国内生产的热量表从生产工艺到使用性能与国外的热量表都有一段距离,问题主要在于,与国外相比中国供热系统中的循环水水质很差,对管道和热量表的腐蚀非常严重,循环水中的铁屑等杂质被吸附在流量计中,堵塞流量计,影响正常取暖。经过近年来的努力,热量表己基本能满足使用要求,但是在计量精确度和稳定性方面,还有待提高。 综上所述,热量表作为一个典型的机电一体化产品,其包含的技术较多而且复杂,国内企业要自行开发出实用的热量表,赶上世界先进水平,还要作出更多的努力。 1.3 本论文的主要研究工作和创新之处 本文研究了热量计量的科学方法,采用最新的元件和较为先进的电子技术,从软件和硬件不同方面系统的采取多种技术手段,精心设计,极大地降低了仪表的功耗,提高了仪表的测量精度,使仪表具有较高的可靠性。 科学的热计量方法,为用暖用户与供热公司之间提供了准确的收费依据;具备预付费功能,用户预购热量用完后,电动阀关闭,停止供热。当用户将己购热量的IC卡插入仪表的IC卡接口时,仪表读入己购热量,电动阀打开,恢复供热,从根本上解决供热公司供热收费难的问题。 同时针对市场上的众多预付费热量表的数据安全性不够理想的情况,从IC卡密码安全、卡上数据加密、数据校验等几个方面进行深入工作,提出了一个新的“一卡一密、数据加密、双向鉴别”的综合数据安全方案,该方案简单实用、安全可靠,能有效防止系统数据遭受攻击,为预付费仪表的研究提供了一个新的思路。 3 河南理工大学毕业设计(论文)说明书 2 IC卡热量表总体结构 2.1 原 理 2.1.1 热量计算原理 在供热用户中安装热量表,当热水流经供热用户时,根据流量传感器给出的流量和配对温度传感器给出的供回水温度,以及热水流经的时间, 通过计算器可计算并显示供热用户所吸收的热量,其基本公式为: ,,11 Q,q,hd,,,q,hd, (2-1) mv,, ,,00 : „ 供热用户所吸收的热量,J或W?h 式中Q q „ 流经热量表的水的质量流量,kg/h m 3q „ 流经热量表的水的体积流量,/h mv 3 „ 流经热量表的水的密度,kg/ m, Δh „ 供热用户的入口和出口温度下水的焓值差,J/kg τ „ 时间,h 2.1.2 IC卡热量表工作原理 平时仪表处于低功耗模式。当流量传感器发出流量脉冲或用户插入 QIC卡时,仪表被唤醒。首先将存储在热量表中的用户热量剩余值取,,1出并在LCD上显示,接着判断是否是流量脉冲到来,若是则启动运放和A/D转换电路,测量此时的供水温度值和回水温度值,经过运算得到这段时间中(这次与上次仪表被流量脉冲唤醒的这段时间间隔)用户消耗的供 QQQ热量,上次的用户预购热量剩余值减去后,得到的就是新的用,,,1, Q户预购热量剩余值,如果该值小于某一值时,仪表输出指令关闭电动阀,停止了对用户的暖气供应,热量表也重新进入低功耗模式。此时用户可以 4 河南理工大学毕业设计(论文)说明书 持IC卡到供热销售网点购买热量。 当该用户将己经购热的IC卡插入热量表的IC卡接口中,热量表从低功耗模式中唤醒,如果IC卡是合法卡,热量表将IC卡中储存的预购热量数据解密后与原来的用户预购热量剩余值相加得到新的用户热量剩余值,同时擦除IC卡中储存预购热量数据,打开电动阀,从而恢复了对用户的暖气供应,热量表随后又进入低功耗模式。 预购热量剩余值、累积热量、供回水温度、累积流量、累积工作时间可以用按键选择查。若热量表电池能量不足,热量表显示相应符号,提示用户更换电池;若用户热量预购剩余值过少时,热量表提示用户需要购热。 2.2 IC卡热量表总体结构 IC卡预付费热量表由流量传感器、温度传感器、微处理器、IC卡接口、LCD电动阀、按键、网络通信等组成。其原理框图如图2-1所示: 供水温度传感器 电动阀 信号处理 LCD显示 流量传感器 C P U 按 键 IC卡接口 信号处理 串行通信块 回水温度传感器 报警模块 RS-232 蜂鸣器 图2-1 IC卡热量表组成框图 5 河南理工大学毕业设计(论文)说明书 2.2.1 流量传感器 目前热量表中使用的流量传感器主要有以下三种类型:叶轮流量传感器、超声波流量传感器、电磁式流量传感器。 1.叶轮流量传感器 叶轮流量传感器是通过叶轮的转速测量热水的流量。叶轮式流量传感器在规格上从小口径到大口径已形成系列化,能满足不同使用范围的要求。因为叶轮式流量传感器中有可动部件,所以对供热介质的要求较高,通常在安装上要求配套过滤器,以防备杂质对表的损伤。但因其测量原理和结构相对简单,所以价格较低。 2.超声波流量传感器 超声波流量传感器是通过波在水中的传输速度在顺水流和逆水流的方向不同的而求出热水的流速的方法测量热水的流量,波是通过压电晶体发射和接受的。按测量原理的不同超声波流量传感器分为多普勒频率法、频差法和时差法等三种,目前大部分采用的时差法。因超声波流量传感器的测量腔体内部没有任何可动部件,所以对介质的成份或杂质含量没有要求。其使用寿命可达20年以上,但其结构较为复杂、价格昂贵,不适用于户用计量。 3.电磁式流量传感器 电磁式流量传感器是按法拉第定律测量热水的流量,与超声波一样其内部也没有任何可动部件。唯一不同之处是它对供热介质的电导率有要求(>10μs/cm,较洁的水可达到要求)。因其结构原理复杂、价格较高且通常要求220V交流供电,所以通常不适用于户用计量。 由于热量表采用电池供电,要求流量计耗电尽可能的低,同时也为了降低成本,我们采用旋翼式叶轮流量传感器来进行对供热流量的计量并采取了相应的技术措施防止窃热。 6 河南理工大学毕业设计(论文)说明书 2.2.2 温度传感器 我们采用PT1000厚模铂电阻温度传感器测量供回水温度。其元件有以下特性: (1)线性:铂的特性,电阻值对温度的变化几乎是线性。 (2)广泛的温度测量范围:由于铂的特性稳定,不会因高低温而引起物理或化学变化。 (3)高精确度:运用本公司自制的铂浆料生产的厚膜铂电阻其精确度可达?0.06,,符合IEC-751的国际A级标准要求。 (4)高可靠性:即使经长期使用,厚膜铂电阻仍然十分稳定。温度600?条件下250小时后,电阻变化<0.02,。能满足军事、科研、工业生产等重要领域的精密测温要求。 2.2.3 电动阀 由于本仪表用电池供电,这就对电动阀提出了特殊的要求:耗电极少。为了满足这种特殊要求,我们采用了一种新型电动阀.它采用脉冲线圈,只是在最初启动时需要几十毫秒的电流脉冲。在打开阀后可以断电。需要电动阀再次动作时,通一个反向的电流脉冲即可。 2.2.4 CPU及其他元器件 CPU采用德州仪器的MSP430F135芯片,相比其他芯片,它有如下优点: (1)电源的高效率/电池寿命延长;电源电路简化/可远程供电 (2)硬件简化外部元件极少;集成ADC (3)加速产品开发用Flash或OTP型可快速制作样机用Flash型可作现场更新容易学习和设计程序代码效率高。 (4)廉价的微控制器MSP430和开发工具FET,LCD显示采用长沙太阳人电子公司的SMS0810B热量表专用显示模块;运放采用德州仪器公司的极低功耗的运放TLC27L9。 7 河南理工大学毕业设计(论文)说明书 2.2.5 IC卡 我们采用的IC卡是SLE4442逻辑加密卡,它由EEPROM单元阵列和密码控制逻辑构成,具有一定的保密逻辑功能,不像存储器卡那样可以被自由擦写,也不需要像CPU卡那样需要进行复杂的密码计算,成本也低,非常适合热量表。 2.2.6 供电方式 目前热量表的供电方式有如下几种: 1.外接电源 使用市电给热量表提供电源是不足取的。不能因为停电就得停热,否则就需要蓄电池组和充电电路。蓄电池在停电后能坚持多少时间、蓄电池充放电次数和寿命有多少、成本、体积、可靠性都存在问题。 2.碱性电池 少量产品采用了此类电池,但必须有阀门控制,由用户更换,一般四节AA电池可以连续工作一个采暖期,电池接近设定值时关闭阀门,迫使用户更换电池。采用这种方案特点是电池供应可以得到保障,系统工作可靠,但要解决电池盒的防护和防水密封问题。 3.锂电池 现在市场上推出的热量表,基本都采用锂离子电池。其特点是容量大,可以密封在产品中。根据理论计算可以使产品工作很多年。我们采用锂/亚硫酰氯柱式电池供电。在所有商品化一次化学电源中,LI/SOCL2电池的比能量名列前茅,具有电池开路电压高(单体电池3.6V);工作电压平稳,90%以上容量均在高平台上放出。高而稳定的电压,宽广的使用温度范围(-45?-- +70?)和长的搁置寿命(5年--10年),以及高的安全性和可靠性,使它特别适用于热量表。 8 河南理工大学毕业设计(论文)说明书 3 硬件部分 3.1 CPU 中央处理器采用Texas Instruments公司的超低功耗微控制器MSP430F135,具有极高的性能价格比。 1.超低功耗 ?1.8 V „ 3.6 V供电电压范围 ?200 µA @1MHz, 2.2V,活动模式。 ?0.7 µA备用模式,0.1µA保持数据。 6µs从各用模式唤醒。 ? 2.强大的处理能力 MSP430F135具有丰富的寻址方式,但只需简洁的27条指令;片内寄存器数量多,存储器可实现多种运算;有高效的查表处理方法。这些特点保证了可以编制出高效的程序。 MSP43OF135的中断源较多,并且可以任意嵌套,使用时灵活方便。当系统处于省电的备用状态时,用中断请求将它唤醒只需6µs。 3.丰富的片上外围模块 MSP43OF135由以下部分组成: 基础时钟模块,包括1个数控振荡器(DCO)和2个晶体振荡器。 看门狗定时器Watchdog Timer,可作通用定时器。 带有3个捕捉/比较寄存器的16位定时器Timer _A3。 带有3个捕捉/比较寄存器的16位定时器Timer_B3。 2个具有中断功能的8位并行端口: P1与P2。 4个8位并行端口:P3, P4, P5, P6。 模拟比较器Comparator_A。 9 河南理工大学毕业设计(论文)说明书 12位A/D转换器ADC12。 1个串行通行接口USART0。 4.多种存储器形式 MSP430F135有16KB + 256字节FLASH, 512字节RAM。 5.方便高效的开发方式 MSP430F135具有FLASH存储器,这一特点使得它的开发工具相当简便。利用单片机本身具有的JTAG接口,可以在一台PC及一个结构小巧的JTAG控制器的帮助下实现程序的下载,完成程序的调试及更新。 3.1.1 低功耗,快速起动和省电模式 由于热量表是以普通居民为用户的,使用市电给热量表提供电源是不足取的。不能因为停电就得停热,否则就需要蓄电池组和充电电路。 MSP430F135就是为超低功耗应用开发的,明显的优点就是功耗极低。 我们在这里把MSP430F135与MCS51的功耗作一比较: 在8MHz时钟下, MCS51 正常工作时消耗电流为 24mA (VCC=5V); 待机方式时消耗电流为 3mA; 掉电方式时消耗电流为50µA; 而在1MHz时钟下, MSP430F135 活动模式时的消耗电流为:315µA (VCC=3V)。在低功耗模式消耗电流仅为 21µA。 从以上的对比我们很容易的得到一个结论:MSP430F135特别适合于要求低功耗的场合。 MSP430F135以多种工作模式来支持超低功耗的各种要求,共有6种工作模式:活动模式AM、低功耗模式0 (LPMO)、低功耗模式1 (LPM1)、低功耗模式2(LPM2)、低功耗模式3 (LPM3)、低功耗模式4 (LPM4)。图3-3是MSP430F135在不同工作模式下电流消耗的典型值。当工作在低功耗模式 10 河南理工大学毕业设计(论文)说明书 时,因为禁止CPU及时钟工作,达到了降低电流消耗的目的。 µA Icc/错误! 400 350 300 Vcc=2.2V 250 200 150 32 100 11 0.7 0.1 50 0 Active LPM0 LPM1 LPM2 LPM3 LPM4 Mode 图3-1 MSP430F135的不同工作模式 当系统处于省电的备用状态时,用中断请求将它唤醒只需6µs。 3.1.2 强大的处理能力 MSP430F135是16位CPU,运算速度快,具有丰富的寻址方式,但只需简洁的27条指令;片内寄存器数量多,存储器可实现多种运算;有高效的查表处理方法。这些特点保证了可以编制出高效的程序。 我们可将MSP430F135与典型的8bit单片机作速度比较: 1.MSP430F135采用32kHz晶振,DCO作为主时钟发生器,主时钟:4 MHz = 250ns,1机器周期/指令,250ns指令周期,16位操作。 2.典型的86it单片机采用20MHz晶振,内部4分频,主时钟:5MHz=200ns, 5机器周期/指令,1000ns指令周期,8位操作。 11 河南理工大学毕业设计(论文)说明书 表3-1 全部CPU寄存器表 R0 程序计数器PC R1 堆栈指针SP R2 状态寄存器SR/常数发 生器CG1 R3 常数发生器CG2 R4 工作寄存器R4 R5 工作寄存器R5 : : R13 工作寄存器 R14 工作寄存器 R15 工作寄存器 MSP430F135采用了精简指令(RISC指令),总共才27条,采用模拟指令后为51条。它的寻址方式也相当灵活,对源操作数的全部7种寻址模式和对目的操作数的全部4种寻址模式可以访问整个地址空间。 表3-2 寻址模式一览表 语 寻址 法 模式 寄存器模式 Rn 变址模式 (XRn) 符号模式 ADDR 绝对模式 &ADDR 间接寄存器模式 @Rn 间接增量模式 @Rn+ 立即模式 #N 3.1.3 片内12bitADC 热量表需测量用户入口水温度、出口水温度,精度要求很高,对A/D的分辨率有较高要求。MSP430F135芯片中内含8通道12位ADC,具有高速、通用的特点。采用片内ADC有很多好处:价格低廉、使用方便、不存在与CPU的接口问题等。热量表的测温范围为0--100?。 MSP430F135片内ADC具有12位精度。从理论上说,若不考虑前向通道的误差,片内ADC的测温分辨 122率可达到100/=0.024?,完全可以满足要求。 12 河南理工大学毕业设计(论文)说明书 它具有以下5大功能模块,都可以独立配置,即 ?带有采样/保持功能的ADC内核。 ?可控制的转换存储。 ?可控制的参考电平发生器。 ?可控制和选择的时钟源。 ?可控制的采样及转换时序电路。 ADC12可以对8个外部模拟信号之一作转换。工作时可以用内部参考电平或外部参考电平。ADC12有4种工作模式,可以在单通道上实现单次转换或多次转换,在序列通道上实现单次转换或重复转换。对于序列通道转换,采样顺序完全由用户来定义。转换结果保存在16个转换存储寄存器中。 实际应用时,我们将入口水温度经调理后的信号接入A0, A2, A4, A6;出口水温度经调理后的信号接入Al, A3, A5, A7。然后将转换结果作进一步运算处理,这样做的目的是为了提高精度。 为了更进一步降低功耗和成本,使用ADC12的内部1. 5V参考电平,转 内核也可以在转换时打开内部参考电平发生器,转换完毕后关闭,而且AD换后关闭,因此大大降低了功耗。 3.1.4 Flash存储器 MSP430F135有16KB+512字节FLASH,256字节RAM。存储器空间采用“冯-纽曼结构”,ROM, RAM和外围模块由同一组地址及数据总线连接在同一个地址空间中。因此可以用相同的指令访问ROM, RAM或者外围模块,也可以执行RAM中的程序代码。 FLASH存储器由多个不同体积的模块组成。所谓FLASH存储器模块是一个可独立操作的物理存储器单元。一个模块又分为多个段。主存储器按512 byte分段,信息存储器按128 byte分段,各分段可单独擦除或同时擦除。 实际设计时,我们把程序放在主存储器中,16KB的容量足够了。更为 13 河南理工大学毕业设计(论文)说明书 重要的是热量表有一些重要数据需要实时保存,比如供回水温度、预购热量剩余值、累积热量、供回水温度、累积流量、累积工作时间、加密密钥等。这些数据相当重要,要求做到万无一失。因为这些数据量不大,MSP430P135内部的信息存储器容量完全可满足要求,擦写安全性也很好,可以很可靠的保存这些重要数据。 3.1.5 输入输出端口及中断 MSP430F135有2类I/0端口。P1和P2是一类,P3, P4, P5和P6是另一类。这两类I/0 端口都具有控制I/0方向、输入、输出的能力。P1, P2具有中断能力,每一引脚都可以单独选择中断触发沿、单独允许中断。 在实际设计中,需要占用具有中断能力引脚的外围信号为:流量传感器的脉冲信号、报警信号、按键按下信号、IC卡的插入信号。 系统共有5个中断源:看门狗、流量传感器、IC卡、按键、片内ADC、比较器A。 看门狗定时器(WDT)的主要功能是:当程序发生异常时使受控系统重新启动。如果WDT超过了选定的定时时间,即发生系统复位。因为热量表开始上电时进行初始化,然后进入低功耗模式3 (LPM3)。当流量传感器发出脉冲信号或有报警产生,或有按键按下,或有IC卡插入时,系统被从低功耗工作模式中唤醒,这时启动看门狗定时器,当CPU完成任务后,停止看门狗定时器,再度进入低功耗工作模式。 热量表的电源由于是由电池供给,电池电压需要随时监测。我们利用MSP430F135片内的比较器A来实现。 比较器A是一个实现模拟电压比较的外围模块。包括以下部分: ?比较器,可以提供on/off信号,无输入回差 ?内部有模拟参考电平发生器 ?内部参考电平可向外提供 14 河南理工大学毕业设计(论文)说明书 ?比较器输入可以切换 ?比较器的输出有RC滤波电路,软件可选 ?具有中断向量 当电池电压低于某一值时,比较器A产生中断,在LCD上显示“电池电压不足”符号,提示更换电池。 3.2 温度测量电路 3.2.1 温度测量电路原理 Pt 1000R5 1KW2VrefR1R4V0 TLC27L9TLC27L9 R2R3 W1 图3-2 Pt1000的测温电路 上图为Pt1000的测温电路。Pt1000为用户供水或回水测温热电阻,流过的标称电流为1mA,基准电压 Vref=2V,从电路可知流过传感器Pt1000热电阻的电流为: I= (Vref-V1)/R1 (3-1) 运放正常工作时,V1和同相输入V2相等。V2有基准电压用电阻R2, W1,R3分压得到。若假定V2=1V, 则I= (2V-1V) / 1KΩ =1mA (3-2) 测温电阻中流过1mA的电流,在0?时,V3就有1KΩ* 1mA= 1V的偏置电压,这是不理想的,但这是传感器必然存在的。为了使传感器能在0? 15 河南理工大学毕业设计(论文)说明书 时,Al运算放大器输出电压为V3=0V,必须在电路中消除该偏置电压(V3=1V)。为此,在Al运算放大器的正输入端输入V2=1V,就可达到上述要求。因此,V3为 RRV3=V2-(Vref-V1)*/R1=1V-(2V-1V)/1 KΩ (3-3) tt R式中为Pt1000热电阻,因 t 2,2,7R=1000(1+3.90802**T-5.80195**) Ω (3-4) T1010t ,2?1000 (1+3.90802**T) Ω 10 所以 ,2V3=-3.90802**T Ω 10 这将导致温度升高时,输出电压变小,因此要设计一级运算放大器A2将负输出倒相为正电压并给予必要的放大。 根据上式可知,V3在(0--100?)范围内具有3.850mV/?的温度灵敏度,即0?时V3=OV,100?时V3=0.385V。而运算放大器的后级A/D的模拟电压输入范围为0--1.5V,输入信号大于或等于1.5V时,A/D转换结果为满量程值。为了提高测量精度,我们应使在温度测量范围内(0--100?) Vout能对应整个量程。也就是说在(0--100?)范围内Vout的变化范围应为0--1.5V。运算放大器A2的增益约为1.5/0.385=3.896倍。为此,只要调整电位器 W2 就能满足温度在0-100?内变化使Vout相应地从0变化到1.5V。 3.2.2 线性校正 铂电阻的温度--电阻特性为 23RRTT=[1+aT-b-c(T-100)] (3-5) 0T R式中: -- 在温度T时的电阻值 T R -- 在0?的电阻值 0 因为热量表的温度测量范围为0-100?,采用Pt1000热电阻,故上式 16 河南理工大学毕业设计(论文)说明书 简化为: 2,2,12 R=1000(1+3.90802*T-4.27351*) (3-6) T1010T 从这个特性公式我们可看出R和T不是线性关系。 T 对测温电阻进行线性化有两种常用方法。一种是采用模拟电路正反馈进行线性化。因为在温度测量范围内Pt1000的电阻-温度特性是单调上凸特性,即随着温度的升高电阻值的变化率是逐渐减小的。因此可以在电阻-电压转换电路中引入正反馈。此反馈信号流经热电阻R,构成随R的TT增加而不断加深的正反馈,即可补偿这种非线性特性,达到线性化的目的。 一种是采用查表法进行线性化。原理是铂电阻的电阻温度分度表以A/D转换器的输出数据为地址固化在存储器EPROM内。当以A/D转换器的输出作为地址码访问EPROM时,EPROM存放的表格内容被取出,得到温度值。 热量表是一种民用商品,要求结构简单可靠。我们认为使用软件线性化最为经济合理,且具有较高的校正精确度,实际使用效果很好。 3.3 流量传感器 由于热量表采用电池供电,要求流量计耗电尽可能的低,同时也为了降低成本,我们采用旋翼式叶轮流量传感器来进行对供热流量的计量。它能够对含杂质的高温水进行流量测量,并将其测量结果以脉冲形式传送给单片机系统,所有零件均由耐热材料制成。同时采取了相应的措施来具备信号线断线、外界磁场检测功能。 3.3.1 工作原理 传感器采用开关触点信号,其工作原理是:在热水表指针上装一个小 3磁铁,其上方安装了一个常开干簧管,用户每用0.1m(也可以根据用户要求确定)热水,磁铁指针旋转一圈,干簧管被磁铁吸合一次,从而产生一个开关量信号,产生中断,将CPU唤醒,判断是否是流量脉冲到来,若是则累积流量,启动运放和A/D转换电路,进行相应的计算与处理。 17 河南理工大学毕业设计(论文)说明书 3.3.2防窃热功能 常开干簧管 红线 常闭干簧管 黄线 黑线 图3-3 流量传感器防窃热原理图 传感器内有两个千簧管,一个为常开,一个为常闭。黑线为信号公共线,与CPU的地相连,红线为流量脉冲信号线,黄线为防窃热信号线,接入CPU的P1口。 传感器正常工作时,黄线为低电位,当用户以外界磁场干扰水表或流量信号断线时,黄线变为高电位,产生中断,将CPU唤醒,进行相应的处理。 3.4 LCD液晶显示 LCD采用长沙太阳人电子公司的SMS0810B热量表专用显示模块。其主要技术参数为: 显示容量:8位带小数点数字+15段符号 模块工作电压:3.0--6.5V 工作电流:<15μA (5.0V) 字高:11.Omm 环境相对湿度: <85% 视角:6:00 工作温度: -10-- +50? 显示方式:反射式正显示 存储温度:-20-- +60? 接口方式:三线式串行接口 18 河南理工大学毕业设计(论文)说明书 接口信号说明: 1: VDD:电源正极 2: VSS:电源地 3: DI:串行数据输入 4: CLK:串行移位脉冲输入 5: CS:片选信号输入 6、7:NC 空脚 采用热量表专用显示模块在简化硬件的同时功能却大大加强了,也缩短了研发周期。 LCD与CPU的接口方式为三线式串行接口,连接图如下: SMS0810B MSP430F135 CS P1.1 P1.2 CLK P1.3 DI 图3-4 LCD与CPU的接口图 为了降低功耗,平时LCD处于关闭状态。当有按键按下时,LCD显示热量累积值,再次按下按键时,显示相应的数据。 3.5 供电系统和节电方式 由于此热量表面向家庭用户,使用市电给热量表提供电源是不足取的。不能因为停电就得停水停热,否则就需要蓄电池组和充电电路。蓄电池在停电后能坚持多少时间、蓄电池充放电次数和寿命有多少、成本、体积、可靠性都存在问题。我们采用了高能电池供电方式。 为了提高电池的使用寿命,在许多方面采取了有效措施来降低整个仪表的功耗: 19 河南理工大学毕业设计(论文)说明书 (1)采用低功耗的MSP430F135作为本仪表的CPU;显示采用低功耗的LCD液晶显示模块;其他芯片也都采用低功耗的CMOS芯片。 (2)平时,CPU处于低功耗模式,此时仪表的功耗很低。一旦有外围信号产生(接收到流量脉冲信号或有按键按下或有IC卡插入)时,硬件复位电路发出硬件复位指令,系统退出低功耗模式,进入活动模式,待系统处理完毕后CPU又进入低功耗模式。 (3)大多数时间放大电路都处于无电状态,只有接收到流量脉冲信号后,系统才给放大电路加上电源,待系统处理完毕后,再断掉放大电路的电源。 (4)LCD显示器平时不显示,只有当按下按键时LCD才显示。 (5)动阀采用铜阀体微型电动球阀,平时不通电,只是在需要动作的时候才通电,动作完毕后断电。 (6)采用LI/SOCL2高能电池供电。 3.5.1 采用LI/SOCL2高能电池供电 热量表由锂/亚硫酰氯柱式电池供电。在所有商品化一次化学电源中,LI/SOCL2电池的比能量名列前茅,具有电池开路电压高(单体电池3.6V);工作电压平稳,90%以上容量均在高平台上放出。亚硫酰氯既作为正极活性物质又是离子迁移介质,这一特殊特性使电池具有很高的比能量,其低功率放电的小型电池己超过500WH/KG 和 1000WH/DM#,高而稳定的电压,宽广的使用温度范围(-45?-- +70?)和长的搁置寿命(5年--10年),以及高的安全性和可靠性,使它特别适用于热量表。更为重要的是它的价格也不高。 十分高的容量特性,宽的工作温度范围,长的搁置寿命和使用寿命以及安全可靠性,使LI/SOCL2电池能适合需要长期工作的热量表。 20 河南理工大学毕业设计(论文)说明书 3.5.2 运放电路的电源控制 对温度信号进行放大的运放芯片耗电占系统耗电的比例较大。对此我们采用了极低功耗的运放TLC27L9。它使用了德州仪器公司的硅LinCMOST工艺,提供的失调电压稳定性远远超过了常规金属栅工艺所能提供的稳定性。极高的输入阻抗、低偏置电流以及低功耗等特点使它特别适合。 TLC27L9的具体特点如下: ?极低的失调电压:温度为25?, VDD=5V时,最大为900μV。 ?低输入失调电压漂移:典型值为0.1μV/月,包括开始的30天。 ?超低功耗:温度为为25?,VDD=5V时的典型值为195μW。 12?高输入阻抗:典型值为Ω。 10 ?ESD保护电路。 尽管此运放的功耗极低,我们还是采取了措施来控制它的供电电源的通断,进一步降低系统的功耗,用MSP430F135的P1.5控制运放的正负电源(V+, V-)。 平时,CPU处于低功耗模式。当流量传感器发出流量脉冲信号,产生中断事件,将系统从低功耗模式中唤醒。CPU置Pl.5为低电平,PNP三极管导通,供给运放电源,使运放工作。待系统处理完毕后,CPU置Pl.5为为高电平,PNP三极管截止,切断运放电源,运放不工作,功耗很低。 3.6 电动阀及驱动 电动阀采用铜阀体微型电动球阀,其阀体材料为铜,执行器的材料为 P65的防水等级。阀门驱动采取双向高强度的聚苯醚,全密封设计,具有I 驱动,即电机通过的电流方向改变,电机反向转动。 单片机控制电动阀原理图如下: 21 河南理工大学毕业设计(论文)说明书 蓝线P6.4 100K白线P6.3MSP430F135电动阀门100K绿线P6.2 P6.1 VCCP6.0红线 黑线 MOSFET PMOSFET PR3R4 100K100KR1R2红线黑线10KZENER110K1uF1uFMOSFET NMOSFET N 图3-5 单片机控制电动阀原理图 图中,红线为电机正极,黑线为电机负极,白线为信号公共端,绿线为开阀信号检测端,蓝线为关阀信号检测端。以上控制电路使用了两个PMOS功率型MOS管NDS336P和两个NMOS功率型MOS管NDS335N,控制过程中省电而且可靠。 开阀控制过程为:置P6.0=0, P6.1=1时,同时P6.2=1;阀门将顺时针运转到完全打开位置,此时检测P6.4将得到低电平信号;而检测P6.3为高电平信号。 关阀控制过程为:置P6.0=1, P6.1=0时,同时P6.2=1;阀门将逆时针运转到完全关闭位置,此时检测P6.4将得到低电平信号;而检测P6.3为高电平信号。 为了省电,等阀门开(关)到位后可以置P6.0=0, P6.1=0。 3.7 IC卡及接口电路 系统选用的德国Simens公司的SLE4442逻辑加密卡。主存储器可分为保护区和应用区,地址单元为OOH-1FH的32字节是保护区,带位保护功能, 22 河南理工大学毕业设计(论文)说明书 一旦实行保护后,被保护的单元不可擦除和改写。保护区中没有设置为保护状态的字节,其使用与应用区完全相同。地址空间为20H-FFH的后224字节为应用区。 应用区地址为20H-FFH,该区的读/写操作是以字节方式进行。由于SLE4442的应用区容量较大,空间安排显得十分灵活,在具体应用中,可根据不同的应用需求,将应用区空间分为几个区,实现一卡多用的功能。 SLE4442保护区已固化的信息如下: OOH-03H 复位应答信息 04H-07H 芯片生产厂家代码和卡型编码 15H-1AH 应用标识,在实际应用中存放用户代码。 SLE4442还提供了一个4字节的密码存储器,其中0单元的EC是误码计数器,只用了该单元的后三位,在IC卡个人化后,(EC) =111。其余3个字节是密码存放单元(PSC)。 在上电以后,除了密码以外,整个存储器都是可读的。如要擦出或改写卡中内容,必须校验密码,只有3个字节的密码内容完全相同才可进行。这时才可读出密码内容,如果需要的话,还可以改写新的密码。如果输入的数据与密码比较为不正确,错一次,(EC) =011,再一次不正确, (EC) =001,三次不正确的话,(EC)则为000,这是卡片自锁,不能再改写卡中内容。如三次比较中有一次正确,则(EC)恢复为1ll. 表3-3 SLE4442卡接触点分布 C1 C5 GND Vcc RST C2 C6 N.C. I/O CLK C3 C7 N.C. N.C. C4 C8 23 河南理工大学毕业设计(论文)说明书 表3-4 SLE4442触点功能 卡接触点 符号 功能 C1 Vcc 电源电压 C2 RST 复位 C3 CLK 时钟输入 C4 N.C. 内部无连接 C5 GND 接地 C6 N.C. 内部无连接 C7 I/O 双向数据线(开漏) C8 N.C. 内部无连接 下图(3-7)为SLE4442卡与CPU的接口电路图,K1, K2是一组常开触点的金属簧片,当无卡插入时,簧片无接触,P2.4为高电平;有卡插入时,簧片接触,P2.4为低电平。P2.4可设为允许中断,电平由高到低跳变产生中断,CPU及时响应,判断是否有卡插入。因卡的数据线为开漏状态,所以加了上拉电阻。Rl,D1, T1和R4构成卡上下电电路。当Pl.7=0时,PNP晶体管T1导通,卡的Vcc端加上正电源,即卡得电;当Pl.7=1时,Tl截止,卡失电。D2, R3构成了卡短路检测电路,由于人为或其他原因使卡电压降低甚至短路时,P2.3即测得低电平。这样设计,大大提高了IC卡操作的可靠性。 VCCL2 L1D1R1PNPP1.7 DIODED2SLE4442卡座P2.3Vcc R3R4MSP430F135DIODER2 GND P2.2DIOP2.1RSTP2.0CLK P2.4K2R5VCCK1 图3-6 SLE4442卡与CPU的接口电路图 24 河南理工大学毕业设计(论文)说明书 3.8 热量表网络串行通信 3.8.1方案设计 热量表的串行通信是通过MSP430F135的USART模块USARTO来实现的。USART(通用串行同步/异步)是一个串行通信接口,它允许7或9位串行位流以预设的速率或外部时钟确定速率移入、移出MSP430。串行通信的硬件接口示意图 MSP430F135 XIN XOUT 32kHz P3.4 TXD RXD P3.5 图3-7 串行通信的硬件接口示意图 在设计热量表的串行通信时,设定波特率为9600,时钟源选用外部时钟32768Hz。异步帧的由一个起始位,8位数据位,一位偶校验,一个地址位和1个停止位组成。发送数据和接收数据都以中断方式运行。热量表在接收到外部请求后,发送数据包给请求方。发送前需进行数据打包,数据包写入数据缓存。 3.8.2 热量表与外网的连接 采用专用网络(如RS232,RS485,CAN Bus等)把一小批单片机连接在一起,然后再将该专用网络连接到一个PC上,该PC作为网关将专用网络上的信息转换为TCP/IP数据包,然后发到网上实现信息共享。该方案可以连接多种单片机。这一技术的代表是EMIT。 EMIT需要一个被称为emGateway的网关,它可以是一台以Windows为操作系统的普通PC,它支持TCP/IP协议并能提供HTTP服务,从而允许用户通 25 河南理工大学毕业设计(论文)说明书 过浏览器来远程访问它,这使得它像Internet服务器;另一方面,emGateway通过RS232、RS485和CAN总线轻量级网以及Modem、RF、IrDA等方式,将多个嵌入式设备或智能家电连接在一起,并担当TCP/IP和轻量级网之间有关协议的转换任务,这又使它像Internet网关。 在具体的设计工作中,将嵌入式系统的Internet接入部分和嵌入式系统部分相分开的办法,一方面,可以适应不同种类的嵌入式系统,另一方面,可以将嵌入式系统的Internet接入部分做成瘦服务器,通过它既可以和单一的嵌入式系统相连接,也可以和轻型网络(如RS-232、RS-485、CAN等)相连接。 本设计利用热量表的串行接口和轻型网络RS-232相连,实现网络控制。 Internet 瘦热 RS-232 TCP/IP 服量网络 务 表 器 图3-8 热量表嵌入网络示意图 3.8.3 Web服务器的设计 在本课题的研究中,综合了第一章中的将嵌入式系统接入Internet的各种方法,提出了瘦服务器的方法。这种方法很好地解决了一些问题,一方面,网络功能的实现只在瘦服务器上完成的,不需要占用嵌入式系统的存储容量,另一方面,嵌入式系统一般都带有数据通信的接口,可以按照RS,232、RS,485、CAN等协议格式发送数据,瘦服务器只要设置相应的接口,便可以和嵌入式系统相互交换信息,这样,便可以将嵌入式系统作为一个独立的模块分离出来,网络功能也和具体的嵌入式系统脱离开了 26 河南理工大学毕业设计(论文)说明书 关系,便于设计和开发。 在瘦服务器功能的上,对于Internet的浏览者,瘦服务器相当于一个小型的Web服务器,为Internet用户提供信息的浏览服务,对于由嵌入式设备组成的轻型网络,瘦服务器具有网关的功能,能够在不同性质的网络之间实行协议的转换。 本论文设计了基于MSP430F149和RTL8019AS双芯片解决方案的嵌入式瘦服务器设计。整个系统的框图如图所示: 8MHz 20MHz D[0--7] Isolation A[2—0] Tansfor mer IOR MSPF149 RTL8019AS IOW RJ-45 图3-9 嵌入式瘦服务器设计原理图 27 河南理工大学毕业设计(论文)说明书 4 软件部分 系统程序主要用C语言编制。与汇编语言相比,C有以下的优点: ?对单片机的指令系统不需要太了解。 ?寄存器分配,不同存贮器的寻址及数据类型等可由编译器管理。 ?程序有规范的结构,可分为不同的函数,这种方式使程序结构化。 ?将可变的选择与特殊操作组合在一起,改善了程序的可读性。 ?编程及调试时间显著缩短,从而提高效率。 ?已编好的程序可植入新程序,因为它具有方便的模块化编程技术。 ?轻易的完成复杂的数学运算。 应用于MSP430微处理器的IAR系统C编译器提供C语言的标准特性,再加上许多为利用MSP430专用工具而设计的扩展功能。编译器与MSP430 IAR系统汇编器一起提供,与它集成在一起,共享连接器和库管理工具。 4.1 系统概述 C语言的模块化结构给编程带来了极大的方便。本系统的应用程序主要是由主程序和中断服务程序组成,其中主程序又由多个子程序所组成,包括:LCD显示子程序、A/D转换子程序、按键输入子程序、存储数据子程序、IC卡处理子程序等。 主程序完成仪表的整个管理和控制工作,方框图如下图所示。 28 河南理工大学毕业设计(论文)说明书 开始 初始化 显示预购热量剩余值 进入LPM3模式 判断何种中 断 IC 卡 脉冲 插 输入 报警 按键输入 入 流量脉冲计数 IC卡处理关闭电动阀温度测量电路上电 读出参数 并报警,存子程序 储报警标致 启动A/D LCD显示参数 延时 得到供水,回水温度 计算热量累计值,得到用 户新的热量剩余值Q,如 果小于一定值,关闭电动 阀并报警。 图4-1 主程序流程图 29 河南理工大学毕业设计(论文)说明书 整个程序的思路是这样的:热量表初次上电时初始化,显示存储的预购热量剩余值,延时一段时间后关闭LCD显示,进入低功耗模式3。当流量传感器发出流量脉冲或者有按键按下或者有IC卡插入或者报警时,产生中断事件,CPU从低功耗模式中被唤醒,并判断是何种中断事件。 若有流量脉冲发出,则进行流量累积,再给温度测量电路上电,启动A/D转换,测量此时的供水温度值和回水温度值,经过一定的运算得到这段时间中〔这次与上次仪表被流量脉冲唤醒的这段时间间隔〕用户消耗的 QQQ供热量,上次的用户预购热量剩余值减去后,得到的就是新的,,,1, 用户预购热量剩余值Q,如果该值小于某一值时,仪表输出指令关闭电动阀,停止了对用户的暖气供应,延时一段时间后热量表也重新进入低功耗模式。 若有IC卡插入热量表的IC卡接口中,如果IC卡是合法卡,热量表将IC卡中储存的预购热量数据解密后与原来的用户预购热量剩余值相加得到新的用户热量剩余值,同时擦除IC卡中储存预购热量数据,打开电动阀,从而恢复了对用户的暖气供应,热量表随后又进入低功耗模式。若是有按键按下,则根据按键按下的次数轮流显示存储的预购热量剩余值、累积热量、供回水温度、累积流量、累积工作时间。若在一段时间内无按键按下则又进入低功耗模式。 若热量表电池能量不足,热量表显示“电池电不足”符号,提示用户更换电池。若用户热量预购剩余值过少时,热量表提示用户需要购热。 4.2 睡眠及唤醒 本系统有两个不同的工作模式:活动模式、低功耗模式3。通过状态寄存器的4位控制位:CPUoff, OSCoff, SCG0, SCG1控制CPU的工作模式。CPUoff=O,OSCoff=O,SCGO=O,SCG1=O时系统处于活动模式中。CPUoff=1,OSCoff=O,SCGO=1,SCG1=1时系统处于低功耗模式3中。 系统进入低功耗模式3的指令很简单: 30 河南理工大学毕业设计(论文)说明书 LPM3; 然而从低功耗模式3返回到活动模式就比较复杂了。这是因为如果一个允许的中断唤醒CPU后,就会进入中断服务程序,开始以下处理: ?SR和PC保存入堆栈,保存了中断事件发生时的现场 ?而后SR中的T作模式控制位CPUOff, OSCOff, SCGO, SCG1自动被复位从中断诉回后,PC指向下一条指令。这时候保存的SR将被恢复,系统又将处于低功耗模式,禁止了CPU的活动,PC所指的指令无法执行。为了使程序从SR中的CPUOff或OSCOff置位的指令之后的地址继续执行,中断服务程序必须将保存在堆栈中CPUOff, OSCOff, SCGO, SCG1位清除。这样,当执行RETI指令后,SR从堆栈推出,CPU就又进入了活动模式。 除此之外,中断服务程序还负责判断中断源,即是有按键按下或热水表发出脉冲或者其他中断源,并作相应的处理。为了表述的清楚,这里只列出了有按键按下或热水表发出脉冲的具体实现程序,程序如下: #include "msp430xl3x.h" interrupt[PORT2_ VECTOR] void PORT2 (void); extern void getsptr(void); // Get Stack Pointer unsigned short *sptr; //Stack pointer unsigned int k,m; P2DIR = Ox9F; P2IFG = 0x00; P2IES=0x60; P2IE =0x60; sptr-=1; EINT(); interrupt[PORT2 VECTOR] void PORT2 (void) { 31 河南理工大学毕业设计(论文)说明书 if ((P21FG&0x20)== 0x20) { P2IFG =0x00; m=1; *sptr &=~(CPUOFF+GIE); //Clear CPUOFF (LPM3) from the stacked status register } if ((P2IFG & Ox4O)==0x40) { P2IFG =0x00; k=1; *sptr &= ~(CPUOFF+GIE);//Clear CPUOFF (LPM3) from the stacked status register } } getsptr NAME getsptr PUBLIC getsptr EXTERN sptr ;Stack pointer variable declared in C file RSEG CODE getsptr: mov SP,&sptr ;Copy the current stack pointer. Ret END 这里需要说明的是热水表脉冲接入P2.5,按键接入P2.6。没有信号时 输入高电平,有信号时变为低电平。P2.5, P2.6设为端口功能,输入模式, 允许中断,当电平由高到低跳变时使中断标志置位。 32 河南理工大学毕业设计(论文)说明书 4.3 A/D转换子程序 A/D转换子程序较为复杂,包括初始化、启动转换、转换结束、存储 转换结果等。我们使ADC12工作于序列通道单次转换模式,ADC12有16个转 换存储寄存器使得A/D可以进行多次转换而不需要软件干预。这一点提高 了系统性能,也减少了软件开销。 程序如下: #define ADCMEM ((int*) 0x0140) //ADC12MEMx definition void Init(void); //Initialization of System/Control Registers { Init ();//Initialization for (i=O;i<=9;i++) //this isneeded because MSH bit =0 !!! { ADC12CTL0 ?=0x01; //start sampling for (j=O;j<=1000;j++); ADC12CTLO &=~0x01; //ADC12SC must be reset manually //because ADC12 is active during the //whole sequence (see bit description!) for (j=0;j<=1000;j++)} ADC[O]=ADC12MEM0; ADC[l]=ADC12MEM2; ADC[2]=ADC12MEM4; ADC[3]=ADC12MEM6; ADC[4]=ADC12MEM8; ADC[5]=ADC12MEM1; ADC[6]=ADCI2MEM3; 33 河南理工大学毕业设计(论文)说明书 ADC[7]=ADC12MEM5; ADC[8]=ADC12MEM7; ADC[9]=ADC12MEM9;} void Init(void) { WDTCTL=WDTPW + WDTHOLD //Stop watchdog timer*/ /*ADC12 Settings:*/ P6SEL =OxFF; //Pin P6 used by ADC module ADC12CTLO &=~0x02; //Disable conversion before changing input ADC12MCTLO= 0x10; //Ref=AVss, Avcc; Input=A0 ADC12MCTL1= 0x11; //Ref=AVss, Avcc; Input=A1 ADC12MCTL2= 0x10; //Ref=AVss, Avcc; Input=A2 ADC12MCTL3= 0x11; //Ref=AVss, Avcc; Input=A3 ADC12MCTL4= 0x10; //Ref=AVss, Avcc; Input=A4 ADC12MCTL5= 0x11; //Ref=AVss, Avcc; Input=A5 ADC12MCTL6= 0x10; //Ref=AVss, Avcc; Input=A6 ADC12MCTL7= 0x11; //Ref=AVss, Avcc; Input=A7 ADC12MCTL8= 0x10; //Ref=AVss, Avcc; Input=A8 ADC12MCTL9= 0x91; //Ref=AVss, Avcc; Input=A9 ADC12CTL1=0x0002; //first conv. result is stored in ADC12MEM0 //ADC12SC bit triggers Sample&Hold by Sampling Timer //sample pulse is generated ADC12CTLO=0x0030; ADC12CTLO |=0x02; //enable conversion } 34 河南理工大学毕业设计(论文)说明书 4.4 LCD液晶显示子程序 LCD SMS0810B 采用三线式串行接口,其对信号时序要求高,这一部分程序用汇编完成。具体的程序如下: MOV #00h,R5 MOV R12, R7 ADD #0Ah,R12 MOV R12,R8#include "msp430xl3x.h" CMDOFF EQU 0000h CMDON EQU 0001h CMDLCDOFF EQU 0002h CMDLCDON EQU 0003h CMDB3C4 EQU 0029h CALL #LCDREST MAIN CALL #TRANSRAM ret TRANSRAM CALL #LCDREST INC R8 SR_RA MOV.B @R7, R4 CALL #LCDWD INC R5 INC R5 INC R7 CMP R7, R8 JNZ TSR_RA RET LCDWD BIS.B #02h,&P1OUT 35 河南理工大学毕业设计(论文)说明书 BIC.B #02h,&P1OUT SETC CALL #LCDWBIT CLRC CALL #LCDWBIT SETC CALL #LCDWBIT MOV R4, R9 MOV R5, R4 RLC. B R4 RLC. B R4 MOV #O6h,R10 LWD_ PA RLC. B R4 CALL #LCDWBIT DEC R1O JNZ LWD_ PA RLC.B R4 MOV R9,R4 MOV #08h,R10 LWD_ PB RRC.B R4 CALL #LCDWBIT DEC R1O JNZ LWD_ PB RRC.B R4 BIS.B #08h,&PIOUT BIS.B #02h,&P10UT RET LCDREST MOV #CMDOFF, R4 36 河南理工大学毕业设计(论文)说明书 CALL #LCDWC MOV #CMDLCDOFF,R4 CALL #LCDWC MOV #CMDON,R4 CALL #LCDWC MOV #CMDLCDON,R4 CALL #LCDWC MOV #CMDB3C4, R4 CALL #LCDWC RET LCDWC BIS.B #02h, &P10UT BIC.B #02h, &PIOUT SETC CALL #LCDWBIT CLRC CALL #LCDWBIT CALL #LCDWBIT MOV #08h, RIO LWC_PA RLC.B R4 CALL #LCDWBIT DEC R1O JNZ LWC_PA RLC.B R4 CALL #LCDWBIT BIS.B #04h,&P10UT BIS.B #02h,&P10UT RET LCDWBIT JC DI1 37 河南理工大学毕业设计(论文)说明书 BIC. B #08H, &PlDUT JMP C0l DI1 BIS.B #08H,&PIOUT JMP C0l C0l nop nap BIS.B #04h,&P10UT NOP nap BIC.B #04h,&P10UT NOP NOP nop BIS.B #04h,&P10UT RET end C主程序调用汇编子程序是通过暂存储器R12传递参数来实现的。要从 C调用汇编子程序必须: ?遵守调用约定 ?具有PUBLIC入口 C主程序中具体调用语句如下: extern void 1cdOO(unsigned char *lcdram); unsigned char LCDRAM[ll]; unsigned char *lcdram; lcdram= &LCDRAM[O]; lcd00(lcdram); 38 河南理工大学毕业设计(论文)说明书 4.5 按键处理子程序 为了简化硬件,方便使用,我们在热量表的前面板仅设了一个按键。 用户或工作人员可以按按键很方便的查询数据。 有按键按下 延时 N 按键依然按下, Y 返 回 更新按键代码 读出存储的数据 LCD显示数据 图4-2 按键处理子程序方框图 if (k==1) { for (j=O;j<40000);j++) if ((P2IN & 0x40)==0) { if(n>=5) { n=1; } 39 河南理工大学毕业设计(论文)说明书 x=get (n); show (x, n); lcdram=&LCDRAM[O]; lcd00(lcdram); n++; } k=0; P2IFG =0x00; EINT (); } interrupt[PORT2_ VECTOR] void PORT2 (void) { if((P21FG & 0x40)==Ox4O) { P2IFG =0x00; k=1; *sptr &= ~(CPUOFF+GIE); //Clear CPUOFF (LPM3) from the stacked status register } } 40 河南理工大学毕业设计(论文)说明书 5 IC卡安全及加密 5.1 IC卡数据安全性 5.1.1 安全性内容 预付费技术是我国近几年形成的新兴技术,旨在解决供热等公用收费难问题,为供热销售与收费提供了新的管理模式。但是随着预付费计量器具的普及、推广,预付费系统防误计数、防攻击、防偷用等数据安全性始终是一个突出的技术难题,特别是这些计量器具安装于用户管理区域,此问题解决不好将极有可能对管理者造成巨大的经济损失,也有可能对社会造成不良影响。安全性、使用数据可靠性,关系到计量器具能否长期存在的大问题。实践证明我们所读取的信息如售热量,在购买、传输和使用过程中受到的安全威胁最大,就IC卡热量表来讲,其受到的主要攻击是窃卡、伪卡、修改卡等,以达到非法用热的目的。 IC卡预付费系统可分两部分,一部分是安装在用户管理范围的IC卡热量表,另一部为供热企业销售网点的计算机管理系统。 热量表 IC卡 计算机管理系统 加密锁 图5-1 IC卡预付费系统组成 5.1.2 SLE4442卡的安全性分析 1. 安全体系 逻辑加密卡是在将EEPROM芯片封装在卡片上的同时,将一组硬件逻辑电路也封装在卡片上,外部读写设备必须通过硬件逻辑电路的判断后才能访问到EEPROM中的任何一个单元,如下图所示: 41 河南理工大学毕业设计(论文)说明书 IC卡 读写设备 EEPROM 数据线 硬件逻 辑电路 图5-2 IC卡内部示意图 由于在IC卡中存在一组硬件逻辑加密电路,EEPROM芯片的接口并不直接对外,在初始状态IC卡芯片中的数据开关处于断开状态。外部读写设备在访问IC卡芯片中的EEPROM单元之前,必须首先发一组数据给硬件逻辑电路,硬件逻辑电路在判断数据的合法性后(即密码校验),才决定是否将IC卡内的开关闭合。通过这种方式,逻辑加密卡对内部EEPROM中的数据进行了安全性保护,因此逻辑加密卡具备数据安全性保护措施。 2.SLE4442存在的被攻击可能性分析 (1)由于SLE4442的密码校验在I/O上是以明码进行的,当合法读写设备在发送数据进行密码校验时,非法设备可以跟踪到校验密码,这样今后非法设备通过重放也可以通过密码校验,从而对SLE4442逻辑加密卡进行数据攻击。 (2)SLE4442一旦密码校验完成,芯片就处于完全不保护状态,非法设备在跟踪到合法设备己经通过逻辑加密卡的密码校验,IC卡内部开关闭合后,再通过数据线对逻辑加密卡中EEPROM的数据进行攻击破坏。 因此SLE4442逻辑加密卡虽然具备一定的数据安全性保护,但它的安全级别依然较低,具备一定的手段仍然是可以攻破的。 我们结合IC卡热量表的具体特点,提出了一个全新的“一卡一密、数据加密、双向鉴别”的综合数据安全方案。 42 河南理工大学毕业设计(论文)说明书 5.2 IC卡密码保护 5.2.1 IC卡密码校验 密码校验检测通过对密码存储器的操作实现。包括3个命令:读密码,写密码和校验密码。其中最常用的是校验密码,该指令可以校验输入密码与芯片内的密码是否相符,若相符则对主存储器的读写操作使能;若错误,计数器则将失败的校验次数记录下来。为了防止通过多次校验以获取密码的可能性,设计了连续3次错误校验芯片自锁功能。 校验密码 读错误计数器EC 读SM 命令 是 (EC)=000 错误计数器某位‘1’变‘0’ 写SM命令地址数据 校验密码命令 命令字地址1字节1 比较密码,把3字节密码由底 命令字地址1字节1 字节顺次输入 命令字地址1字节1 写SM命令地址011111111 擦除EC 读EC 读SM 命令 否 (EC)=111 校验失败标志 校验成功标志 返回 图5-3 密码校验的程序框图 43 河南理工大学毕业设计(论文)说明书 IC卡校验密码程序如下: unsigned char Verify(void) { unsigned char i; SendComm(0x31,Oxff,Oxff); //读密码存储区的命令字,第2, 3个参数在此命令中被忽略 ReadMode(4); //读出 if((outgoing_data[0] & 0x07)!=0) //第一字节是错误计数器,如 果错误计数器为0,直接退出 { if((outgoing data[0] & 0x07)==0x07) //00000111 i=0x06; else if((outgoing_data[0] & OxO7)==0x06) //00000110 i=OxO4; else if((outgoing_data[0] & 0x07) == Ox04) //00000100 i=0x00; //将其中一位为1的改为0 SendComm (0x39, 0, i); //修改错误计数器 ProcessMode(); //处理 for(i=1; i<4; i++) //校对3字节的密码 { SendComm(Ox33,i,Oxfe); //发出校对命令 ProcessMode(); //处理 } 44 河南理工大学毕业设计(论文)说明书 SendComm(Ox39,0,Oxff); // 擦除计数器恢复错误计数器 ProcessMode(); //处理 SendComm(Ox31,Oxff,Oxff); //读密码存储区的命令字,第2, 3个参数在此命令中被忽略 ReadMode(4); //读错误计数器的内容 if((outgoing_ data[0] & 0x07)==0x07) //如果没有被成功擦除,表明校对失败 return 1 ; else return 0;} return 0;} 5.2.2 IC卡密码的生成及传递 IC卡作为预付费热量表的信息传送载体,其加密卡的密码安全关系到其加密数据的保密性。新购入的批量IC卡,一般都拥有相同的通用密码GP。应用系统中使用的IC卡数量相当多,如果均用一个密码保护,那么破译一张卡,都可以使整个系统陷入瘫痪状态,其损失不可估量。为此应该实行一张卡一个密码。同时,热量表如何安全、方便地获得IC卡新密码NP,也是必须加以关注的。 将热量表安装到户开始使用后,如何生成和传递IC卡新密码NP,其实现步骤如下 1.收费站计算机系统安装初始化收费站特征号,比如CH, ZH。系统将数据存入加密钥模块。 2.在进行新用户开户时,按次序分配一个唯一的ID,计算出中间密码值MP=fl (CH,ZH,1D),将MP写在IC卡的应用存储区,H)写在IC卡上的保护存储区,生成新密码FP=f2(MP), 取代原通用密码GP。 45 河南理工大学毕业设计(论文)说明书 3.第一次热量表插卡,热量表读取用户号ID, MP,生成IC卡新密钥FP= f2 (MP),存储户号ID和FP,擦除MP。 4.再次购热时,系统软件将读卡上户号ID以及加密钥内的CH, ZH,生成新密 钥FP= f2(fl (CH,ZH,ID)),核对正确后进行购热写卡操作。 5.热量表再次插卡,热量表首先将对储存在表内的FP值与IC卡密码进行校核,正确后方可进行读入购热量等操作。 利用上述操作,IC卡热量表就有了新的IC卡密码,并保持不变,水表和IC卡储值卡之间建立了一对一对应关系。这种IC卡密码安全方案最大优势在于管理系统内不保存每一新卡的新密码,每一次购热时可根据公开的用户号ID运行不公开的算法生成,就从各个环节最大限度保证了IC卡密码不被泄露,从而预防了非法用热现象的发生,保护了供需双方的利益。 5.3 IC卡数据加密 为保证IC卡中信息的安全性,我们在逻辑加密卡原有的密码认证的基础上,采取了“数据加密+双向鉴别”的通信安全和保密技术。 5.3.1 IC卡数据加密机制 加密,就是对机密信息加以伪装的一个过程。被加密的信息称为“明文”,而把密文转变为明文的过程称为“解密”。下图表明了这个过程: 密文 明文 原明文 加密 解密 P P C E(P) D(C) 图5-4 加密过程示意图 明文用P表示,在IC卡中表现为二进制数据。密文用C表示,它也是二进制数据,加密函数E作用于明文P得到密文C,其表达式为: 46 河南理工大学毕业设计(论文)说明书 E(P)=C 解密函数D作用于C产生明文P,其表达式为: D(C)=P 由于对明文先加密,再解密将恢复出原来的明文,因此下面的等式成立: D(E(P))=P 现代的加密算法都使用密钥,用k表示,则下述加密/解密表达式成立: E(P)=C k D(C)=P k DE((P))=P kk 根据IC卡应用系统的特点要求:对卡中数据的加密/解密算法的安全性要高,加密/解密速度要快,选用了DES加密算法。 DES算法简介 DES算法的全称是DataEncryptionStandard,这种数据加密算法由IBM公司于1975年提出并公开发表这个算法的公开发表,开创了公开数据加密算法的先例,DES算法的密钥长度为64位,但是其中有8位仅作为奇偶校验,所以它实际是一个56位的加密算法。DES算法的优势于它易于硬软件实现,算法速度快,算法安全性高,但它属于对称密码体制,密钥在传递过程中容易泄漏,基于这一考虑,我们改进了DES加密算法。 (1) 算法开始首先对明文消息M进行分组加密EK1得到组合密文C,然后对C进行分组换位变换T,得到组合密文T(C)。换位变换对原有的消息结构进行重新排列,打乱了原有结构,使得信息分布更加分散、杂乱。 (2) 解密过程与加密过程顺序相反。先取出密文T(C),执行一次T的 ,1T逆变换,获得C,最后,对C执行一次解密DK (C)就可得到明文。 47 河南理工大学毕业设计(论文)说明书 增加了一次分组换位变换T,这种变换打乱了分组结构使得原有的明文的扩散范围变大,其扩散范围依赖于T的选择,比如,如果T采用对消息串循环左移2个字节,则每个字节的明文的扩散范围由原有的8个字节扩大到至少24个字节这无疑会增加算法的强度。由于T是保密的,那么复杂度将是两者的乘积,这将大大提高算法的强度。无论密码分析者从明文开始,还是从密文开始,增加的换位变换T都将有效地阻止其分析。因此,这种加密算法可以有效地抵抗中间相遇攻击和穷举攻击,其安全性足以让人们放心。 5.3.2 IC卡数据加密步骤 DES加密算法采用对称密码机制,在这种密码体制中,加密密钥和解密密钥是相同的,因此它的密钥必须极为安全地传递和保护,从而使密钥管理成为影响系统安全的关键性因素。 DES加密算法采用64bit的密钥。我们在实际设计时将8字节的密钥分为两个部分KI, K2,均为4字节。热量表在安装于用户前,Kl就己存储在热量表中。计算机售热管理软件在安装初始化时,Kl也己存储在加密锁中。用户在第一次购热时,计算机售热管理软件根据IC卡的制造商标识码和应用序列号经过一单值函数运算得到K2,而后用K对购热量明文进行DES加密得到购热量密文C,然后对C进行分组换位变换T,得到组合密文T(C),存储于IC卡中。K2经过加密后的密文C2也存储于IC卡中。IC卡插入热量表的IC卡接口时,热量表程序先将C2解密得到K2,存储于热量表中,而后取出 ,1T密文T(C),执行一次T的逆变换,获得C,再用K对C进行DES解密得到购热量明文 P,擦除IC卡上的 C2,回写购热量为零的密文到IC卡上,这样就安全、简便地完成了密钥的生成和传递。再次购热时只需对IC卡数据进行加密和解密。 这里有几点需要说明: (1)DES加密算法存在64个弱密钥,在密钥产生时进行检查以防产生 48 河南理工大学毕业设计(论文)说明书 这些弱密钥。 (2)在实际应用中换位函数T采用对密文进行32位(4字节)分组,然后循环左移一组,非常简单。 (3)所有对IC卡进行写操作时,系统软件或仪表内程序都会用随机数来填充IC卡数据区没用上的地址单元,使卡数据缺乏可读性。 (4)对K2的加密采用异或运算加密,密钥选用K1,加密过程为C2=K1?K2,加密过程为K2=K1 ?C2 。 5.4 双向鉴别 在前面所述数据加密的基础上,还采用了一个设计简单的“双向鉴别”的数据校验法。为更好地体现本方法的基本思想,这里对具体运算法则作了简化,只保留了两个随机数,两个校验值,校验运算法则采用杂凑连接“?”,以提高安全度。 本系统假定IC卡[40H]单元存放购买量密文(实际购买量密文不止1个字节),[41H]单元存放总购买量密文,[50H],[51H],[52H]单元存放鉴别值,[60H],[61H]单元存放随机数,其中[60H]单元存放购买写卡时由计算机管理系统软件产生的随机数;[61H]单元存放插卡转移购买量时由仪表返写回卡的随机数。 鉴别运算法则为: [50H]=[40H]?[60H] [51H]=[50H]?[61H] [52H]=[41H]?[61H] 仪表插卡流程如图5-6所示,检验IC卡上[50H]=[40H]?[60H], [51H]=[50H]?仪表内存储的上一次返写回卡的随机数。 购买写卡也要进行校验运算,所不同的是检验[50H]=[40H]?计算机 49 河南理工大学毕业设计(论文)说明书 系统数据库内存储的上一次写卡随机数,[51H]=[50H]?[61H], [52H]=[41H]?[61H],解密[41H]单元,判断是否有非法行为。若为合法用户,将购热量加密重写[40H]单元,[60H]=计算机程序新产生的随机数,[50H]= [40H]?[60H] ,[51H]=[50H]?[61H]。 这里两个随机数起着非常重要的作用,它们建立了仪表和计算机系统的“双向互鉴”关系。仪表内始终存储有一个变化的随机数,每次插卡操作都要将该随机数与卡上有关数据作比较。当卡上购买量转移到表内后,仪表程序一定会产生一个新随机数,并返写回卡[61H]单元。这样即使IC卡密码泄露,将一张有购买量的卡非法复制成一批,但始终只有一张可用,因为当这张卡拔出后,仪表内随机数已改变了,剩下的卡统统无效,于是复制IC卡就失去了意义。同样,由于仪表将总购热量回写入IC卡,通过计算机管理系统也能发现非法行为,这样就更进一步提高了仪表的可靠性。建立起基本算法框架后,最重要的就是保护算法思想不暴露,下面几点至关重要: (1) 为防止非法跟踪到仪表返写回卡的随机数,仪表插卡后[61H]单元所放数据是经加密处理的。同理[60H]单元也是经加密处理的。 (2) 每次在上述几个地址单元发生变化的同时,仪表内程序和系统软件都会用随机数来填充IC卡数据区没用上的地址单元,使IC卡数据缺乏可读性。在前面所述的IC卡密码安全和数据加密中,所有对IC卡写操作也遵循这一原则,尤其是在IC卡传送中间密码MP时,必须使这些重要数据淹没在随机数的海洋中,擦除这些重要数据也是以新的随机数替代IC卡数据区所有单元,当然少数公开的不变单元除外。 50 河南理工大学毕业设计(论文)说明书 否 IC卡上用户号是否与仪按非法卡处理 表内用户号一致 否 [5检查IC卡上[50H]=[40H?按非法卡处理 [60H] 0H ]= [4 0H否 ?检验[51H]=[50H]仪表内存 [6按非法卡处理 储的上次返卡随计数 0H ] 卡上购买量=0,加密重写[40H]、[41H]单元,[61H]=仪 表新的随计数,仪表存储之,IC卡上[50H]=[40H?[60H] [51H]=[50H]?[61H],[52H]=[41H?[61H] 结束 图5-5 仪表插卡流程图 如上图(5-5)所述,本系统采用“双向鉴别”数据校验法再配合多种掩护措施,给非法者主动攻击IC卡数据设置了障碍,实际应用效果很好。该方法的“双向”是关键,[60H],[61H]参与加密的这两个随机数是出自仪表程序和系统软件两个独立的来源,且仪表将总购热量又回写[41H]。这样既可通过仪表预防非法作案,计算机预付费管理系统又可事后进一步发现非法者。 具体应用中可根据实际情况增加随机数和校验值的个数,增加鉴别运算法则的复杂性和不可预测性,以进一步加强对IC卡的校验。 51 河南理工大学毕业设计(论文)说明书 6 结 论 本文力图采用最新的元件、电子技术研制出符合我国国情的热量表,符合国家标准,具有较高的性价比,极低的功耗、很高的可靠性,科学的计算用热量,为用暖用户与供热公司之间提供了准确的收费依据;具备预付费功能,用户预购热量用完后,电动阀关闭,停止供热。当用户将己购 卡接口时,仪表读入已购热量,电动阀打开,恢热量的IC卡插入仪表的IC 复供热,从根本上解决供热公司供热收费难的问题。 同时从IC卡密码安全、卡上数据加密、数据校验等几个方面进行工作,提了一个新的“一卡一密,数据加密、双向鉴别”的综合数据安全方案,该方案简单实用、安全可靠,为IC卡预付费仪表提供了一个新的思路。 本文仅论述了IC热量表的实现方案,从长远的发展来看,户用热量表、水表、电表、煤气表的计量收费应该可以综合考虑。由于时间和水平有限,文中难免会有疏漏与不妥之处,敬请各位老师予以指正。 52 河南理工大学毕业设计(论文)说明书 致 谢 紧张而充实的毕业设计工作拉下了帷幕。回首过去的三个月里,导师胡老师在各个方面都给予了悉心的指导,为我创造了良好的设计环境和有力的指导,使我在设计中不断地获得和收获,极大地提高了我的分析和解决问题的能力。 首先,我要感谢河南理工大学,感谢电气工程与自动化学院对我四年的培养,让我学到了许许多多的知识,感谢各位老师在这四年里对我的关怀与照顾,在此致以我深深的谢意。 毕业设计是对我们所学理论知识的检验,为此我非常感谢我的指导老——胡伟老师,感谢他在我的毕业设计过程中给予我的关注和建议,感师 谢他在我的毕业论文撰写过程中,给予我的帮助和指导,尤其感谢他在我的毕业论文的基本框架、格式和具体内容等方面提出的宝贵意见~同时也要感谢自动化教研室的所有老师,感谢他们在四年里在学习和生活中的帮助,不仅使我学到了专业知识,还学会了做人、做事的道理。在此再次向他们致谢~ 最后,我还要向所有曾经帮助过我的同学和朋友们致敬。你们的鼓励和帮助永远是我前进的动力。 衷心祝愿你们幸福快乐~~ 53 河南理工大学毕业设计(论文)说明书 参考文献 [1] 沈建华著. MSP430系列16位超低功耗单片机实践与系统设计. 北京:清华大学出版社,2003 [2] 邵贝贝著. 单片机嵌入式应用的在线开发方法. 北京:清华大学出版社,2001 王桌人主编. IC卡的技术与应用. 北京: 电子工业出版社,2002 [3] [4] 王爱英著. 智能卡技术-IC卡(第二版) 北京:清华大学出版社,2002 [5] 王启华著. 集中供暖住宅分户热计量系统设计实例. 北京:清华大学出版社,2003 [6] 沈建华著. MSP430系列16位超低功耗单片机原理与应用.北京:清华大学出版社,2003 [7] 常健生主编. 检测也转换技术. 北京:机械工业出版社,2004 [8] 周培森主编. 自动检测与仪表. 北京:清华大学出版社,2000 [9] 王卓人,刘宗祥主编. IC卡的技术与应用. 北京:机械工业出版社。 [10] 马忠梅,籍顺心主编. 单片机的C语言应用程序设计.北京:北京航空航天出版社,1998 [11] 许胜军,熊东升著.基于单片机的智能热量表研制. 煤矿现代化-2005年5期 [12] 金海龙,潘勇新. 型智能热量表的开发研究.传感技术学报-2005年2期 [13] 董志国,张国忠. 户内型智能热量表的设计.中国仪器仪表-2005年3期 [14] 周四民,刘立. 一种应用于智能热量表的电动流量调节阀.中国仪器仪表2004年10期 - [15] 史锦珊,于雪松. 基于叶轮流量计的智能热量表的工作原理与设计.自动化与仪表-2004年3期 [16] 刘宝义,赵辉. 智能热量表的研究与开发.青岛大学学报 [17] 齐世清,齐世明. 智能热量表的研制.燕山大学学报-2000年2期 54
/
本文档为【具有预付费功能网络智能化的IC卡热量表的设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索