PIC单片机在飞机加油系统中的应用

xtxt99 分享 时间: 收藏本文

【简介】感谢网友“xtxt99”参与投稿,下面是小编为大家整理的PIC单片机在飞机加油系统中的应用(共6篇),欢迎阅读与收藏。

篇1:PIC单片机在飞机加油系统中的应用

PIC单片机在飞机加油系统中的应用

能源危机已经成为世界各国普遍关注的问题,节约能源自然成为解决能源危机的重要措施.本论文给出了以一种PIC单片机为控制核心的.飞机精确加油系统,介绍了该系统与传统加油方式相比的优点及可应用价值,同时提供了该系统的工作原理、硬件规划及软件设计.该系统的研究成果有助于与油料有关的系统更精确有效的管理油料资源.

作 者:赵静波 莫卫东 屈绍波 ZHAO JINGBO MO WEIDONG QU SHAOBO  作者单位:710051,陕西西安,空军工程大学 刊 名:微计算机信息  PKU英文刊名:CONTROL & AUTOMATION 年,卷(期): 23(17) 分类号:V19 关键词:PIC单片机   电控系统  

篇2:液晶显示模块DMF-50081在单片机系统中的应用

液晶显示模块DMF-50081在单片机系统中的应用

摘要:通过一个小型监控单元的设计实践,详细介绍了一种使用89C51单片机和大屏幕液晶显示模块DMF-50081,进行图形和文本混合显示的软硬件设计思路和编程技巧。给出了DMF-50081与单片机的硬件连接电路和部分程序代码。

关键词:单片机SED1335控制器图形汉字DMF-50081

香港精电公司的DMF-50081点阵图形液晶显示模块是由大屏幕LCD液晶显示器、SED1335控制器、CCFL背光逆变器和DC-DC显示驱动电源四部分组成。它与同类液晶显示模块相比,具有显示信息量大、亮度高、微功耗、体积小、质量轻、超薄等诸多优点,在移动通讯、仪器仪表、电子设备、家用电器等各方面有着十分广泛的用途。

下面以DMF-50081在某工程项目中进行实时监控的实际应用系统为例,详细阐述DMF-50081液晶显示模块的应用方法。

1DMF-50081模块说明

DMF-50081液晶显示器为320×240点阵,能容纳16×16点阵的汉字共20行×15列,且具有较高分辨率(点为0.27×0.27mm)。该器件的外型尺寸为139×120mm,厚度为2.5mm,屏幕可视区为103×79mm。显示方式为全透反显,显示颜色为兰底白字。屏幕右侧有14芯接口与SED1335控制板的J2接口相连,具体管脚说明见表1。由于LCD背光显示需要提供特殊电源,因此外围电路中除了提供正常电源外,还需要冷阴极背光电源逆变器和DC-DC变换器。屏幕下部用2芯背光驱动接口与CCFL背光逆变器输出相连。

表114芯LCD接口功能

管脚符号有效电平功能1FLM高帧起始信号2LP高-低数据锁存信号3CP高-低数据移位信号4MP高/低交流驱动信号5Vadj负对比度调整电压6Vcc+5V正电源7Vss0V电源地8Vee负负电源9~12D0~D3高/低显示数据线13Doff低高:正常;低:关显示14NC-空脚

1.2SED1335控制器的引脚功能说明

SED1335控制器是日本SEIKOEPSON公司出品的液显示控制器,是一种宽工作电压型2.7~5.5V控制器,它在同类液晶显示控制器产生中是功能最强的一个。其主要特点有:

*带有较强功能的I/O缓冲器;

*指令功能丰富,四位数据可并行发送,最大驱动能力为640×256点阵;

*DMF-50081LCD显示器件支持文本、图形和图文三层混排显示方式,可显示复杂的文字及图形,而且功能强大,操作灵活。

SED1335控制板外形尺寸为90×50mm,板上有两个接口:分别为J1和J2,其中J1为单片机控制板接口(16针),J2为液晶显示器(LCD)接口。表2所列是与单片机系统进行接口的引脚功能说明。

表216芯MPU接口引脚功能

管脚名称有效电平功能1GND0V电源地2Vcc+5V正电源3Vadj负显示对比度调整4WR低写信号5RD低读信号6CE低片选信号7A0高/低高:写命令字或读数据

低:写数据参数或读状态8RST低复位信号9~16DB0~DB7高/低数据线

SED1335的硬件部分由MPU接口单元、内部控制单元、驱动单元等组成。

接口单元具有功能较强的I/O缓冲器。它主要表现在两个方面:第一是MPU访问SED1335时,不须判断其“忙”状态,SED1335可随时准备接受MPU的访问,并在内部时序下及时把MPU发来的指令、数据传输就位。第二是指SED1335在接口单元设置了与8080系列和M6800系列MPU相适配的两种操作时序电路,它们可通过器件引脚的电平设置在二者中选择其一。

DMF-50081液晶显示模块中的控制单元由振荡器、功能逻辑电路、显示RAM管理电路、字符库及其管理电路以及可产生驱动时序的时序发生器组成。它可以管理64k字节显示RAM,显示RAM可设置为文本显示或图形显示方式,在两种显示方式下,显示RAM内的每个字节数据可对应不同的显示内容。SED1335在其内部字符发生器CGROM中固化了160种5×7点阵字符。另外,器件中的驱动单元还具有各显示区的合成显示能力、传输数据的组织功能及产生液晶显示模块所需时序。

1.3CCFL背光逆变器

该LCD模块采用的是CCFL背光,它是一种冷阴极荧光灯,具有亮度高、功耗低等特点,可适用于大面积显示所需的背光,但需要相对应的逆变器。本系统采用PYE-L10A型逆变器,它由典型的差分对振荡电路组成,其输出通过电容分成两路,可以同时点亮两个灯管。它使用方便,输入为+5V电压,输出为交流1300V(7mA)左右,频率在20~30kHz,具有极小的转换损耗和较高的输出效率。外型尺寸为43×20×13.7mm。通常被安装在单片机控制板上,两个交流输出端用高压线引出与LCD相连。由于CCFL使用的是高压供电,所以在使用时务必小心谨慎,以防止因高压短接损坏其它器件。另外,在使用时还应注意该接口引线不宜过长,不要使用排线作为其输出线。

1.4驱动电源(DC-DC)电路

一般情况下,LCD液晶显示器件的驱动是通过建立一定电压的电场来实现的。由于LCD通常需要一个负电压的驱动电源。因此,该驱动电路采用MC34063DC-DC转换芯片来生成负电压。该DC-DC的输入电压为5V,输入电流为60mA,板上具有调节电位器,输出的负电压可以在-2~-22V之间调节,以适应所有液晶显示模块驱动的需要。使用时,可将它靠近MPU接口,安装在单片机的控制板上。

2系统硬件组成

该系统的硬件组成框图如图1所示。

图2所示是89C51单片机与SED1335控制板的硬件电路连接方法。

3软件设计

该系统的程序设计使用MCS51系列汇编指令编制而成。SED1335的软件功能非常强大。它一共有14条指令,且多数指令都带有若干个参数。在硬件系统上电复位后,可通过软件根据所控制的.液晶显示模块的特性和需要显示的方式来设置各个指令的参数以初始化系统,之后,就可以由单片机把数据直接送给SED1335的显示缓存,然后由SED1335来控制液晶显示。

下面通过一一个显示文本反白字符和16×16图形汉字的程序来简要说明SED1335的文本和图形的混合显示。先在初始化子程序中将OVLAY参数在一、三区设置为文本属性,在二、四区设置为图形属性的二重异或合成显示方式(即01H);然后再将DISPON/OFF参数设置为一至四区开显示(即56H).反白显示字符是在图形区相关位置写入FFH,以使其与文本区的相关位置中的字符进行异或后显示,从而得到所需的显示效果。在图形方式下显示汉字时,可先将汉字取模,然后在程序区内建立汉字库,最后由程序再逐字节向图形区SAD2的相应单元写入即可。

下面给出用DMF-50081进行显示的部分软件程序代码:

主程序:

MAIN:MOVSAD2L,#08H;设置图形区SAD2光标初值

MOVSAD2H,#40H

LCALLINTR;调液晶初始化子程序

LCALLCLEAR;调清显示子程序

LCALLCW_PR;调显示字符子程序

LCALLDLYS;调反白子程序

LCALLCCW_PR;调显示汉字子程序

LOOP:NOP

AJMPLOOP

………………………………………………………

反白子程序:

DLYS:MOVCOUNT1,#08H

CLOOP2:MOVCOM,#46H;CSRW代码

LCALLPR1

MOVDAT1,SAD2L;设置参数CSR

LCALLPR2

MOVDAT1,SAD2H

LCALLPR2

MOVCOM,#42H;MWRITE代码

LCALLPR1

MOVCOUNT2,#02H;设置反白字符个数

MOVDPTR,#WD_ADD

MOVA,#0FFH;显示数据FFH

CLOOP3:LCALLPR2

DJNZCOUNT2,CLOOP3

MOVA,#AP

ADDA,TADDL

MOVTADDL,A;修改光标地址

CLRA

ADDCA,TADDH

MOVTADDH,A

DJNZCOUNT1,CLOOP2

RET

………………………………………………………

写指令代码子程序:

PR1:PUSHDPL

PUSHDPH

MOVDPTR,#WC_ADD

MOVA,COM

MOVX@DPTR,A

POPDPH

POPDPL

RET

………………………………………………………

写参数及显示数据子程序

PR2:PUSHDPL

PUSHDPH

MOVDPTR,#WD_ADD

MOVA,DAT1

MOVX@DPTR,A

POPDPH

POPDPL

RET

4结束语

通过本文所介绍的方法可以对图形和文本进行混合显示。其实,除去上述的静态显示方式外,也可以通过编程来完成字符的动态显示及一些特效(如字符的移动、渐变、闪烁)显示。

篇3:液晶显示模块DMF-50081在单片机系统中的应用

液晶显示模块DMF-50081在单片机系统中的应用

摘要:通过一个小型监控单元的设计实践,详细介绍了一种使用89C51单片机和大屏幕液晶显示模块DMF-50081,进行图形和文本混合显示的软硬件设计思路和编程技巧。给出了DMF-50081与单片机的硬件连接电路和部分程序代码。

关键词:单片机 SED1335控制器 图形汉字 DMF-50081

香港精电公司的DMF-50081点阵图形液晶显示模块是由大屏幕LCD液晶显示器、SED1335控制器、CCFL背光逆变器和DC-DC显示驱动电源四部分组成。它与同类液晶显示模块相比,具有显示信息量大、亮度高、微功耗、体积小、质量轻、超薄等诸多优点,在移动通讯、仪器仪表、电子设备、家用电器等各方面有着十分广泛的'用途。

下面以DMF-50081在某工程项目中进行实时监控的实际应用系统为例,详细阐述DMF-50081液晶显示模块的应用方法。

1 DMF-50081模块说明

DMF-50081液晶显示器为320×240点阵,能容纳16×16点阵的汉字共20行×15列,且具有较高分辨率(点为0.27×0.27mm)。该器件的外型尺寸为139×120mm,厚度为2.5mm,屏幕可视区为103×79mm。显示方式为全透反显,显示颜色为兰底白字。屏幕右侧有14芯接口与SED1335控制板的J2接口相连,具体管脚说明见表1。由于LCD背光显示需要提供特殊电源,因此外围电路中除了提供正常电源外,还需要冷阴极背光电源逆变器和DC-DC变换器。屏幕下部用2芯背光驱动接口与CCFL背光逆变器输出相连。

表1 14芯LCD接口功能

管  脚符  号有效电平功   能1FLM高帧起始信号2LP高-低数据锁存信号3CP高-低数据移位信号4MP高/低交流驱动信号5Vadj负对比度调整电压6Vcc+5V正电源7Vss0V电源地8Vee负负电源9~12D0~D3高/低显示数据线13Doff低

[1] [2] [3] [4] [5]

篇4:闪存芯片KM29N3TS在单片机系统中的应用

闪存芯片KM29N3TS在单片机系统中的应用

摘要:介绍32M位闪存芯片(FlashMemory)KM29N32000TS,并以87C552单片机为例介绍它在单片机系统中的硬件连接和软件编制方法。该芯片与单片机的硬件连接电路简单,可扩容能力强,易于编程,且体积小、容量大,具有很高的实用价值。

关键词:KM29N32000TSFlash存储器单片机系统

在许多测量和测试应用系统中,如便携式仪器等其它电池供电系统,需要保证数据的可靠性和可用性,即使整个系统掉电,而所采集到的数据仍能长时间的保持不丢失。闪存技术的发燕尾服提供了这种可能性。闪存的非易失性非常优越,数据可保存长达10的。本文将介绍32M位闪存芯片KM29N32000TS及其在87C552单片机系统中的应用。

1KM29N32000TS简介

KM29N32000TS作为闪速存储器兼有E2PROM的可编程能力和非易失性,并且容量大、速度快,只需单5V供电便可做读、编程、擦除等操作。图1是它的'存储器组织图。

KM29N32000TS是44(40)脚表面封装器件,封装尺寸为18.80mm×11.78mm×1.20mm,内部有(4M+128K)×8位的存储空间,组织成8192行,(512+16)列,其中最后16列为后备列,列地址为512~527。可以进行以512字节为一页的页读、字操作和以8K字节为一块的块擦除操作,有一个528字节的页豁口用于页读、页编程时存储单元的数据传输。

KM29N32000TS的突出优点在于:命令、地址和数据信息均通过8条I/O线传输,这样4MB空间的22位地址需要分三次写入地址寄存器,经译码后访问相应单元。对单片机而言,当需扩展的存储空间超过64KB时,寻址便会存在一定困难,系统的连线复杂而使可靠性降低。采用这种闪速存储器便能克服上述困难,而且便于各式级到更大容量而无需要改外部连接。

图2为其引脚功能图,各引脚的功能如下:

CLE:命令锁存使能。其为高时,命令通过I/O口线在WE信号的上升沿被锁入命令寄存器。

ALE:地址锁存使能。当其为高时,地址在WE信号的上升沿被锁入地址寄存器;当其为低时,锁定输入数据。

CE:片使能。读操作期间,CE变高,器件转入standby模式;编程或擦除期间,器件处于忙状态时,CE高将被忽略。

WE:写使能。命令、地址和数据在WE信号的上升沿被锁定。

RE:读使能。下降沿有效。WP:写保护。在电源电压过渡期间,使WP为低电平时,可产生写/擦除保护。

R/B:操作状态指示。为低电平时,指示正在编程或读操作中,操作结束后变成高,开路输出。

I/O口:(I/O0~I/O7)三态。输入命令、地址和数据以及读操作时输出数据。

对该存储器的各种操作有着共同的特点:首先通过I/O口将操作命令字送入命令寄存器,然后在三个连续的写周期内送入欲操作单元的地址(顺序为A0~A7,A9~A16,A17~A21,A8会根据所访问的存储区域的不同而自动设定为高或低)。

2与87C552单片机的连接

KM29N32000TS与87C552单片机的接口电路如图3所示。由单片机的P1口直接与存储器的I/O0~I/O7相连,实现命令、地址和数据的传输;P1.0接CLE,控制命令输入;P1.2接ALE,控制地址输入;P1.1接CE,控制片选;P1.3接R/B,监测存储器的工作状态;WR、RD分别接WE、RE,控制读、写操作。

图3中的MAX809是一个电源电压监测芯片。当电源电压低于某一个值时(门限电压),输出低电平,使得存储器进入写保护状态。当电源电压超过门限电压240ms后,才解除写保护状态,可以正常写入数据。这样可以保证写入存储器的数据都是有效的。MAX809的工作电流只有17μA。

3软件设计

与存储器有关的操作有读数据、写数据(即页编程)和擦除数据,下面仅以读写操作来说明其操作过程,具体过程的程序流程如图4、图5所示。

①在读操作子程序中,既可以一次读取一整页的数据,也可以读取指定地址处的数据。如果要连续读取多页数据,则需要根据存储器的读时序修改子程序。

②页编程子程序每次可以写一页的数据,也可以在起始地址所在的当前页中写入数据,但不能实现跨页编程。如果数据个数超出页边界,将会造成数据丢失。

结语

该芯片及应用系统已在石油钻井井下随钻测量系统中得到实际应用,虽历经多次系统掉电,但数据仍保存完好。实践证明,其可靠性高,性能稳定,有很高的实用价值。

篇5:AM30L V0064D在单片机系统中的典型应用

AM30L V0064D在单片机系统中的典型应用

摘要:AM30LV0064D是AMD公司生产的一种新型超与非(U1traNAND)结构的闪速存储器(Flash)。本文介绍它的工作原理,以及它与AT89LS8252单片机的硬件接口电路和PLD内部逻辑控制设计的代码,并对编程操作的软件流程进行了描述。

关键词:AM30LV0064D U1traNAND 闪速存储器

1 概述

AM30LV0064D是AMD公司生产的一种新型非易失性闪速存储器。或非(NOR)结构的Flash具有高速的随机存取功能,但成本较高;新的UltraNAND结构的Flash相对于NOR结构的Flash,具有价格低,容量特别大的优势,支持对存储器高速地连续存取。谝芯片工作电压范围在2.7~3.6V,特别适用于需要批量存储大量代码或数据的语音、图形、图像处理场合,在便携式移动存储和移动多媒体系统中应用前景广阔。

2 工作原理与命令字设置

AM30LV0064D采用与工业级NAND结构兼容的UltraNAND结构,内部包含1024个存储块(单元容量为8K字节+256字节缓存);存储块中的数据按页存放,每页可存储512字节,还有16字节缓存用作与外部数据交换时的缓冲区,每块共16页。所以,主存储区一共有16 384数据页,相当于64 Mbit的数据存储器。

图1为AM30LV0064D的内部结构和主要引脚示意图。

图1 AM30LV0064D的内部结构和主要引脚示意图

AM30LV0064D的主要引脚定义:

CE--片选使能输入;

ALE--地址输入使能;

CLE--命令字输入使能;

SE--缓冲区使能输入,低电平有效;

RE--读使能输入,低电平有效;

WE--写使能输入,低电平有效;

WP--写保护输入,低电平有效;

RY/BY--内部空闲/忙信号输出;

I/O7~0--8位数据输入/输出口;

VCC--3.3V核心电源;

VCCQ--I/O口电源;

VSS--地。

AM30LV0064D的.读、编程和擦写等操作都可以在3.3V单电源供电状态下进行,同时它提供的VCCQ引脚在接5V时,I/O口可兼容5V电平。AM30LV0064D支持对主存高速地连续存取和编程操作,连续读取数据的时间可小于50ns/字节(随机读取数据的响应时间为7μs,所以连续读取时第一个数据的响应时间也是7μs);对Flash的编程是以页为单位的,步骤是先写入数据,再执行编程命令,编程速度为200μs/页(平均约400ns/字节);芯片擦除操作以存储块为单位,擦除其中某一块对其它存储块的数据没有影响,擦除时间2ms/存储块,而且还有延缓擦降/得擦除命令,允许用户在必要时暂缓擦除操作,转而处理对其它存储块进行数据读、写、编程等操作;此外,主机可以通过读RY/BY引脚状态的方法了解Flash内部操作是否已经完成,RY/BY也可用于实现硬件判忙接口。AM30LV0064D还具有写保护功能,这一功能通过将WP引脚设为低电平实现。

图2 AM30LV0064D应用电路

所有操作都建立在命令字基础上。对主存操作时,所有命令字都通过芯片的8个I/O引脚写到命令寄存器中,激活状态机进行相应的操作。存储器地址以及数据也从8位I/O脚写入。对存储器地址进行连续操作或对存储块操作时都要先向地址寄存器写入1个起始地址。地址分3次写进去,从低字节开始传送,具体的地址位传送顺序分配如表1所列。(由于对存储器的读操作分前后2个半页,每半页256字节,在命令字中已经包含了此信息,而编程以页为单位、擦除以块为单位,所以传送的地址位中不含A8)

表1 地址分配表

I/O7I/O6I/O5I/O4I/O3I/O2I/O1I/O0第1周期A7A6A5A4A3A2A1A0第2周期A16A15A14A13A12A11A10A9第3周期××A22A21A20A19A18A17

AM30LV0064D通过片选引脚CE使能,先是CLE和WE信号有效,通过I/O口写入命令字;接着ALE和WE有效,写入数据存取的起始地址。最后根据命令要求,读数据或数据。由于具有多元的控制总线,对应AM30LV0064D的操作方式也是多样的。根据命令字的定义可进行以下操作,如表2所列。

表2 命令字定义表

命令字序列总  线  周  期123456操作数据操作数据操作数据操作数据操作数据操作数据读数据区-前半页写00H写SA写SA写SA读数据Etc.Etc.读数据-后半页写01H写SA写SA写SA读数据Etc.Etc.读数据-无缝隙读写02H写SA写SA写SA读数据Etc.Etc.读预留区写50H写SA写SA写SA读数据Etc.Etc.读ID号写90H写00H读01H读E6H 读状态写70H读SREtc.Etc.输入数据写80H写SA写SA写SA写数据Etc.Etc.编程写10H 块擦除写60H写BA写BA写D0H 延缓擦除写B0H 重擦除写D0H 复位写FFH

注:SA表示起始地址,BA表示块地址,Etc.表示操作同前一个周期。

3 应用电路设计

AM30LV0064D的外围电路设计简单。其控制总线包括CE(片选)、CLE(命令字锁存使能)、ALE(地址锁存使能)、WE(写使能)、RE(读使能)、SE(预留区使能)、WP(写保护)等。对于那些具有可编程的I/O口的微控制器或DSP来说,可以直接把引脚与控制线相连。如果没有可编程的I/O口,则需要加一些简单的逻辑控制。下面介绍AM30LV0064D与AT89LS8252单片机接口时的一种应用设计电路。由于单片机缺少UltraNAND闪存所需的多元控制总线,在本设计中,采用地址译码的方法增加了控制端口,这部分逻辑可以用1片PLD(可编程逻辑器件)完成。具体接口电路如图2所示。

以下是PLD内部逻辑设计的源代码:

PORT0=!A14&!A13&!A12&!A11; /*读写数据端口*/

PORT1=!A14&!A13&!A12&!A11; /*CLE写端口*/

PORT2=!A14&!A13&!A12&!A11; /*设置ALE端口*/

PORT3=!A14&!A13&!A12&!A11; /*清ALE端口*/

PORT4=!A14&!A13&!A12&!A11; /*设置SE端口*/

PORT5=!A14&!A13&!A12&!A11; /*清SE端口*/

PORT6=!A14&!A13&!A12&!A11; /*设置WP端口*/

PORT7=!A14&!A13&!A12&!A11; /*清除WP端口*/

PORT8=!A14&!A13&!A12&!A11; /*设置CE1端口*/

PORT9=!A14&!A13&!A12&!A11; /*清除CE1端口*/

PORTA=!A14&!A13&!A12&!A11; /*读RY/BY状态端口*/

PORTB=!A14&!A13&!A12&!A11; /*设置CE2端口*/

PORTC=!A14&!A13&!A12&!A11; /*清除CE2端口*/

/*逻辑方程*/

READY.OE=PORTA&READ;/*Ready只通过PORTA读取*/

READY=RY_BY;

CLE=PORT1;

ALE=WRTIE & PORT2#ALE&!(WRITE & PORT3)#ALE & PORT2);

SE=WRITE&PORT4#SE&!(WRITE & PORT5)#SE & PORT4;

WP=WRITE & PORT6#WP&!(WRITE & PORT7)# WP & PORT6;

CE1=WRITE &PORT8#CE &!(WRITE &PORT9)#CE &PORT8;

CE2=WRITE & PORTB#CE&!(WRITE & PORTC)#CE &PORTB;

WE=WRITE & (PORT0#PORT1);

RE=READ&PORT0;

(本网网收集整理)

4 软件流程

下面重点介绍通过单片机对AM30LV0064D进行数据编程的软件流程:单片机启动编程程序,将IS61LV256中的数据读出后再写到Flash中,每次写512字节的数据(半页为256字节)。然后,对相应页进行编程,编程命令字写入后定期查询RY/BY引脚,看编程是否已经完成,如果完成再读取Flash的状态寄存器,可以知道编程是否成功。具体流程如图3所示。

篇6:信息纽扣DS1991在单片机系统中的应用

信息纽扣DS1991在单片机系统中的应用

摘要:Dallas公司的iButton产品是一系列1-wire总线新型器件。DS1991是一种加密存储器型信息纽扣,封装于直径为16mm的不锈钢外壳中,体积小巧,便于携带、保存,防尘、防腐蚀,可以在恶劣的应用环境中实现带密码保护的数据传送。本文介绍DS1991的特点、工作原理及其带密码保护存储器区的读写方法。

关键词:iButton信息纽扣 1-Wire总线 单片机

DS1991是Dallas公司的1-wire总线信息纽扣家庭中的一员,是一种加密存储器型信息纽扣。它内部集成了1Kbit是非易失性存储器及加密保护逻辑,封装于直径为16mm、厚约6mm的不锈钢外壳中,何种小巧、操作便捷,防潮、抗震、防灰尘,可在恶劣的环境中实现带密码保护的数据传送。(本网网收集整理)

1 DS1991的特点

DS1991是一种很有特色的加密存储器型TM卡,为用户的保密数据提价节可靠的保护措施。DS1991内部有1152位的密码保护存储器区,512位的非密码保护存储器scratchpad。密码保护存储器被分为三个可独立操作的密钥子存储器(subkey),每区为384位,每个密钱子区都有自己的64位密码及64位的ID码,对密钥子区的读/写操作均需进行密码验证。三个区的数据可分别操作,互不干扰。非密码保护存储器区主要用于加密数据的拷贝,以保证数据的完整性。

2 DS1991与单片机硬件接口及软件设计

DS1991与单片机的硬件接口电路如图1。

DS1991与单片机的接口非常方便,只用1根数据线和1根地址。数据线由单片机的1根I/O口线控制,口线外接一个5kΩ的上拉电阻。

DS1991操作的基础是1-wire总线的初始化、读/写1位时序,如图2、图3、图4和图5。VPULLUP为图1中D点在口线为输入状态时的电位。初始化由主机发出复位脉冲。DS1991回复应答脉冲,使主机了解DS1991存在于总线上并已作好操作准备。命令和数据的各个字节由最低有效位起一位一位传送。子程序RESET、RDBYTE和WRBYTE分别是初始化、读/写1字节的子程序。

DIO BIT P1.0 ;引脚定义

RESET:CLR DIO ;得位子程序

MOV R7,#205

DELPP1:NOP

DJNZ R7,DELPP1

SETB DIO

MOV R7,#12

DJNZ R7,$

MOV R7,#27

RESETP1:JNB DIO,RESETP2

DJNZ R7,RESETP1

RESRET:SETB DIO

MOV A,#0EH

RET

RESETP2:MOV R7,#75

DJNZ R7,$

MOV R7,#54

RESETP4:JB DIO,RESETP5

DJNZ R7,RESETP4

RESETP5:MOV R7,#180

DJNZ R7,$

SETB DIO

MOV A,#0

RET

WRBYTE:MOV R6,#8 ;写1字节子程序

WRB1:CLR DIO

MOV R7,#2

DJNZ R7,$

RRC A

MOV DIO,C

MOV R7,#30H

DJNZ R7,$

SETB DIO

NOP

NAP

NOP

DJNZ R6,WRB1

RET

RDBYTE:MOV R6,#8 ;读1字节子程序

RDB1:CLR DUO

NOP

NOP

SETB DIO

MOV R7,#3

DJNZ R7,$

MOV C,DIO

RRC A

MOV R7,#32

DJNZ R7,$

SETB DIO

MOV R7,#3

DJNZ R7,$

DJNZ R6,RDB1

RET

3 DS1991激光ROM码、存储器结构及操作

像所有的1-wire总线器件一样,主机必须先进行初始化和ROM操作,而后才能进行读写DS1991存储器的操作。

DS1991有一个自身唯一的工厂刻入的64位激光ROM系列码。该码不会与其它任何一个1-wire总线器件相重。该码前8位是1-wire总线家族码,后48位是器件唯一的系列码,最后8位为前56位数据的CRC校验码。ROM操作指令建立被访问的1-wire器件与主机的连接,ROM操作指令如表1。DS1991的存储器映像如图1。

表1 ROM操作指令

命   令字  节功     能read ROM33H读取DS1991的ROM系统列码Match ROM55H总线接多个器件时用于寻址特定的器件Skip ROMCCH总线上只有一个器件时,跳过ROM系列码的匹配而直接进行存储器的访问Search ROMF0H主机使用该命令读加器件的ROM系列码

DS1991的scratchpad和每个subkey区都有自己的地址。Scratchpad共64字节,不受密码保护,主要用于将数据拷贝到密钥子区。密钥子区的00~07H为8字节的该区ID码,08H~0FH为8字节的该区密码,10H~3FH即为密码保护的数据存储区。

该/写Scratchpad不需要密码,但拷贝操作必须提供正确的密码。密码子区读写均受64位的密码保护,保密性大大提高。对存储器的操作指令如表2。存储器操作指令的流程如图2。

表2 DS1991存储器操作命令格式

命令 第1字节第2字节第3

字节

功   能

bit7bit6bit5bit4bit3bit2bit1bit0写scratchpad96H 1   1  00H~3FH中的任意值第2字节取反将数据写入scratchpad读scratchpad69H从scratchpa读出数据拷贝scratchpad3CHSubke区号

0    0或

0    1或

1    0  000000将数据块从scratchpa拷贝到指定的subkey读subkey66H10H~3FH中的任意值将数据写入subkey写subkey99G从subkey中读取数据写密码5AH000000将密码和ID码写入subkey

4 DS1991存储器的读写程序

主机读写DS1991的存储器由3个步骤组成:初始化、ROM操作和存储器读写。

下面的程序采用写SUBYKEY命令将RAM 40H~47H单元数据写入subkey 0区的10H~17H,并用读SUBKEY命令将该内容读回,存放RAM。50H~57H,该区的密码和ID码存放在程序的表格中。

;将RAM40H~47H单元内容写入

;subkey

WRSUBKEY:LCALL RETSET

MOV R2,#99H

MOV R0,#10H

LCALL WRCOM

LCALL IDPASS

MOV R1,#40H

MOV R4,#8

REWRSUB:MOV A,@R1

LCALL WRBYTE

INC R1

DJNZ R4,REWRSUB

LCALL RESET

RET

;读subkey存入RAM40H~47H

RDSUBKEY:LCALL RESET

MOV R2,#66H

MOV R0,#10H

LCALL WRCOM

LCALL IDPASS

MOV R1,#40H

MOV R4,#8

RERDSUB:LCALL RDYBTE

MOV @R1,A

INC R1

DJNZ R4,RERDSUB

LCALL RESET

RET

IDPASS:MOV R4,#8

MOV R1,#50H

RERD1:LCALL RDBYTE

MOV @R1,A

INC R1

DJNZ R4,RERD1

MOV R4,#8

CLR A

MOV DPTR,#PSTAB

REWR1:MOVC A,@A+DPTR

LCALL WRBYTE

INC A

DJNZ R4,REWR1

RET

IDTAB:DB10H,00H,00H,00H,

DB 00H,00H,00H,00H

PSTAB:DB12H,34H,56H,78H,DB12H,34H,56H,78H

WRCOM:MOV A,#33H

LCALL WRBYTE

MOV R4,#8

RDROM1:LCALL RDBYTE

DJNZ R4,RDROM1

MOV A,R2

LCALL WRBYTE

MOV A,R0

LCALL WRBYTE

MOV A,R0

CPL A

LCALL WRBYTE

RET

图7

结语

DS1991的密码保护存储器区为用户提供高可靠的数据保护措施。本文提供的DS1991与单片机接口的软硬件设计,已在信息纽扣卡型公用电表系统中应用。摘要:Dallas公司的iButton产品是一系列1-wire总线新型器件。DS1991是一种加密存储器型信息纽扣,封装于直径为16mm的不锈钢外壳中,体积小巧,便于携带、保存,防尘、防腐蚀,可以在恶劣的应用环境中实现带密码保护的'数据传送。本文介绍DS1991的特点、工作原理及其带密码保护存储器区的读写方法。

关键词:iButton信息纽扣 1-Wire总线 单片机

DS1991是Dallas公司的1-wire总线信息纽扣家庭中的一员,是一种加密存储器型信息纽扣。它内部集成了1Kbit是非易失性存储器及加密保护逻辑,封装于直径为16mm、厚约6mm的不锈钢外壳中,何种小巧、操作便捷,防潮、抗震、防灰尘,可在恶劣的环境中实现带密码保护的数据传送。(本网网收集整理)

1 DS1991的特点

DS1991是一种很有特色的加密存储器型TM卡,为用户的保密数据提价节可靠的保护措施。DS1991内部有1152位的密码保护存储器区,512位的非密码保护存储器scratchpad。密码保护存储器被分为三个可独立操作的密钥子存储器(subkey),每区为384位,每个密钱子区都有自己的64位密码及64位的ID码,对密钥子区的读/写操作均需进行密码验证。三个区的数据可分别操作,互不干扰。非密码保护存储器区主要用于加密数据的拷贝,以保证数据的完整性。

2 DS1991与单片机硬件接口及软件设计

DS1991与单片机的硬件接口电路如图1。

DS1991与单片机的接口非常方便,只用1根数据线和1根地址。数据线由单片机的1根I/O口线控制,口线外接一个5kΩ的上拉电阻。

DS1991操作的基础是1-wire总线的初始化、读/写1位时序,如图2、图3、图4和图5。VPULLUP为图1中D点在口线为输入状态时的电位。初始化由主机发出复位脉冲。DS1991回复应答脉冲,使主机了解DS1991存在于总线上并已作好操作准备。命令和数据的各个字节由最低有效位起一位一位传送。子程序RESET、RDBYTE和WRBYTE分别是初始化、读/写1字节的子程序。

DIO BIT P1.0 ;引脚定义

RESET:CLR DIO ;得位子程序

MOV R7,#205

DELPP1:NOP

DJNZ R7,DELPP1

SETB DIO

MOV R7,#12

DJNZ R7,$

MOV R7,#27

RESETP1:JNB DIO,RESETP2

DJNZ R7,RESETP1

RESRET:SETB DIO

MOV A,#0EH

RET

RESETP2:MOV R7,#75

DJNZ R7,$

MOV R7,#54

RESETP4:JB DIO,RESETP5

DJNZ R7,RESETP4

RESETP5:MOV R7,#180

DJNZ R7,$

SETB DIO

MOV A,#0

RET

WRBYTE:MOV R6,#8 ;写1字节子程序

WRB1:CLR DIO

MOV R7,#2

DJNZ R7,$

RRC A

MOV DIO,C

MOV R7,#30H

DJNZ R7,$

SETB DIO

NOP

NAP

NOP

DJNZ R6,WRB1

RET

RDBYTE:MOV R6,#8 ;读1字节子程序

RDB1:CLR DUO

NOP

NOP

SETB DIO

MOV R7,#3

DJNZ R7,$

MOV C,DIO

RRC A

MOV R7,#32

DJNZ R7,$

SETB DIO

MOV R7,#3

DJNZ R7,$

DJNZ R6,RDB1

RET

3 DS1991激光ROM码、存储器结构及操作

像所有的1-wire总线器件一样,主机必须先进行初始化和ROM操作,而后才能进行读写DS1991存储器的操作。

DS1991有一个自身唯一的工厂刻入的64位激光ROM系列码。该码不会与其它任何一个1-wire总线器件相重。该码前8位是1-wire总线家族码,后48位是器件唯一的系列码,最后8位为前56位数据的CRC校验码。ROM操作指令建立被访问的1-wire器件与主机的连接,ROM操作指令如表1。DS1991的存储器映像如图1。

表1 ROM操作指令

命   令字  节功     能read ROM33H读取DS1991的ROM系统列码Match ROM55H总线接多个器件时用于寻址特定的器件Skip ROMCCH总线上只有一个器件时,跳过ROM系列码的匹配而直接进行存储器的访问Search ROMF0H主机使用该命令读加器件的ROM系列码

DS1991的scratchpad和每个subkey区都有自己的地址。Scratchpad共64字节,不受密码保护,主要用于将数据拷贝到密钥子区。密钥子区的00~07H为8字节的该区ID码,08H~0FH为8字节的该区密码,10H~3FH即为密码保护的数据存储区。

该/写Scratchpad不需要密码,但拷贝操作必须提供正确的密码。密码子区读写均受64位的密码保护,保密性大大提高。对存储器的操作指令如表2。存储器操作指令的流程如图2。

表2 DS1991存储器操作命令格式

命令 第1字节第2字节第3

字节

功   能

bit7bit6bit5bit4bit3bit2bit1bit0写scratchpad96H 1   1  00H~3FH中的任意值第2字节取反将数据写入scratchpad读scratchpad69H从scratchpa读出数据拷贝scratchpad3CHSubke区号

0    0或

0    1或

1    0  000000将数据块从scratchpa拷贝到指定的subkey读subkey66H10H~3FH中的任意值将数据写入subkey写subkey99G从subkey中读取数据写密码5AH000000将密码和ID码写入subkey

4 DS1991存储器的读写程序

主机读写DS1991的存储器由3个步骤组成:初始化、ROM操作和存储器读写。

下面的程序采用写SUBYKEY命令将RAM 40H~47H单元数据写入subkey 0区的10H~17H,并用读SUBKEY命令将该内容读回,存放RAM。50H~57H,该区的密码和ID码存放在程序的表格中。

;将RAM40H~47H单元内容写入

;subkey

WRSUBKEY:LCALL RETSET

MOV R2,#99H

MOV R0,#10H

LCALL WRCOM

LCALL IDPASS

MOV R1,#40H

MOV R4,#8

REWRSUB:MOV A,@R1

LCALL WRBYTE

INC R1

DJNZ R4,REWRSUB

LCALL RESET

RET

;读subkey存入RAM40H~47H

RDSUBKEY:LCALL RESET

MOV R2,#66H

MOV R0,#10H

LCALL WRCOM

LCALL IDPASS

MOV R1,#40H

MOV R4,#8

RERDSUB:LCALL RDYBTE

MOV @R1,A

INC R1

DJNZ R4,RERDSUB

LCALL RESET

RET

IDPASS:MOV R4,#8

MOV R1,#50H

RERD1:LCALL RDBYTE

MOV @R1,A

INC R1

DJNZ R4,RERD1

MOV R4,#8

CLR A

MOV DPTR,#PSTAB

REWR1:MOVC A,@A+DPTR

LCALL WRBYTE

INC A

DJNZ R4,REWR1

RET

IDTAB:DB10H,00H,00H,00H,

DB 00H,00H,00H,00H

PSTAB:DB12H,34H,56H,78H,DB12H,34H,56H,78H

WRCOM:MOV A,#33H

LCALL WRBYTE

MOV R4,#8

RDROM1:LCALL RDBYTE

DJNZ R4,RDROM1

MOV A,R2

LCALL WRBYTE

MOV A,R0

LCALL WRBYTE

MOV A,R0

CPL A

LCALL WRBYTE

RET

图7

结语

DS1991的密码保护存储器区为用户提供高可靠的数据保护措施。本文提供的DS1991与单片机接口的软硬件设计,已在信息纽扣卡型公用电表系统中应用。

相关专题 单片机飞机