存储器测试
① 关于flash存储器测试的求助
主要造成此情况的原因有:⑴、 USB 插头没有好,或是 USB 引线里面的部分头接触不良,请拔 出 USB 线再重新插上,并按下载器的复位键。⑵、如果是使用在线下载的话,从 多功能测试板 连接到 FLASH 存储器的 下载线过长,请裁减部分长度,如果是普 通导线,距离要控制在 12cm 以内,假如想把下载线拉得较长,请使用屏蔽线。⑶、 USBmini 下载器在使用的过程中不慎损坏,请更换一个多功能测试 板。
② 存储器的测试
存储器测试的目的是确认在存储设备中的每一个存储位置都在工作。换一句话说,如果你把数50存储在一个具体的地址,你希望可以找到存储在那里的那个数,直到另一个数写入。任何存储器测试的基本方法是,往存储器写入一些数据,然后根据内存设备的地址,校验读回的数据。如果所有读回的数据和那些写入的数据是一样的,那么就可以说存储设备通过了测试。只有通过认真选择的一组数据你才可以确信通过的结果是有意义的。
当然,像刚才描述的有储器的测试不可避免地具有破坏性。在内存测试过程中,你必须覆盖它原先的内容。因为重写非易失性存储器内容通常来说是不可行的,这一部分描述的测试通常只适用于RAM 的测试。 一,普通的存储器问题
在学习具体的测试算法之前,你应该了解可能遇到的各种存储器问题。在软件工程师中一个普遍的误解是,大部分的存储器问题发生在芯片的内部。尽管这类问题一度是一个主要的问题,但是它们在日益减少。存储设备的制造商们对于每一个批量的芯片都进行了各种产品后期测试。因此,即使某一个批量有问题,其中某个坏芯片进人到你的系统的可能性是微乎其微的。
你可能遇到的一种类型的存储芯片问题是灾难性的失效。这通常是在加工好之后芯片受到物理或者是电子损伤造成的。灾难性失效是少见的,通常影响芯片中的大部分。因为一大片区域受到影响,所以灾难性的失效当然可以被合适的测试算法检测到。
存储器出问题比较普遍的原因是电路板故障。典型的电路板故障有:
(1)在处理器与存储设备之间的连线问题
(2)无存储器芯片
(3)存储器芯片的不正确插人
二,测试策略
最好有三个独立的测试:数据总线的测试、地址总线的测试以及设备的测试。前面两个测试针对电子连线的问题以及芯片的不正确插入;第三个测试更倾向于检测芯片的有无以及灾难性失效。作为一个意外的结果,设备的测试也可以发现控制总线的问题,尽管它不能提供关于问题来源的有用信息。
执行这三个测试的顺序是重要的。正确的顺序是:首先进行数据总线测试,接着是地址总线测试,最后是设备测试。那是因为地址总线测试假设数据总线在正常工作,除非数据总线和地址总线已知是正常的,否则设备测试便毫无意义。如果任何测试失败,你都应该和一个硬件工程师一起确定问题的来源。通过查看测试失败处的数据值或者地址,应该能够迅速地找出电路板上的问题。
1,数据总线测试
我们首先要测试的就是数据总线。我们需要确定任何由处理器放置在数据总线上的值都被另一端的存储设备正确接收。最明显的测试方法就是写人所有可能的数据值并且验证存储设备成功地存储了每一个。然而,那并不是最有效率的测试方法。一个更快的测试方法是一次测试总线上的一位。如果每一个数据上可被设置成为 0 和1,而不受其他数据位的影响,那么数据总线就通过了测试。
2,地址总线测试
在确认数据总线工作正常之后,你应该接着测试地址总线。记住地址总线的问题将导致存储器位置的重叠。有很多可能重叠的地址。然而,不必要测试每一个可能的组合。你应该努力在测试过程中分离每一个地址位。你只需要确认每一个地址线的管脚都可以被设置成0和 1,而不影响其他的管脚。
3,设备测试
一旦你知道地址和数据总线是正确的,那么就有必要测试存储设备本身的完整性。要确认的是设备中的每一位都能够保持住0和 1。这个测试实现起来十分简单,但是它花费的时间比执行前面两项测试花费的总时间还要长。
对于一个完整的设备测试,你必须访问(读和写)每一个存储位置两次。你可以自由地选择任何数据作为第一步测试的数据,只要在进行第二步测试的时候把这个值求反即可。因为存在没有存储器芯片的可能性,所以最好选择一组随着地址变化(但是不等于地址)的数。优化措施
市场上并不缺少提高数据存储效率的新技术,然而这些新技术绝大多数都是关注备份和存档的,而非主存储。但是,当企业开始进行主存储数据缩减时,对他们来说,了解主存储优化所要求的必要条件十分重要。
主存储,常常被称为1级存储,其特征是存储活跃数据――即经常被存取并要求高性能、低时延和高可用性的数据。主存储一般用于支持关键任务应用,如数据库、电子邮件和交易处理。大多数关键应用具有随机的数据取存模式和不同的取存要求,但它们都生成机构用来运营它们的业务的大量的数据。因此,机构制作数据的许多份拷贝,复制数据供分布使用,库存数据,然后为安全保存备份和存档数据。
绝大多数数据是起源于主数据。随着数据存在的时间增加,它们通常被迁移到二级和三级存储保存。因此,如果机构可以减少主数据存储占用空间,将能够在数据生命期中利用这些节省下来的容量和费用。换句话说,更少的主存储占用空间意味着更少的数据复制、库存、存档和备份。
试图减少主存储占用空间存储管理人员可以考虑两种减少数据的方法:实时压缩和数据去重。
直到不久前,由于性能问题,数据压缩一直没有在主存储应用中得到广泛应用。然而,Storwize等厂商提供利用实时、随机存取压缩/解压技术将数据占用空间压缩15:1的解决方案。更高的压缩率和实时性能使压缩解决方案成为主存储数据缩减的可行的选择。
在备份应用中广泛采用的数据去重技术也在被应用到主存储。目前为止,数据去重面临着一大挑战,即数据去重处理是离线处理。这是因为确定数量可能多达数百万的文件中的多余的数据块需要大量的时间和存储处理器做大量的工作,因此非常活跃的数据可能受到影响。当前,推出数据去重技术的主要厂商包括NetApp、Data Domain和OcarinaNetworks。 一、零性能影响
与备份或存档存储不同,活跃数据集的性能比能够用某种形式的数据缩减技术节省的存储容量更为关键。因此,选择的数据缩减技术必须不影响到性能。它必须有效和简单;它必须等价于“拨动一个开关,就消耗更少的存储”。
活跃存储缩减解决方案只在需要去重的数据达到非活跃状态时才为活跃存储去重。换句话说,这意味着实际上只对不再被存取但仍保存在活跃存储池中的文件――近活跃存储级――进行去重。
去重技术通过建议只对轻I/O工作负载去重来避免性能瓶颈。因此,IT基础设施的关键组件的存储没有得到优化。数据库排在关键组件清单之首。由于它们是1级存储和极其活跃的组件并且几乎始终被排除在轻工作负载之外,去重处理从来不分析它们。因此,它们在主存储中占据的空间没有得到优化。
另一方面,实时压缩系统实时压缩所有流经压缩系统的数据。这导致节省存储容量之外的意外好处:存储性能的提高。当所有数据都被压缩时,每个I/O请求提交的数据量都有效地增加,硬盘空间增加了,每次写和读操作都变得效率更高。
实际结果是占用的硬盘容量减少,总体存储性能显着提高。
主存储去重的第二个好处是所有数据都被减少,这实现了包括数据库在内的所有数据的容量节省。尽管Oracle环境的实时数据压缩可能造成一些性能问题,但迄今为止的测试表明性能提高了。
另一个问题是对存储控制器本身的性能影响。人们要求今天的存储控制器除了做伺服硬盘外,还要做很多事情,包括管理不同的协议,执行复制和管理快照。再向这些功能增加另一个功能可能会超出控制器的承受能力――即使它能够处理额外的工作负载,它仍增加了一个存储管理人员必须意识到可能成为潜在I/O瓶颈的过程。将压缩工作交给外部专用设备去做,从性能问题中消除了一个变数,而且不会给存储控制器造成一点影响。
二、高可用性
许多关注二级存储的数据缩减解决方案不是高可用的。这是由于它们必须立即恢复的备份或存档数据不像一级存储中那样关键。但是,甚至在二级存储中,这种概念也逐渐不再时兴,高可用性被作为一种选择添加到许多二级存储系统中。
可是,高可用性在主存储中并不是可选的选项。从数据缩减格式(被去重或被压缩)中读取数据的能力必须存在。在数据缩减解决方案中(其中去重被集成到存储阵列中),冗余性是几乎总是高可用的存储阵列的必然结果。
在配件市场去重系统中,解决方案的一个组件以数据的原始格式向客户机提供去重的数据。这个组件就叫做读出器(reader)。读出器也必须是高可用的,并且是无缝地高可用的。一些解决方案具有在发生故障时在标准服务器上加载读出器的能力。这类解决方案经常被用在近活跃的或更合适的存档数据上;它们不太适合非常活跃的数据集。
多数联机压缩系统被插入系统中和网络上,放置(逻辑上)在交换机与存储之间。因此,它们由于网络基础设施级上几乎总是设计具有的高可用性而取得冗余性。沿着这些路径插入联机专用设备实现了不需要IT管理人员付出额外努力的无缝的故障切换;它利用了已经在网络上所做的工作。
三、节省空间
部署这些解决方案之一必须带来显着的容量节省。如果减少占用容量的主存储导致低于标准的用户性能,它没有价值。
主数据不具有备份数据通常具有的高冗余存储模式。这直接影响到总体容量节省。这里也有两种实现主数据缩减的方法:数据去重和压缩。
数据去重技术寻找近活跃文件中的冗余数据,而能取得什么水平的数据缩减将取决于环境。在具有高冗余水平的环境中,数据去重可以带来显着的ROI(投资回报),而另一些环境只能取得10%到20%的缩减。
压缩对所有可用数据都有效,并且它在可以为高冗余数据节省更多的存储容量的同时,还为主存储应用常见的更随机的数据模式始终带来更高的节省。
实际上,数据模式冗余度越高,去重带来的空间节省就越大。数据模式越随机,压缩带来的空间节省就越高。
四、独立于应用
真正的好处可能来自所有跨数据类型(不管产生这些数据是什么应用或数据有多活跃)的数据缩减。虽然实际的缩减率根据去重数据的水平或数据的压缩率的不同而不同,但所有数据都必须合格。
当涉及存档或备份时,应用特有的数据缩减具有明确的价值,并且有时间为这类数据集定制缩减过程。但是对于活跃数据集,应用的特殊性将造成性能瓶颈,不会带来显着的容量缩减的好处。
五、独立于存储
在混合的厂商IT基础设施中,跨所有平台使用同样的数据缩减工具的能力不仅将进一步增加数据缩减的ROI好处,而且还简化了部署和管理。每一个存储平台使用一种不同的数据缩减方法将需要进行大量的培训,并造成管理级上的混乱。
六、互补
在完成上述所有优化主存储的工作后,当到了备份主存储时,最好让数据保持优化的格式(被压缩或去重)。如果数据在备份之前必须扩展恢复为原始格式,这将是浪费资源。
为备份扩展数据集将需要:
使用存储处理器或外部读出器资源解压数据;
扩展网络资源以把数据传送给备份目标;
把额外的资源分配给保存备份数据的备份存储设备。

③ 主板检测卡的代码有什么
显示FF或00,CPU没有工作 ATX电源损坏
CPU脚焊点因为长时间的热胀冷缩,脱焊
CPU附近的电解电容爆裂
CPU附近的功率三极管烧毁
代码:FF、00、C0、D0、CF、F1或什么也没有表示CPU没通过
C1、C6、C3、D3、D4、D6、D8、B0、A7、E1表示内存不过
24、25、26、01、0A、0B、2A、2B、31表示显卡不过
某些集成显卡主板23、24、25表示可以正常点亮,某些VIA芯片组显示13则表示可以点亮,某些品牌机里的主板显示0B则表示正常,某些主板显示4E表示正常点亮,某些INTEL芯片组的主板显示26或16则表示可以正常点亮。
C1、C6、C3、01、02这个组合循环跳变大部分是I/0坏或刷BIOS
如显示05、ED、41则直接刷BIOS
一、主板检测卡各指示灯说明
BIOS灯:为BIOS运行灯、正常工作时应不停闪动
CLK灯:为时钟灯、正常为常亮
OSC灯:为基准时钟灯、正常为常亮
RESET灯:为复位灯、正常为开机瞬间闪一下,然后熄灭
RUN灯:为运行灯、工作时应不停闪动
+12V、-12V、+5V、+3.3V灯正常为常亮
二、常见代码检修
1、00、CO、CF、FF或D1
测BIOS芯片CS有无片选:
(1)、有片选:换BIOS、测BIOS的OE是否有效、测PCI的AD线、测CPU复位有无1.5V--0V跳变
(2)、无片选:测PCI的FRAME、测CPU的DBSY ADS#,如不正常则北桥坏、若帧周期信号不正常则南桥坏
2、C0
CPU插槽脏、针脚坏、接触不好
换电源、换CPU、换转接卡有时可解决问题
刷BIOS、检查BIOS座
I/O坏、北桥虚焊、南弱桥坏
PCB断线、板上粘有导电物
3、C1、C3、C6、A7或E1
内存接触不良(用镊子划内存槽)
测内存工作电压SDRAM (3.3V),DDR(2.5和1.25V)
测时钟(CLK0~CLK3)
CPU旁排阻是否损坏
测CPU地址线和数据线
测DDR的负载排阻和数据排阻
北桥坏
4、C1~05循环跳变
测32.768MHZ是否正常
BIOS损坏
I/O或南桥损坏
5、C1、C3、C6
刷BIOS、检查BIOS座
换电源、换CPU,换转接卡有时可解决问题
PCB断线、板上粘有导电物
换内存条,PC100、PC133,或速度更快更稳定的内存
换内存插槽,有些主板的内存条插槽要先插最靠里面或最靠外面的槽才可工作
目测内存槽是否有短路等机械类损坏现象
没内存的CLK0、CLK1、CLK2、CLK3、CLK4,内存主供电
打阻值检查是否有断路现象
换I/O芯片、北桥虚焊或北桥坏
6、循环显示C1-C3或C1-C5
刷BIOS
换I/O有时可解决问题、检查I/O外围电路
PCB断线、板上粘有导电物
换电源、换CPU、换内存
南桥坏
7、其它代码
刷BIOS
换电源、CPU、内存
检查I/O外围电路、换I/O芯片
PCB断线、板上粘有导电物、南桥坏
8、bO代码
测内存的数据负载电压1.25V、2.5V(DDR)
清CMOS
测北桥供电或北桥坏
9、25代码
测AGP核心供电4X(1.5V)、8X(0.8V)、2X(3.3V)
北桥供电、北桥坏
10、走od后不亮
测PCI插槽之间电阻和排阻
外频、倍频跳线
11、若显示Ob显示器仍不亮
换显卡,有时主板与显卡不兼容
换电源、换CPU、换内存
换显卡插槽、PCB断线、板上粘有导电物
刷BIOS
换I/O
查北桥供电或南北桥坏
查PCI、AGP槽附近的排阻和电容
12、显2d代码
测AGP的AD线
初始化INTR信号
北桥供电不正常或北桥坏
13、显2d代码后不变
刷BIOS
时钟发生器不良
清除CMOS
北桥供电不正常或北桥坏
14、显示50代码
I/O供电或I/O芯片坏
南桥供电或南桥坏
BIOS坏、北桥坏
15、显示41
刷BIOS
A18跳线
PCB断线、板上粘有导电物
I/O坏、南桥坏
错误代码:00(FF)
代码含义:主板没有正常自检
解决方法:这种故障较麻烦,原因可能是主板或CPU没有正常工作。一般遇到这种情况,可首先将电脑上除CPU外的所有部件全部取下,并检查主板电压、倍频和外频设置是否正确,然后再对CMOS进行放电处理,再开机检测故障是否排除。如故障依旧,还可将CPU从主板上的插座上取下,仔细清理插座及其周围的灰尘,然后再将CPU安装好,并加以一定的压力,保证CPU与插座接触紧密,再将散热片安装妥当,然后开机测试。如果故障依旧,则建议更换CPU测试。另外,主板BIOS损坏也可造成这种现象,必要时可刷新主板BIOS后再试。
错误代码:01
代码含义:处理器测试
解决方法:说明CPU本身没有通过测试,这时应检查CPU相关设备。如对CPU进行过超频,请将CPU的频率还原至默认频率,并检查CPU电压、外频和倍频是否设置正确。如一切正常故障依旧,则可更换CPU再试。
错误代码:C1至C5
代码含义:内存自检
解决方法:较常见的故障现象,它一般表示系统中的内存存在故障。要解决这类故障,可首先对内存实行除尘、清洁等工作再进行测试。如问题依旧,可尝试用柔软的橡皮擦清洁金手指部分,直到金手指重新出现金属光泽为止,然后清理掉内存槽里的杂物,并检查内存槽内的金属弹片是否有变形、断裂或氧化生锈现象。开机测试后如故障依旧,可更换内存再试。如有多条内存,可使用替换法查找故障所在。
错误代码:0D
代码含义:视频通道测试
解决方法:这也是一种较常见的故障现象,它一般表示显卡检测未通过。这时应检查显卡与主板的连接是否正常,如发现显卡松动等现象,应及时将其重新插入插槽中。如显卡与主板的接触没有问题,则可取下显卡清理其上的灰尘,并清洁显卡的金手指部份,再插到主板上测试。如故障依旧,则可更换显卡测试。
一般系统启动过0D后,就已将显示信号传输至显示器,此时显示器的指示灯变绿,然后DEBUG卡继续跳至31,显示器开始显示自检信息,这时就可通过显示器上的相关信息判断电脑故障了
错误代码:0D至0F
代码含义:CMOS停开寄存器读/写测试
解决方法:检查CMOS芯片、电池及周围电路部分,可先更换CMOS电池,再用小棉球蘸无水酒精清洗CMOS的引脚及其电路部分,然后看开机检查问题是否解决。
错误代码:12、13、2B、2C、2D、2E、2F、30、31、32、33、34、35、36、37、38、39、3A
代码含义:测试显卡
解决方法:该故障在AMI BIOS中较常见,可检查显卡的视频接口电路、主芯片、显存是否因灰尘过多而无法工作,必要时可更换显卡检查故障是否解决。
错误代码:1A、1B、20、21、22
代码含义:存储器测试
解决方法:同Award BIOS篇内存故障的解决方法。
注意事项:如在BIOS设置中设置为不提示出错,则当遇到非致命性故障时,诊断卡不会停下来显示故障代码,解决方法是在BIOS设置中设置为提示所有错误之后再开机,然后再根据DEBUG代码
④ 主板诊断卡代码详细介绍
现如今我们的科技水平是越来越高了,许多东西我们并不了解,面对他们时甚至是不知所措,跟不用说坏了怎么办。今天我要说的既是主板诊断卡代码的问题,主板诊断卡代码都是有那些呢?主板诊断卡代码代表什么意思呢?为此我为大家精心准备主板诊断卡代码的资料,可以让各位读者朋友一目了然,那下面就跟我一起来看看主板诊断卡代码吧。
00 已显示系统的配置;即将控制INI19引导装入。
01 处理器测试1,处理器状态核实,如果测试失败,循环是无限的。 处理器寄存器的测试即将开始,不可屏蔽中断即将停用。 CPU寄存器测试正在进行或者失败。
02 确定诊断的类型(正常或者制造)。如果键盘缓冲器含有数据就会失效。 停用不可屏蔽中断;通过延迟开始。 CMOS写入/读出正在进行或者失灵。
03 清除8042键盘控制器,发出TESTKBRD命令(AAH) 通电延迟已完成。 ROM BIOS检查部件正在进行或失灵。
04 使8042键盘控制器复位,核实TESTKBRD。 键盘控制器软复位/通电测试。 可编程间隔计时器的测试正在进行或失灵。
05 如果不断重复制造测试1至5,可获得8042控制状态。 已确定软复位/通电;即将启动ROM。 DMA初如准备正在进行或者失灵。
06 使电路片作初始准备,停用视频、奇偶性、DMA电路片,以及清除DMA电路片,所有页面寄存器和CMOS停机字节。 已启动ROM计算ROM BIOS检查总和,以及检查键盘缓冲器是否清除。 DMA初始页面寄存器读/写测试正在进行或失灵。
07 处理器测试2,核实CPU寄存器的工作。 ROM BIOS检查总和正常,键盘缓冲器已清除,向键盘发出BAT(基本保证测试)命令。 .
08 使CMOS计时器作初始准备,正常的更新计时器的循环。 已向键盘发出BAT命令,即将写入BAT命令。 RAM更新检验正在进行或失灵。
09 EPROM检查总和且必须等于零才通过。 核实键盘的基本保证测试,接着核实键盘命令字节。 第一个64K RAM测试正在进行。
0A 使视频接口作初始准备。 发出键盘命令字节代码,即将写入命令字节数据。 第一个64K RAM芯片或数据线失灵,移位。
0B 测试8254通道0。 写入键盘控制器命令字节,即将发出引脚23和24的封锁/解锁命令。 第一个64K RAM奇/偶逻辑失灵。
0C 测试8254通道1。 键盘控制器引脚23、24已封锁/解锁;已发出NOP命令。 第一个64K RAN的地址线故障。
0D 1、检查CPU速度是否与系统时钟相匹配。2、检查控制芯片已编程值是否符合初设置。3、视频通道测试,如果失败,则鸣喇叭。 已处理NOP命令;接着测试CMOS停开寄存器。 第一个64K RAM的奇偶性失灵
0E 测试CMOS停机字节。 CMOS停开寄存器读/写测试;将计算CMOS检查总和。 初始化输入/输出端口地址。
0F 测试扩展的CMOS。 已计算CMOS检查总和写入诊断字节;CMOS开始初始准备。 .
10 测试DMA通道0。 CMOS已作初始准备,CMOS状态寄存器即将为日期和时间作初始准备。 第一个64K RAM第0位故障。
11 测试DMA通道1。 CMOS状态寄存器已作初始准备,即将停用DMA和中断控制器。 第一个64DK RAM第1位故障。
12 测试DMA页面寄存器。 停用DMA控制器1以及中断控制器1和2;即将视频显示器并使端口B作初始准备。 第一个64DK RAM第2位故障。
13 测试8741键盘控制器接口。 视频显示器已停用,端口B已作初始准备;即将开始电路片初始化/存储器自动检测。 第一个64DK RAM第3位故障。
14 测试存储器更新触发电路。 电路片初始化/存储器处自动检测结束;8254计时器测试即将开始。 第一个64DK RAM第4位故障。
15 测试开头64K的系统存储器。 第2通道计时器测试了一半;8254第2通道计时器即将完成测试。 第一个64DK RAM第5位故障。
16 建立8259所用的中断矢量表。 第2通道计时器测试结束;8254第1通道计时器即将完成测试。 第一个64DK RAM第6位故障。
17 调准视频输入/输出工作,若装有视频BIOS则启用。 第1通道计时器测试结束;8254第0通道计时器即将完成测试。 第一个64DK RAM第7位故障。
18 测试视频存储器,如果安装选用的视频BIOS通过,由可绕过。 第0通道计时器测试结束;即将开始更新存储器。 第一个64DK RAM第8位故障。
19 测试第1通道的中断控制器(8259)屏蔽位。 已开始更新存储器,接着将完成存储器的更新。 第一个64DK RAM第9位故障。
1A 测试第2通道的中断控制器(8259)屏蔽位。 正在触发存储器更新线路,即将检查15微秒通/断时间。 第一个64DK RAM第10位故障。
1B 测试CMOS电池电平。 完成存储器更新时间30微秒测试;即将开始基本的64K存储器测试。 第一个64DK RAM第11位故障。
1C 测试CMOS检查总和。 . 第一个64DK RAM第12位故障。
1D 调定CMOS配置。 . 第一个64DK RAM第13位故障。
1E 测定系统存储器的大小,并且把它和CMOS值比较。 . 第一个64DK RAM第14位故障。
1F 测试64K存储器至最高640K。 . 第一个64DK RAM第15位故障。
20 测量固定的8259中断位。 开始基本的64K存储器测试;即将测试地址线。 从属DMA寄存器测试正在进行或失灵。
21 维持不可屏蔽中断(NMI)位(奇偶性或输入/输出通道的检查)。 通过地址线测试;即将触发奇偶性。 主DMA寄存器测试正在进或失灵。
22 测试8259的中断功能。 结束触发奇偶性;将开始串行数据读/写测试。 主中断屏蔽寄存器测试正在进行或失灵。
23 测试保护方式8086虚拟方式和8086页面方式。 基本的64K串行数据读/写测试正常;即将开始中断矢量初始化之前的任何调节。 从属中断屏蔽存器测试正在进行或失灵。
24 测定1MB以上的扩展存储器。 矢量初始化之前的任何调节完成,即将开始中断矢量的初始准备。 设置ES段地址寄存器注册表到内存高端。
25 测试除头一个64K之后的所有存储器。 完成中断矢量初始准备;将为旋转式断续开始读出8042的输入/输出端口。 装入中断矢量正在进行或失灵。
26 测试保护方式的例外情况。 读出8042的输入/输出端口;即将为旋转式断续开始使全局数据作初始准备。 开启A20地址线;使之参入寻址。
27 确定超高速缓冲存储器的控制或屏蔽RAM。 全1数据初始准备结束;接着将进行中断矢量之后的任何初始准备。 键盘控制器测试正在进行或失灵。
28 确定超高速缓冲存储器的控制或者特别的8042键盘控制器。 完成中断矢量之后的初始准备;即将调定单色方式。 CMOS电源故障/检查总和计算正在进行。
29 . 已调定单色方式,即将调定彩色方式。 CMOS配置有效性的检查正在进行。
2A 使键盘控制器作初始准备。 已调定彩色方式,即将进行ROM测试前的触发奇偶性。 置空64K基本内存。
2B 使磁盘驱动器和控制器作初始准备。 触发奇偶性结束;即将控制任选的视频ROM检查前所需的任何调节。 屏幕存储器测试正在进行或失灵。
2C 检查串行端口,并使之作初始准备。 完成视频ROM控制之前的处理;即将查看任选的视频ROM并加以控制。 屏幕初始准备正在进行或失灵。
2D 检测并行端口,并使之作初始准备。 已完成任选的视频ROM控制,即将进行视频ROM回复控制之后任何其他处理的控制。 屏幕回扫测试正在进行或失灵。
2E 使硬磁盘驱动器和控制器作初始准备。 从视频ROM控制之后的处理复原;如果没有发现EGA/VGA就要进行显示器存储器读/写测试。 检测视频ROM正在进行。
2F 检测数学协处理器,并使之作初始准备。 没发现EGA/VGA;即将开始显示器存储器读/写测试。 .
30 建立基本内存和扩展内存。 通过显示器存储器读/写测试;即将进行扫描检查。 认为屏幕是可以工作的。
31 检测从C800:0至EFFF:0的选用ROM,并使之作初始准备。 显示器存储器读/写测试或扫描检查失败,即将进行另一种显示器存储器读/写测试。 单色监视器是可以工作的。
32 对主板上COM/LTP/FDD/声音设备等I/O芯片编程使之适合设置值。 通过另一种显示器存储器读/写测试;却将进行另一种显示器扫描检查。 彩色监视器(40列)是可以工作的。
33 . 视频显示器检查结束;将开始利用调节开关和实际插卡检验显示器的关型。 彩色监视器(80列)是可以工作的。
34 . 已检验显示器适配器;接着将调定显示方式。 计时器滴答声中断测试正在进行或失灵。
35 . 完成调定显示方式;即将检查BIOS ROM的数据区。 停机测试正在进行或失灵。
36 . 已检查BIOS ROM数据区;即将调定通电信息的游标。 门电路中A-20失灵。
37 . 识别通电信息的游标调定已完成;即将显示通电信息。 保护方式中的意外中断。
38 . 完成显示通电信息;即将读出新的游标位置。 RAM测试正在进行或者地址故障>FFFFH。
39 . 已读出保存游标位置,即将显示引用信息串。 .
3A . 引用信息串显示结束;即将显示发现信息。 间隔计时器通道2测试或失灵。
3B 用OPTI电路片(只是486)使辅助超高速缓冲存储器作初始准备。 已显示发现信息;虚拟方式,存储器测试即将开始。 按日计算的日历时钟测试正在进行或失灵。
3C 建立允许进入CMOS设置的标志。 . 串行端口测试正在进行或失灵。
3D 初始化键盘/PS2鼠标/PNP设备及总内存节点。 . 并行端口测试正在进行或失灵。
3E 尝试打开L2高速缓存。 . 数学协处理器测试正在进行或失灵。
40 . 已开始准备虚拟方式的测试;即将从视频存储器来检验。 调整CPU速度,使之与外围时钟精确匹配。
41 中断已打开,将初始化数据以便于0:0检测内存变换(中断控制器或内存不良) 从视频存储器检验之后复原;即将准备描述符表。 系统插件板选择失灵。
42 显示窗口进入SETUP。 描述符表已准备好;即将进行虚拟方式作存储器测试。 扩展CMOS RAM故障。
43 若是即插即用BIOS,则串口、并口初始化。 进入虚拟方式;即将为诊断方式实现中断。 . 44 . 已实现中断(如已接通诊断开关;即将使数据作初始准备以检查存储器在0:0返转。) BIOS中断进行初始化。
45 初始化数学协处理器。 数据已作初始准备;即将检查存储器在0:0返转以及找出系统存储器的规模。 .
46 . 测试存储器已返回;存储器大小计算完毕,即将写入页面来测试存储器。 检查只读存储器ROM版本。
47 . 即将在扩展的存储器试写页面;即将基本640K存储器写入页面。
48 . 已将基本存储器写入页面;即将确定1MB以上的存储器。 视频检查,CMOS重新配置。
49 . 找出1BM以下的存储器并检验;即将确定1MB以上的存储器。
4A . 找出1MB以上的存储器并检验;即将检查BIOS ROM数据区。 进行视频的初始化。
4B . BIOS ROM数据区的检验结束,即将检查和为软复位清除1MB以上的存储器。 . 4C . 清除1MB以上的存储器(软复位)即将清除1MB以上的存储器. 屏蔽视频BIOS ROM。. 4D。已清除1MB以上的存储器(软复位);将保存存储器的大小。 .
4E 若检测到有错误;在显示器上显示错误信息,并等待客户按键继续。 开始存储器的测试:(无软复位);即将显示第一个64K存储器的测试。 显示版权信息。
4F 读写软、硬盘数据,进行DOS引导。 开始显示存储器的大小,正在测试存储器将使之更新;将进行串行和随机的存储器测试。 .
50 将当前BIOS监时区内的CMOS值存到CMOS中。 完成1MB以下的存储器测试;即将高速存储器的大小以便再定位和掩蔽。 将CPU类型和速度送到屏幕。
51 . 测试1MB以上的存储器。 .
52 所有ISA只读存储器ROM进行初始化,最终给PCI分配IRQ号等初始化工作。 已完成1MB以上的存储器测试;即将准备回到实址方式。 进入键盘检测。
53 如果不是即插即用BIOS,则初始化串口、并口和设置时种值。 保存CPU寄存器和存储器的大小,将进入实址方式。 .
54 . 成功地开启实址方式;即将复原准备停机时保存的寄存器。 扫描“打击键”
55 . 寄存器已复原,将停用门电路A-20的地址线。 .
56 . 成功地停用A-20的地址线;即将检查BIOS ROM数据区。 键盘测试结束。
57 . BIOS ROM数据区检查了一半;继续进行。 .
58 . BIOS ROM的数据区检查结束;将清除发现信息。 非设置中断测试。
59 . 已清除信息;信息已显示;即将开始DMA和中断控制器的测试。 .
5A . . 显示按“F2”键进行设置。
5B . . 测试基本内存地址。
5C . . 测试640K基本内存。
60 设置硬盘引导扇区病毒保护功能。 通过DMA页面寄存器的测试;即将检验视频存储器。 测试扩展内存。
61 显示系统配置表。 视频存储器检验结束;即将进行DMA#1基本寄存器的测试。 .
62 开始用中断19H进行系统引导。 通过DMA#1基本寄存器的测试;即将进行DMA#2寄存器的测试。 测试扩展内存地址线。
63 . 通过DMA#2基本寄存器的测试;即将检查BIOS ROM数据区。 .
64 . BIOS ROM数据区检查了一半,继续进行。 .
65 . BIOS ROM数据区检查结束;将把DMA装置1和2编程。 .
66 . DMA装置1和2编程结束;即将使用59号中断控制器作初始准备。 Cache注册表进行优化配置。
67 . 8259初始准备已结束;即将开始键盘测试。 .
68 . . 使外部Cache和CPU内部Cache都工作。
6A . . 测试并显示外部Cache值。
6C . . 显示被屏蔽内容。
6E . . 显示附属配置信息。
70 . . 检测到的错误代码送到屏幕显示。
72 . . 检测配置有否错误。
74 . . 测试实时时钟。
76 . . 扫查键盘错误。
7A . . 锁键盘。
7C . . 设置硬件中断矢量。
7E . . 测试有否安装数学处理器。
80 . 键盘测试开始,正在清除和检查有没有键卡住,即将使键盘复原。 关闭可编程输入/输出设备。
81 . 找出键盘复原的错误卡住的键;即将发出键盘控制端口的测试命令。 .
82 . 键盘控制器接口测试结束,即将写入命令字节和使循环缓冲器作初始准备。 检测和安装固定RS232接口(串口)。
83 . 已写入命令字节,已完成全局数据的初始准备;即将检查有没有键锁住。 .
84 . 已检查有没有锁住的键,即将检查存储器是否与CMOS失配。 检测和安装固定并行口。 85 . 已检查存储器的大小;即将显示软错误和口令或旁通安排。 .
86 . 已检查口令;即将进行旁通安排前的编程。 重新打开可编程I/O设备和检测固定I/O是否有冲突。
87 . 完成安排前的编程;将进行CMOS安排的编程。 .
88 . 从CMOS安排程序复原清除屏幕;即将进行后面的编程。 初始化BIOS数据区。
89 . 完成安排后的编程;即将显示通电屏幕信息。 .
8A . 显示头一个屏幕信息。 进行扩展BIOS数据区初始化。
8B . 显示了信息:即将屏蔽主要和视频BIOS。 .
8C . 成功地屏蔽主要和视频BIOS,将开始CMOS后的安排任选项的编程。 进行软驱控制器初始化。
8D . 已经安排任选项编程,接着检查滑了鼠和进行初始准备。 .
8E . 检测了鼠标以及完成初始准备;即将把硬、软磁盘复位。 .
8F . 软磁盘已检查,该磁盘将作初始准备,随后配备软磁盘。 .
90 . 软磁盘配置结束;将测试硬磁盘的存在。 硬盘控制器进行初始化。
91 . 硬磁盘存在测试结束;随后配置硬磁盘。 局部总线硬盘控制器初始化。
92 . 硬磁盘配置完成;即将检查BIOS ROM的数据区。 跳转到用户路径2。
93 . BIOS ROM的数据区已检查一半;继续进行。 .
94 . BIOS ROM的数据区检查完毕,即调定基本和扩展存储器的大小。 关闭A-20地址线。
95 . 因应鼠标和硬磁盘47型支持而调节好存储器的大小;即将检验显示存储器。 .
96 . 检验显示存储器后复原;即将进行C800:0任选ROM控制之前的初始准备。 “ES段”注册表清除。
97 . C800:0任选ROM控制之前的任何初始准备结束,接着进行任选ROM的检查及控制。 . 98 . 任选ROM的控制完成;即将进行任选ROM回复控制之后所需的任何处理。 查找ROM选择。
99 . 任选ROM测试之后所需的任何初始准备结束;即将建立计时器的数据区或打印机基本地址。 .
9A . 调定计时器和打印机基本地址后的返回操作;即调定RS-232基本地址。 屏蔽ROM选择。
9B . 在RS-232基本地址之后返回;即将进行协处理器测试之初始准备。 .
9C . 协处理器测试之前所需初始准备结束;接着使协处理器作初始准备。 建立电源节能管理。
9D . 协处理器作好初始准备,即将进行协处理器测试之后的任何初始准备。 .
9E . 完成协处理器之后的初始准备,将检查扩展键盘,键盘识别符,以及数字锁定。 开放硬件中断。
9F . 已检查扩展键盘,调定识别标志,数字锁接通或断开,将发出键盘识别命令。 .
A0 . 发出键盘识别命令;即将使键盘识别标志复原。 设置时间和日期。
A1 . 键盘识别标志复原;接着进行高速缓冲存储器的测试。 .
A2 . 高速缓冲存储器测试结束;即将显示任何软错误。 检查键盘锁。
A3 . 软错误显示完毕;即将调定键盘打击的速率。 .
A4 . 调好键盘的打击速率,即将制订存储器的等待状态。 键盘重复输入速率的初始化。
A5 . 存储器等候状态制定完毕;接着将清除屏幕。 .
A6 . 屏幕已清除;即将启动奇偶性和不可屏蔽中断。 .
A7 . 已启用不可屏蔽中断和奇偶性;即将进行控制任选的ROM在E000:0之所需的任何初始准备。 .
A8 . 控制ROM在E000:0之前的初始准备结束,接着将控制E000:0之后所需的任何初始准备。 清除“F2”键提示。
A9 . 从控制E000:0 ROM返回,即将进行控制E000:0任选ROM之后所需的任何初始准备。 .
AA . 在E000:0控制任选ROM之后的初始准备结束;即将显示系统的配置。 扫描“F2”键打击。
AC . . 进入设置.
AE . . 清除通电自检标志。
B0 . . 检查非关键性错误。
B2 . . 通电自检完成准备进入操作系统引导。
B4 . . 蜂鸣器响一声。
B6 . . 检测密码设置(可选)。
B8 . . 清除全部描述表。
BC . . 清除校验检查值。
BE 程序缺省值进入控制芯片,符合可调制二进制缺省值表。 . 清除屏幕(可选)。
BF 测试CMOS建立值。 . 检测病毒,提示做资料备份。
C0 初始化高速缓存。 . 用中断19试引导。
C1 内存自检。 . 查找引导扇区中的“55”“AA”标记。
C3 第一个256K内存测试。 . .
C5 从ROM内复制BIOS进行快速自检。 . .
C6 高速缓存自检。 . .
CA 检测Micronies超速缓冲存储器(如果存在),并使之作初始准备。 . .
CC 关断不可屏蔽中断处理器。 . .
EE 处理器意料不到的例外情况。 . .
FF 给予INI19引导装入程序的控制,主板OK。
说了这么多关于主板诊断卡代码的知识,近上百种,想必各位读者朋友们如果再次遇到这种情况就不会束手无措了,只要仔细按照我为各位读者朋友们准备的资料去对照自己主板故障代码,一定不会有错的。我准备的这些资料,只要能把读者朋友们的问题解决好,我就不是白忙活了。请大家多多支持我们土巴兔,我们会继续努力的。
⑤ 如何测试W5300的内部TX/RX存储器
存储器测试的目的是确认在存储设备中的每一个存储位置都在工作。换一句话说,如果你把数50存储在一个具体的地址,你希望可以找到存储在那里的那个数,直到另一个数写入。任何存储器测试的基本方法是,往存储器写入一些数据,然后根据内存设备的地址,校验读回的数据。如果所有读回的数据和那些写入的数据是一样的,那么就可以说存储设备通过了测试。只有通过认真选择的一组数据你才可以确信通过的结果是有意义的。
当然,像刚才描述的有储器的测试不可避免地具有破坏性。在内存测试过程中,你必须覆盖它原先的内容。因为重写非易失性存储器内容通常来说是不可行的,这一部分描述的测试通常只适用于RAM 的测试。 一,普通的存储器问题
在学习具体的测试算法之前,你应该了解可能遇到的各种存储器问题。在软件工程师中一个普遍的误解是,大部分的存储器问题发生在芯片的内部。尽管这类问题一度是一个主要的问题,但是它们在日益减少。存储设备的制造商们对于每一个批量的芯片都进行了各种产品后期测试。因此,即使某一个批量有问题,其中某个坏芯片进人到你的系统的可能性是微乎其微的。
你可能遇到的一种类型的存储芯片问题是灾难性的失效。这通常是在加工好之后芯片受到物理或者是电子损伤造成的。灾难性失效是少见的,通常影响芯片中的大部分。因为一大片区域受到影响,所以灾难性的失效当然可以被合适的测试算法检测到。
存储器出问题比较普遍的原因是电路板故障。典型的电路板故障有:
(1)在处理器与存储设备之间的连线问题
(2)无存储器芯片
(3)存储器芯片的不正确插人
二,测试策略
最好有三个独立的测试:数据总线的测试、地址总线的测试以及设备的测试。前面两个测试针对电子连线的问题以及芯片的不正确插入;第三个测试更倾向于检测芯片的有无以及灾难性失效。作为一个意外的结果,设备的测试也可以发现控制总线的问题,尽管它不能提供关于问题来源的有用信息。
执行这三个测试的顺序是重要的。正确的顺序是:首先进行数据总线测试,接着是地址总线测试,最后是设备测试。那是因为地址总线测试假设数据总线在正常工作,除非数据总线和地址总线已知是正常的,否则设备测试便毫无意义。如果任何测试失败,你都应该和一个硬件工程师一起确定问题的来源。通过查看测试失败处的数据值或者地址,应该能够迅速地找出电路板上的问题。
1,数据总线测试
我们首先要测试的就是数据总线。我们需要确定任何由处理器放置在数据总线上的值都被另一端的存储设备正确接收。最明显的测试方法就是写人所有可能的数据值并且验证存储设备成功地存储了每一个。然而,那并不是最有效率的测试方法。一个更快的测试方法是一次测试总线上的一位。如果每一个数据上可被设置成为 0 和1,而不受其他数据位的影响,那么数据总线就通过了测试。
2,地址总线测试
在确认数据总线工作正常之后,你应该接着测试地址总线。记住地址总线的问题将导致存储器位置的重叠。有很多可能重叠的地址。然而,不必要测试每一个可能的组合。你应该努力在测试过程中分离每一个地址位。你只需要确认每一个地址线的管脚都可以被设置成0和 1,而不影响其他的管脚。
3,设备测试
一旦你知道地址和数据总线是正确的,那么就有必要测试存储设备本身的完整性。要确认的是设备中的每一位都能够保持住0和 1。这个测试实现起来十分简单,但是它花费的时间比执行前面两项测试花费的总时间还要长。
对于一个完整的设备测试,你必须访问(读和写)每一个存储位置两次。你可以自由地选择任何数据作为第一步测试的数据,只要在进行第二步测试的时候把这个值求反即可。因为存在没有存储器芯片的可能性,所以最好选择一组随着地址变化(但是不等于地址)的数。优化措施
市场上并不缺少提高数据存储效率的新技术,然而这些新技术绝大多数都是关注备份和存档的,而非主存储。但是,当企业开始进行主存储数据缩减时,对他们来说,了解主存储优化所要求的必要条件十分重要。
主存储,常常被称为1级存储,其特征是存储活跃数据――即经常被存取并要求高性能、低时延和高可用性的数据。主存储一般用于支持关键任务应用,如数据库、电子邮件和交易处理。大多数关键应用具有随机的数据取存模式和不同的取存要求,但它们都生成机构用来运营它们的业务的大量的数据。因此,机构制作数据的许多份拷贝,复制数据供分布使用,库存数据,然后为安全保存备份和存档数据。
绝大多数数据是起源于主数据。随着数据存在的时间增加,它们通常被迁移到二级和三级存储保存。因此,如果机构可以减少主数据存储占用空间,将能够在数据生命期中利用这些节省下来的容量和费用。换句话说,更少的主存储占用空间意味着更少的数据复制、库存、存档和备份。
试图减少主存储占用空间存储管理人员可以考虑两种减少数据的方法:实时压缩和数据去重。
直到不久前,由于性能问题,数据压缩一直没有在主存储应用中得到广泛应用。然而,Storwize等厂商提供利用实时、随机存取压缩/解压技术将数据占用空间压缩15:1的解决方案。更高的压缩率和实时性能使压缩解决方案成为主存储数据缩减的可行的选择。
在备份应用中广泛采用的数据去重技术也在被应用到主存储。目前为止,数据去重面临着一大挑战,即数据去重处理是离线处理。这是因为确定数量可能多达数百万的文件中的多余的数据块需要大量的时间和存储处理器做大量的工作,因此非常活跃的数据可能受到影响。当前,推出数据去重技术的主要厂商包括NetApp、Data Domain和OcarinaNetworks。 一、零性能影响
与备份或存档存储不同,活跃数据集的性能比能够用某种形式的数据缩减技术节省的存储容量更为关键。因此,选择的数据缩减技术必须不影响到性能。它必须有效和简单;它必须等价于“拨动一个开关,就消耗更少的存储”。
活跃存储缩减解决方案只在需要去重的数据达到非活跃状态时才为活跃存储去重。换句话说,这意味着实际上只对不再被存取但仍保存在活跃存储池中的文件――近活跃存储级――进行去重。
去重技术通过建议只对轻I/O工作负载去重来避免性能瓶颈。因此,IT基础设施的关键组件的存储没有得到优化。数据库排在关键组件清单之首。由于它们是1级存储和极其活跃的组件并且几乎始终被排除在轻工作负载之外,去重处理从来不分析它们。因此,它们在主存储中占据的空间没有得到优化。
另一方面,实时压缩系统实时压缩所有流经压缩系统的数据。这导致节省存储容量之外的意外好处:存储性能的提高。当所有数据都被压缩时,每个I/O请求提交的数据量都有效地增加,硬盘空间增加了,每次写和读操作都变得效率更高。
⑥ 求助MP3例程中VS1003的存储器测试不成功
在调试vs1003之前就已经翻阅过vs1003的datasheet(数据手册);基本上懂了其通讯原理,和一些基本设置。
在调试的时候只是拿网上找的代码,做了相应的修改(接口改为我自己的,功能改为我自己想要的功能),这样只是为了快速测试我的vs1003模块能不能用,当然这首先是要你能理解其代码,要不然是第一次调试你也不知道是程序有错还是硬件有错。在确定程序没错之后,我就可以确定如果没有效果,那肯定是我的解码模块不行。测试通过之后我就可以放心的使用我自己的解码模块。接下来的程序我就可以根据自己想要的慢慢来写。
第一次写程序进去就听到耳机里输出了很高的鸣叫声,这是因为我把正弦测试(vs1003自带的一种测试,这样就能很快确定你的vs1003是否能工作)频率调的很高 所以声音很尖,被吓了一次。第二次就把它改小了一点,嘟的一声,呵呵相当激动,这说明我的vs1003可以用(s1003非常脆弱 很容易坏 又贵又不好买)
正弦测试成功之后我就开始想给vs1003发送MP3音频数据 看能不能解码放出声音来
我最初的想法是通过winhex软件打开查看MP3代码然后拷贝出来作为一个数组发给vs1003。这个数据要储存在我的单片机的程序储存区里,还好我的单片机程序储存区够大有64K。这样多的MP3代码也只能够听到一点点声音,效果肯定是无法体会的道。果然 ,在耳机里只听到吱~的一声就没了 根本没用
之后我就想把sd卡加进来,让MCU一边从sd里读取MP3数据,再一边发送到vs1003里边去解码,这样就可以一直把一首MP3的数据全部发送到vs1003进行解码。于是我先拷贝了一个码率比较低的MP3,因为单片机的速度毕竟很慢 从sd卡里读取数据然后又要发送给vs1003解码 先找一个码率比较低的MP3做测试这是明智的选择。
开始组合程序,编写相应的主函数,通电测试。没有任何反应,串口调试(如果读写sd正常可以从串口接收到sd'卡的第0扇区数据(逻辑扇区)这是我程序特意设定的,为了方便看出sd是否在工作)也接收不到任何数据 ,确定sd卡未启用。我以为sd卡的读写又出问题了 ,拿之前做好的sd测试程序重新测试,也没有数据输出,很晕。
不经意间我发现当我拔掉解码模块sd卡读写正常,找到这一重要点之后,我开始分析问题。
因为我的sd卡和vs1003与MCU的通讯方式都是spi。而我的MCU只有一个硬件spi,所以都统一连接到一起了 只是通过不同的片选让它们轮流使用spi。可惜的是这样不行。经过多次试验,猜想,也在网上寻求答案(未果)。最终我自己搞明白了,是应为我用的MCU为5V器件,为了能跟vs1003、sd卡正常通讯 ,我把MCU的spi口设置成为开漏形式,让后加3.3v的上拉。这样我的单片机spi口最大电压也只能是3.3v了。不过同时开漏形式让它的驱动能力变得很弱,无法同时接两个spi通讯模块~~~
于是我把sd卡的接口换到P0口采用软件模拟spi读取数据,这样一来,呵呵串口可以看到接收到数据了随之耳机里传来了久违的音乐,不过声音很乱,就像快进一样。还是很兴奋 ,毕竟是能出声音了。
为什么声音会乱掉,这个时候开始找问题,一直花了我两天的时间,vs1003的datasheet看了一遍又一遍 ,敢肯定我的程序绝对是没错。那就是硬件了。
分析它的原理开始查问题,看看是那步错了。
vs1003解码MP3数据,你只要把正确的MP3数据传送给它,它就能自动识别你的MP3是多少码率的,然后通过一定的解码速率进行解码。这个时候就有疑问了,既然解码的速率确定了,为了能流畅的播放出音乐来,你给vs1003发送MP3数据的速率必须跟它解码的速率一样,那怎么去保证这两个速度一样呢?如果送给vs1003的数据过快,那我们可以加延时让它一样,那这时候又出问题了,难道每一首不同码率的歌都要去加个延时吗(这里是按发送数据永远比解码速率快的情况来分析),这样肯定是不合理的。不用担心,vs1003为用户准备了0.5k的数据缓冲区做为音频数据的缓冲,这就好像一个漏斗一样,0.5k空间就像漏斗的容量,你只要保证漏斗里边始终有东西,那么漏斗底下就始终有东西流出,保持连续。你给漏斗加料的速度无所谓,只要你别让漏斗里边为空就行。vs1003是一样的为了解码正常,播放流畅,你只要保证数据缓冲区里始终有数据作为待解码对象,这样就可以放出流畅的音乐来。这里又有问题了,我们怎么确定数据缓冲区里到低有没有数据,或者是还有多少,怎么控制发送数据。vs1003也帮你考虑到这一点了,所以他专门设定了一个中断脚DREQ,当DREQ变高时,外部可以至少为vs1003发送 32字节的数据(这是SDI数据,还有一种SCI数据,这里不说了),为了保证播放流畅。当vs1003收到32字节的数据之后他的DREQ脚变为低,此时可以暂时不往里边发送数据,如果数据缓冲区内少于32字节的有效数据,那么vs1003将DREQ置为高电平,此时需要往里边发送数据(对于DREQ脚的变化,网上有异议,这是我个人的理解)。这里你会发现,我之前不是说数据缓冲区是0.5k,为什么每次才32个数据就可以了。vs1003只是设置了一个32byte为标准,当然 你可以当在检测到DREQ脚变高时,往里边一次性发送少于(这是必须的)0.5k的字节,然后再去检测DREQ的状态,当再次变高时 你就可以再往里边发送那么多数据,是可以的。32byte只是一个最低标准。个人理解~~
按这个寻到问题的根源~~~我的DREQ没有在工作,屏蔽了他 播放跟本没变,所以说,我的MCU无法判断vs1003的数据区是否满了 是否需要新数据,这里只是一股脑的往vs1003里灌数据
所以导致我的音乐播放不正常,测量初始化之后的vs1003的DREQ脚,发现竟然出现1.8v,不高不低,处于模糊状态。
确定DREQ脚不能工作,网上寻求答案,对我的情况都没用。之后又翻到pcb图上去,发现一个很重要的地方未连接,就是当用spi模式给vs1003发送数据的时候,其串口RX必须接到IOVDD.
还有一个test脚要接到IOVDD。到此时已经是11点54分,马上要熄灯了。
终于找到一个可行性的问题。
今天一大早,我把那条线补上去,初始化vs1003一测DREQ脚为3.3(高)。很是激动,DREQ可以工作了,那么音乐播放就可以了,哈哈。下载程序测试。
