本文是《从零到一:把一块 RK3568 开发板移植到 OpenHarmony 6.1 全记录》系列的第 3 篇。不讲代码,只认零件——把一块真实开发板上的每个部件讲清楚。零基础友好。
很多刚接触嵌入式的朋友,看到开发板第一反应是:"这不就是块绿色电路板吗?"其实一块开发板 = 一台完整的电脑,只是零件都焊在了板上。今天就用我手上的 CHESHIT10 开发板(主芯片瑞芯微 RK3568)当教材,把每个零件拆开讲。
一、先理解一个词:嵌入式系统
通用计算机(你的 PC):硬件千变万化,软件随便装,追求"功能全面"。
嵌入式系统:为特定用途定制的计算机,软件和硬件高度绑定。手机、路由器、智能手表、车载屏、工业控制板都是嵌入式。特点:
- 硬件固定(零件焊死在板上)
- 软件专门定制(不能像 PC 那样随便换系统)
- 资源受限(内存存储比 PC 小几个数量级)
我这块 CHESHIT10 开发板,就是一个典型的嵌入式设备:7 寸触摸屏 + 4G 上网,原本跑 Android,定位是行业终端。
二、全景:一块板 = 大脑 + 工作台 + 仓库 + 一堆外设
┌─────────────────── CHESHIT10 开发板 ───────────────────┐
│ ┌──────────┐ ┌──────────┐ ┌─────────────┐ │
│ │ 7寸屏 │ │ 触摸芯片 │ │ 4G 模组 │ │
│ │ 1024x600 │◄────►│ TW3106 │ │ Quectel │ │
│ └────┬─────┘ └────┬─────┘ └──────┬──────┘ │
│ │ MIPI-DSI1 │ I2C总线 │ USB │
│ ┌────▼─────────────────▼───────────────▼──────┐ │
│ │ RK3568 主芯片 (大脑) │ │
│ │ CPU 4核A55 + GPU Mali-G52 + NPU 0.8T │ │
│ └───┬──────────┬──────────┬──────────┬───────┘ │
│ ┌────▼───┐ ┌────▼───┐ ┌────▼────┐ ┌───▼─────┐ │
│ │RK809 │ │2GB DDR4│ │16GB eMMC│ │RTL8201F │ │
│ │供电站 │ │工作台 │ │仓库 │ │网卡 │ │
│ └────────┘ └────────┘ └─────────┘ └─────────┘ │
│ 还有: USB口×3、SD卡槽、双摄像头、喇叭麦克风、 │
│ HDMI副屏、CAN、SATA... │
└────────────────────────────────────────────────────┘
三、逐个零件认识
1. 大脑:SoC = RK3568
SoC(System on Chip,片上系统) = 把 CPU + GPU + 各种控制器塞进一颗芯片。打开任何一块开发板,最大的那颗方形芯片就是它。
RK3568 里有什么:
| 部件 | 作用 | 类比 |
|---|---|---|
| CPU:4×Cortex-A55 | 通用计算 | 电脑处理器 |
| GPU:Mali-G52 | 图形渲染,给屏幕画画 | 显卡 |
| NPU:0.8 TOPS | AI 加速 | 独立的 AI 芯片 |
| 显示控制器 | 输出到屏/HDMI | 显卡的输出口 |
| 摄像头接口 | 接收摄像头信号 | 采集卡 |
| USB/网口/存储控制器 | 接各种外设 | 主板南桥 |
一句话:所有外设最终都接到 RK3568 上,由它统一指挥。
2. 工作台:2GB DDR4 内存
程序运行时临时存放数据的地方,断电即失。2GB 在嵌入式里相当够用(DDR4@1056MHz 是型号和速度,移植时要配它的时序参数——第 4 篇开机流程会讲到为什么内存配置是"最高优先级")。
3. 仓库:16GB eMMC 存储
永久存放系统文件,断电不丢。相当于电脑硬盘,只是做成了焊在板上的一颗芯片。烧写系统 = 把镜像写进这颗 eMMC。
4. 供电站:RK809 电源管理芯片
一块板子上的芯片需要好几种电压:CPU 0.9V、内存 1.2V、外设 1.8V/3.3V。RK809 就是统一管理这些电压的芯片(叫 PMIC),顺手还内置了声卡(Codec)——所以这块板的喇叭/麦克风直接由它管。
5. 脸:屏幕 + 触摸 + 背光
- 主屏:7.1 寸,1024x600 分辨率,MIPI-DSI1 接口(屏和主芯片之间的视频接口)
- 触摸:TW3106 芯片,通过 I2C 总线(下面讲)和主芯片通信,地址 0x0c
- 背光:PWM4 信号控制亮度
一个有意思的细节:这块屏物理上是竖着装的,系统里旋转 270° 显示(所以系统看到的是 600x1024)。这个"旋转参数"在移植时要写对,否则画面就是歪的。
6. 手脚:以太网 + 4G + WiFi
- 有线网:RTL8201F 芯片,100M 网口
- 4G:Quectel 移远模组,插 SIM 卡上网,通过 USB 接到主板(真机实测是它,不是文档写的另一款——硬件信息要以真机为准,这是移植的第一课)
- WiFi/蓝牙:板上有 SDIO 接口的 WiFi 芯片(蓝牙目前禁用)
7. 眼睛:双摄像头
两颗:GC2053(红外夜视)+ GC2093(彩色),都走 MIPI-CSI 接口(和屏的 DSI 对应的"输入版"接口)。移植时这两颗摄像头的信号通路配置是最复杂的部分之一,第 6 篇会讲。
四、认识一根"线":I2C 总线(触摸芯片就挂在这)
主芯片和外围小芯片(触摸、时钟、传感器)怎么通信?常用一种叫 I2C 的"公共电话线":
RK3568 ───┬───── SDA(数据线)─────┬─────────┬─────────┐
└───── SCL(时钟线)─────┘ │ │
TW3106 HYM8563 MXC6655XA
地址0x0c 地址0x51 地址0x15
- 一条总线上挂多颗芯片,每颗有独立地址
- 主芯片喊"地址 0x0c 的请回答",只有 TW3106 会应
- 这块板有好几条 I2C:I2C0 接电源芯片、I2C1 接时钟、I2C3 接触摸、I2C4 接摄像头
记住这个机制——它正是第 9 篇"一块板兼容多种触摸芯片"的基础:芯片在板上,敲门就有人应;没焊,就没人应。
五、为什么"认识硬件"这么麻烦?(承上启下)
PC 装系统不用移植,因为 BIOS 会自动汇报硬件。而嵌入式板子:
- 每块板接线不同(同一颗 RK3568,不同板子屏幕接的引脚不同)
- 没有自动汇报机制,系统必须被事先告知硬件在哪、怎么接
这份"事先告知"就是设备树(Device Tree)——整个移植工作量最大的部分,第 5、6 篇的主角。
写在最后
今天只做了一件事:认零件。看懂这张零件图,后面讲"设备树怎么写""驱动怎么配"时,你脑子里就能对应到具体的硬件。
下一篇讲动态过程:按下电源后,这块板子是怎么一步步"活"过来的。