



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于STM32F407的双CAN总线设计与实现 【摘 要】本文是基于意法半导体(ST)新推出的一款高性能CortexTM-M4内核的ARM 芯片STM32F407ZGT6,进行的双CAN总线设计。在开发过程中采用了ST提供的可视化图形界面开发工具STM32Cube进行底层驱动的配置,简化了设计工作。但由于该工具链接的固件库函数存在传递参数错误,使得CAN总线无法接收数据,本文对该库函数进行了更正。 【关键词】STM32F407;CAN;STM32Cube Design and Realization of Double CAN Buses on STM32F407 LIU Peng (Chinese Electron Scientific and Technological Company 20th Institute, Xian Shaanxi 710068, China) 【Abstract】Based on a high-performance ARM with CortexTM-M4 core which launched by STMicroelectronics (ST)-STM32F407ZGT6, the double CAN bus is designed in this paper. A visual graphical interface-STM32cube which is provided by ST, is used to configure the underlying driver in this development process. It simplifies the design work. However, one of its library functions makes the CAN bus does not work, because of its error in transferring parameter. This paper makes some changes to this function. 【Key words】STM32F407; CAN; STM32Cube 0 前言 CAN 是一种多主机局域网,它是由博世公司为现代汽车应用率先推出的,凭借着良好的可靠性以及卓越的灵活性,已被广泛应用于工业自动化领域、建筑、环境控制等众多领域1。近年来,在航空机载设备上使用CAN总线传输各模块的BIT、日志等信息,可以更有效地管理模块状态;使用成熟的CAN总线协议,保证了信息传输的安全可靠。 为了提高系统处理信息的性能,本文使用了基于高性能ARM Cortex-M4系列的32位RISC内核设计的STM32F407ZGT6芯片,最高工作频率可达168MHz。 1 CAN总线原理 CAN总线结构属于多主竞争方式,具有多主站运行和分散仲裁的串行总线以及广播通信的特点,不同节点之间可自由通信,CAN总线以报文为单位进行数据传送,报文的优先级由标识符决定,最低二进制数的标识符有最高的优先级。 2 CAN总线通信设计 2.1 硬件设计 本文采用了意法半导体高性能处理器STM32F407ZGT6,提高了处理速度,其内置的CAN控制器简化了硬件电路的设计,外置的CAN电平转换芯片采用的是SN65HVD230。系统中有若干个CAN模块进行通信,为了统一匹配CAN总线的阻抗,要求每个模块上无需添加匹配电阻,由系统统一在最远的两端节点处添加120欧匹配电阻。 2.2 基于可视化图形界面的底层驱动配置 STM32CubeMX是ST的主动原创,可以减少开发工作的时间和费用。STM32Cube覆盖了STM32系列所有芯片,STM32Cube中的STM32CubeMX是一款图形化软件设置工具,允许使用图形化向导来生成C语言代码。 首先,根据模块的功能对STM32的IO口进行初始化,需实现的外设有两路CAN、一路UART、一路I2C,还有若干GPIO(实现对模块状态的监控)。接下来,需对系统时钟进行配置,STM32cube极大的简化了开发人员的工作,使用更形象的图形界面表示时钟的配置关系,如图1。本文中由于外部空间的限制,无法使用外部晶振,故本文中采用的是内部时钟HSI(16MHz),通过相应配置使得处理器主时钟达到最大值168MHz,相应的外设时钟也达到最大的42MHz。最后,对CAN控制器进行配置,将CAN的波特率设置为1Mb/s,CAN控制器工作在正常模式,采用双路CAN总线互为备份,在该ARM芯片中内置的两个CAN控制器是主从关系,对于用户使用而言,只有过滤器的设计需注意,其他方面无任何差别。 2.3 软件设计 在STM32cube完成初始化之后,需开发人员编写相应的应用程序,实现系统对该模块CAN协议的要求,软件流程图如图2所示,CAN的接收和发送均采用中断方式。 使用STM32cube的好处显而易见,但也存在弊端。例如由于可视化界面使得开发人员几乎无需了解底层寄存器的调用情况,而一旦出现问题需要查看寄存器定位故障时将很难查找到原因。 在本设计中遇到CAN无法接收数据的故障,为查找故障原因,作者在熟悉各寄存器功能后,通过单步调试发现CAN的接收数据函数CAN_Receive_IT()无法读取硬件FIFO中的数据,最后通过添加一个结构体变量User_recieve_IT,先将FIFO的值赋给该结构体变量,再将该结构体直接赋给hcan-pRxMsg,使得CAN接收数据成功。 3 结果与分析 使用CANALYST-分析仪对模块进行了测试,连续多次发送CAN命令100条、间隔时间1ms,全部得到正确回复。同时,PC机串口接收的模块返回数据与CAN测试结果同步。人为使得CAN_H对地短路导致总线关闭,再取消短路后,总线自动恢复,证明CAN总线的可靠性很高。 本文中使用图形化软件设置工具STM32cube对ARM芯片进行底层驱动的配置,大大提高了开发人员的工作效率,降低错误出现的概率。同时,作者也解决了CAN接收函数中传递参数出现的错误。 图3 CA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 节能知识培训课件
- 合作赋能:探究中学生合作学习对问题解决水平的提升效应
- 合作学习:职业学校英语教学创新与实践探索
- 国际交流项目大学生就业实习合作备忘录
- 2025年教师招聘之《幼儿教师招聘》通关练习题和答案含答案详解(培优a卷)
- 教师招聘之《幼儿教师招聘》强化训练题型汇编及参考答案详解一套
- 2025年教师招聘之《幼儿教师招聘》综合提升练习题及参考答案详解(培优b卷)
- 教师招聘之《小学教师招聘》题库检测题型必考题附答案详解
- 2025年教师招聘之《幼儿教师招聘》练习试题含答案详解(预热题)
- 押题宝典教师招聘之《小学教师招聘》模考模拟试题含答案详解【模拟题】
- 职场应用文高职PPT完整全套教学课件
- 新旧煤矿安全规程的区别于差异
- 校企合作开发产品协议书
- 人教版九年级上册数学教师用书
- GB/T 42381.8-2023数据质量第8部分:信息和数据质量:概念和测量
- 中国传统故事英文九色鹿二篇
- 突发事件处理记录表(标准范本)
- 影视艺术导论教材课件汇总完整版ppt全套课件最全教学教程整本书电子教案全书教案课件合集
- TSG-R0005-2022《移动式压力容器安全技术监察规程》(2022版)
- 2020 ACLS-PC-SA课前自我测试试题及答案
- 第1章 税务会计与纳税筹划概述
评论
0/150
提交评论