采用ADSP-2191M数字信号处理器的无胶水、热插拔CF闪存卡接口

描述

在过去的几年中,我们在消费市场上见证了便携式手持设备的激增,这些设备通过使用小型,高密度,可移动存储介质来支持。走进任何一家消费电子产品商店,您都会看到一系列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之间传输数据。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分