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