2、系统架构设计:主控与从屏的拓扑结构,通信协议选型
好,咱们进入第二章。这一章我打算聊聊系统架构设计。说白了,就是决定「谁管谁」和「怎么说话」的问题。
很多新手工程师一上来就画原理图、选芯片,结果做到一半发现通信带宽不够,或者某个从屏老是掉线。嗯,我早期也踩过这个坑。所以这一章,咱们把拓扑结构和通信协议一次性聊透。
2.1 拓扑结构:三种主流方案
多屏系统里,主控和从屏怎么连?我归纳下来,无非三种:星型、总线型、分布式。每种都有它的脾气。
2.1.1 星型拓扑
这是最直观的方案。主控作为中心节点,每个从屏都单独拉一根线连到主控上。
- 优点:控制简单,每个从屏独立,一个坏了不影响其他。
- 缺点:主控的引脚需求多,线缆数量随屏幕数线性增长。
- 适用场景:屏幕数量少(2-4个),且对实时性要求高的场合。
我个人习惯:在原型阶段,我经常用星型。因为调试方便,每个屏幕可以单独点灯、刷数据。但量产时如果超过4个屏,我就会考虑换方案了。
2.1.2 总线型拓扑
所有从屏挂在一根总线上,主控通过地址来区分。就像公交车,每个人都有自己的座位号。
- 优点:节省IO口,线缆少,扩展容易。
- 缺点:总线冲突风险,带宽共享,一个节点故障可能拖垮整条总线。
- 适用场景:屏幕数量中等(4-16个),数据量不大的场景。
避坑指南:我曾经在一个项目里用I2C总线挂了8个OLED屏,结果发现地址冲突。后来才知道,很多I2C器件只有几个可编程地址位。所以选型时一定要算好地址空间。
2.1.3 分布式拓扑
每个从屏都有自己的小处理器,主控只发指令,从屏自己处理显示内容。说白了,就是「让听得见炮火的人做决策」。
- 优点:主控负载低,系统扩展性强,适合大规模组网。
- 缺点:成本高,开发复杂度大,需要处理节点间的同步问题。
- 适用场景:屏幕数量多(16个以上),或者屏幕分布范围广的场景。
你想想看,如果每个屏幕都要主控去刷新像素,那主控得累死。分布式就是把刷屏的活下放给从机,主控只负责「下命令」。
2.2 通信协议选型:选对路子,事半功倍
拓扑定下来,接下来就是选通信协议。我见过不少项目,拓扑选对了,协议没选对,结果一样翻车。下面我把四种常用协议掰开揉碎了讲。
2.2.1 SPI(串行外设接口)
SPI 是全双工、主从通信。速度可以做到几十MHz,甚至上百MHz。
| 特性 | 说明 |
|---|---|
| 通信方式 | 全双工,四线制(SCK、MOSI、MISO、CS) |
| 典型速率 | 10MHz - 80MHz |
| 最大从机数 | 受限于主控CS引脚数量 |
| 传输距离 | 板级通信,通常不超过30cm |
我的经验:SPI 适合驱动高刷新率的TFT彩屏。我在一个车载仪表盘项目里,用SPI跑40MHz,刷新一个320x240的屏幕,帧率能到60fps。但注意,线长了信号会衰减,超过20cm就得加驱动芯片。
2.2.2 I2C(I方C)
I2C 是半双工,两线制(SCL、SDA)。速度相对慢,但胜在引脚少。
| 特性 | 说明 |
|---|---|
| 通信方式 | 半双工,两线制,带地址仲裁 |
| 典型速率 | 100kHz(标准),400kHz(快速),1MHz(高速) |
| 最大从机数 | 理论127个(7位地址),实际受总线电容限制 |
| 传输距离 | 板级通信,通常不超过1米 |
注意:I2C 的总线电容是个隐形杀手。我曾经在一个项目里挂了6个从机,总线长度加起来不到50cm,结果通信时好时坏。后来用示波器一看,上升沿都变成斜坡了。解决办法是降低速率,或者加总线缓冲器。
2.2.3 CAN(控制器局域网)
CAN 是差分信号,抗干扰能力强,支持多主通信。这是工业界的老兵。
| 特性 | 说明 |
|---|---|
| 通信方式 | 差分信号,半双工,多主仲裁 |
| 典型速率 | 125kbps - 1Mbps |
| 最大节点数 | 理论110个,实际受总线负载限制 |
| 传输距离 | 1Mbps时约40米,125kbps时可达500米 |
为什么会推荐CAN?因为它的错误检测机制非常强。每个节点都能检测总线错误,自动重发。我在做工业HMI项目时,现场环境有电机、变频器,干扰很大。用CAN从来没出过丢包问题。
2.2.4 以太网
以太网是终极方案。速度快、距离远、生态成熟。但代价是成本高、功耗大。
| 特性 | 说明 |
|---|---|
| 通信方式 | 全双工,差分信号,支持TCP/IP协议栈 |
| 典型速率 | 10/100/1000Mbps |
| 最大节点数 | 理论上无限制(通过交换机) |
| 传输距离 | 100米(无中继),可扩展 |
我建议:如果你的多屏系统需要远程监控、OTA升级,或者屏幕分布在不同的房间/楼层,直接上以太网。虽然前期开发成本高,但后期维护会省心很多。
2.3 选型决策矩阵
说了这么多,到底怎么选?我整理了一个简单的决策矩阵,你可以对着自己的需求打勾。
| 需求 | 推荐协议 | 理由 |
|---|---|---|
| 屏幕数量少(≤4),刷新率高 | SPI | 速度快,控制简单 |
| 屏幕数量中等,数据量小 | I2C | 引脚少,布线方便 |
| 工业环境,抗干扰要求高 | CAN | 差分信号,错误检测强 |
| 屏幕分布广,需要远程管理 | 以太网 | 距离远,生态完善 |
| 成本敏感,量极大 | SPI 或 I2C | 芯片便宜,外围电路简单 |
嗯,这一章的内容差不多就这些。总结一下:拓扑结构决定了「怎么连」,通信协议决定了「怎么聊」。两者要一起考虑,不能割裂。下一章我会讲硬件选型,包括主控芯片怎么挑、屏幕驱动芯片怎么配。到时候见。
核心要点回顾:
- 星型拓扑适合小规模、高实时性场景
- 总线型拓扑适合中等规模、节省IO的场景
- 分布式拓扑适合大规模、需要本地处理的场景
- SPI 快但距离短,I2C 省线但速度慢,CAN 抗干扰强,以太网全能但贵
- 选型时一定要考虑实际布线长度、环境干扰和成本预算