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.源文件

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

相关推荐
Zw-awa1 小时前
计算机视觉:让板子从“看见”到“看懂”
stm32
黑妹天下第一乖4 小时前
第 08 讲:阿加犀 AidGenSE 端侧大模型服务化与 OpenAI 兼容接口
人工智能·嵌入式硬件·深度学习·机器人·iot
辰哥单片机设计4 小时前
漏水传感器(STM32)
stm32·单片机·嵌入式硬件
恶魔泡泡糖5 小时前
stm32F103C8T6标准库串口接收之多串口基础应用5
stm32·单片机·嵌入式硬件
木子单片机5 小时前
基于51单片机计步器—无线蓝牙APP上传
单片机·嵌入式硬件·51单片机·keil
恒锐丰科技林技术员5 小时前
EG2123A 三相独立半桥驱动芯片解析与工程应用
经验分享·嵌入式硬件·硬件工程
硅基手札6 小时前
【Linux 内核专栏 13】快IO层
linux·服务器·嵌入式硬件
李日华大战鸡红6 小时前
滑膜观测器(学习记录)
stm32·单片机·学习·matlab·机器人
白搞电子6 小时前
ESP32-S31 项目如何制作 Windows 一键烧录包:完整镜像、esptool 与数据边界
windows·stm32·单片机
xiangw@GZ7 小时前
纽扣电池型号
嵌入式硬件