1. 项目概述
如果你正在寻找一款能够快速上手、功能强大且设计稳健的C2000系列微控制器评估板,那么德州仪器(TI)的TMS320F28388D controlCARD(型号TMDSCNCD28388D)绝对是一个值得深入研究的对象。作为一名在工业控制和嵌入式系统领域摸爬滚打了十多年的工程师,我经手过不少评估板,从简单的核心板到复杂的系统级模块都有。但像F28388D controlCARD这样,将高性能实时控制、工业通信协议支持和开箱即用的调试体验集成在一块紧凑板卡上的设计,确实能让人眼前一亮。它不仅仅是一块“开发板”,更像是一个经过精心调校的“参考设计平台”,其设计思路和细节处理,对于无论是初学者学习C2000架构,还是有经验的工程师进行产品原型验证,都具有很高的参考价值。
这块板卡的核心是一颗TI C2000家族中的明星产品——F28388D微控制器。这颗芯片以其强大的实时处理能力、丰富的外设(特别是集成了EtherCAT从站控制器)和双核C28x+CLA的架构,在高端电机控制、数字电源和复杂的工业自动化应用中占据重要地位。而controlCARD的设计目标,就是让开发者能绕过繁琐的硬件设计阶段,直接聚焦于算法和应用开发。它通过一个180引脚的HSEC8金手指接口,提供了与TI众多应用套件和扩展底板的兼容性,同时板载了隔离的XDS100v2仿真器、多种通信接口和精心的电源与信号调理电路。接下来,我将结合官方文档和实际使用经验,为你深入拆解这块板卡的硬件设计、快速上手指南、关键功能配置以及那些在数据手册角落里才可能找到的“避坑”细节。
2. 硬件快速上手指南与电源方案解析
拿到一块新的评估板,第一步永远是让它“动起来”。F28388D controlCARD提供了两种主要的供电和调试方式,理解其背后的电源架构和隔离设计,对于后续稳定使用至关重要。
2.1 供电方案选择与原理
板卡为MCU核心及外设供电的设计非常讲究。其核心是一个单路5V输入,经过一个板载的3.3V低压差线性稳压器(LDO)产生未滤波的3.3V电源,然后再通过靠近F28388D芯片放置的LC滤波器进行去耦和滤波,最终产生洁净的1.2V核心电压和3.3V I/O电压。这种两级滤波设计能有效抑制电源噪声,为ADC等高精度模拟电路提供稳定的工作环境,这是评估板能否真实反映芯片性能的关键。
上电操作有两个主要选项:
选项一:通过扩展坞(Docking Station)供电(推荐用于完整开发)这是最标准、功能最全的使用方式。你需要将controlCARD插入一个兼容的180引脚扩展坞,例如TMDSHSECDOCK。扩展坞通常提供更丰富的接口、按键、LED和可能的外部电路。供电时,使用一根USB-B Mini线缆连接扩展坞上的J17端口(或J1,具体看扩展坞手册)到电脑或5V适配器。然后,将扩展坞上的电源开关(常标注为S1或SW1)拨到“USB-ON”位置。此时,观察controlCARD上的D5(绿色电源指示灯)应该点亮,表明板卡已成功上电。这种方式下,电源通过金手指接口引入,经过了扩展坞上可能存在的额外滤波和保护电路,最为稳健。
选项二:通过板载Micro-USB接口(J3)直接供电这种方式更为便捷,无需扩展坞。只需用一根Micro-USB线连接板卡的J3接口到电脑USB口即可。但这里有一个非常重要的注意事项:J3的USB接口信号地(GND)与板卡的主地是直连的,没有隔离。这意味着,如果你将controlCARD用于调试带有电机驱动、功率变换等存在高压、大电流噪声的“脏”地系统时,通过这根USB线可能会形成地环路,引入干扰,甚至损坏电脑的USB端口或板卡。因此,官方文档明确警告,在高功率应用中使用此USB端口时需格外小心,可能需要外接USB隔离器。对于初步学习和纯数字逻辑实验,这种方式是方便的;但一旦涉及功率部分,强烈建议回归选项一,或使用外部隔离的5V电源适配器(规格:内径2.5mm,外径5.5mm)通过扩展坞供电。
2.2 仿真器连接与配置
板卡最大的亮点之一是集成了隔离的XDS100v2仿真器。这个设计省去了你额外购买一个仿真器(如XDS110或更昂贵的XDS560)的成本和麻烦。隔离设计意味着仿真器电路部分(在原理图上标注为Macro A区域,元件位号带“:A”,如U1:A)与MCU主电路在电气上是隔离的,这能有效防止调试过程中的意外短路或高压窜入损坏你的电脑。
使用板载仿真器非常简单:
- 找到板卡左上角(有“TEXAS INSTRUMENTS”丝印一侧为正面)的J1:A接口,它是一个USB-B Mini接口。
- 用附带的USB线(通常是USB-A转USB-B Mini)将其连接到你的电脑。
- 关键的一步是设置仿真器使能开关S1:A。这是一个双位拨码开关。
- S1:A Position 1 (JTAG Enable):需要拨到ON(右侧)位置。这将连通XDS100v2仿真器与F28388D之间的JTAG信号。
- S1:A Position 2 (ISO UART Enable):通常,如果你不需要通过这个FTDI芯片进行UART通信,可以保持为OFF(左侧)。如果拨到ON,则GPIO28会被FTDI芯片强制上拉,可能影响你对该引脚的自定义使用。
- 连接后,电脑通常会识别并安装驱动(CCS会管理驱动)。在Code Composer Studio (CCS)中新建工程或导入示例时,在选择连接目标时,应选择“Texas Instruments XDS100v2 USB Emulator”以及“TMS320F28388D”器件。
如果你拥有更高级的外部仿真器(如XDS560),并希望通过扩展坞上的JTAG接口(如TMDSHSECDOCK上的J2)进行调试,则需要将S1:A的Position 1拨到OFF(左侧),以断开板载仿真器的连接,避免冲突。
2.3 时钟配置兼容性检查:一个至关重要的步骤
这是上手F28388D controlCARD时最容易忽略却可能导致严重问题的一环。该板卡存在不同硬件版本,其默认时钟源频率不同,必须与使用的软件(C2000Ware)版本匹配。
- 早期版本(MCU063E1, E2, A):默认使用20 MHz外部晶振。
- 后期版本(MCU063B及以后):为了满足内部EtherCAT从站控制器(ESC)与外部PHY共享时钟的合规性要求,默认改为25 MHz外部晶振。
软件兼容性直接影响程序运行,甚至可能导致硬件损坏(特别是在运行电机或电源控制例程时,错误的时钟配置会导致PWM频率异常,炸管风险极高):
- C2000Ware v3.01.00.00及更早版本:其示例工程的PLL(锁相环)配置默认是针对20 MHz输入时钟计算的。如果用在25 MHz时钟的板卡上,会导致系统时钟(SYSCLK)严重偏离设计值。
- C2000Ware v3.02.00.00及以后版本:其示例工程默认支持25 MHz输入时钟。如果用在20 MHz时钟的旧版板卡上,同样会导致时钟错误。
操作前务必确认:
- 查看你的controlCARD上的白色标签,找到“MCU063”后面的字母(如B, E1等),确定硬件版本。
- 查看你安装的C2000Ware版本号。
- 如果版本不匹配,切勿直接运行示例程序!你必须根据板卡的实际时钟频率,手动修改工程中的PLL配置函数(通常在
device_init.c或sysctl.c中),重新计算并设置正确的倍频参数,使最终的SYSCLK达到目标值(例如200 MHz)。
3. 板卡功能模块深度剖析
理解了如何上电和调试后,我们深入看看这块板卡上都有些什么,以及这些设计背后的考量。
3.1 核心微控制器与接口布局
板卡的核心自然是那颗F28388D MCU。它是一款高性能的32位浮点微控制器,主打实时控制。其外设资源极其丰富,包括高分辨率PWM、高精度ADC、增强型捕捉模块、多种通信接口(SCI, SPI, I2C, CAN, FSIR, USB, EtherCAT)等。controlCARD通过180引脚的HSEC8接口,将MCU的绝大多数GPIO、ADC输入、通信接口等关键信号引到了金手指上,方便用户通过扩展坞或自定义底板进行访问。
板载的连接器构成了其快速实验能力的基础:
- J1: microSD卡槽:通过SPI接口连接至MCU,可用于存储数据、更新固件或进行文件系统操作实验。
- J2: FSI(Fast Serial Interface)接口:这是一个高速串行接口,用于芯片间通信,在需要多处理器协同的高性能应用中非常有用。
- J3: USB Micro-AB接口:支持USB 2.0主机/设备模式。如前所述,需注意其非隔离特性。
- J4: 标准以太网(RJ45)接口:连接到一片DP83822 10/100M以太网PHY芯片,可用于标准的TCP/IP网络通信。
- J5 & J6: EtherCAT P0/P1接口(RJ45):这是F28388D的特色功能,两个端口直接连接到内部的EtherCAT从站控制器(ESC)和对应的PHY,用于实现实时工业以太网EtherCAT通信。PHY芯片的低延迟特性(如DP83826的<216 ns)对于保证EtherCAT的实时性至关重要。
3.2 模拟前端设计:ADC参考电压与输入滤波
对于控制应用,ADC的精度至关重要。F28388D controlCARD在ADC电路设计上提供了灵活性和保护措施。
ADC参考电压选择(S3, S4开关和R47/R48电阻)F28388D拥有四个ADC模块(A, B, C, D)。每个模块的参考高电压(VREFHI)可以选择为内部的VDDA(3.3V)或者一个更精确的2.5V/3.0V外部基准。使用VDDA作为参考成本低,但精度和稳定性受电源噪声影响;使用精密外部基准源能获得更好的ADC性能。
板卡上通过S3(控制ADC-A和B)和S4(控制ADC-C和D)这两个双位拨码开关来为每个ADC模块独立选择参考源:
- 开关拨到左侧:对应ADC模块使用VDDA(3.3V)作为VREFHI。此时ADC量程为0-3.3V。
- 开关拨到右侧:对应ADC模块使用“替代参考”。这个“替代参考”的具体来源,又由板卡背面(或侧面)的两个0603封装的电阻R47和R48的焊接情况决定:
- 方案A(默认出厂可能未焊接):如果R47未焊接(空贴),R48焊接(贴0欧姆电阻或磁珠),则“替代参考”来自板载的一颗精密电压基准芯片REF5030(输出3.0V)。这是高精度模式。
- 方案B:如果R47焊接,R48未焊接,则“替代参考”电压来自HSEC连接器的第45脚。这允许用户通过扩展底板来自定义参考电压,例如使用更精准的2.5V基准。
ADC输入保护与滤波所有ADC输入引脚都设计了钳位保护二极管,防止过压损坏MCU。此外,在ADC输入通道的焊盘附近(C16-C27, C32-C43位置),预留了RC滤波电路的焊盘。用户可以根据信号特性,自行焊接电阻和电容,构成简单的抗混叠滤波器(Anti-aliasing Filter),以滤除高频噪声。这是一个非常实用的设计,让你能根据实际传感器信号情况优化模拟输入质量。
3.3 启动模式配置(S2开关)
S2是一个两位的拨码开关,用于设置F28388D的上电启动模式。它通过上拉/下拉电阻配置GPIO84和GPIO72的初始状态,MCU在上电复位时会读取这两个引脚的状态来决定从何处启动。
开关逻辑需要特别注意:S2开关在拨到“ON”位置时,是将对应的MCU引脚拉低到逻辑0;拨到“OFF”位置时,引脚被上拉为逻辑1。这与我们直觉的“ON=1”相反,务必留意。
| 启动模式 | 开关1 (GPIO84) | 开关2 (GPIO72) | 启动来源 |
|---|---|---|---|
| 模式 00 | OFF (右) | OFF (右) | 并行I/O (通常不用于此板卡) |
| 模式 01 | ON (左) | OFF (右) | SCI/UART等待引导 |
| 模式 02 | OFF (右) | ON (左) | CAN总线引导 |
| 模式 03 | ON (左) | ON (左) | 从内部Flash启动 / USB启动 |
- SCI/UART等待引导(模式01):这是最常用的程序下载和调试模式。MCU上电后等待通过SCI-A(即GPIO28/29,连接到了板载FTDI USB转串口芯片)接收程序。通过CCS的仿真器连接后,CCS会自动通过JTAG和这个通道将程序下载到RAM中运行或烧录到Flash。
- 从Flash启动(模式03):当程序已经成功烧录到内部Flash后,将S2设置为该模式,MCU每次上电就会直接从Flash中加载并运行程序,实现脱机独立运行。
4. 关键硬件设置与操作详解
4.1 时钟源切换操作
如果你的项目需要特定的时钟频率,或者你拿到的是旧版20MHz板卡但想使用新版软件库,你可能需要更改时钟源。板卡上预留了将25MHz时钟源切换为20MHz的选项(反向操作理论上也可行,但需自备20MHz晶振)。
操作步骤(需要焊接技巧):
- 定位电阻:在板卡上找到电阻R43和R39。根据文档图示,它们通常位于晶振或时钟发生器芯片附近。
- 移除R43:使用热风枪或烙铁,小心地将当前焊接在R43位置上的0欧姆电阻(或磁珠)解焊取下。这是一个0402或0603封装的微小元件,操作需谨慎,避免损坏焊盘。
- 焊接至R39:将取下的0欧姆电阻焊接至R39的空焊盘上。
- 原理说明:这个操作本质上是通过跳线电阻,选择连接了不同频率晶振的时钟信号路径。将电阻从R43移到R39,意味着将输入到MCU的时钟信号从一路(假设连接25MHz)切换到了另一路(假设连接20MHz)。执行此操作前,务必确认你的板卡上另一路时钟电路(晶振和负载电容)是已经装配好的。
注意:这是一项精细的硬件修改,存在风险。除非确有必要,且你具备相应的动手能力,否则不建议进行。更稳妥的做法是根据板卡现有时钟频率,在软件中正确配置PLL。
4.2 使用板载仿真器进行程序下载与调试
假设你已按照2.2节连接好板载仿真器(USB线接J1:A, S1:A Position 1拨到ON),并安装了Code Composer Studio (CCS)。
- 启动CCS并创建/导入工程:打开CCS,选择合适的工作空间。你可以从C2000Ware的安装目录中导入一个示例工程,路径通常类似于:
C:\ti\c2000\C2000Ware_4_00_00_00\driverlib\f2838x\examples\c28x\adc。 - 配置目标连接:在CCS的“Target Configurations”视图中,新建一个配置。选择连接类型为“Texas Instruments XDS100v2 USB Debug Probe”,器件选择“TMS320F28388D”。保存配置。
- 设置启动模式:确保板卡的S2启动模式开关设置为01(SCI/UART等待引导)。这是通过JTAG+SCI进行程序下载的必要条件。
- 连接目标板:在CCS中,右键点击你的工程,选择“Debug As” -> “Code Composer Debug Session”。CCS会尝试通过JTAG连接板卡。如果连接成功,CCS会加载程序到RAM并暂停在
main()函数入口。 - 下载程序到Flash:如果希望程序掉电不丢失,需要在调试模式下,通过CCS的“Tools” -> “On-Chip Flash”工具,或者使用
FlashAPI在代码中编程,将程序烧写进内部Flash。烧写完成后,将S2开关改为03(从Flash启动),重新上电,程序即可自动运行。
4.3 独立运行(脱离仿真器)
当程序调试完毕并已烧录至Flash后,你可以让板卡脱离电脑独立工作。
- 烧录程序:如上所述,通过CCS和仿真器将程序烧写到F28388D的内部Flash中。
- 更改启动模式:将S2启动模式开关从01改为03(从Flash/USB启动)。
- 断开仿真器:可以拔掉连接J1:A的USB线。如果系统需要供电,确保通过扩展坞(选项一)或J3 Micro-USB(选项二,注意隔离问题)提供了5V电源。
- 复位或重新上电:按下板卡上的S1(复位按钮),或者重新上电。MCU将从Flash中加载程序并开始执行。此时,板载的D5(电源灯)和你的程序控制的LED(如D1, D2)应能正常指示状态。
5. 不同硬件版本差异与重要注意事项
官方文档的“Errata”(勘误)部分包含了至关重要的信息,特别是针对不同版本的controlCARD。忽略这些细节可能导致功能异常或可靠性问题。
5.1 通用注意事项
- USB端口(J3)非隔离:如前所述,这是最重要的安全警告之一。在非隔离的功率系统中使用J3,风险自负。
- 电源供应能力:虽然设计为USB供电,但若连接了大量外围电路(尤其在扩展坞上),500mA(USB 2.0)或900mA(USB 3.0)可能不足。若出现不稳定复位或外设工作异常,应考虑使用外部5V/2A以上的电源适配器通过扩展坞供电。
- R98电阻:板卡上有一个电阻R98(位置通常在USB电源入口附近),出厂时是焊接上的。它的作用是方便用户在没有底板的情况下仅通过J3 USB口评估板卡。但因为它增加了USB 5V线上的电容,可能超出USB规范。如果你的产品设计需要严格符合USB规范,应在最终设计中移除R98。
5.2 特定版本硬件差异与应对措施
MCU063E1版本:
- 已知错误与飞线:早期E1版本存在一个设计错误,出厂时已经通过切割两条走线并在U17和R111之间焊接一条蓝色飞线来修复。如果你手上的板卡有这条飞线,属于正常情况,功能与后续版本一致。
- U20缓冲器问题:E1版本上的U20缓冲器是非反相型的。这意味着,如果你尝试使用EtherCAT模块(ECAT)直接驱动状态指示灯D7(错误灯,红)和D8(运行灯,绿),它们的亮灭逻辑会是反的(即ECAT输出高电平想点亮LED,结果LED却熄灭)。解决方案:不要用ECAT模块直接驱动这些LED。改为使用普通的GPIO功能(例如GPIO145和GPIO146)来驱动D7和D8,这样就可以在软件中自由控制逻辑。
- R44电阻:默认已焊接。它影响某个信号的上拉/下拉,可根据你的电路需求决定是否保留。
- 缺失的56Ω电阻:E1设计上缺少一个连接在VDD和VSS之间的56Ω电阻。这个电阻的作用是消耗内部一个电流源的电流,防止在低功耗模式下VDD电压意外升高。建议:在最终产品系统中,应在VDD和VSS之间补焊一个精度10%或更好的56Ω电阻,以提升长期可靠性。
MCU063E2和MCU063A版本:
- 主要问题同样是缺失56Ω电阻,处理建议同上。
MCU063B及以后版本:
- 主要变化是默认时钟改为25MHz。务必与C2000Ware v3.02.00.00及以上版本配套使用。
6. 软件生态与开发资源
硬件是骨架,软件才是灵魂。围绕F28388D controlCARD,TI提供了强大的软件支持。
1. Code Composer Studio (CCS)这是TI官方的集成开发环境,基于Eclipse,支持代码编辑、编译、调试、性能分析等一系列功能。对于C2000开发,CCS是首选,因为它深度集成了TI的编译器、链接器和调试工具。你可以从TI官网免费下载其授权版本。
2. C2000Ware这是一个庞大的软件包,包含器件支持库、外设驱动库(Driverlib)、大量示例工程、文档和工具。它是开发的基石。安装后,你可以在driverlib目录下找到基于API的易用示例,在device_support目录下找到更底层的寄存器级示例。再次强调,请根据你的controlCARD硬件版本(20/25 MHz),选择或修改C2000Ware中示例工程的时钟初始化代码。
3. controlCARD引脚映射文件在C2000Ware的安装目录下,可以找到两个非常重要的PDF文件:
TMDSCNCD28388D_180cCARD_map.pdf:详细列出了F28388D每个引脚对应到180引脚HSEC连接器上的哪个针脚,以及对应到标准180引脚扩展坞上的哪个接口(如LED、按键、接口等)。这是连接外部电路时必须查阅的“接线图”。TMDSCNCD28388D_100DIM_map.pdf:如果你使用了TMDSADAP180TO100转接卡,将controlCARD插到100引脚的DIM100接口扩展坞上,这个文件指明了引脚映射关系。
4. 硬件设计文件每个controlCARD都附带一个硬件开发者套件(Hardware Developer‘s Kit),包含完整的原理图(Altium格式)、PCB布局文件、BOM(物料清单)和Gerber生产文件。这些是极佳的学习资源和参考设计。你可以在TI官网该板卡的产品页面找到下载链接。仔细研究其电源滤波、信号布局、ESD保护等设计,对提升你自己的硬件设计能力大有裨益。
7. 常见问题排查与实战心得
在实际使用中,你可能会遇到一些典型问题。这里分享一些排查思路和我踩过的坑。
问题1:CCS无法连接目标板,提示“Error connecting to the target”或“Failed to open XDS100v2”。
- 检查供电:确认板卡已上电,D5灯亮。如果使用扩展坞,确认扩展坞开关已打开。
- 检查S1:A开关:确认S1:A的Position 1(JTAG使能)已拨到ON(右侧)。这是最常被忽略的一点。
- 检查S2启动模式:确认S2开关设置为模式01(SCI/UART等待引导)。在其他模式下,JTAG可能无法正常连接。
- 检查USB线缆和驱动:尝试更换USB线,尤其是J1:A使用的USB-B Mini线。在Windows设备管理器中检查是否有“XDS100v2”设备且驱动正常(无感叹号)。可以尝试重启CCS或电脑。
- 检查板卡版本与软件兼容性:如果是旧版20MHz板卡,使用了新版CCS/C2000Ware,有时仿真器连接会不稳定。尝试降低JTAG连接速度(在CCS目标配置的“Advanced”选项里),或确保使用匹配的软件示例工程。
问题2:程序下载成功,但运行时ADC采样值不准或波动大。
- 检查ADC参考电压设置:确认S3/S4开关位置是否符合你的预期。如果你需要高精度,应拨到右侧(使用外部基准),并检查R47/R48的配置是否对应你想要的基准源(板载3.0V或外部输入)。
- 检查模拟输入信号:确保输入信号在0-3V(使用外部3V基准时)或0-3.3V(使用VDDA基准时)范围内。超范围会被钳位二极管钳位,但可能引入误差。
- 注意电源噪声:ADC的精度极度依赖干净的模拟电源。确保板卡供电稳定。如果使用开关电源,噪声可能较大。可以尝试用线性稳压电源供电,或在扩展坞的模拟电源部分增加额外的LC滤波。
- 利用板载滤波焊盘:如果信号线较长或环境噪声大,可以在ADC输入通道的Cxx和Rxx位置(参考原理图)焊接合适的RC(例如1kΩ + 100pF),构成低通滤波器。
问题3:使用EtherCAT功能时,通信不稳定或无法建立连接。
- 确认时钟一致性:这是EtherCAT工作的首要条件。F28388D内部的ESC(从站控制器)和外部PHY芯片(DP83822/DP83826)必须使用同源同频的时钟。在MCU063B及以后版本的controlCARD上,25MHz时钟同时供给MCU和PHY,已满足要求。如果你在自定义底板上设计,必须保证这一点。
- 检查PHY地址和引脚配置:根据原理图,确认EtherCAT PHY的地址配置(通过MDIO)是否正确,以及PHY的复位、中断等引脚与MCU的连接和软件配置是否匹配。
- 检查网络配置:确保EtherCAT主站配置正确,网络拓扑中不能有交换机,应使用菊花链方式连接。检查网线是否完好。
问题4:想使用GPIO28或GPIO29,但发现其行为异常。
- 检查S1:A Position 2开关:这个开关控制GPIO28是否连接到板载的FTDI USB转串口芯片。如果该开关在ON位置,GPIO28会被FTDI芯片内部上拉,你无法将其完全拉低,功能受限。如果你需要将GPIO28用作普通IO或其它复用功能,必须将S1:A Position 2拨到OFF(左侧)。GPIO29通常专用于SCI-A的接收,也受此开关影响。
个人心得:
- 善用测试点:板卡正面和背面分布了许多测试点(TP1-TP10等)。例如,TP8和TP9分别是滤波后的3.3V和1.2V,用万用表或示波器测量这些点,是快速判断电源质量的好方法。TP6是MCU的时钟输入点,可以测量实际时钟频率。
- 从示例工程开始:不要一开始就尝试从头创建空工程。先从C2000Ware中与你需求最接近的示例工程(例如ADC采样、PWM输出)开始,在其基础上修改。这能避免大量的底层配置错误。
- 版本管理:对于C2000Ware、CCS甚至controlCARD的硬件版本,做好记录。不同版本间的差异(如时钟、Driverlib API)可能导致项目迁移时出现各种奇怪问题。建立一个稳定的开发环境并记录其配置,能节省大量调试时间。
- 隔离意识:时刻记住J3 USB口是非隔离的。在调试电机驱动器等有功率地的系统时,要么使用隔离的仿真器(如板载的XDS100v2通过J1:A连接),要么使用USB隔离器,要么彻底放弃J3,改用扩展坞供电和通信。一次地环路引起的意外,可能让你损失一块板卡甚至一台电脑。