stm32项目(24)——基于STM32的汽车CAN通信系统

1.实现功能

主要是通过CAN通信协议,控制汽车的:两个转向灯,一个倒车灯,两个大灯。转向灯用一个电位器模拟方向盘,往左拧(即左转)自动打开左转向灯,右转同上。倒车就用一个按钮模拟,按下按钮倒车灯亮。大灯分出近光灯和远光灯,用亮度区分。

控制模式分为自动与手动两种,手动就是用按键控制,自动模式下:光敏传感器检测到天黑时,自动打开远光灯,天亮关灯;天黑且红外传感器检测到对向有来车时,自动切换为近光灯。

整个系统的相关信息会显示在OLED屏幕上,以便掌握系统实时状态。

(整个系统分为上位机与下位机,上位机发送指令,下位机接收并进行灯光控制)

2.原理图

发送端:

接收端:

3.演示视频

汽车CAN通信系统

要使用到两个CAN通信模块,连接方式如视频所示

4.主要模块介绍

4.1 CAN通信模块

TJA1050模块

TJA1050 是高速CAN总线收发器,用于实现单片机与CAN总线网络的物理层连接,广泛应用于汽车电子、工业控制等领域。


1. 基本特性

  • 兼容标准 :支持 ISO 11898-2 高速CAN(最高1Mbps)。

  • 工作电压

    • VCC:4.5V~5.5V(逻辑侧电源)。

    • VBAT:电池电压(支持车辆12V/24V系统,防反接保护)。

  • 接口保护

    • ±8kV ESD保护(抗静电)。

    • 总线引脚抗短路和过压(-27V~+40V)。

  • 低功耗模式:支持静默模式(Silent Mode)和睡眠模式(低功耗待机)。


2. 模块接口(6引脚)

引脚 功能 连接说明
TXD 发送数据输入 接单片机CAN控制器TXD引脚
RXD 接收数据输出 接单片机CAN控制器RXD引脚
VCC 逻辑电源(5V) 接单片机5V电源
GND 接地 与单片机共地
CANH CAN总线高电平线 接CAN总线差分线CAN_H
CANL CAN总线低电平线 接CAN总线差分线CAN_L

📌 注意

  • CANH和CANL需加 120Ω终端电阻(总线两端各一个,匹配阻抗)。

  • 若单片机无内置CAN控制器,需外接 CAN控制器芯片(如MCP2515)。


3. 信号传输(差分通信)

CAN总线电平逻辑

  • 显性电平(Dominant):表示逻辑0,强制拉低总线。

    • CANH ≈ 3.5V,CANL ≈ 1.5V(差分电压+2V)。
  • 隐性电平(Recessive):表示逻辑1,总线悬空。

    • CANH ≈ 2.5V,CANL ≈ 2.5V(差分电压0V)。

数据帧结构(基于CAN 2.0B)

  • 仲裁段:11位标识符(标准帧)或29位(扩展帧)。

  • 数据段:0~8字节用户数据。

  • CRC校验:保证数据完整性。


4. 工作原理

  1. 发送数据

    • 单片机通过CAN控制器(如STM32的bxCAN)将数据发送到TJA1050的TXD引脚。

    • TJA1050将逻辑信号转换为CAN差分信号(CANH/CANL)。

  2. 接收数据

    • TJA1050检测总线差分电压,将信号转换为逻辑电平通过RXD输出给单片机。
  3. 冲突处理

    • CAN总线通过 非破坏性仲裁(标识符优先级)解决多节点同时发送的冲突。

5. 单片机连接示例(STM32)

硬件连接

  • STM32F103(内置CAN控制器):

    • PA11 → CAN_RX → TJA1050_RXD

    • PA12 → CAN_TX → TJA1050_TXD

4.2 LED灯

该灯高电平即可点亮,使用PWM信号即可控制它的亮度,作为前面的大灯使用。

该灯是RGB三色灯,作为转向灯和尾灯使用,我只用到了其中一种颜色,所以只接线两根就行。

4.3 电位器

该模块输出模拟电压,使用AD检测,即可模拟左右转向。

5.源文件

压缩包内有代码、原理图文件、元件及接线讲解视频

相关推荐
嵌入式×边缘AI:打怪升级日志2 小时前
【无标题】
单片机·嵌入式硬件
FORCECON12 小时前
力控汽车零部件冲压MES系统方案
汽车·mes·智能智造
MYZR13 小时前
汽车电子:现代汽车的“神经中枢“
人工智能·汽车·核心板·ssd2351
江苏世纪龙科技4 小时前
【世纪龙科技】汽车车身测量虚拟实训软件-虚境精测全维赋能
汽车
天天爱吃肉82184 小时前
新能源汽车热管理系统核心零部件及工作原理详解
汽车
程序员JerrySUN5 小时前
四级页表通俗讲解与实践(以 64 位 ARM Cortex-A 为例)
java·arm开发·数据库·redis·嵌入式硬件·缓存
DIY机器人工房5 小时前
开发板RK3568和stm32的异同:
嵌入式硬件·嵌入式·diy机器人工房
机器视觉与AI6 小时前
汽车专题 | 视觉AI正在重构整车质检格局
人工智能·重构·汽车
酷飞飞16 小时前
库函数版独立按键用位运算方式实现(STC8)
单片机·嵌入式硬件