无线电电子与电气工程百科全书 MP3 播放器 - PC 机顶盒。 无线电电子电气工程百科全书 引起读者注意的MP3播放器是一种连接到计算机并行(LPT)端口的MP3解码器设备。 它可以用在固定音乐中心或汽车中(当用于控制和存储微控制器上任何类型的计算机或设备的信息时),以扩展“慢速”计算机的功能等。 MP3、MPEG-1* 第 3 层、MPEG 音频是数字化音频流或文件的压缩技术的名称。 MPEG编码的基本特征是有损压缩。 使用 MP3 方法打包和解包音频文件后,结果与原始“逐位”不完全相同。 相反,打包有目的地从打包信号中排除非必要成分,这导致压缩比极大增加。 根据所需的音质,MP3方法可以将数字音频信号压缩十倍或更多。 因此,一张具有可接受音质的压缩形式音频 CD 的音乐作品仅占用 60...70 MB。 如今,这种格式变得越来越流行。 来自不同公司的数十种设备使用各种信息载体进行批量生产:存储卡、CD、硬盘驱动器。 有许多业余设备,例如可以在互联网上找到其描述 [1],从具有软件数据解码功能的计算机到具有硬件解码功能并能够同时使用多种不同媒体的设备。 然而,将 MP3 播放器与笔记本电脑一起使用,即使使用低性能处理器(286、386、486)(可以在收音机市场上以少量费用购买),与所有其他设备相比也具有优势。 首先,对于价格——微控制器、液晶显示器和其他部件的成本比一台旧笔记本电脑还要高。 其次,在功能方面 - 具有高分辨率和灰度(甚至彩色)的屏幕、大量控制键、同时将计算机用于其他目的的能力(例如,作为时钟、控制各种设备) )。 第三,在灵活性方面——软件是用高级编程语言编写的,可以轻松快速地进行更改,而无需使用计算机本身的程序员。 MP3播放器的框图如图1所示。 1、可以看到,连接到计算机的并口,由信号电平转换器U3、硬件MP2解码器U1和电源AXNUMX组成。 该设备的瓶颈是计算机并行端口的低带宽。 在基于 Intel 486DX-33 处理器、具有 SPP 端口(标准并行端口)的计算机上进行测试时,音乐作品无卡顿播放的最大数据流为 128 Kbps。 在具有并行端口 EPP(增强型并行端口)的计算机上,交换速度达到 0,5.. 2 MB/s(与设备的交换速度要低得多,因为数据交换仅沿着其中一根信号线发生,并且数据门控由软件执行)通常会再现 192 Kbps 及更高的流。 如果需要,要将设备与计算机连接,您可以使用连接到 ISA 总线的接口,如 [2] 中所述,并对软件稍加修改。 然而,在这种情况下,设备的范围会缩小——它只能连接到台式电脑,因为笔记本电脑通常没有这样的总线。 该装置的原理图如图所示。 2. 逻辑电平转换器在具有集电极开路的 NOT 元件(微电路 DD1、DD2)上实现,并将 TTL 电平转换为具有 3 V 高电平的逻辑电平,反之亦然。 DD3 芯片(芬兰公司 VLSI Oy 的 VS1001k)是一款数字信号处理器(Digital Signal Processor - DSP),用于 MPEG 第 1、2 和 3 层的硬件解码[3, 4]。 其框图如图所示。 3. 该芯片包含一个低功耗的高性能 DSP 内核 (VS_DSP)、工作存储器、用于用户应用的程序 RAM (4 KB) 和数据 RAM (0,5 KB)、串行控制和数据接口、高质量 DAC以及耳机的 3H 放大器。 VS1001k 通过串行总线接收输入数据,该总线作为系统中的从设备连接。 输入流被解码并通过混合模拟/数字音量控制传递到 18 位 delta-sigma DAC。 解码通过串行控制总线进行控制。 除了简单的解码之外,您还可以添加特殊的应用程序 - DSP 效果,它们位于用户的 RAM 中。 为了控制芯片和传输MP3数据流,使用了两条总线:用于控制的SCI(串行控制接口)和用于数据传输的SDI(串行数据接口)。 这些公交车线路的用途如表 1 所示。 VS1001k 包含 15 个 SCI 寄存器(表 2)。 硬件复位后,它们全部设置为 0。 MODE寄存器用于控制VS1001的操作。 表中给出了其位的名称、功能和描述。 3. STATUS 寄存器包含有关芯片当前状态的信息。 位1和0用于控制模拟输出电平(0 - 0 dB,1 = -6 dB,3 - -12 dB),位2 - 关闭微电路模拟部分的电源(当它是设置为 XNUMX,它会关闭)。 写入 VOL 寄存器(见下文)会自动设置模拟输出信号电平,用户不必担心其状态。 如果时钟频率不是 24,576 MHz(必须是 2 kHz 的倍数),则使用 CLOCKF 寄存器。 该寄存器的值通过公式 CLOCKF = ХТ1/2000(ХТ1 - 时钟频率,以赫兹为单位)计算。 该寄存器可以取0到32767之间的值,但更大的值受到芯片最大时钟频率(32 MHz)的限制。 将寄存器的最高有效位设置为 1 可以启用内部倍频器。 时钟发生器频率可加倍至 15 MHz。 在解码 MP3 数据之前必须设置 CLOCKF 寄存器,否则将无法正确播放。 音频数据的最大采样率和输入MP3数据流的速度取决于时钟频率。 例如,时钟发生器频率为12,288 MHz时,微电路解码音频数据的采样频率为24 kHz,流速高达96 kbit/s;频率为22,580 MHz时,采样频率为44,1 kHz流量高达160kbit/s,可变码流无故障处理速度不超过256kbit/s。 如果时钟频率为 24,576 MHz,则所有音频数据的解码采样频率高达 48 kHz,速率高达 192 Kbps;频率为 28 MHz 时,最大速率高达 320 Kbps 的码流当处理正确的流时,DECODEJTIME 寄存器包含当前解码时间(以秒为单位)。 AUDATA 寄存器的位 8-0 包含数据流速率值(以千位每秒为单位)(如果是可变的,则包含当前流率),位 12-9 包含采样频率索引(表 4)。 位 14 和 13 未使用,并且始终设置为 0。位 15 表征音频数据的类型(0 - 单声道,1 - 立体声)。 使用 WRAM WRAMADDR AIADDR 寄存器,您可以在芯片上加载和运行用户编写的应用程序,例如混合通道、在播放单声道信号时创建立体声效果、引入数字均衡器。 此类应用程序和开发工具的示例可以在芯片制造商的网站上找到。 然而,应该记住,所有这些都增加了数字信号处理器的负载,并且其性能受到限制。 例如,如果时钟速度为 24,576 MHz,并以 128 kHz 的采样率解码 44,1 Kbps 的数据流,则只有大约 28% 的空闲处理器时间。 当频率响应扩展器被打开(通过MODE寄存器的SM_BASS位)时,数字信号处理器的性能额外被浪费了6,5%。 HDAT0 和 HDAT1 寄存器包含有关从当前 MPEG 数据流中提取的音乐片段标题的信息。 VOL 寄存器用于音量控制。 在每个通道中,该值可以在 0 到 255 之间变化(对应于以 0,5 dB 步长从最大电平到零的信号衰减)。 对于左通道,该值乘以 256,并添加到右通道的值。 因此,要获得最大音量,寄存器必须包含 0,并且完全静音 - 65535。硬件“重置”后,设置最大音量;软件“重置”不会更改设置的音量。 当您设置最小音量(两个通道均为255)时,模拟部分的电源将关闭,并伴有咔嗒声。 如果您在两个通道中使用最大值 254 (0xFEFE) 来关闭声音,则可以将其排除。 该器件使用 SHARP 的 PQ3VZ1 芯片作为 20 V 电源稳压器 (DA51)。 输出电压 Uout(负载电流高达 1,5 A 时在 20 ... 0,5 V 范围内)通过公式 Uout = Uobr (1 + R3 / R4) 计算,其中 R4 = 1 kOhm,参考电压 Uobr = 1,25、3 V。在这种情况下,R1,5 × 1,25 kOhm,Uout × 1 (1,5 + 1 / 3,125) × XNUMX V。 为了将模拟部分和数字部分的电源电路分开,使用滤波器扼流圈L1-L3和电容器C3-C6。 该芯片具有内置电源开/关功能,可用于便携式版本的设备。 控制设备的软件是用C语言编写的,必须在计算机上编译和定位。 作者使用Borland C编译器。 为了进行控制,使用了以下函数,这些函数在 vs1001.h 文件中定义: void SCIWrite(int aress, int data) - 写入 SCI; int SCIRead(int aress) - 读取 SCI; void SDIWrite(int data) - 写入 SDI; void xReset(void) - 硬件“重置”; int DREQ(void) - 读取 DREQ 信号的值。 该程序的工作原理如下:
如果需要,设置其余寄存器,例如 VOL、MODE 等。然后通过 DREQQ 函数检查 DREQ 输出的状态。 如果将其设置为 0(DREQQ 函数返回 0),则可以从 MP3 文件发送数据。 * 缩写 MPEG 是“运动图像专家组”的缩写,是 ISO(国际标准化组织)专家组的名称,该专家组致力于开发视频和音频数据的编码和压缩标准。 通常使用缩写词 MPEG 来指代该组织制定的标准。 在最简单的情况下,程序如下所示(mp3play.cpp): 当播放下一个文件时,需要对VS1001k芯片进行软件“复位”(通过将SCI MODE寄存器的SMRESET位设置为1)。 检查设备的功能从 DD3 芯片的模拟部分开始。 在所有 UDDA、UDDD 引脚上。 以及xRESET和TEST0应该有大约+3V的电压,并且在RCAP引脚处大约有+1,3V。如果后者是0或UD DA,则VS1001的模拟部分有故障。 当解码器的硬件“复位”施加到 xRESET 引脚低电平时,会发生以下情况:xRESET 上的电压恢复为 4096 后 6000 个时钟周期后,DREQ 引脚上应出现低电平,该电平应变为高电平XNUMX 个时钟周期后。 如果该引脚上的信号电平不按规定顺序变化,则说明芯片内部软件有故障。 然后检查 SCI 总线的操作。 为此,将最大音量值写入VOL寄存器,然后写入OxFFFF值,这将关闭VSl001k芯片的模拟部分。 因此,连接到 XS2 插孔的耳机应该会听到咔哒声。 以下程序片段 (scitest.cpp) 演示了这一点:输出将产生五次点击,周期为 0,5 秒: 现在您需要检查 SCI 寄存器的读数。 为此,请向 VOL 寄存器写入一个值,例如 12345,然后从该寄存器读取信息并比较结果。 如果测试成功,计算机显示屏将显示“SCI Read Test Passed”消息;否则,“SCI Read Error”(sciread.cpp)。 接下来,检查SDI 中的记录。 使用微电路中内置的特殊测试可以很方便地在模拟输出处产生正弦信号。 要启用测试,需要通过 SDI 传输八字节序列 0x53 OxEF Ox6E n 0 0 0 0,其中 n = 48...119(由用户选择)。 信号参数由表确定。 5,其中采样率指数为Fsldx = (n - 48)mod9,样本数指数为FSin = (n - 48)/9。 例如,在 n = 62(在此情况下 n - 48 = 14)时,Fsldx = 5 且 FSin = 1。值 Fsldx = 5 对应于 16000 Hz 的采样率,值 FSin = 1-16 个样本。 因此,在输出处我们将得到频率为 16000/16 = 1000 Hz 的正弦信号。 要退出测试模式,请通过 SDI 传输字节序列 0x45 0x78 0x69 0x74 0 0 0 0。 以下程序片段 (sinetest.cpp) 演示了此测试:在模拟输出上,您可以收听频率为 1 kHz 的信号 5 秒: 要检查VS1001k芯片的内存,需要向SDI发送八字节序列0x4D OxEA 0x6D 0x54 0 0 0 0,执行此命令后,必须等待500个时钟发生器周期。 测试结果可以从SCI寄存器HDAT000中读取。 接收到的数据解释如下:如果该位设置为 0,则内存测试通过(表 1)。 如果测试成功,计算机显示屏将显示消息“内存测试成功完成”,否则显示“内存错误 xxxxx”,其中 xxxxx 是从 HDATO 寄存器读取的值。 这是内存测试程序(memtest.cpp)的片段: 要检查 SCI 寄存器,需要将八字节序列 0x53 0x70 0xEE n 0 0 0 0 发送到 SDI,其中 n 是测试的寄存器编号。 读取指定寄存器的内容并将其复制到 HDAT0 寄存器中。 如果需要检查HDAT0寄存器,则将其值复制到HDAT1寄存器。 该装置安装在按图4所示制作的印刷电路板上。 20. 安装时,将镀锡线插入最小直径接触垫围成的孔中,并将其焊接到板两侧的印刷导体上。 您可以使用任何可以获得 51 V 输出的微电路稳压器(例如 LM3)来代替 PQ317VZ1。 任何电感为 3 μH 的扼流圈 L10-L1.1。 集电极开路输出的变频器DD1.6-DD2.1、DD2.3-DD155可以是K531、KR555、K1533、KR1001系列。 不希望用具有其他字母索引的设备(以前的版本)替换 VSXNUMXk 芯片,因为它们有许多缺陷。 文学
作者:V. Kardapolov,克拉斯诺达尔边疆区第比利斯村 查看其他文章 部分 电脑. 读和写 有帮助 对这篇文章的评论. 科技、新电子最新动态: 用于触摸仿真的人造革
15.04.2024 Petgugu全球猫砂
15.04.2024 体贴男人的魅力
14.04.2024
其他有趣的新闻: ▪ 木废电池 ▪ Epson PowerLite Home Cinema 2 3D/2030D 投影机
免费技术图书馆的有趣材料: ▪ 文章 为什么吉姆宾波本威士忌被称为“魔鬼的份额”? 详细解答 ▪ 文章 检测器上的 KB 接收。 无线电电子电气工程百科全书 本页所有语言 www.diagram.com.ua |