这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » [推荐]51 flash文件系统DIY(3)___FAT揭秘

共1条 1/1 1 跳转至

[推荐]51 flash文件系统DIY(3)___FAT揭秘

菜鸟
2002-10-22 22:21:25     打赏
今天说的就是另外一种我们文件系统可用片子,并行flash芯片。在这里用AT 29C040A 或者W29C040,当然其他牌子的芯片也可以用。每种flash的最大可写入次数是不同 的, W29C040在一千到一万次之间,AT29C040A大与一万次, SST29SF040则可达十万次以上。 如果你不想你的flash文件系统用不久就完蛋的话,就用SST的片子吧,话说回来W29C040 是里面最便宜的。   前面已经说过29C040的地址线有19根而单片机只有16根地址线,而且29C040不能把 16根地址线都占了,如果它占了16根地址线,我们的片外RAM就没办法扩展了。可以用P1来锁 存高位地址,让29C040少占一部分地址空间。但单片机的IO口都是比较珍贵的资源,P1口可 以按位寻址,操作很方便。要是用了P1口,将来我们要接个看门狗,外部开关量的检测,时 钟,I2C等等就没有IO口用了。所以我们用外部锁存器来锁存29C040的一部分高位地址。 外部锁存器我们用74373,74373可以锁存8位,我们就用它来锁存29C040的高8位地址 线,还剩下11根地址线把它挂到单片机的总线上去,这样29C040占用了2^11=2048就是 2K的地址空间。事实上由于需要向特殊地址写指令关闭芯片软件数据保护2K空间还不够,至 少要4K的空间。我们还要外接RAM,在这里我们外接 16K的RAM,他被安排在地址空间的 X:0x0000-0x3fff,这样29C040的地址空间就只能在0x3fff之上,这些都要由地址译码线路来 完成。 74373是我们锁存高位地址的,怎么把数据送到373让他锁存下来呢?我们吧373的输 入也接到数据总线上去,通过对单片机的WR信号配合地址信号译码,让我们往一个外部RAM 地址写数据的时候刚好能产生一个锁存信号,写入的数据就被锁存到373中去了。这个信号 需要由选通信号和WR来共同产生,我们也用地址译码线路来完成这部分功能。 地址译码常用3-8线译码器74138,由于我们还要产生74373的锁存信号,WR信号是低有效,选 通信号也是低有效的,而锁存信号是一个上升沿信号,所以把WR信号和选通信号或非一下就 得到了我们的需要的锁存信号。所以我们需要1片74138,一片或门7432和一片非门7404,总共 三片TTL芯片。片子比较多布线会很烦,money也花得多一点,干脆用一片GAL来全部搞掂。 GAL是可编程的数字逻辑器件(PLD),输入和输出是可编程的,对GAL芯片常用ABEL语言来编 程,ABEL语言很简单.我们这里不着重介绍他,GAL片子就用ATMEL的 ATF16V8B吧。(嗯,又是 ATMEL的。申明一点我可没收过ATMEL公司的任何好处费) 下面的ABEL程序是我的一个系统中的译码线路的ABEL程序,这里不做过多说明了. MODULE addtran TITLE 'translate address to chip select signal and latch signal for around chip' "INPUT SIGNAL WR,A8,A9,A10,A11,A12,A13,A14,A15 PIN 1,2,3,4,5,6,7,8,9; "OUTPUT SIGNAL CSRAM,GFATP,CSFAT PIN 19,12,17 ISTYPE 'COM'; "NODE CSFATP NODE; "定义中间节点 X=.x.; A=[A15..A8]; EQUATIONS WHEN(A<=^h3f) THEN CSRAM=0; "RAM选通信号 ELSE CSRAM=1; WHEN(A==^h63) THEN CSFATP=0; "74373选通信号 ELSE CSFATP=1; WHEN((A>=^h68)&(A<=^h6f)) THEN CSFAT=0; "29C040选通信号 ELSE CSFAT=1; GFATP=!(WR#CSFATP); "74373锁存信号 TEST_VECTORS ([WR, A]->[CSRAM,CSFAT,GFATP]) [ X,^h33]->[ 0, 1, 0]; [ X,^h60]->[ 1, 1, 0]; [ 1,^h63]->[ 1, 1, 0]; [ 0,^h63]->[ 1, 1, 1]; [ X,^h68]->[ 1, 0, 0]; [ X,^h6d]->[ 1, 0, 0]; [ X,^h6a]->[ 1, 0, 0]; [ X,^h80]->[ 1, 1, 0]; END Taowa 2002.10.15



关键词: 推荐     flash     文件     系统     揭秘     我们     地址         

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]