SD卡 攝像頭中擴容卡原理及檢測機制

2021-09-10 23:46:46 字數 2587 閱讀 8698

首先對實現擴容卡的原理做下介紹,有以下幾種可能:

1、只修改了相關暫存器或其它方面的數值,使得sd卡顯示容量大於實際容量,超出實際容量的位址完全無法寫入資料;

2、另一種實現擴容卡的方式是,不僅從數值上改變了容量,還將超出實際容量的位址對映到備份分割槽,使得超出實際容量的部分資料仍舊能夠正常讀寫;

(sd卡除了已用的物理儲存空間外,還保留有一段儲存空間作為備份分割槽,用來替換sd卡使用中產生的壞塊)

3、另一種比較高階的方式是,將超出實際容量的位址重複對映到實際物理儲存空間中;這樣在寫資料時,會動態覆蓋之前寫入的資料,使得超出實際容量的資料能夠正常讀寫,但會損壞舊的資料。

sd卡很多用於智慧型裝置儲存,例如家用語音攝像頭,一般在裝置上格式化後會被裝置寫入一些其自身可識別的索引,裝置檢測到了自己可以認識的索引,就知道卡是可寫入的,不會報格式化或初始化的提示,因此一些廠商會用這部分自己寫入的索引資訊檢測sd卡是否為擴容卡,便於提示使用者卡是否正常,下面為某廠商的網路攝像頭sd卡儲存內容,以此為例介紹下目前主要為三種檢測方法:1、暫存器資訊檢測;2、索引檢測;3、讀寫資料檢測;

1、暫存器資訊檢測

card identification register (cid)有16位元組長,它包含了sd卡的唯一識別資訊,標準的設計要求每張卡片的cid都不相同(之前我們有接到一例幾張卡cid完全一致的現場)。這些資訊是在卡的生產期間被燒錄,主控制器不能修改它們的內容。

其中mid(manufacturer id)資訊標識sd卡製造商,是由sd-3c, llc統一進行管理分配的。比如sandisk為0x02,kingston為0x37,samsung為0x15,該檢測方式不會對知名大廠的產品誤報。

優點:很多擴容卡、假卡廠商會直接將mid欄位置為0x00,在開機、重啟、插卡時,可以通過檢測mid欄位是否為0,來識別擴容卡、假卡。

缺點:1、誤報的可能:sd卡製造廠商比較多,可能一些小廠並未申請mid標識,將自己產品的mid資訊置為0,導致產品誤報;

2、漏報的可能:如果這些小廠將大廠的mid資訊燒錄到自己的產品中,或者隨意燒寫乙個值,此方法將無法檢測。

2、索引檢測

索引檢測主要是檢測3個索引,partition、file_info、event_entry(分割槽、檔案、事件索引);

a.每乙個型別的資料(錄影、)有乙個索引檔案(sys001.bin,sys002.bin…);

b.每個索引檔案有乙個partition結構體,記錄當前寫到哪個資料檔案等資訊;

c.每類資料報含多個資料檔案,每個資料檔案對應乙個file_info索引,記錄檔案中事件個數、起止時間等;

d.每個檔案裡儲存有多個事件,每個事件都對應乙個event_entry索引,記錄事件資料對應的偏移、長度、時間戳等資訊;

索引檔案就是由這三類索引結構體構成,檢測的時機是在格式化的時候檢查所有索引,檢測方法是檢查索引檔案的crc檢驗和,當格式化正常但中間有索引檢測不通過,則顯示疑似擴容卡;

注:索引是單獨存在的,有單獨存在的sys0x.bin檔案(x為1-4,意思分別如下),256m是mp4檔案;

錄影資料檔案(對應.mp4)

普通(對應.pic)

過線統計資料(對應tp00000.bin)

訊息推送(對應.msgpic)

有乙個系統索引檔案儲存sysinfo,其名稱為sys00.bin;2. sys0xb.bin為備份檔案;

3、讀寫資料檢測

錄影資料是以mp4儲存的,mp4檔案具有固定的格式,通過定時檢測已經錄好的mp4檔案的格式,判斷已經儲存的錄影資料是否損壞,來檢測sd卡是否是擴容卡。

(乙個mp4檔案錄滿切換到下乙個時檢測,檢測mp4檔案會檢查對應的file_info和mp4格式的頭部)

該方法肯定能最終檢測出擴容卡,但可能耗時較久(而且表現是一開始插入的時候可能不提示擴容卡,而是在使用期間提示)。同時存在乙個問題是,如果人為改變了錄影資料檔案,則可能誤報。

同時順便介紹下裝置判斷sd卡異常,需要格式化的依據:

1、格式化過程出錯;

2、sys00.bin檔案不存在,或讀寫許可權異常;

3、sd卡中sys00.bin檔案存在且可讀寫,但檔案內容異常;

4、每個資料型別有兩個索引檔案,如錄影有sys01.bin和備份檔案sys01b.bin,如果任一型別的索引檔案和備份檔案同時都不存在或者讀寫許可權異常;

5、各資料型別的索引檔案和其備份檔案都存在,且讀寫許可權正常,但從索引檔案中讀取分割槽資訊失敗,即分割槽資訊異常;

補充:crc檢測原理

其根本思想就是先在要傳送的幀後面附加乙個數(這個就是用來校驗的校驗碼,但要注意,這裡的數也是二進位制序列的,下同),生成乙個新幀傳送給接收端。當然,這個附加的數不是隨意的,它要使所生成的新幀能與傳送端和接收端共同選定的某個特定數整除(注意,這裡不是直接採用二進位制除法,而是採用一種稱之為「模2除法」)。到達接收端後,再把接收到的新幀除以(同樣採用「模2除法」)這個選定的除數。因為在傳送端傳送資料幀之前就已通過附加乙個數,做了「去餘」處理(也就已經能整除了),所以結果應該是沒有餘數。如果有餘數,則表明該幀在傳輸過程**現了差錯。

擴容盤 SD卡擴容

記憶體卡的前世今生 mmc記憶體卡 雖然大家每天都在使用,但早期的手機記憶體卡並不是現在這樣 嬌小 的造型,而且容量也沒有那麼大。其中mmc記憶體卡算是比較早的一種,它是在1997年由西門子及sandisk共同開發而成,基於東芝的nand快閃記憶技術,比採用intelnor快閃記憶技術的cf卡更細小...

SD卡 MMC卡 MS卡 TF卡

sd卡 secure digital memory card 中文翻譯為安全數碼卡 是一種基於半導體快閃記憶器的新一代記憶裝置。sd卡由日本松下 東芝及美國 sd卡的技術是基於 卡 mmc 格式上發展而來,大小和mmc卡差不多,尺寸為32mm x 24mm x 2.1mm。長寬和mmc卡一樣,只是比...

SD卡讀寫 Verilog實現SD卡讀寫

目前常見的sd卡有兩種形式,一種是標準的sd卡,另外一種是tf卡,無論標準的sd卡或者tf卡,其基本協議是相同的,因此對於程式設計來說,這兩種型別的sd卡的讀寫方式是相同的。針對兩種不同型別的sd卡,其引腳介面訊號定義如下圖所示 標準sd卡 tf卡 對於上述的兩種型別的sd卡,都支援兩種操作模式,分...