状态机在音乐播放器设计中作用.ppt
状态机在音乐播放器设计中作用 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life, there is hope。有生命必有希望。有生命必有希望音乐播放器原理图音乐播放器模块分析n分离出具有独立功能的模块nSD卡控制器n文件系统读取器nwav文件格式读取器n显示控制器n音频解码芯片控制器nVGA控制器n键盘控制器状态机应用实例nSD卡控制器设计nFAT文件控制器设计FAT文件控制器设计nFAT(File Allocation Table)是“文件分配表”的意思n顾名思义,就是用来记录文件所在位置的表格,它对于硬盘的使用是非常重要的,假若丢失文件分配表,那么硬盘上的数据就会因无法定位而不能使用了n不同的操作系统所使用的文件系统不尽相同,这里我们主要介绍FAT16FAT16文件系统文件系统nFAT16使用了16位的空间来表示每个扇区(Sector)配置文件的情形,故称之为FAT16nFAT16由于受到先天的限制,如果使用扇区来定义数据地址会显得FAT表庞大而臃肿,所以它使用簇(Cluster)来定义n每个簇可由多个扇区来组成,故在文件管理的过程中是通过簇来查询的,在后面会详细说明FAT16文件系统文件系统nFAT16各分区与簇大小n16MB-127MB 2KB n128MB-255MB 4KB n256MB-511MB 8KB n512MB-1023MB 16KB n1024MB-2047MB 32KB FAT16文件系统文件系统-存在的缺点存在的缺点nFAT16的一个典型缺点n因为某个文件的大小可能大于或小于一个簌,所以如果文件最后一个簌未被填满,那么这个簌其他区域的数据空间将被丢弃不再使用n如果有新文件的话将从新的簌开始记录n合理地定义每簌所占的扇区数可以较好的利用磁盘空间nFAT 文件系统支持的最大簇数目和簇的最大大小决定了 2-GB 这一分区限制( 意思就是理论上所能表示的最大为簌地址为FFFF )FAT16文件系统文件系统-结构图结构图FAT16文件系统文件系统-PBRFAT16文件系统文件系统-分区信息分区信息n从偏移地址446开始是磁盘分区信息,可设置4个分区,每个分区表占16个字节FAT16文件系统文件系统-分区信息格分区信息格式式n每个分区表由16个字节组成,含义如下FAT16文件系统文件系统-根目录根目录n在FAT16中每个分区根目录含32个扇区,每个扇区为512字节,共计16384字节;n每个分区根目录最多可表示512个项数(因每个文件或子目录),其结构用32个字节来表示,格式如下n对于当前子目录,name字段第一个字节为“.”,上一子目录name字段第一个字节为“.”;Name Extension字段用空格填充。FAT16文件系统文件系统-FAT表表n记录着每个文件的所有相关簌(除了首簌在文件登记表外)n前4个字节(0簌和1簌)代表磁盘的介质信息,文件的地址信息从其之后开始n簌地址由2个字节组成,其值代表下一个簌地址,直到FFFF为止FAT16文件系统文件系统-FAT表表n簌内容的含义FAT16文件系统文件系统-文件的读取文件的读取n通过系统区确定FAT表与根目录的首地址n从根目录读起,找到所需文件的首地址(即首簌地址)n通过获得的首簌地址在FAT表中读取与文件相关的所有簌地址,直到FFFF时终止,将所读到的簌地址信息保存到缓存区的地址内(方便控制器顺序读取数据)nOK!开始读数据FAT16文件系统文件系统-实例分析解实例分析解读读n这里通过读取某个1G容量的U盘来说明FAT16的一些关键数据n通过对这些数据的理解可以对后面的控制器读写控制有非常大的帮助FAT16文件系统文件系统-实例分析解实例分析解读读系统区(续)系统区(续)n请对照前面的表来读取对应位置的字节信息n前3个字节是跳转指令,用于操作系统的读取系统盘的引导区代码FAT16文件系统文件系统-实例分析解实例分析解读读系统区(续)系统区(续)n这8个字节代表该存贮介质厂商的ID信息FAT16文件系统文件系统-实例分析解实例分析解读读系统区(续)系统区(续)n这2个字节代表每个扇区的字节数,通过下图可以知道每个扇区的字节是是512(16进制是0 x0200)FAT16文件系统文件系统-实例分析解实例分析解读读系统区(续)系统区(续)n该字节表示每个簌的扇区簌,可看出每个簌由32个扇区组成FAT16文件系统文件系统-实例分析解实例分析解读读系统区(续)系统区(续)n这2个字节的含义是保留扇区数,4意思就是从第5个扇区开始的位置就是FAT区FAT16文件系统文件系统-实例分析解实例分析解读读系统区(续)系统区(续)n该字节的含义是有几个FAT表,显然默认是2个,其中一个FAT表是作为备份的,与另一个FAT表内容完全一致n其存在的意义在于当一个FAT表受损时可以通过另一个FAT表实现数据恢复FAT16文件系统文件系统-实例分析解实例分析解读读系统区(续)系统区(续)n这2个字节的含义是FAT表的大小,在格式化磁盘的过程中由具体有磁盘大小来决定,这里可看出其有250个扇区组成,连同备份共占用了500个扇区FAT16文件系统文件系统-实例分析解实例分析解读读系统区(续)系统区(续)n这8个字节用来标识本文件管理系统是FAT16(其ASII码值对应相关的英文字母与数字),不满8个字节的部分用空格填充FAT16文件系统文件系统-实例分析解实例分析解读读系统区(续)系统区(续)n最后2个字节代表系统区结束标识FAT16文件系统文件系统-实例分析解实例分析解读读文件根目录文件根目录n前8个字节代表文件名:这里文件名是1n接着的3个字节代表文件扩展名:这里该文件的扩展名是BMPn再接着的1个字节代表文件属性:这里表示它是一个文档属性n紫色圈出的代表首簌地址n最后4个字节代表文件的大小FAT16文件系统文件系统 -实例分析解读实例分析解读FAT表表n可以看出文件簌地址是顺序存储的FAT16文件系统文件系统-实例分析解读数据区实例分析解读数据区n通过上面的FAT表的簌地址就可以完全定位数据区的文件数据了,下图是数据区文件的起始位置