
CPU模块DCP10
本公司***销售大型进口各种品牌DCS系统模块备件:BENTLYNEVADA3500/3300,AB,ABBAdvantOCS,ABBMOD30/MODCELL,ABBMOD300,ABBBaileyINFI90,ABBProcontic,ABBProcontrol,RosemountRS-3,YokogawaCentumXL,YokogawamicroXL,FOXBOROI/A,Westinghouse,Ovation,HoneywellQCS,HoneywellTDC系列,HoneywellS9000,HITACHI,MitsubishiPLC,MotorolaMVME,ALSTOMMVME,OtherVME,TOSHIBA,HP,Yaskawa,FANUC等大型模组,有着充足的库存,交货期快,查询。ABBDCP10ABBDCP10ABBDCP100引言随着数据处理系统智能化程度的越来越高,经常需要在无人干预的情况下,自动加载某些数据或参数到系统工作单元,以保证系统的正常工作。这些数据或参数通常都以数据文件形式保存在大容量、低功耗、可快速重复擦写的存储器中,而且掉电后数据不丢失,以便用户根据需要随时读取。S29AL016D70能很好的满足这些需求。1闪存S29AL016D简介1.1主要性能S29AL016D70是Spansion公司生产的容量为2Mx8bit/1Mx16bit的闪存器件,该器件采用3V供电,访问时间为70ns,工作温度范围为-40℃~125℃,静态电流200nA,读数据电流为9mA,擦写数据电流为20mA可擦写次数在一百万次以上,具有存储容量大,速度快,功耗低等优点。S29AL016D的芯片逻辑图如图1所示。其中,A0~A19和D0~D15分别为地址线和数据线,CE为片选信号,低有效;OE为输出使能信号,低有效;WE是写选通信号,低有效;BYTE为8位或16位数据模式选择端,低电平为8位,高电平为16位。采用8位模式时,DO~D7为有效数据线,D15为地址线:RY/BY为准备好和忙状态输出。S29AL016D70内部包括35个数据段(Sector),其中段0到段30为64KB,段31为32KB,段32、33为8KB,段34为16KB。1.2操作模式S29AL016D70的操作模式如表1所列,实际工作中,经常用到的操作包括片擦除、段擦除、写入数据、读出数据等。2应用设计2.1硬件设计根据设计需要,可利用数字信号处理器DSP通过双口RAM和232串行通信获得数据,并将数据保存在FLASH对应地址。FLASH的数据读写有8位数据读写和16位数据读写两种方式。利用232串口通信时,收发的数据大多都是8位。若在16位数据工作模式下,直接写入要浪费一半存储区,否则需将两个8位字节数据拼成一个16位字数据再写入,也会消耗很多工作时间,而采用8位数据工作模式,则不需要进行数据拼接,使用比较方便。因此,实际工作中,大多采用8位数据工作模式。同样,双口RAM也采用8位数据的双口RAM,设计中可使用IDT7132。图2所示是其硬件连接原理图。工作中,若采用16位数据工作模式,只需将FLASH芯片的BYTE脚接至高电平即可。S29AL016D的操作模式2.2操作模式要向FLASH写入数据,必须先对FLASH进行擦除操作。擦出操作可通过给FIASH芯片写入擦除指令时序来完成,擦除的结果是将FLASH存储区中所有数据变为0ff(8位)或0ffff(16位),这样,可以方便地写入数据。擦除操作分为片擦除和段擦除两种。片擦除为整片擦除,段擦除只擦除指定段。为使用方便,在擦除某段数据时,应保证其他段数据不受影响。因此,软件多采用段擦除模式。其代码如下:段擦除函数(flash基地址为0b0000000);voiderase_flash(unsignedintsector_num)//sector为段号片擦除函数可参照编写{将数据保存在FLASH中后,若要对擦除后的段数据地址执行写操作,也可以通过给芯片写入编程操作时序来完成。写操作的结果是将地址总线指定地址的数据相应位1变为0,通俗的说,就是擦除后的数据各位都为1,进行擦除和写入操作时,应在进行写入时序操作时,对寄存器的偏移地址左移一位进行操作,这是因为8位数据工作模式下,芯片地址线的***低位为A-1,而处理器地址线的***低位为A0;若是16位数据操作模式,寻址寄存器时,则不需要进行移位操作。此外,16位数据操作模式和8位数据操作模式在编写指令时序时也有区别,即写入寄存器的指令的位数要和数据位数相同,如8位指令为:*(int*)(Oxb0000000+(0555<<1))=080,而16位指令应为:*(int*)(0b0000000+0555)=08080。3结束语应用本文的设计可以成功地完成对FLASH的各种操作,实现向FLASH中保存数据的功能。事实上,各厂家生产的FLASH在性能上和使用方法都有所不同,S29AL016D除了速度快、容量大之外,还有一个特点就是可选择性地进行8位或16位数据操作。但在软硬件设计上要做些相应改变,笔者根据工作实践写出一点体会,希望能给同行提供帮助。写操作是将待写入数据的不为1的位变为0。其写操作函数如下:6ES7416-2XL00-0AB0KF77R37DRS71S4/RSS30A-4011BAMDD112A-N-020-N2L-130PAOBUS6-VC-0C-0069EVS9324-EP00472187EZN3A0055H0456DS1312-8BB1FK7083-5AH71-1EH2MDSKABS071-22390V-MotorDME4000-119HJGAHJX3B4003VL4140-3RR30-0AA040E08-C999AABAA0AATroesterTRISAGBaugruppem.Steckanschlüssen6SN1123-1AB00-0AA2MDS60A0040-5A3-4-00EBERLEPLS511046ES5928-3UA216SC6120-0FE00TE1-104505-2DDS3.1-W030-D6ES5928-3UA21***0S-0403CA010HOMAG15.F1.R30-4A29Ver.-No.4.008-39-2372V2.017A06B-6090-H0036DS1408-8BA6***3617-1JC20-0AX16ES5308-3UC21MDS60A0040-5A3-4-00)