TPIC7710EVM评估板深度解析:从硬件设计到软件调试的汽车电子ASIC快速评估实践

AI助手已提取文章相关产品:

1. 项目概述:从芯片到系统,电子驻车制动(EPB)的快速评估之道

在汽车电子开发领域,尤其是涉及车身控制、底盘电子这类对功能安全、可靠性和实时性要求极高的模块时,工程师面临的最大挑战之一是如何在项目早期快速、准确地评估一颗专用集成电路(ASIC)的性能。直接设计PCB并焊接芯片进行测试,不仅周期长、成本高,一旦设计有误,排查问题更是耗时费力。这时,评估模块(EVM)的价值就凸显出来了。它就像芯片厂商为你准备好的“标准答案”和“实验平台”,让你能跳过繁琐的硬件设计,直接上手验证芯片的核心功能、电气特性和系统兼容性。

今天我们要深入拆解的,是德州仪器(TI)为TPIC7710电子驻车制动(EPB)ASIC量身打造的评估模块——TPIC7710EVM。TPIC7710这颗芯片本身就是一个高度集成的解决方案,内部集成了MOSFET驱动、电流检测、比较器、看门狗、SPI通信等多种功能,专为驱动EPB系统中的直流电机而设计。而这块EVM板,则是理解这颗芯片如何工作的“活教材”。它不仅仅是一块简单的转接板,更是一个精心设计的教学与验证平台,其硬件布局与芯片的内部功能块一一对应,配套的图形用户界面(GUI)软件则让你能通过点击鼠标,直观地配置寄存器、读取状态、控制电机,从而在最短时间内摸透芯片的“脾气”。

对于从事汽车电子、电机驱动或嵌入式硬件开发的工程师来说,深入理解这样一块EVM,不仅能加速TPIC7710本身的应用开发,更能掌握一套评估复杂ASIC的标准方法论。无论是评估驱动能力、测试保护功能,还是验证与微控制器的通信协议,这块板子都提供了近乎完整的硬件接口和软件工具。接下来,我将结合自己多年评估各类驱动芯片的经验,带你从开箱上电到深入调试,完整走一遍TPIC7710EVM的评估流程,并分享那些官方手册里可能不会写的实操细节和避坑指南。

2. 硬件深度解析:不只是连接,更是设计的教科书

拿到TPIC7710EVM评估板,第一印象是其布局清晰、分区明确。这并非偶然,而是TI工程师有意为之的设计哲学:将评估板的硬件区块与TPIC7710芯片的内部功能模块进行映射,让用户在物理层面上就能直观理解芯片的架构。这种设计对于学习一颗新芯片来说,效率极高。

2.1 核心供电与电源隔离设计

评估板的供电设计是第一个需要仔细琢磨的地方。板上明确区分了两路主要的电源输入: V-BATT (KL30) V-MOT (KL30) 。它们都通过香蕉插座接入,标称电压均为13.8V(典型汽车电池电压),但用途和设计思路截然不同。

  • V-BATT 路径 :为TPIC7710芯片本身及其附属逻辑电路(如电平转换、LED指示)供电。这条路径对电源的纯净度和稳定性要求最高,因为芯片的模拟前端(如ADC、比较器)和数字逻辑都在此供电下工作。板上的线性稳压器会从V-BATT生成芯片所需的V5、V5A等内核电压。
  • V-MOT 路径 :专门为电机驱动回路供电,直接连接到板上的功率MOSFET(FET1, FET2, FET3)和继电器。电机启动和堵转时会产生巨大的浪涌电流和电压尖峰,这条路径的设计就是为了承受这些恶劣条件。

为什么要把电源分开? 这是硬件设计中的一个关键经验。如果电机的大电流和芯片供电共用一路,电机启停造成的电压跌落和地平面噪声会直接耦合进敏感的模拟和数字电路,可能导致芯片误动作、复位甚至损坏。EVM板通过物理上分离的AGND(模拟地)和PGND(功率地)平面,并在两者之间通过一个磁珠(L1)或可短接的跳线(JP1)进行单点连接,有效隔离了噪声。在实际评估中,我强烈建议 始终使用两个独立的、质量良好的实验室电源 分别给V-BATT和V-MOT供电,并确保它们的负极(GND)在电源端就连接在一起,再接到评估板的AGND和PGND。这样可以最大程度地还原真实车载环境,并观察电源之间的相互影响。

实操心得 :很多新手会忽略电源质量。为电机供电的电源(V-MOT)必须具有 快速的瞬态响应能力 和足够的 电流输出能力 (建议至少20A峰值)。一些老旧的线性电源或响应慢的开关电源,在电机启动瞬间无法维持电压稳定,会导致评估板工作异常,让你误以为是芯片或电路设计问题。用一个示波器同时监测V-BATT和V-MOT的电压波形,是诊断这类问题的第一步。

2.2 关键接口与跳线配置:灵活性的体现

评估板提供了丰富的接口,用于连接、测量和配置。

  1. TI GER模块接口 (P6) :这是评估板与电脑GUI软件通信的桥梁。TI GER是一个通用的USB转数字I/O模块,它负责将GUI的指令通过SPI协议发送给TPIC7710,并读取芯片的状态。连接时务必注意方向:TI GER模块上的复位按钮和TPIC7710芯片的标识方向应一致。

  2. 外部微处理器接口 (P5) :这是一个2x40引脚、100密耳间距的排母。它的存在极大地提升了EVM的价值。当你想评估TPIC7710与你自家主控MCU的协同工作时,可以断开TI GER,将你自己的MCU板通过这个接口直接插上。这样就能在真实的系统环境中测试SPI通信、中断响应、故障处理等逻辑,而不仅仅是玩转GUI。 重要警告 :P5和P6 绝对不能同时连接 ,否则会造成信号冲突,可能损坏TI GER模块。

  3. 香蕉插座与测试点

    • 电机接口 (RD1_P, RD2_P, RD3_P, RD4_P) :这是连接外部直流电机的高电流接口。每对插座(RD1_P/RD2_P, RD3_P/RD4_P)对应一个H桥继电器输出的两端。连接电机时,务必确认极性。
    • 驱动输出 (OUTN1, OUTN2) :用于连接TPIC7710的中等电流低边驱动输出,可以用于驱动指示灯或其他负载。
    • 众多测试点 (TPxx) :遍布板卡各处,用于方便地使用示波器探头测量关键信号,如WDT时钟、PWM输出、比较器输入/输出等。这是深入调试的必备工具。
  4. 跳线配置 :板上的11个跳线帽是功能配置的关键。它们不是摆设,而是让你能够改变电路连接,以测试不同工作模式的“开关”。例如:

    • JP1 (AGND-PGND) :决定模拟地和功率地是直接相连还是通过磁珠隔离。在初期评估且电机功率不大时,可以短接以简化地回路。但在进行大电流电机测试或噪声敏感测试时,应断开,仅依靠磁珠连接。
    • JP10/JP11 (FET1/2 TC) 测试电流功能跳线 。这是评估电流检测功能的关键。当短接时,会将对应的功率FET通过一个28Ω的大功率电阻连接到电机回路。这样,当FET导通时,会形成一个已知的测试电流流经电流检测电阻,方便你校准和验证B1CO/B2CO引脚输出的电流检测电压是否准确。 务必注意 :此模式仅用于 短脉冲 测试(几十到几百毫秒),长时间导通会使电阻过热损坏。
    • JP13 (LED-GND) :短接时,将所有指示LED的阴极连接到一个“浮地”电路。这个电路会生成一个比V-BATT低约5V的电压,使得即使V-BATT在很大范围内变化(如9V-16V),流过LED的电流也基本恒定,保持亮度一致。这是一个非常巧妙的汽车级设计。

2.3 保护与监控电路解析

好的评估板不仅展示功能,更会示范如何保护芯片。TPIC7710EVM在这方面做了很好的示范:

  • 电源监控与TI GER关断 (JP3) :板子监控V12电压(由V-BATT经LDO得到)。当该电压低于4V(意味着主电源可能被断开),会通过一个信号拉低TI GER模块的PWR-DWN引脚,强制禁用TI GER的所有I/O输出。这防止了在TPIC7710失电或处于不确定电压状态时,TI GER仍对其输出信号,可能违反芯片的绝对最大额定值或导致闩锁效应。
  • 看门狗时钟生成 :TPIC7710需要一个低频的看门狗时钟信号(WDT)。TI GER模块能产生的最低频率(约1kHz)对于芯片要求来说仍然太高。因此,板上设计了一个由CD74HC4059构成的500分频器电路,将TI GER产生的时钟进一步分频,得到合适的WDT频率。你也可以通过“WDT_EXT”测试点从外部注入自定义的看门狗时钟。
  • LED浮地驱动与自恢复保险丝 :如前所述,LED驱动电路包含一个自恢复保险丝(F1)。当V-BATT和V-MOT电压差异过大时(例如接线错误),这个保险丝会动作,保护驱动晶体管Q7/Q8不被过流损坏。

3. 软件操作精讲:从连接配置到寄存器级调试

硬件准备就绪后,GUI软件就是与芯片对话的窗口。TPIC7710的GUI设计得相当直观,但要想高效利用,仍需掌握其内在逻辑。

3.1 软件安装与初始连接

软件是一个独立的Windows可执行文件。需要注意的是,有些公司的网络防火墙或杀毒软件可能会误删或阻止此类“.exe”文件。如果遇到这种情况,可以尝试将文件扩展名临时改为其他名称(如 .rename )进行传输,下载到本地后再改回 .exe 。TI GER模块作为USB HID设备,通常无需额外安装驱动,即插即用。

连接顺序至关重要,错误的顺序可能导致芯片或模块受损:

  1. 先接“地” :将两个电源的负极(与外壳地相连)首先连接到评估板的AGND和PGND香蕉插座。 永远遵循先接地后接电源的原则
  2. 连接通信 :用USB线连接TI GER模块和电脑,然后将TI GER模块插入评估板的P6接口,注意方向。
  3. 设置电源 :将V-BATT电源设置为13.8V,电流限制200-500mA;V-MOT电源同样设置为13.8V,电流限制根据你的电机参数设置(评估板最大支持20A)。
  4. 上电 :最后,将电源的正极接到对应的香蕉插座,然后打开电源输出。
  5. 启动GUI :打开软件。如果一切正常,窗口顶部会显示“DISCONNECT FROM TIGER”(表示已连接),并且底部的报告标志(Report Flag)网格中的单元格会开始变色(蓝色代表0,红色代表1),这表明SPI通信已建立,正在实时读取芯片状态。

3.2 GUI核心功能区详解

GUI界面大致可分为四个区域:顶部工具栏、左侧复选框控制区、中间标签页功能区和底部的寄存器网格区。

顶部工具栏 包含了一些实用小工具,如进制转换器、记事本、计算器等。最重要的是状态指示:

  • DUT UNPOWERED/POWERED :自动指示设备(TPIC7710)是否上电。这是通过监控V12实现的。当检测到掉电时,TI GER会自动将其I/O置为高阻态,这是一个重要的安全特性。
  • ERRORS按钮 :任何SPI通信错误(如奇偶校验错、镜像字节不匹配)或用户操作错误都会在这里以红色按钮显示。点击可查看详细错误信息。调试时请保持这个窗口开启。

左侧复选框 控制着一些全局功能:

  • REAL TIME DISPLAY OF MOTOR CURRENT :勾选后,GUI会持续读取并显示通过两个电机电流检测电阻的估算电流值。这对于观察电机启动、运行、堵转时的电流波形非常有用。
  • REAL TIME MONITOR OF REPORT FLAGS :必须勾选。它使GUI持续轮询芯片的所有报告标志寄存器,并在底部网格中实时更新其状态(0或1)。这是监控芯片内部状态(如过流、过热、开路负载等故障)的主要方式。
  • DISREGARD COMMUNICATION ERRORS :通常不勾选。勾选后,GUI将忽略SPI通信错误,不会弹出警告。仅在已知通信环境有干扰且不想被频繁弹窗打断时使用。
  • ENABLE RELAY TOGGLE :用于继电器循环测试模式。勾选后,可以在TOOLS标签页中设置时间,让继电器以固定周期吸合/释放。

Keep-Alive与WDT控制 :TPIC7710具有休眠模式。为了防止芯片进入休眠,需要通过SPI定期发送特定的“保活”报文。GUI可以自动生成这个报文,并允许你设置发送间隔。同样,你也可以通过GUI控制提供给芯片的看门狗时钟(WDT)信号的使能和频率。 注意 :WDT信号必须存在且频率正确,芯片的核心功能才能正常工作。

3.3 寄存器网格:底层控制的利器

这是GUI中最强大也最核心的部分——一个直接映射芯片地址和数据空间的网格。它让你能进行最底层的寄存器读写操作,这对于理解芯片行为和调试复杂问题不可或缺。

网格分为几个部分:地址(Address)、数据值(Hex Value)、以及数据值的每个二进制位(Bit 7 - Bit 0,其中Bit 0是SPI帧的奇偶校验位,GUI会自动计算)。右侧还有一个只读的信息阵列,列出了每个命令位的名称,方便查阅。

操作流程与技巧

  1. 选择网格 :GUI可能有多个网格(如命令寄存器、报告寄存器)。在操作前, 必须先用鼠标点击目标网格的任意单元格 ,以激活该网格。被激活的网格在操作后会闪烁特定颜色,同时操作按钮的文本颜色也会变为该颜色,这是一个很好的视觉反馈。
  2. 读取数据
    • READ SELECTED :首先,在网格最左侧的地址列,点击选择一行(一个地址)或多行(按住Ctrl键多选),然后点击此按钮,读取选中地址的数据。读取的结果会显示在“Hex Value”列和对应的Bit单元格中。
    • READ ALL :点击后读取当前激活网格的所有地址数据。这是快速获取芯片全部状态的好方法。
  3. 写入数据
    • 修改数据 :可以直接在“Hex Value”列输入十六进制数,或者直接点击Bit单元格(0/1)进行翻转。被修改的行会高亮显示(如变黄)。
    • WRITE SELECTED :将当前网格中所有高亮显示(已修改)的行的数据写入芯片。
    • WRITE ALL :将当前激活网格的所有数据(无论是否修改)写入芯片。这在用“RECALL GRID”从文件加载了一套完整配置后非常有用。
  4. 保存与加载配置 SAVE GRID RECALL GRID 功能极其实用。你可以将调试好的寄存器配置保存为文本文件,下次评估时直接加载,无需重新手动配置。 关键点 RECALL GRID 只是将数据加载到GUI的网格显示中, 必须再点击 WRITE ALL WRITE SELECTED ,才能将配置真正写入芯片
  5. ZERO GRID :将当前网格所有数据单元格清零(仅GUI显示)。 DESELECT GRID :取消所有行的选中状态。

避坑指南 :在进行寄存器读写时, 务必先阅读数据手册中对应寄存器的描述 。有些位是只读的(如状态标志),向其写入无效;有些位有特定的写入序列要求;有些配置位在更改后需要一定时间才能生效。盲目写入可能导致芯片进入非预期状态。建议的操作习惯是:先 READ ALL ,查看当前配置;然后只修改你需要的那几位;最后 WRITE SELECTED

3.4 功能标签页:图形化控制

除了底层的网格操作,GUI还将芯片功能按类别组织成了多个标签页(如WDT/KEEP ALIVE、MOTORS & CURRENT、FETx/OUTNx/OUTPx等)。这些标签页提供了图形化的控件(如复选框、按钮、滑动条),让你可以更直观地控制电机启停、设置电流阈值、使能驱动器等。本质上,这些控件就是在后台帮你生成正确的寄存器值并执行写入操作。对于快速的功能演示和基础测试,使用标签页更加方便。

特别关注“MOTORS & CURRENT”标签页

  • 这里可以控制连接到RD1-4的电机。
  • “Test Current”功能需要配合硬件跳线JP10/JP11使用。启用后,GUI会以你设定的脉宽和周期,短暂脉冲打开FET1或FET2,使一个已知的测试电流流经检测电阻。你可以用万用表或示波器测量BxCO引脚输出的电压,来验证电流检测电路的增益和精度是否与理论计算一致。 再次强调,这是脉冲测试,不可长时间导通!

4. 典型评估流程与实战技巧

掌握了硬件和软件的基本操作后,我们可以规划一个系统性的评估流程。以下是我在实际项目中验证类似驱动芯片时常用的步骤:

4.1 基础功能与通信验证

  1. 静态功耗与电源检查 :在不连接电机、不使能任何驱动器的情况下上电。使用万用表测量板上关键的电压测试点:V12(应接近V-BATT)、V5、V5A(应约为5V)、VADC等。确认所有LDO输出正常,且静态电流在数据手册规定的范围内。
  2. SPI通信验证 :打开GUI,连接硬件。观察底部报告标志网格是否有颜色变化(说明在自动读取)。尝试使用 READ ALL 功能读取几个已知的只读寄存器(如设备ID寄存器,如果存在)。如果能成功读取,说明SPI通信链路基本正常。
  3. 看门狗与保活功能 :在“WDT, KEEP ALIVE & WAKE-UP”标签页,先禁用Keep-Alive功能,然后观察芯片是否在一段时间后进入休眠(可能表现为某些功能失效或报告标志停止更新)。再使能Keep-Alive,功能应恢复。同样,可以尝试关闭WDT时钟,观察芯片的复位行为。

4.2 驱动器与输出测试

  1. 低边驱动 (OUTN1/OUTN2) :在“FETx, OUTNx, OUTPx”标签页,找到OUTN1和OUTN2的控制部分。将一个LED和限流电阻(如330Ω)串联,接在OUTN1(或OUTN2)香蕉插座和V-BATT(或一个5-12V电源)之间。通过GUI使能对应的驱动器,观察LED是否点亮。用示波器测量输出引脚波形,观察上升/下降时间是否与数据手册相符。
  2. 高边驱动与FET控制 (OUTPx, FETx) :OUTPx是内部高压侧驱动,FETx是外部MOSFET的栅极驱动。测试FETx需要连接外部MOSFET和负载(或使用板载的测试电流模式)。 安全提示 :在连接真实电机或大功率负载测试FET之前, 务必先使用“Test Current”模式或接一个纯电阻负载 ,验证驱动逻辑和过流保护是否正常。你可以通过GUI控制FET的开关,同时用示波器监测FET的栅极电压(GS电压)和漏极电流(通过检测电阻电压推算)。

4.3 电机驱动与电流检测集成测试

这是评估的核心,需要谨慎进行。

  1. 硬件准备 :确认JP10/JP11已移除(除非进行测试电流校准)。将一个小功率直流电机(如12V,1-2A)连接到RD1_P和RD2_P(对应一个电机通道)。确保V-MOT电源的电流限制设置合理(略大于电机堵转电流)。
  2. 软件配置
    • 在“MOTORS & CURRENT”标签页,选择对应的电机(Motor 1)。
    • 设置一个较低的PWM占空比和频率。
    • 勾选“REAL TIME DISPLAY OF MOTOR CURRENT”。
    • 在“FETx, OUTNx, OUTPx”标签页,确保控制电机所需的FET和继电器驱动已使能。
  3. 逐步测试
    • 先点击GUI上的“正向”或“反向”旋转按钮,进行点动操作,观察电机是否短暂转动。同时观察GUI上显示的电流值是否合理。
    • 使用示波器,一个通道测量电机两端电压(PWM波形),另一个通道测量电流检测电阻两端的电压(或直接使用BxCO测试点)。对比GUI显示的电流值与示波器测量计算出的实际电流值,验证电流检测功能的精度和线性度。
    • 逐渐增加PWM占空比,观察电机加速过程,以及启动电流峰值。
  4. 故障注入测试 :这是评估保护功能的关键。可以尝试:
    • 过流测试 :在电机转动时,用手轻轻捏住电机轴使其堵转。观察电流是否急剧上升,以及芯片是否触发了过流保护(OCP),并报告相应的故障标志。GUI的报告标志网格应能实时看到标志位置位。
    • 开路/短路测试 :模拟电机线缆断开或短路( 务必小心,可在电源关闭状态下操作,使用短接线模拟 )。重新上电后操作电机,观察芯片是否能检测到开路负载或短路故障。

4.4 与自定义微控制器联调

当你计划将TPIC7710集成到自己的系统中时,评估板P5接口的价值就体现出来了。

  1. 断开TI GER :首先,移除TI GER模块,并断开GUI软件。
  2. 连接自定义MCU板 :设计或使用一个转接板,将你的MCU的GPIO、SPI、电源等引脚连接到P5接口的对应信号上。 特别注意电平匹配 ,TPIC7710是5V/12V电平,确保你的MCU I/O能兼容或经过电平转换。
  3. 编写驱动代码 :根据TPIC7710数据手册的SPI时序和寄存器映射,编写基础的读写函数。可以先从读取芯片版本号或报告标志开始,验证通信。
  4. 功能移植 :将之前在GUI上手动操作的功能,用MCU代码实现。例如,编写函数来启动/停止电机、设置电流阈值、读取故障状态等。
  5. 系统级测试 :在你的MCU程序中集成完整的EPB控制逻辑(如按钮检测、电机位置控制、故障处理策略),通过P5接口控制TPIC7710驱动真实电机,进行完整的系统功能测试。

5. 常见问题排查与安全规范

即使按照指南操作,在实际评估中仍可能遇到各种问题。以下是一些常见问题的排查思路:

问题一:GUI无法连接或显示“DISCONNECT FROM TIGER”

  • 检查 :USB线是否完好?TI GER模块是否插反?电脑设备管理器中是否识别到HID设备?
  • 检查 :V-BATT电源是否已接通且电压高于芯片工作门槛?TI GER的PWR-DWN监控电路可能因V12过低而禁用了I/O。
  • 尝试 :按下TI GER模块上的复位按钮,然后重新打开GUI软件。

问题二:电机不转,但GUI显示控制命令已发送

  • 检查 :V-MOT电源是否开启?电压是否正确?电流限制是否设得太低导致一启动就保护?
  • 检查 :电机接线是否正确、牢固?用万用表测量电机两端在控制命令发出时是否有电压。
  • 检查 :相关的FET和继电器驱动是否已在GUI中使能?报告标志是否有故障指示(如过温、过流)?
  • 测量 :用示波器测量FET的栅极电压。如果没有栅极驱动信号,问题可能出在TPIC7710的配置或供电上。

问题三:电流检测读数不准确或为零

  • 检查 :“REAL TIME DISPLAY OF MOTOR CURRENT”复选框是否勾选?
  • 检查 :电流检测路径的跳线或电路连接是否正确?BxCI/BxCO测试点是否有信号?
  • 校准 :使用“Test Current”功能配合JP10/JP11跳线。施加一个已知的测试电流(I_test = V-MOT / 28Ω),测量BxCO电压。根据公式 V(BxCO) = (20k/1k) * (Vs/Rs) + VCREF,反推验证。VCREF电压也需要测量确认。

问题四:芯片异常发热或冒烟

  • 立即断电!
  • 检查 :电源是否接反?V-BATT和V-MOT是否接错?
  • 检查 :是否有输出引脚对地或对电源短路?
  • 检查 :在连接电机或大负载前,是否先用小电流负载(如LED)测试过驱动功能?

必须遵守的安全规范

  1. 静电防护 :TPIC7710包含CMOS电路,对静电敏感。操作评估板时,请佩戴防静电手环,并在防静电工作台上进行。
  2. 电压与电流限制 :严格遵守用户指南中规定的输入输出电压范围(如0-14V)。超出范围可能导致永久损坏。
  3. 功率器件散热 :板上的功率电阻、MOSFET在测试电流模式下或驱动电机时会产生热量。避免长时间大电流工作,触摸这些器件前注意温度。
  4. 测试点测量 :使用示波器探头测量测试点时,务必小心不要滑脱导致短路。建议使用带绝缘套的探头。
  5. 文档先行 :在进行任何非标准操作前,务必仔细阅读TPIC7710的数据手册和本评估板的用户指南。理解每个引脚、每个寄存器的功能是安全评估的前提。

评估模块是连接芯片数据手册与实际产品应用的桥梁。TPIC7710EVM以其清晰的硬件映射和强大的GUI软件,为工程师提供了一个绝佳的学习和验证平台。通过系统地实践上述硬件解析、软件操作和评估流程,你不仅能全面掌握TPIC7710这颗EPB ASIC的所有特性,更能积累一套评估复杂汽车级驱动芯片的通用方法论。记住,耐心和细致是硬件调试中最宝贵的品质,从电源检查开始,逐步验证,你就能高效、安全地完成评估任务,为最终的产品设计打下坚实的基础。

您可能感兴趣的与本文相关内容

var movie,timer,step,total,state=null,delay=100 function init(){//在 Flash 加载完成后初始化相关变量的函数 /*捕获 id 为 movie 的对象,若要兼容NS, 可用 window.document.movie 代替*/ movie=document.getElementById("movie") //每 delay 毫秒执行一次 showStatus() 函数 timer=setInterval("showStatus()",delay) total=movie.TotalFrames //获取 Flash 的总帧数 step=total/50|0 //快进快退时的步长 buttonState(false) //调用 buttonState() 函数,设置控制按钮可用 movie.width=Math.min(movie.TGetProperty("_level0",8),document.body.clientWidth-25)//设置 Flash 的宽 //设置 Flash 的高 movie.height=movie.TGetProperty("_level0",9) } function Rewind(){ movie.Rewind() //使 Flash 返回到第一帧 } function Back(){//控制快退的函数 //如果当前帧数不为 0 并且 Flash 不处于快进状态 if(movie.FrameNum!=0&&state!="forward"){ state="back" //设置状态变量为 back Quick() //调用实现快进快退的 Quick() 函数 // delay 毫秒后再次执行 Back() 函数,以实现不断快退的效果 setTimeout("Back()",delay) } else state=null //快退完成后设置状态变量 state 为 null } function Play(){ movie.Play() //播放 Flash } function Pause(){ /*如果 Flash 正在播放,就调用 Flash 的 StopPlay() 方法使之停止播放, 否则调用 Flash 的 Play() 方法使之播放*/ with(movie)IsPlaying()?StopPlay():Play() } function Stop(){ movie.StopPlay() //停止播放 Flash } function Forward(){ //如果当前帧数不在最后一帧并且 Flash 不处于快退状态 if(movie.FrameNum!=total-1&&state!="back"){ state="forward" //设置状态变量为 back Quick() //调用实现快进快退的 Quick() 函数 // delay 毫秒后再次执行 orward() 函数,以实现不断快进的效果 setTimeout("Forward()",delay) } else state=null //快进完成后设置状态变量 state 为 null } function GoToEnd(){ movie.GoToFrame(total-1) //跳到 Flash 的最后一帧 } function Replay(){ Rewind() //使 Flash 返回到第一帧 Play() //播放 Flash /*因为多数 Flash 都有一个停止的画面,让用户点击播放按钮后再播放,在 delay*5 毫秒后执行 Play(),可以跳过那个画面(仅适用于部分 Flash)*/ setTimeout("Play()",delay*5) } function showStatus(){ var N=movie.FrameNum+1 //取得 Flash 当前播放到的帧数 //根据 Flash 的播放进度设置 id 为 bar 的表格的宽度 bar.style.width=Math.round(N*100/total)+"%" //在 id 为 frameCount 的对象中显示当前帧数和总帧数 frameCount.innerText=N+"/"+total } function Quick(){ //根据当前状态,计算快进或快退时将要跳转到的目标帧 var targetFrame=movie.FrameNum+step*{back:-1,forward:1}[state] movie.GoToFrame(targetFrame) //跳到目标帧 } function selectMovie(){ /*触发 id 为 moviefile 的上传控件的 Click (单击)事件, 使之弹出"选择文件"对话框*/ document.getElementById("moviefile").click() } function loadMovie(){ //取得触发本事件的对象的值(上传控件的内容) var file=event.srcElement.value //通过判断所选择文件的扩展名是否为".swf"以实现简单的过滤 if(/\w\.swf$/.test(file)) { movie.LoadMovie(0,file) //加载 Flash 文件 loaded() //调用下载进度显示的函数 } //如果文件名为".swf"以外的,弹出警告说明 else alert("文件格式错误,请重新选择") } function buttonState(de){ //捕获 id 为 ctlButtons 的对象内的所有标签名为 "button" 的对象 var buttons=ctlButtons.document.all.tags("BUTTON") //设置除"打开 Flash 文件"按钮以外的所有控制按钮的禁用状态 for(var i=0;i<buttons.length-1;i++) buttons[i].disabled=de } function loaded(){ //捕获 id 为 movie 的对象 var movie=document.getElementById("movie") if(movie.PercentLoaded()==100)//如果 Flash 下载完成 init() //调用初始化有关变量的函数 init() //否则在 delay 毫秒后再次执行 loaded() 函数 else setTimeout("loaded()",delay) //根据下载量显示 id 为 bar 的表格的宽度 bar.style.width=movie.PercentLoaded()+"%" frameCount.innerText=bar.style.width //显示下载百分比 } body,td,button{font:normal 12px Tahoma;color:#333333;text-align:center} button{border:1px solid #333333;background:#EEEEEE;margin:2px;font-family:Webdings;height:20px} //换成你的swf地址// 9 7 4 ; < 8 : q 5 buttonState(true) //在 Flash 文件未下载完之前禁用控制按钮 loaded() //调用下载进度显示的函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值