2、物理层接口:RS232电平转换、USB转串口芯片选型(CH340/CP2102)、蓝牙模块(HC-05/HC-06)接线

好,咱们接着聊。上一章讲了串口协议本身,这一章咱们得落地了——物理层怎么连?

说白了,上位机和按摩仪之间,信号得有个“翻译官”。单片机出来的是TTL电平,电脑串口是RS232电平,USB口又是另一套。你直接怼上去,轻则通信失败,重则烧芯片。我早年就干过这种事,嗯,不提了。

2.1 RS232电平转换:为什么需要它?

先看个基本事实:
单片机(STM32、51等)的串口引脚,输出的是0~3.3V或0~5V的TTL电平。
而电脑的DB9串口(老式COM口),用的是RS232标准:逻辑“1”是-3V~-15V,逻辑“0”是+3V~+15V。

你看,电压范围完全不一样。直接连?不行的。

所以需要一颗电平转换芯片,比如经典的MAX232。它内部有电荷泵,能把单电源(5V)转换成±10V左右的RS232电平。

典型接线(MAX232):

  • VCC接5V,GND接地
  • C1+、C1-、C2+、C2-:接4个电解电容(通常1μF~10μF)
  • T1IN:接单片机TX(发送)
  • R1OUT:接单片机RX(接收)
  • T1OUT:接DB9的2脚(RS232 TX)
  • R1IN:接DB9的3脚(RS232 RX)

我个人习惯,电容用10μF的钽电容,稳定。别用瓷片,电荷泵纹波会大。

小提示:现在很多新电脑没有DB9口了。所以RS232电平转换,更多是用于和老设备对接。新项目我建议直接跳过这步,用USB转串口。

2.2 USB转串口芯片选型:CH340 vs CP2102

这是目前最常用的方案。电脑USB口出来,经过一颗芯片,直接变成TTL串口,连到按摩仪主控板上。

市面上主流的两款:CH340(国产)和CP2102(Silicon Labs)。

对比项 CH340 CP2102
价格 便宜(2~3元) 稍贵(5~8元)
驱动兼容性 Win/Linux/Mac都行,但Mac需额外装驱动 Mac免驱,Win需装驱动
稳定性 够用,但高速下偶有丢包 更稳定,适合115200以上波特率
封装 SOP-16,手工焊接友好 QFN-28,需要热风枪
外围电路 需要晶振(12MHz) 内置晶振,外围更简洁

我个人的建议:

  • 做产品、批量生产:用CH340。成本低,货源足,国产芯片现在很成熟。
  • 做原型、调试用:用CP2102。稳定,省心,少折腾。

我曾经在一个项目里,因为CH340在高温下(按摩仪内部温度高)偶尔丢包,排查了两天才发现。后来换成CP2102,问题消失。所以如果你对稳定性要求高,别省那几块钱。

注意:CH340的VCC引脚,有些模块是3.3V输出,有些是5V。买之前看清楚。接错电压,按摩仪主控芯片可能直接冒烟。

2.3 蓝牙模块(HC-05/HC-06)接线

无线方案,现在越来越流行。用户不想拖根线,对吧?

HC-05和HC-06是市面上最常见的蓝牙串口模块。它们本质上是把蓝牙协议封装成了串口——你发串口数据,它自动通过蓝牙发出去;对方发蓝牙数据,它从串口吐出来。

两者区别:

  • HC-05:主从一体。可以做主机(主动连接别人),也可以做从机(被连接)。支持AT指令配置。
  • HC-06:只能做从机。不能主动连接。AT指令也少一些。

对于按摩仪上位机,我建议用HC-05。为什么?因为你可以通过AT指令修改模块名称、配对密码、波特率。比如把模块名改成“Massage_Device_01”,用户手机一搜就知道是哪个。

接线方式:

HC-05/HC-06      按摩仪主控(STM32/51)
VCC    ----------  3.3V 或 5V(看模块规格)
GND    ----------  GND
TXD    ----------  RX(主控的接收引脚)
RXD    ----------  TX(主控的发送引脚)
EN/KEY ----------  3.3V(进入AT指令模式时拉高)

关键点:

  • HC-05的RXD引脚,只能接3.3V电平!如果主控是5V,必须加电阻分压或用电平转换芯片。我见过有人直接接5V,结果蓝牙模块的RXD引脚烧了。
  • HC-05默认波特率是9600,但可以通过AT指令改成115200。我个人习惯改成115200,因为按摩仪需要实时传输力度、温度等数据,9600有点慢。

AT指令怎么用?简单说:把EN/KEY引脚拉高(接3.3V),然后上电。模块就进入AT模式。此时用串口助手发指令,比如:

AT+NAME=Massage_Pro    // 改名字
AT+UART=115200,0,0     // 改波特率115200,1位停止位,无校验
AT+PSWD=1234           // 改配对密码

嗯,这里要注意:AT指令必须以回车换行结尾(\r\n)。串口助手记得勾选“发送新行”。

避坑指南:我曾经在HC-05的AT模式下,忘记断开EN引脚,结果模块一直处于AT模式,无法正常通信。折腾了半天才发现。所以正常通信时,EN引脚要悬空或拉低。

2.4 三种方案怎么选?

最后给个总结,帮你快速决策:

  • 有线、调试阶段:USB转串口(CH340或CP2102)。简单,便宜,稳定。
  • 有线、老设备对接:RS232电平转换(MAX232)。
  • 无线、产品化:蓝牙模块(HC-05)。用户体验好,手机或电脑都能连。

我个人现在做按摩仪项目,基本是:调试用CP2102,量产用HC-05。CH340偶尔用,但高温环境我会避开。

好了,物理层就这些。下一章咱们聊数据链路层——怎么组帧、怎么校验、怎么保证数据不丢不重。到时候见。