当前位置: 首页 > web >正文

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接地与单片机共地
CANHCAN总线高电平线接CAN总线差分线CAN_H
CANLCAN总线低电平线接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.源文件

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

http://www.xdnf.cn/news/17481.html

相关文章:

  • 费米问题:估算北京有多少量特斯拉汽车?
  • 等保测评-RabbitMQ中间件
  • 【线性代数】目录
  • day 16 stm32 IIC
  • STM32——时钟系统
  • WinForm 中 ListView 控件的实战应用与功能拓展
  • Bee 2.5.2.6 发布
  • 库函数蜂鸣器的使用(STC8)
  • Typora上传图片保存到assets目录下
  • 线程池多反应堆服务器webserver(c++)
  • Web文件上传:本地与云存储实战
  • 数据分析框架从 “工具堆砌” 转向 “智能协同”
  • 每日算法刷题Day59:8.9:leetcode 队列8道题,用时2h30min
  • 【JVM】深入解析Java虚拟机
  • 全志MPP学习(1)-全志MPP概念理清
  • VisionPro常用标定方式
  • Java学习Collection单列集合中的三种通用遍历方法
  • CPO-SVM分类预测+特征贡献SHAP分析,通过特征贡献分析增强模型透明度,Matlab代码实现,引入SHAP方法打破黑箱限制,提供全局及局部双重解释视角
  • Vue 服务端渲染(SSR)详解
  • 饿了么零售 sign 分析
  • [ MySQL 数据库 ] 环境安装配置和使用
  • 支付宝「安全发-甲方直发」架构详解及与「安全发ISV模式」对比
  • 二十八天(数据结构:图的补充)
  • 仓颉编程语言的match表达式
  • 【科研绘图系列】R语言绘制气泡图
  • 用户、组和目录的磁盘配额
  • GDB 调试全方位指南:从入门到精通
  • CSS--后端也有自己的CSS要学
  • 二、RuoYi-Cloud-Plus 拉取到本地的准备和注意事项
  • 睿抗开发者大赛国赛-24