在過去的幾年中,我們在消費市場上見證了便攜式手持設備的激增,這些設備通過使用小型,高密度,可移動存儲介質來支持。走進任何一家消費電子產品商店,您都會看到一系列MP3播放器,數碼相機和PDA,擁有數百兆字節的可擴展離線非易失性存儲。憑借這種令人印象深刻的存儲功能,用戶可以下載自己喜歡的 MP3 或在便攜式設備和臺式 PC 之間上傳新貼靠的 JPEG 圖像文件。我的第一臺數碼相機包括一個奇怪的火柴盒大小的卡,可以很容易地彈出并用于將我所有的JPEG文件上傳到PC。此緊湊型閃存?存儲卡(圖1)已成為便攜式緊湊型多媒體文件存儲的事實標準。
如今,CompactFlash 卡插槽存在于數百臺數碼相機、手持式或手掌大小的 PC、MP3 播放器、語音備忘錄記錄器和其他類型的電子設備(包括打印機、心臟監護儀和除顫器)中,可能比任何其他競爭性小型卡都多。緊湊型閃存卡設計小巧、可拆卸且經久耐用,提供從 8 MB 到 1 GB 的尺寸。
除了體積小之外,CompactFlash (CF) 還具有與 II 型 PC 中的任何 PC ATA (IDE) 硬盤、軟盤或 zip 磁盤驅動器一樣運行的優勢。(ATA是原始IBM AT計算機上的標準總線接口,也稱為IDE,用于集成驅動電子。CompactFlash 支持 ATA 命令寄存器集,但它比 IDE 硬盤驅動器更可靠,因為它沒有移動部件。它以傳統硬盤驅動器的速度運行,同時消耗更少的功率。因為它與 ATA 兼容,所以可以像任何硬盤驅動器或軟盤一樣格式化它 — 作為將文件傳輸到個人計算機或從個人計算機傳輸文件的另一種方式。
可以輕松地從已從任何 ATA 兼容設備(如數碼相機或 Palm )中刪除的 CF 卡復制 Windows/DOS 格式的文件?-大小的電腦)。卡上的數據可以通過連接到計算機USB或并行端口的高速、低成本的CompactFlash讀卡器/寫入器傳輸到(或傳出)臺式個人計算機。事實上,Windows 2000 和 XP 將自動識別插入 CF USB 讀卡器/寫入器的 CF 卡,并在 Windows 資源管理器下為該卡分配邏輯驅動器號。然后,任何軟件應用程序都可以將其作為文件存儲進行訪問。將CF卡插入連接到PC的USB讀卡器/寫入器,您喜歡的MP3歌曲標題可以在幾秒鐘內簡單地“拖放”到卡上,準備在便攜式MP3設備上播放。從嵌入式數字信號處理(DSP)的角度來看,CompactFlash是保存記錄的實時數字化數據流以供臨時存儲或離線檢索的好方法。嵌入式系統設計人員已經開始使用它們來擴展處理器有限的外部地址范圍功能。
在評估CompactFlash的使用情況時,設計人員經常會問以下問題:在基于DSP的系統中使用CompactFlash卡有多難?如何將 CompactFlash 物理連接到 DSP?可以在沒有任何外部組件或邏輯的情況下進行接口嗎?使用 DSP 對帶有 CompactFlash 的 ATA 接口進行編程有多難?DSP 能否像基于 Intel 的 PC 那樣支持 FAT-16(16 位群集尋址文件分配表)文件系統?
本文將詳細介紹如何使用ADSP-2191M數字信號處理器為便攜式MP3播放器應用設計無膠水、熱插拔接口的CompactFlash存儲卡。ADSP-2191是一款16位、160 MIPS(百萬條指令/秒)處理器,內置64 K字片內存儲器以及各種存儲器和行業標準外設接口。ADSP-2191M具有低動態功耗,設計用于各種手持便攜式設備,這些設備可能使用緊湊、高密度、可移動存儲介質。
該接口使用ADSP-2191 EZ-KIT Lite評估平臺進行開發和測試。完成的原型最終用作基于ADI公司ADSP-32x DSP的3位雙精度MP219播放器(解碼器)的參考設計。
CFig 概述
1995年,CompactFlash協會(CFA)成立,以開發一種通用的標準接口格式,以便在各種數字系統之間捕獲,保留和傳輸數據(如圖像或音頻文件)。這種合作促成了CompactFlash規范的發布。它定義了一個緊湊、高密度、可移動的存儲接口,基本上是PCMCIA或PC卡規范的縮小版50針,也與IDE硬盤電氣兼容。由于CF卡設計為可拆卸,因此可以在基于有源微處理器的系統中“熱插拔”,而無需系統斷電或硬復位。CompactFlash 標準還支持三種不同的行業標準接口:PC 內存模式、PC 卡 I/O 模式和 True-IDE 模式。使用 True-IDE 模式時,設備可以連接到 IDE 連接器,而無需任何額外的支持電路。
圖2.CF內部框圖。
圖2是各種CompactFlash存儲卡共有的功能圖。隱藏在塑料外殼內的是一個小型印刷電路板(圖3),其中包含閃存控制器、一些數據緩沖存儲器和閃存模塊。閃存控制器芯片執行磁盤仿真軟件,并包含一些符合 ATA 規范的主機可訪問內存映射寄存器。對于主機處理器,閃存控制器看起來像標準 ATA (IDE) 硬盤。主機處理器(可能是 DSP)可以訪問一組 ATA 寄存器以獲取命令、狀態和數據字。
圖3.CompactFlash的印刷電路板內部
為了傳輸數據,主機處理器首先加載七個帶有配置數據的 ATA 寄存器;然后,它通過寫入第八個命令寄存器來執行操作。閃存控制器物理上位于非易失性(即 AND/NAND)內存芯片和外部主機接口之間,用于“模擬”ATA 命令。該卡還包含一個內存緩沖區,該緩沖區由內部閃存控制器控制,用于在外部處理器和內存芯片之間傳輸信息的“扇區”(512字節塊)。閃存控制器負責管理接口協議,并在外部主機處理器和存儲存儲器之間檢索和放置數據扇區。此外,閃存控制器處理糾錯代碼、執行診斷、識別內存缺陷,并在卡處于空閑模式時執行掉電操作。
將CF卡與ADSP-2191M配合使用
ADSP-2191M數字信號處理器(DSP)被選中來實現基于CompactFlash的高性能低成本、高性能MP3播放器的示例,因為ADI公司已經提供了基于ADSP-32x系列的商用雙精度219位解碼器設計。該解決方案最初設計用于從CD驅動器讀取MP3文件。為了演示功能性無膠、熱插拔CF接口,我們開發了CD MP3解碼器的修改版本,以使用ADSP-3 EZ-KIT Lite評估板及其相關軟件支持CF MP2191播放。圖4顯示了基于ADSP-2191 EZ-KIT CF的MP3解碼器系統的框圖。為了識別和讀取MP3 DOS/WIN文件簇,ADSP-2191還執行簡化的FAT-16文件系統,以識別和加載從PC下載到卡的MP3文件。
圖4.EZ-KIT Lite CF MP3播放系統。
ADSP-2191M是一款16位、160 MIPS單芯片微型計算機,針對數字信號處理和其他高速應用進行了優化,將ADSP-219x內核架構與2191個串行端口、64個SPI兼容端口、97個UART端口、3個DMA控制器、16個可編程定時器和通用I/O引腳相結合。ADSP-<>M還集成了<>K字片內存儲器;因此,它具有足夠的片上內部存儲器,可輕松集成:AC-<> 音頻驅動程序、MP<> 解碼器、FAT-<> 文件系統、低級 ATA 命令和主機控制命令,而無需使用外部存儲器。
圖5顯示了與ADSP-8M DSP外部存儲器接口(EMI)端口的CompactFlash 2191位數據接口的功能框圖。CF PC 卡內存模式被選為將 CompactFlash 連接到 DSP 的操作模式。這種默認工作模式允許ATA命令/狀態寄存器簡單地存儲器映射到ADSP-2191的外部地址空間。PC 卡存儲模式訪問與真 IDE 模式非常相似,因為 ATA 寄存器通過 DSP 內核生成的外部存儲器地址進行訪問。但是,雖然真IDE模式是16位方案,但PC卡存儲模式允許8位或16位接口。此外,這兩種模式使用不同的讀/寫控制選通來傳輸數據。正如我們將看到的,這種實現也不需要用于地址解碼的外部支持粘合邏輯,也不需要用于CF熱插拔支持的總線隔離組件。唯一的要求是在卡檢測10(CD1)和就緒/忙碌(RDY/BSY)引腳上包括兩個1 kΩ上拉電阻。
圖5.與ADSP-2191的CF互連框圖
現在考慮 CF 的 8 位內存模式接口。雖然 16 位訪問將數據吞吐量提高 8 倍,但 8 位數據總線將節省 16 位實現所需的 <> 條額外數據線。
為了對卡內的 ATA 寄存器進行尋址,DSP 的 A[10:0] 地址引腳連接到 CF 的 A[10:0] 引腳(有關 DSP 的 ATA 寄存器存儲器映射,請參閱表 1)。
表 1.ADSP-2191轉CF的“PC存儲器模式”地址映射真值表。
DSP 外部存儲器地址 | A13 [CE2] |
A12 [CE1] |
A11 [注冊] |
答10 | A[9:4] |
答[3:0] (十六進制) |
RD [OE] = 0 ATA 寄存器讀取 | WR [WE] = 0 ATA 寄存器寫入 | |
0x402800 | 1 | 0 | 1 | 0 | X | 0 |
甚至 WR 數據 |
甚至 WR 數據 | |
0x402801 |
1 | 0 | 1 | 0 |
X |
1 | 錯誤 | 特征 | |
0x402802 |
1 | 0 | 1 | 0 |
X |
2 | 扇區計數 |
扇區計數 |
|
0x402803 |
1 | 0 | 18 | 0 |
X |
3 |
扇區編號 |
扇區編號 |
|
0x402804 |
1 | 0 | 1 | 0 |
X |
4 | 氣缸Lo |
氣缸低 |
|
0x402805 |
1 | 0 | 1 | 0 |
X |
5 |
氣缸嗨 |
氣缸嗨 |
|
0x402806 |
1 | 0 | 1 | 0 |
X |
6 | 選擇卡/頭 |
選擇卡/頭 |
|
0x402807 |
1 | 0 | 1 | 0 |
X |
7 | 地位 | 命令 | |
0x402808 |
1 | 0 | 1 | 0 |
X |
8 | 重復偶數 RD 數據 |
重復偶數 WR 數據 |
|
0x402809 |
1 | 0 | 1 | 0 |
X |
9 |
重復奇數 RD 數據 |
重復奇數 WR 數據 |
|
0x40280D |
1 | 0 | 1 | 0 |
X |
D | 重復錯誤 | 重復功能介紹 | |
0x40280E |
1 | 0 | 1 | 0 |
X |
E | 替代狀態 | 設備控制 | |
0x40280F |
1 | 0 | 1 | 0 |
X |
F | 驅動器地址 | 保留 | |
0x402C08 |
1 | 0 | 1 | 1 |
X |
8 | 甚至研發數據 |
甚至 WR 數據 |
|
0x402809 |
1 | 0 | 1 | 1 |
X |
9 |
ODD WR 數據 |
ODD WR 數據 |
|
當 ALL 為“0”時激活 REG 引腳。當 A1 為“12”時激活 CE0 引腳。 CE2 被 A13 停用,設置為 “1” 對于 8 位訪問。 |
熱插拔 CompactFlash 時的主機-處理器總線隔離問題
CompactFlash的設計使得在連接總線信號之前可以先連接電源引腳。這在 CompactFlash 規范中定義為建議 CF 公頭 50 引腳接頭上的電源引腳比其他引腳長,并且卡檢測引腳比其他引腳短。這里的預期是,在插入卡時,引腳長度的差異將允許首先向卡通電(在所有其他地址和數據引腳連接到主機系統之前),并且隨著插入完成,卡檢測引腳將連接并向主機發出信號,表明卡已插入并準備好訪問。
但是,這仍然不足以保護主機處理器在將 CompactFlash “熱插拔”或“熱插拔”到其主機插槽時免受損壞。主機處理器的地址和數據總線需要與CompactFlash器件在進行POR(上電復位)時以及其內部引腳電容器充電時產生的瞬變隔離。插入卡后,這些操作最多可能需要 100 毫秒。主機的運行時系統應設計為在將 CF 插入插槽后,延遲執行外部訪問并主動驅動外部總線至少 100 毫秒,從而避免與 CF 的 POR 序列發生總線爭用。可能導致主機針腳立即損壞;或者,在數十次甚至數百次插槽插入后,可能會長期發生損壞,具體取決于總線爭用的持續時間。
在插入卡后的POR階段,可以做些什么來防止總線爭用?最常用的設計方法是使用緩沖器或雙向總線收發器隔離地址和數據總線,這會將地址和數據線置于高阻抗狀態,直到被RD或WR選通激活(請參閱上一期中有關總線開關的文章)。
但是,使用ADSP-2191M DSP時,有一個有吸引力的選擇,無需外部總線收發器芯片:ADSP-2191M包括一個名為BR(總線請求)的引腳,它使DSP的地址和數據引腳模仿雙向總線收發器芯片或緩沖器的行為,這樣當BR被驅動為低電平時,DSP的所有地址, ADSP-2191外部端口上的數據和存儲器控制選通將進入高阻抗狀態,其行為類似于輸入。總線請求通常是DSP主機處理器使用的功能,允許主機控制外部總線并防止DSP嘗試外部存儲器訪問。當使用BR(總線授予)向主機授予外部總線時,主機可以訪問相同的外部存儲器或訪問DSP的外部端口以進行主機DMA傳輸。但是,為了完全優化無膠 CF 接口,我們可以使用 DSP 自己的標志或 GPIO 引腳來控制 BR 的狀態以禁用外部總線。
對于不需要外部存儲器或主機并行連接的MP3播放系統(主機處理器也可以使用SPI端口來控制MP3播放器的操作),BR引腳可以免費使用,因此可以由DSP本身控制。在軟件控制下,DSP 上可用的額外標志引腳可用于控制在 CompactFlash 卡插入和取出期間激活和停用“熱”DSP 總線。在此描述的系統中,可編程I/O標志引腳PF6用于驅動BR。
最初,在ADSP-2191M上電并執行初始化例程后,它首先通過總線請求斷言禁用外部總線,以確保插入CompactFlash器件是安全的。然后,ADSP-2191M通過定期輪詢連接到配置為輸入的PF1標志引腳的CD2線來檢測卡是否已插入(參見圖5中的BR連接)。一旦檢測到CD1為低電平,ADSP-2191M將使用延遲環路停滯幾百毫秒(以允許內部引腳電容的100 ms上電復位和充電),然后通過釋放總線請求引腳(同樣連接到DSP自己的標志引腳,配置為輸出并通過軟件控制)使外部總線脫離其高阻抗狀態。總線激活后,ADSP-2191M復位CF的ATA寄存器,等待最短CF復位周期,然后輪詢ATA狀態寄存器,以確定卡何時準備好進行讀/寫操作。
結論
ADSP-2191M DSP非常適合需要使用緊湊、高密度、可移動非易失性存儲卡的低成本、低功耗便攜式應用。它不需要隔離緩沖器、離散地址解碼或額外的粘合邏輯。為了支持Compact閃存的熱插拔,ADSP-2191M通過使用其總線請求引腳,提供了在卡插入期間禁用外部地址和數據總線的固有功能。當首次向CompactFlash存儲卡供電時,當它執行上電復位操作并為內部引腳電容器充電時,這種總線隔離至關重要。還包括一個基于ADSP-2191 EZ-KIT Lite的完整參考設計,以及一個DSP匯編語言程序示例,用于執行ATA命令,在ADSP-2191和CompactFlash之間傳輸數據。
審核編輯:郭婷
-
播放器
+關注
關注
5文章
398瀏覽量
37421 -
接口
+關注
關注
33文章
8601瀏覽量
151166 -
信號處理器
+關注
關注
1文章
254瀏覽量
25275
發布評論請先 登錄
相關推薦
評論