目录

  • 1 课程简介
    • 1.1 课程简介
    • 1.2 课程标准
    • 1.3 职业证书对接
    • 1.4 课程分工
  • 2 数据采集
    • 2.1 数据采集之数字量传感数据采集
    • 2.2 数据采集之模拟量传感数据采集
    • 2.3 数据采集之模拟量转换为数字量
    • 2.4 数据采集之开关量传感数据采集
  • 3 STM32微控制器基本外设应用开发
    • 3.1 STM32基础知识
    • 3.2 任务1 开发环境搭建和工程建立
    • 3.3 任务2 LED流水灯应用开发
    • 3.4 任务3 按键控制LED灯亮灭
    • 3.5 任务4 串行通信控制LED流水灯应用开发
    • 3.6 任务5 电池电量检测应用开发
  • 4 RS-485总线通信应用
    • 4.1 RS-485基本知识
    • 4.2 RS-485通信协议及网关通信协议
    • 4.3 Modbus通信协议
    • 4.4 任务1 案例分析及工程代码编写
    • 4.5 任务2 系统搭建及云平台项目创建
  • 5 CAN总线通信应用
    • 5.1 CAN总线基本知识
    • 5.2 CAN通信帧
    • 5.3 CAN控制器和收发器
    • 5.4 任务1 案例分析及工程代码编写
    • 5.5 任务2 系统搭建及云平台项目创建
    • 5.6 任务3 CAN通信数据抓包与解析
  • 6 BasicRF的无线通信应用
    • 6.1 BasicRF基础知识
    • 6.2 任务1创建工程项目
    • 6.3 任务2 温湿度节点数据采集
    • 6.4 任务3 火焰节点数据采集
    • 6.5 任务4 传感器节点组网
    • 6.6 任务5 传感数据汇聚
  • 7 WiFi数据通信
    • 7.1 WI-FI基础知识
    • 7.2 使用AT指令配置WI-FI工作模式
    • 7.3 WI-FI接入云平台
  • 8 NB-IoT联网通信
    • 8.1 NB-IoT技术简介
    • 8.2 利尔达NB-IoT模组介绍
    • 8.3 任务1 “智慧路灯”AT指令代码编写
    • 8.4 任务2.烧写智能路灯
    • 8.5 任务3NB-IoT接入云平台
  • 9 LoRa 通信技术
    • 9.1 基础知识
    • 9.2 项目分析与LoRa驱动移植
    • 9.3 任务2 LoRa温湿度传感器节点应用程序开发
    • 9.4 任务3 LoRa光照传感器节点数据采集
    • 9.5 任务4 LoRa网关节点汇聚传感器数据
    • 9.6 讨论
CAN控制器和收发器
  • 1 知识介绍
  • 2 PPT
  • 3 学习视频
  • 4 讨论
  • 5 超级工程


一、CAN硬件节点构成

1

从图可以看到,CAN 总线上单个节点的硬件架构有两种方案:第一种硬件架构由 MCU、CAN 控制器和 CAN 收发器组成。这种方案采用了独立的 CAN 控 制器,优点是程序可以方便地移植到其他使用相同 CAN 控制器芯片的系统,缺点是需要占用 MCU 的 I/O 资源且硬件电路更复杂一些;第二种硬件架构由集成了 CAN 控制器的 MCU 和 CAN 收发器组成。这种方案的硬件电路简 单,缺点是用户编写的 CAN 驱动程序只适用某个系列的 MCU(如:ST 公司的 STM32F103、TI 的 tms320lf2407 等),可移植性较差。

二、CAN控制器

CAN 控制器是一种实现“报文”与“符合 CAN 规范的通信帧”之间相互转换的器件,它与 CAN 收发器相连,以便在 CAN 总线上与其他节点交换信息。

CAN 控制器主要分为两类:一类是独立的控制器芯片,如 NXP 半导体MCP2515,SJA1000 等。另一类与微控制器集成在一起,如:NXP 半导体的 P87C591 和 LPC11Cxx 系列微控制器, ST 公司的 STM32F103 系列和 STM32F407 系列等。

CAN 控制器内部的结构示意图如图所示,其中包括了接口管理逻辑、发送缓冲器、接收FIFO、接收滤波器和CAN核心模块。

2

接口管理逻辑用于连接微控制器,解释微控制器发送的命令,控制 CAN 控制器寄存器的 寻址,并向微控制器提供中断信息和状态信息。接收数据时,CAN核心模块用于将接收到的报文由串行流转换为并行数据;当发送数据时,CAN核心模块又可以将并行数据流转为串行流。发送缓冲器用于存储完整的报文。需要发送数据时,CAN 核心模块从发送缓冲器读取 CAN 报文。接收滤波器可根据用于的编程配置过滤掉无需接收的报文。当完整报文传送到接受滤波器时,由于接受滤波器的一些编程配置,可以分离出我们所需要的有用报文,将不需要的报文丢弃。接收 FIFO 是接收滤波器与微控制器之间的接口,用于存储从 CAN 总线上接收的所有报文。

STM32F1 系列微控制器内部集成了 CAN 控制器,名为 bxCAN(Basic Extended CAN)。bxCAN 支持 CAN 技术规范 V2.0A 和 V2.0B,通信比特率高达 1Mb/s,支持时间触发通信方案。

数据发送相关的特性有:bxCAN含三个发送邮箱,在检测到总线空闲时交发送,但需要注意的是,有可能会发送失败,有可能因为仲裁失败从而导致失败,也有可能是其它错误,原则上bxCAN将自动重发,但bxCAN也可以配置不自动重发。正因为如此,发送邮箱中有可能同时存在多个需要发送的报文,一旦出现这种情况,那么发送邮箱中的多个报文又将是谁先发送谁后发送呢?有两种模式:ID模式和FIFO模式。ID模式由报文的ID值决定,即ID值越小,优先级越高,另一种FIFO模式,顾名思义,即为消息队列方式,谁先到谁先发送,

在数据接收方面的特性有:bxCAN 含两个具有三级深度的接收 FIFO,其上溢参数可配 置,并具有可调整的筛选器组,帧起始段支持接收时间戳。

bxCAN 有三种主要的工作模式:初始化、正常和睡眠。硬件复位后,bxCAN 进入睡眠模 式以降低功耗。当硬件处于初始化模式时,可以进行软件初始化操作。一旦初始化完成,软件必须向硬件请求进入正常模式,这样才能在 CAN 总线上进行同步,并开始接收和发送。同时为了方便用户调试,bxCAN 提供了测试模式,包括静默、回环与静默回环组合。

正常模式:可正常地向 CAN 总线发送数据或从总线上接收数据。

3

静默模式:只能向 CAN 总线发送数据 1(隐性电平),不能发送数据 0(显性电平),但可以正常地从总线上接收数据。由于这种模式发送的隐性电平不会影响总线的电平状态,故称之为静默模式。

4

环回模式:向 CAN 总线发送的所有内容同时会直接传到接收端,但无法接收总线上的任何数据。这种模式一般用于自检。

5

环回与静默组合模式:这种模式是静默模式与环回模式的组合,同时具有两种模式的特点。

6

三、CAN收发器

CAN 收发器是 CAN 控制器与 CAN 物理总线之间的接口,它将 CAN 控制器的“逻辑电平” 转换为“差分电平”,并通过 CAN 总线发送出去。

根据 CAN 收发器的特性,可将其分为以下四种类型:一是通用 CAN 收发器,常见型号有:NXP 半导体的 PCA82C250 芯片;二是隔离 CAN 收发器。隔离 CAN 收发器的特性是具有隔离、ESD 保护及 TVS 管防总线过 压的功能,常见型号有:CTM1050 系列、CTM8250 系列等。

78

三是高速 CAN 收发器。高速 CAN 收发器的特性是支持较高的 CAN 通信速率,常见型号有: NXP 半导体的 SN65HVD230、TJA1050、TJA1040 等;四是容错 CAN 收发器。容错 CAN 收发器可以在总线出现破损或短路的情况下保持正常运 行,对于易出故障领域的应用具有至关重要的意义,常见型号有:NXP 半导体的 TJA1054、 TJA1055 等。

接下来以 NXP 半导体的 SN65HVD230 为例,讲解 CAN 收发器芯片的工作原理与典型应用电路:

9

图例展示了基于 CAN 总线的多机通信系统接线图:在图中,电阻 R14 与 R15 为终端匹配电阻,其阻值为 120Ω。SN65HVD230 芯片的 封装是 SOP-8,RXD 与 TXD 分别为数据接收与发送引脚,它们用于连接 CAN 控制器的数据收 发端。CAN_H、CAN_L 两端用于连接 CAN 总线上的其他设备,所有设备以并联的形式接在 CAN 总线上。