欢迎来到天天文库
浏览记录
ID:47477741
大小:16.96 KB
页数:5页
时间:2020-01-11
《基于STM32F407的双CAN总线设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于STM32F407的双CAN总线设计与实现 【摘要】本文是基于意法半导体(ST)新推出的一款高性能CortexTM-M4内核的ARM芯片STM32F407ZGT6,进行的双CAN总线设计。在开发过程中采用了ST提供的可视化图形界面开发工具STM32Cube进行底层驱动的配置,简化了设计工作。但由于该工具链接的固件库函数存在传递参数错误,使得CAN总线无法接收数据,本文对该库函数进行了更正。 【关键词】STM32F407;CAN;STM32Cube DesignandRealizationofDoubleCAN
2、BusesonSTM32F407 LIUPeng (ChineseElectronScientificandTechnologicalCompany20thInstitute,Xi’anShaanxi710068,China) 【Abstract】Basedonahigh-performanceARMwithCortexTM-M4corewhichlaunchedbySTMicroelectronics(ST)--STM32F407ZGT6,thedoubleCANbusisdesignedinthispaper
3、.Avisualgraphicalinterface-STM32cubewhichisprovidedbyST,isusedtoconfiguretheunderlyingdriverinthisdevelopmentprocess.Itsimplifiesthedesignwork.However,oneofitslibraryfunctionsmakestheCANbusdoesnotwork,becauseofitserrorintransferringparameter.Thispapermakessomech
4、angestothisfunction. 【Keywords】STM32F407;CAN;STM32Cube 0前言 CAN是一种多主机局域网,它是由博世公司为现代汽车应用率先推出的,凭借着良好的可靠性以及卓越的灵活性,已被广泛应用于工业自动化领域、建筑、环境控制等众多领域[1]。近年来,在航空机载设备上使用CAN总线传输各模块的BIT、日志等信息,可以更有效地管理模块状态;使用成熟的CAN总线协议,保证了信息传输的安全可靠。 为了提高系统处理信息的性能,本文使用了基于高性能ARMCortex-M4系列的32位
5、RISC内核设计的STM32F407ZGT6芯片,最高工作频率可达168MHz。 1CAN总线原理 CAN总线结构属于多主竞争方式,具有多主站运行和分散仲裁的串行总线以及广播通信的特点,不同节点之间可自由通信,CAN总线以报文为单位进行数据传送,报文的优先级由标识符决定,最低二进制数的标识符有最高的优先级。 2CAN总线通信设计 2.1硬件设计 本文采用了意法半导体高性能处理器STM32F407ZGT6,提高了处理速度,其内置的CAN控制器简化了硬件电路的设计,外置的CAN电平转换芯片采用的是SN65HVD2
6、30。系统中有若干个CAN模块进行通信,为了统一匹配CAN总线的阻抗,要求每个模块上无需添加匹配电阻,由系统统一在最远的两端节点处添加120欧匹配电阻。 2.2基于可视化图形界面的底层驱动配置 STM32CubeMX是ST的主动原创,可以减少开发工作的时间和费用。STM32Cube覆盖了STM32系列所有芯片,STM32Cube中的STM32CubeMX是一款图形化软件设置工具,允许使用图形化向导来生成C语言代码。 首先,根据模块的功能对STM32的IO口进行初始化,需实现的外设有两路CAN、一路UART、一路I
7、2C,还有若干GPIO(实现对模块状态的监控)。接下来,需对系统时钟进行配置,STM32cube极大的简化了开发人员的工作,使用更形象的图形界面表示时钟的配置关系,如图1。本文中由于外部空间的限制,无法使用外部晶振,故本文中采用的是内部时钟HSI(16MHz),通过相应配置使得处理器主时钟达到最大值168MHz,相应的外设时钟也达到最大的42MHz。最后,对CAN控制器进行配置,将CAN的波特率设置为1Mb/s,CAN控制器工作在正常模式,采用双路CAN总线互为备份,在该ARM芯片中内置的两个CAN控制器是主从关系,对
8、于用户使用而言,只有过滤器的设计需注意,其他方面无任何差别。 2.3软件设计 在STM32cube完成初始化之后,需开发人员编写相应的应用程序,实现系统对该模块CAN协议的要求,软件流程图如图2所示,CAN的接收和发送均采用中断方式。 使用STM32cube的好处显而易见,但也存在弊端。例如由于可视化界面使得开发人员几乎无需
此文档下载收益归作者所有