当前位置: 首页 > news >正文

DSP56720/21 EMC与ESAI时钟连接配置详解与实战调试

1. 项目概述与核心价值

在嵌入式音频处理系统的硬件设计中,有两个看似独立但实则紧密相关的核心模块常常让工程师感到棘手:一个是负责与外部SDRAM、Flash等存储设备高效通信的外部存储器控制器,另一个则是负责多路音频数据串行收发的增强型串行音频接口。当你在使用像Freescale(现NXP)的Symphony DSP56720或DSP56721这类高性能多核音频处理器时,如何正确配置EMC以确保大数据量的音频样本、滤波器系数能够被快速存取,同时又如何灵活运用ESAI模块有限的引脚资源来实现多路音频流的同步,就成了项目成败的关键。

我遇到过不少项目,前期功能调试都正常,一到压力测试或多通道并发时就出现数据错乱、音频爆音甚至系统死机。追根溯源,问题往往不是出在算法本身,而是底层硬件接口的配置细节没吃透。特别是DSP56720/21这类引脚数量不同的封装(80脚与144脚),其ESAI的时钟引脚可用性差异巨大,如果还按照默认配置或想当然地去连线,时钟信号路径错误,数据同步自然无从谈起。而EMC的配置更是“差之毫厘,谬以千里”,一个等待状态参数设错,轻则性能下降,重则根本无法启动。

本文将结合手册内容与我的实际调试经验,为你彻底拆解DSP56720/21的EMC与ESAI时钟连接配置。我会先带你理解EMC的整体架构与三种控制机器(GPCM、UPM、SDRAM)的工作逻辑,然后给出具体的寄存器配置步骤与参数计算依据。接着,我们会深入ESAI模块,详解在不同封装下,如何通过EICCR寄存器巧妙地“借用”或“共享”时钟引脚,实现多路音频接口的协同工作。最后,我会分享几个在真实项目中踩过的坑和排查技巧,比如如何通过示波器快速定位EMC时序问题,以及如何验证ESAI内部时钟连接是否真正生效。无论你是正在评估该芯片,还是已经深陷调试泥潭,相信这篇近万字的详解都能给你带来直接的帮助。

2. EMC架构深度解析与设计思路

外部存储器控制器,顾名思义,是芯片内部与外部存储世界沟通的“海关”与“调度中心”。在DSP56720/21中,EMC的设计目标非常明确:用一套硬件接口,通过软件配置,无缝对接各种速率、各种协议的外部存储器,从而最大化系统的灵活性与性价比。

2.1 EMC的三大控制引擎:GPCM、UPM与SDRAM

EMC内部并非只有一种工作模式,它集成了三个独立的“控制引擎”,你可以根据每个存储Bank的实际需求,为其分配合适的引擎。这种设计理念非常高明,避免了为每种存储器都设计专用硬件的浪费。

通用片选机器:这是最简单、最直接的模式。你可以把它理解为一个“可编程的脉冲发生器”。你通过配置ORx寄存器中的SCYACSTRLX等参数,来定义一次访问的时序波形:地址有效后多久发出片选信号、读写信号持续多少个时钟周期、是否需要插入等待状态等。GPCM模式天生适合连接那些时序简单、无需复杂协议控制的设备,比如异步SRAM、NOR Flash、FPGA或一些慢速外设。它的优势是配置直观,时序完全由你定义的几个参数决定。

用户可编程机器:这是EMC的“瑞士军刀”,功能最为强大,也最为复杂。UPM内部有一个可编程的状态机阵列。你可以预先编写好一整套控制信号(如LGPL0-LGPL5)的跳变序列,并将这个序列写入到UPM的RAM数组中。当处理器访问配置为UPM模式的存储Bank时,EMC就会像执行一段微程序一样,严格按照你预设的序列来驱动外部引脚。这使得UPM可以模拟出几乎任何存储器的时序,包括那些有特殊预充电、刷新要求的DRAM、页模式Flash,甚至是某些自定义总线协议的设备。代价就是你需要深入理解设备手册的时序图,并将其“翻译”成UPM的指令序列。

同步DRAM机器:这是为高性能SDRAM量身定制的硬件状态机。它原生支持JEDEC标准的SDRAM操作命令,如激活、预充电、读写、刷新等。你只需要配置几个关键参数,如行列地址宽度、CAS延迟、刷新周期等,剩下的复杂协议交互完全由硬件自动完成。SDRAM机器还支持4路Bank交错访问和4个页缓存,能显著提升大数据量连续访问的吞吐率。对于需要高带宽存储音频缓冲区的应用,SDRAM模式是首选。

2.2 信号复用与引脚节约艺术

仔细看EMC的外部信号描述表,你会发现大量引脚是复用的。例如,LOE/LSDRAS/LGPL2这个引脚,在GPCM模式下它是输出使能,在SDRAM模式下它是行地址选通,在UPM模式下它又变成了一个通用的可编程信号线LGPL2

这种复用设计是嵌入式芯片的典型做法,旨在有限的引脚数量下提供尽可能多的功能。但这要求工程师必须非常清楚自己当前配置的是哪种模式,否则很可能出现“你以为它在发读使能,实际上它在发行选通”的灾难性错误。配置时的一个黄金法则就是:先确定每个存储Bank使用的机器类型,再根据该类型去理解每个引脚在当前上下文中的真实含义。

2.3 地址空间映射与Bank管理逻辑

EMC管理着8个独立的存储块。每个块都有自己的一对基地址寄存器BRx和选项寄存器ORxBRx定义了这块存储区域的“门牌号”(基地址)和“住户类型”(访问空间类型:X、Y、P数据或P代码)。ORx则定义了这块区域的“占地面积”(通过地址掩码AM确定)和“居住规则”(时序参数、机器类型等)。

当CPU发起一次访问时,EMC会拿访问地址与8个BRx中定义的基地址进行比对。这里的比对不是精确相等,而是“掩码后比对”。ORx中的地址掩码位AMXAM决定了BRx中哪些位需要参与比对。例如,如果你将AM的低几位设为0(掩码),那么只要地址的高位匹配,即使低位不同,也会命中该Bank。这允许你将一个物理上连续的存储设备,映射到多个不连续的逻辑地址空间,为软件设计提供了灵活性。

注意:复位后,只有Bank 0(BR0/OR0)是默认使能的,且配置为GPCM模式。这意味着如果你要使用SDRAM或UPM,或者启用其他Bank,必须在系统初始化早期就完成相关寄存器的配置,否则访问这些区域会导致总线超时错误。

3. EMC寄存器配置实战与参数精算

理解了架构,我们进入实战环节。配置EMC本质上就是填写一系列寄存器表格。手册里的寄存器描述虽然详尽,但缺乏场景化的解读。下面我将以连接一片16位位宽、70ns访问时间的异步SRAM(使用GPCM模式)和一片32Mbit的SDRAM为例,带你一步步完成配置,并解释每一个参数设置的缘由。

3.1 连接异步SRAM的GPCM模式配置

假设我们要将一片512K x 16bit的异步SRAM映射到DSP的X数据空间,地址从0x200000开始。

第一步:计算地址掩码

存储块大小 = 512K字 = 2^19字。在24位地址系统中,我们需要掩码掉低19位地址(A0-A18),让它们不参与Bank匹配。BRxBA字段对应地址位A23-A14,ORxAM字段对应掩码A23-A14。对于512K字,地址范围是0x200000-0x2FFFFF

  • 基地址BA我们设为0x20(对应A23-A14)。
  • 掩码AM需要让A23-A14中,与0x20不同的位参与比较,相同的位掩码掉。由于我们只映射一个连续块,通常将掩码设置为对应块大小的连续高位为1,低位为0。512K字需要掩码A18-A0,所以AM对应A23-A14,其中A18-A14需要被掩码(��为0),A23-A19需要参与比较(设为1)。因此AM=1111 1000 00(二进制),即0x3E0

第二步:配置BR0寄存器

  • BA(位23-14, 位15): 设置为0x20。注意位15是BA的bit13,也需要相应设置。
  • XBA(位14-13): 因为我们只映射到X空间,所以设为00
  • WP(位8): 写保护,根据需求设置,这里设为0(可读写)。
  • MSEL(位7-5): 选择GPCM模式,设为000
  • V(位0): 必须设为1,使能该Bank。

第三步:配置OR0寄存器(GPCM模式)

这是时序配置的核心,参数需要根据SRAM的数据手册计算。

  1. SCY(位7-4) - 等待状态数:这是最重要的参数。假设DSP总线时钟为100MHz(周期10ns),SRAM访问时间为70ns。GPCM一个基本总线周期(无等待)至少需要2个时钟周期(地址建立+数据采样)。所以,总周期需 >= 70ns / 10ns = 7个时钟周期。因此需要插入的等待状态数至少为 7 - 2 = 5。我们设为0101(5个等待状态),留有一定余量。
  2. ACS(位10-9) - 地址到片选建立时间:决定地址稳定后,多久发出LCSx。对于普通SRAM,通常希望地址稳定后片选再有效。如果CLKDIV=4,设置ACS=11(半个总线时钟后发出片选)可以提供更稳定的地址建立时间。
  3. TRLX(位2) - 放松时序:如果SRAM速度很慢,可以设为1,它会自动将SCY定义的等待状态数翻倍,并提供更长的保持时间。
  4. EHTR(位1) - 读访问扩展保持时间:与TRLX配合,用于在读访问后插入空闲周期,避免总线冲突。根据系统总线负载情况设置,如果总线上只有该SRAM,可以设为0。
  5. BCTLD(位12) - 缓冲控制禁用:如果外部使用了数据缓冲器(如74LVTH16245),并通过LBCTL引脚控制其方向,则此处设为0(使能LBCTL)。如果未使用,可设为1以禁用该引脚输出。

配置完成后,访问X空间0x200000-0x2FFFFF的指令,EMC就会按照你设定的GPCM时序波形去驱动SRAM。

3.2 连接SDRAM的配置要点

SDRAM的配置更为复杂,涉及模式寄存器、刷新定时器等。这里概述关键步骤:

  1. 配置BRxORx:选择SDRAM机器(MSEL=011),设置正确的基地址、地址掩码和空间类型。
  2. 配置SDRAM专用寄存器
    • SDMR:设置SDRAM模式寄存器值,包括CAS延迟、突发长度、突发类型等。这个值需要写入到SDRAM芯片的模式寄存器中,EMC会在初始化序列中自动完成。
    • SRT:设置SDRAM刷新定时器。刷新周期需满足SDRAM芯片要求(通常为64ms内刷新8192行)。计算公式为:刷新计数器值 = (刷新周期 / 行数) / 总线时钟周期。例如,总线时钟100MHz,刷新周期64ms,行数8192,则计数间隔约为7.8us,对应780个时钟周期。SRT应设置为这个值。
  3. 执行初始化序列:在配置完所有寄存器后,需要向SDRAM的“初始化地址”(通常是一个特定的、在BRx定义范围内的地址)执行一次写操作。这个写操作本身不写入数据,但会触发EMC内部状态机执行一整套SDRAM上电初始化流程,包括预充电所有Bank、执行多个刷新周期、加载模式寄存器等。

实操心得:SDRAM初始化失败最常见的原因是时序参数不匹配,尤其是TRPTRCDTRC等参数在ORx中的设置(对于DSP56720,这些参数可能集成在SDMR或通过其他方式体现,请仔细查阅手册对应章节)。务必根据SDRAM芯片手册和DSP总线频率精确计算。另一个坑是电源时序,确保SDRAM的供电、时钟在控制器开始初始化之前已经稳定。

4. ESAI内部时钟连接机制详解

现在我们把目光转向音频接口。DSP56720/21拥有多个ESAI模块,用于连接ADC、DAC、数字音频接口接收器等。但在引脚受限的封装(如80-pin)中,并非所有ESAI的时钟引脚都被引出。这时,内部时钟连接功能就成了节省引脚、实现多路音频同步的生命线。

4.1 引脚可用性与核心需求

根据手册,在144脚封装中,ESAI、ESAI_1、ESAI_2、ESAI_3都有相对完整的时钟和数据引脚。但在80脚封装中,情况变了:

  • ESAI_1ESAI_2时钟引脚(如HCKR_1HCKT_1等)不可用
  • 但它们的数据引脚(SDIx_1SDOx_1等)仍然可用。

这就产生了一个核心需求:如何让没有专用时钟引脚的ESAI_1ESAI_2模块工作?答案就是使用EICCR寄存器,将它们内部的时钟信号,连接到其他有引脚引出的ESAI模块的时钟线上。

4.2 EICCR寄存器:时钟路由的指挥棒

EICCR寄存器是控制内部时钟连接的总开关。值得注意的是,DSP的两个内核各有自己的EICCR

  • DSP Core-0的EICCR:控制ESAIESAI_1之间的时钟连接。
  • DSP Core-1的EICCR:控制ESAI_2ESAI_3之间的时钟连接。

对于每一对需要连接的时钟信号(例如ESAISCKRESAI_1SCKR_1),EICCR中都有对应的2个控制位CLOCK_NAME[1:0]。其含义至关重要:

控制位 [1:0]功能描述引脚控制权对方模块引脚设置
00默认。内部时钟连接禁用。两个模块的时钟信号各自通向自己的物理引脚(如果存在)。--
01内部时钟连接禁用。功能与00相同。--
10启用连接ESAI的时钟与ESAI_1的时钟内部连通ESAI控制时钟引脚的输入/输出方向。ESAI_1对应的时钟引脚必须配置为输入
11启用连接ESAI的时钟与ESAI_1的时钟内部连通ESAI_1控制时钟引脚的输入/输出方向。ESAI对应的时钟引脚必须配置为输入

关键解读

  • 模式10:适用于ESAI_1需要工作,但其时钟引脚未引出的场景。我们将ESAI的时钟引脚(如SCKR)作为主时钟源,ESAI_1模块接收这个时钟。此时,ESAI的时钟引脚配置决定信号是输入(接收外部主时钟)还是输出(产生主时钟),而ESAI_1的对应时钟引脚在软件上需设为输入,尽管物理上它不存在。
  • 模式11:与10相反,由ESAI_1模块来控制时钟引脚。这适用于ESAI的时钟引脚未引出(在某些配置下可能),而ESAI_1的时钟引脚可用的场景。
  • “必须配置为输入”:这是一个极易忽略的软件配置步骤。即使物理引脚不存在,你也必须在ESAI_1的引脚控制寄存器中,将对应的时钟引脚方向设置为输入。否则,内部连接可能无法正确建立,导致ESAI_1收不到时钟信号。

4.3 配置流程与示例

假设我们在DSP56721 80-pin封装中,需要让ESAI_1作为从设备,使用ESAI的接收时钟SCKR

  1. 硬件连接:将外部音频主设备(如编解码器)的位时钟(BCLK)连接到DSP的ESAI.SCKR引脚。
  2. 软件配置: a.配置ESAI模块:将ESAISCKR引脚配置为输入(因为时钟来自外部主设备)。 b.配置ESAI_1模块:在ESAI_1的引脚控制寄存器中,将SCKR_1引脚方向设置为输入(尽管物理上无此引脚)。 c.配置EICCR寄存器:找到控制SCKR/SCKR_1连接的位域(假设为EICCR[1:0]),将其设置为**10**。这表示启用连接,且由ESAI控制引脚。
  3. 后续配置:然后像正常一样配置ESAIESAI_1的收发器、帧同步、时钟分频器等参数。此时,ESAI_1的接收器将与ESAI共享同一个SCKR时钟,实现同步接收。

重要警告:手册中明确提到,当使用ESAI内部时钟连接功能时,切勿启用ESAI的引脚切换功能。引脚切换功能通常用于重新分配引脚,与内部时钟连接功能可能冲突,导致信号路径混乱。

5. 系统集成:EMC与ESAI协同工作场景

在一个典型的音频处理系统中,EMC和ESAI是协同工作的。例如,一个多通道音频效果器应用:

  • EMC的角色:外接一片大容量SDRAM,作为音频样本的缓冲池(Delay Line、Reverb Buffer)或滤波器系数存储区。EMC需要被配置为高性能的SDRAM模式,以确保DSP内核能够以极低的延迟随机存取这些数据。
  • ESAI的角色:连接多个ADC和DAC,实现多路音频信号的同步采集和回放。由于通道数多,必然用到ESAI_1甚至ESAI_2/3。在80脚封装下,就需要利用上述内部时钟连接功能,让ESAI_1共享ESAI的主时钟,确保所有音频接口位对齐,避免产生相位差导致的音频失真。

初始化顺序建议

  1. 系统时钟、PLL初始化。
  2. EMC初始化:配置SDRAM或Flash的时序参数,确保存储控制器先正常工作。因为后续的代码和数据可能就需要从外部存储器读取。
  3. GPIO复用功能配置:将相关引脚的功能切换到EMC或ESAI,而非默认的GPIO。
  4. ESAI时钟连接配置:在初始化具体ESAI模块之前,先根据硬件设计配置好EICCR寄存器,确定好时钟路由路径。
  5. ESAI模块初始化:配置各个ESAI模块的工作模式、时钟分频、帧同步等。
  6. 最后开启DMA、中断,启动音频数据流。

6. 常见问题排查与调试技巧实录

即便理解了原理,实际调试中还是会遇到各种问题。下面是我总结的几个典型故障场景和排查手段。

6.1 EMC相关故障

问题1:系统无法从外部Flash启动(Bank 0配置为GPCM模式连接Flash)。

  • 排查:首先检查硬件,确认LCS0LADLALE等信号线连接无误。然后使用仿真器,在初始化代码的最开始(甚至 before main)设置断点,单步跟踪EMC寄存器的配置过程。
  • 关键点:确认OR0中的SCY等待状态数是否足够。Flash的读访问时间通常较慢,如果SCY设置太小,DSP在读取启动代码时就会失败。最稳妥的方法是,在初始化序列中,先使用最保守的慢速时序(设置很大的SCY,启用TRLX)配置EMC,让CPU能正确读取初始化代码;然后在初始化代码中,再优化时序参数,提升性能。

问题2:SDRAM数据读写不稳定,偶发错误。

  • 排查:这是最经典的问题。请按以下顺序检查:
    1. 电源与时钟:用示波器测量SDRAM的VDD和VDDQ电源,确保纹波在允许范围内。测量LCLK时钟信号,确保频率、幅值、抖动符合要求。
    2. 时序参数:核对SDMR中的CAS延迟、ORx中与SDRAM相关的时序参数(如TRPTRCD),是否满足SDRAM芯片手册在当前LCLK频率下的最小值要求,并留有一定余量。
    3. 刷新设置:检查SRT刷新定时器的值计算是否正确。刷新间隔过长会导致数据丢失,过短则会降低带宽。
    4. 信号完整性:使用示波器的高速采样和余辉功能,观察LAD数据总线在读写时的波形。重点看眼图是否张开,有无明显的过冲、振铃或串扰。如果问题随温度变化,信号完整性问题可能性更大。
  • 技巧:编写一个简单的内存测试程序,如写入并回读0xAAAA0x5555这样的交替模式,或者进行“走1”、“走0”测试,可以帮助快速定位是某些数据位有问题,还是地址线有问题。

6.2 ESAI时钟连接相关故障

问题3:配置了内部时钟连接,但ESAI_1收不到数据或数据错位。

  • 排查
    1. 确认EICCR设置:首先读取EICCR寄存器,确认你写入的配置位确实已经生效。
    2. 确认引脚方向:这是最高频的错误原因。务必确认作为“从方”的ESAI模块(例如模式10下的ESAI_1),其对应的时钟引脚在软件上被配置为输入。即使物理引脚不存在,这个配置也必须在相应的端口控制寄存器中完成。
    3. 检查时钟源:用示波器测量主ESAI模块(如ESAI)的时钟引脚,确认有时钟信号输入或输出,且频率符合预期。
    4. 禁用引脚切换:检查ESAI的引脚控制寄存器,确保没有意外启用任何引脚切换功能,这与内部时钟连接功能冲突。

问题4:多个ESAI模块之间时钟同步有相位差,导致音频数据拼接时出现“咔嗒”声。

  • 排查:这通常是因为虽然时钟同源,但帧同步信号不同步。内部时钟连接只共享了位时钟和串行时钟,帧同步信号需要单独处理。
  • 解决:确保所有需要同步的ESAI模块工作在从模式,并且共享同一个帧同步信号源。这可能需要将某个ESAI的帧同步输出,通过外部连线或内部矩阵路由,提供给其他ESAI模块作为输入。仔细研究芯片的同步和帧同步控制寄存器。

6.3 通用调试建议

  1. 善用仿真器与内存窗口:在调试EMC时,通过仿真器直接查看和修改EMC的配置寄存器、以及外部内存区域的数据,是最直接的手段。
  2. 示波器是硬件工程师的眼睛:尤其是对于时序问题,没有比示波器更强大的工具了。学会使用示波器的触发功能(如边沿触发、毛刺触发)来捕获异常波形。
  3. 寄存器配置检查清单:为EMC和ESAI的初始化创建一个检查清单,逐项核对。包括:时钟源使能、引脚复用配置、模块使能位、中断/DMA配置等。很多问题都是因为某个不起眼的使能位忘了打开。
  4. 从简到繁:先让单个功能在最简单配置下跑通。例如,先只配置EMC Bank 0连接一块小容量SRAM,并测试读写;先只配置一个ESAI模块收发数据。然后再逐步增加复杂度,如启用SDRAM、启用内部时钟连接、增加多个ESAI模块等。这样一旦出现问题,排查范围会小很多。

配置DSP56720/21的EMC和ESAI,就像在为一个复杂的交响乐团调音。EMC是确保乐谱(数据)能及时送达每位乐手手中的后勤系统,而ESAI内部时钟连接则是确保所有乐手(音频接口)节拍一致的指挥棒。理解每个寄存器位背后的物理意义,结合清晰的硬件设计,再辅以严谨的调试方法,你就能让这套强大的音频处理器芯片,稳定可靠地演奏出高质量的数字音频乐章。

http://www.jsqmd.com/news/1007484/

相关文章:

  • BetterNCM安装器架构解析:Rust GUI开发与系统集成技术实现
  • 避开工业AI的坑:用GC10-DET数据集实战,聊聊数据预处理那些容易翻车的地方
  • 多智能体系统双引擎架构:OpenAI与Ollama选型与切换实战
  • SpringBoot+Vue民宿系统实战:从零到部署,我踩过的那些坑(附完整源码)
  • 终极电视浏览器指南:用TV Bro在智能电视上轻松上网的7个秘诀
  • 编写程序结合老年人心肺数据,运动记录,划分安全运动区间,禁止危险动作。
  • MCP协议:AI工具链的USB-C式范式迁移
  • Obsidian Copilot:将你的笔记系统升级为智能知识助手的完整指南
  • 玩转Pokémon GO道馆数据:从零开始构建第三方地图爬虫系统
  • AI工作流:新手也能学会的大模型应用秘籍!收藏这份稳定可控的实践指南
  • RedisDesktopManager Windows版:终极Redis数据库可视化解决方案
  • 保姆级教程:用NPS在阿里云CentOS 7.9上搭建内网穿透服务(含防火墙配置避坑指南)
  • Windows 环境下 Hadoop 原生库的技术解决方案:winutils 项目解析
  • 去油去屑洗发水哪个牌子好用?总结 2026 高口碑去屑洗发水 - 新闻快传
  • C#实战:当Spy++抓不到控件时,如何用SendMessage搞定微信/QQ这类DirectUI程序的自动化?
  • AI时代开发者不可替代的核心能力:问题定义与责任决策
  • 2026 安徽空调回收权威测评报告 - 安徽工业
  • 终极Windows内存优化指南:Mem Reduct免费轻量级内存管理神器
  • 2026年常州货架厂推荐榜:这几家口碑最好用不踩雷 - 速递信息
  • 收藏!2026大模型Agent高薪赛道解析,小白/程序员入门进阶全攻略
  • MC56F8458x DSC开发实战:SIM引脚复用与INTC中断配置详解
  • 编写程序录入小学生每日用眼户外运动时长,预测近视发展趋势并防控。
  • 在Windows C++程序启动前就干活:用TLS回调实现DLL加载监控与拦截(附完整VS项目)
  • 手把手教你用Python搞定ACE2005中文数据集预处理(附完整代码)
  • 架构级企业即时通讯系统:OpenIM Server的技术实现与部署战略
  • 影刀RPA实操指南_飞书文档自动生成每日周报月报自动写入多维表格与云文档
  • 邮政寄大件贵不贵?实测比价后我换了“寄半折” - 快递物流资讯
  • 2026苏州防水修缮服务适配指南:苏州鼎壹万防水补漏公司等本地精选服务商深度解析 专业防水公司排名推荐(2026年6月防水补漏最新TOP权威排名 - 鼎壹万修缮说
  • 编写程序统计青少年熬夜,玩手机时长,分析对专注力,生长发育的影响。
  • 程序员速收藏|零基础小白必看!2026 版 AI 落地风口全面爆发,窗口期仅此一轮!