0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >通信与网络 > 基于STM32H743芯片上实现CAN通信步骤设计方案

基于STM32H743芯片上实现CAN通信步骤设计方案

来源: elecfans
2023-12-22
类别:通信与网络
eye 78
文章创建人 拍明芯城

  STM32H743是一款高性能处理器,具有强大的处理能力,可满足各种处理要求。它的特点是:高速运行,低功耗,可靠性高,多功能,易于使用,可以用于各种应用场景。本文旨在介绍STM32H743的特点,并分析其在多种应用场景中的优势。

STM32H743的优势

  高速运行

  STM32H743具有高效率的处理速度,可以满足各种复杂的应用程序的需求。它的处理器核心为Cortex-M7,主频高达400MHz,可以实现高速运行,满足复杂的应用场景。

  低功耗

  STM32H743的低功耗特性使其可以长时间运行,而不会影响系统的性能。它具有多种低功耗模式,可以有效减少系统的功耗。此外,STM32H743还支持多种外设,可以更好地实现低功耗。

  可靠性高

  STM32H743具有可靠性高的特点,它的处理器核心采用了多级安全技术,可以有效防止恶意攻击,保护系统的安全性。此外,STM32H743还支持多种外设,可以更好地实现系统的可靠性。

  多功能

  STM32H743支持多种外设,可以满足各种应用场景的需求。它支持USB、Ethernet、CAN、I2C、SPI等多种接口,可以满足不同类型的设备的连接需求。此外,STM32H743还支持多种外设,可以更好地实现多功能功能。

  易于使用

  STM32H743采用了高效的软件开发工具,可以更加简单、快捷地完成软件开发。它支持多种开发语言,可以满足不同类型的开发需求。此外,STM32H743还支持各种外设,可以更加便捷地完成软件开发。

STM32H743的应用场景

  STM32H743可以用于各种应用场景,其中包括:

  智能家居

  STM32H743可以用于智能家居系统,可以实现家庭设备的连接、控制和管理。它的高速运行和低功耗特性可以满足智能家居系统的需求,可以更好地实现家庭智能化。

  自动驾驶

  STM32H743可以用于自动驾驶汽车,可以实现汽车的智能控制。它的高速运行和可靠性高的特性可以满足自动驾驶系统的需求,可以更好地实现汽车的智能化。

  工业自动化

  STM32H743可以用于工业自动化系统,可以实现多种设备的智能控制。它的高速运行和多功能的特性可以满足工业自动化系统的需求,可以更好地实现工业自动化。

总结

  STM32H743是一款高性能处理器,具有强大的处理能力,可满足各种处理要求。它的特点是:高速运行,低功耗,可靠性高,多功能,易于使用,可以用于各种应用场景。它可以用于智能家居、自动驾驶和工业自动化等多种应用场景,可以更好地实现智能化。

  1. 摘要

  本篇笔记主要介绍,在STM32H743芯片上实现CAN通信,封装为BSP驱动,为之后实现CAN的高层通信打下基础。

  2. 准备工作

  1, IAR 8.32.1

  2, STM32Cube_FW_H7_V1.6.0

  3. 简介

  STM32H743的控制器局域网络 (CAN) 子系统由两个 CAN 模块、一个共享消息 RAM 存储器和一个时钟校准单元组成。关于这四个组成部分的基址,请参见存储器映射。两个 CAN 模块(FDCAN1 和 FDCAN2)均符合 ISO 11898-1: 2015(CAN 协议规范第 2.0 版A、 B 部分)和 CAN FD 协议规范第 1.0 版。此外,第一个 CAN 模块 FDCAN1 支持 ISO 11898-4 中规定的时间触发 CAN (TTCAN),包括事件同步时间触发通信、全局系统时间和时钟漂移补偿。FDCAN1 还额外包含专供时间触发功能使用的寄存器。CAN FD 选项可与事件触发和时间触发 CAN 通信一起使用。10 KB 的消息 RAM 存储器可实现过滤器、接收 FIFO、接收缓冲区、发送事件 FIFO、发送缓冲器( TTCAN 触发)功能。该消息 RAM 在 FDCAN1 和 FDCAN2 模块之间共用。通用时钟校准单元是可选的。通过评估 FDCAN1 接收到的 CAN 消息,该单元可基于 HSI 内部 RC 振荡器和 PLL 为 FDCAN1 和 FDCAN2 生成经过校准的时钟。

  CAN 框图

  


  CAN的底层大部分ST已经在HAL库里面封装好,如果你细看HAL源码,搞懂这张图,H743的CAN 你基本上就没有问题了,在结合HAL库的学习。

  4. 驱动实现

  良好的驱动封装,可以方便应用开发,并且可以容易移植到其他项目,代码重用率高,所以数据和接口是你不得不考虑的问题,怎么样方便的实现,还要通用易用。

  4.1 数据封装

  首先根据stm32h7xx_hal_fdcan.h文件我们来封装两个个结构体,方便后面软件实现开发,可以新建bsp_can.c和bsp_can.h, 在头文件中封装结构体定义。

  


  在.c文件中定义封装一些变量,这些变量数组也是通用,在多款产品中都采用,大家也可以参照。

  


  可以实现多个CAN口驱动。如果只有一个CAN口,将CAN_PORTS宏定义为1,几个就定义为几。

  这个封装大家可以记着,我在多款器件上都是这么封装的,之前在NXP的KE06, KEA, KV46, K64等系列,在ST的F103, F446, H743等等CAN通信都采用这种封装BSP驱动。

  4.2 初始化

  参考官方的例程,根据自己的硬件去实现,做相应修改。例程中只使能了接收中断,我们一般发送也要采用中断,所以也要开发送中断,根据实际可能还需要添加滤波,配置缓冲等。

  


  


  


  配置时钟管脚,中断。

  


  


  4.3 中断回调函数

  最主要的就是接收和发送的回调函数的实现,首先来看接收中断回调函数。

  


  发送完成回调函数

  


  4.4 测试代码

  在freeRTOS下建立一个CAN通信的简单测试任务,实现收到什么在发送出去。

  

image.png


  

image.png


  在10ms的任务里去调用这个测试函数,实现收发测试。

  测试的可以这样写,正式的我们需要解析收到的内容,并且重新组织发送的帧,这些解析和重组我们将会在高层的协议驱动文件中实现,有了这个驱动就可以实现CANopen, J1939, DeviceNet等CAN的高层协议了。

  5. 测试

  测试,扩展帧,500k 位速率,发送数据 aa,01,02,03,04,05,06,bb。板卡收到电脑发送的数据后,回送给电脑。发送100000次, 10ms一次。使用USB-CAN连接到电脑端测试。

  


  




  至此我们的CAN通信BSP驱动封装就验证完成,可以轻松移植到其他板卡上。

  原装STM32H743IIT6 ARM微控制器规格参数及引脚功能图 2023-08-25 16:40 发布于:安徽省

  STM32H743IIT6设备基于高性能Arm®Cortex®-M7 32位RISC内核,工作频率高达480 MHz。Cortex®-M7核心采用浮点单元(FPU),支持Arm®双精度(符合IEEE 754)和单精度数据处理指令和数据类型。STM32H743IIT6支持全套DSP指令和内存保护单元(MPU),以增强应用程序的安全性。

  STM32H743IIT6包含高速嵌入式存储器,该存储器具有高达2 MB的双组闪存、高达1 MB的RAM(包括192 KB的TCM RAM、高达864 KB的用户SRAM和4 KB的备份SRAM),以及连接到APB总线、AHB总线、,2x32位多AHB总线矩阵和支持内部和外部存储器访问的多层AXI互连。

  该设备都提供三个ADC、两个DAC、两个超低功率比较器、一个低功耗RTC、一个高分辨率定时器、12个通用16位定时器、两个用于电机控制的PWM定时器、五个低功耗定时器和一个真随机数发生器(RNG)。这些设备支持用于外部西格玛-德尔塔调制器(DFSDM)的四个数字滤波器。它们还具有标准和高级通信接口。

  如果需要采购原装STM32H743IIT6器件,或者查看更多PDF文档内容,可以搜索“IC先生”联系我们。

  


  规格参数

  


  规格特性

  核心

  •32位Arm®Cortex®-M7内核,带双精度FPU和L1缓存:16 KB数据以及16K字节的指令高速缓存;频率高达480 MHz,MPU,1027 DMIPS/2.14 DMIPS/MHz(Dhrystone 2.1)

  内存

  •高达2兆字节的闪存,支持边读边写

  •高达1兆字节的RAM:192千字节的TCMRAM(股份有限公司64K字节的ITCM RAM+128 KB DTCM RAM,用于时间关键型例程),高达864 KB的用户SRAM,以及备份域中4 KB的SRAM

  •双模Quad SPI存储器接口运行频率高达133 MHz

  •具有高达32位数据总线:SRAM、PSRAM、SDRAM/LPSSDR SDRAM、NOR/NAND闪存

  •CRC计算安全单元

  •ROP、PC-ROP、主动夯实机通用输入/输出

  •多达168个具有中断功能的I/O端口重置和电源管理

  •3个独立的电源域,可以独立时钟门控或关闭:

  –D1:高性能能力

  –D2:通信外围设备和定时器

  –D3:复位/时钟控制/电源管理

  •1.62至3.6 V应用电源和I/O

  •POR、PDR、PVD和BOR

  •嵌入3.3 V的专用USB电源提供内部PHY的内部调节器

  •嵌入式调节器(LDO),可配置提供数字电路的可缩放输出

  •运行和停止模式下的电压缩放(6可配置范围)

  •备用调节器(~0.9 V)

  •模拟外围设备/VREF的参考电压+

  •低功耗模式:睡眠、停止、待机和支持电池充电的VBAT低功耗

  •VBAT电池充电工作模式能力

  •CPU和域电源状态监控引脚

  •待机模式下2.95µA(备份SRAM关闭,RTC/LSE打开)

  时钟管理

  •内部振荡器:64 MHz HSI,48 MHz

  HSI48、4 MHz CSI、32 kHz LSI

  •外部振荡器:4-48 MHz HSE,32.768 kHz LSE

  引脚配置

  


  总线矩阵

  


  电源供应示意图

  


  同步非多路复用PSRAM写入时序

  


  8 MHz晶体的典型应用

  


  封装设计参数

  


  STM32H743IIT6 是一款 STM32 系列微控制器(MCU)。这款微控制器基于 Arm Cortex-M7 内核,并具有丰富的外设和功能,适用于广泛的嵌入式应用。

  内核:基于 Arm Cortex-M7 内核,具有高性能和低功耗特性。Cortex-M7 内核支持硬件浮点运算、高级调试和低功耗操作等功能。

  时钟频率:可以运行在高达 400 MHz 的时钟频率,这使其适用于需要高性能的应用。

  闪存和RAM:具有大容量的闪存存储器,用于存储程序代码和数据。同时,还配备了大容量的RAM,用于数据存储和处理。

  外设:STM32H743IIT6 集成了多种外设,包括通用定时器、高级定时器、通用串行接口、SPI、I2C、USB、CAN、以太网、LCD 控制器等。

  安全性:支持硬件加密和解密,数字签名、随机数生成等硬件安全功能,有助于保护应用程序和数据的安全性。

  功耗优化:虽然具有高性能,但也具备低功耗操作模式,可以在电池供电的嵌入式系统中实现节能。

  封装:STM32H743IIT6 通常采用 LQFP 封装,适合手工焊接和自动化生产。

  开发支持:意法半导体提供了丰富的开发工具、软件库和支持,帮助开发者轻松开始使用和开发应用。

  广泛应用:由于其高性能、丰富的外设和安全功能,STM32H743IIT6 适用于工业自动化、医疗设备、消费电子、通信设备等各种领域的嵌入式系统。


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

标签: STM32H743 CAN通信

相关资讯