當前位置:首頁 » 存儲配置 » 存儲器測試

存儲器測試

發布時間: 2023-01-01 08:04:39

① 關於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可以工作了,那麼音樂播放就可以了,哈哈。下載程序測試。

熱點內容
keil編譯步驟 發布:2024-05-19 08:58:12 瀏覽:701
ipad有哪些好用的c語言編譯器 發布:2024-05-19 08:41:56 瀏覽:766
征途手游版腳本 發布:2024-05-19 08:38:11 瀏覽:164
安卓咪咕音樂怎麼錄制視頻 發布:2024-05-19 07:56:06 瀏覽:838
如何搞出超大聲的聽聲辨位安卓版 發布:2024-05-19 07:46:21 瀏覽:927
linux安全模式 發布:2024-05-19 07:27:25 瀏覽:176
為什麼安卓手機安裝不了cpk 發布:2024-05-19 07:22:21 瀏覽:313
pythonempty 發布:2024-05-19 07:15:16 瀏覽:930
路由器虛擬伺服器搭建 發布:2024-05-19 07:15:15 瀏覽:999
方舟編譯器何時推送 發布:2024-05-19 07:15:10 瀏覽:599