基于STM32的CAN总线上下位机通信实验设计.docVIP

基于STM32的CAN总线上下位机通信实验设计.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于STM32的CAN总线上下位机通信实验设计.doc

  基于STM32的CAN总线上下位机通信实验设计 摘要:随着技术的成熟和设备的完善,CAN总线在数据的实时传输和自动控制中展现出良好的灵活性与可靠性。笔者以STM32为主控芯片搭建硬件电路,利用软件对其进行初始化设置,上位机与电路的连接使用USB―CAN转换器,并采用Visual C++的MFC编写的CAN调试界面实现数据的实时收发,使上下位机完成通信。本实验对于CAN总线的使用有一定的指导作用。 中国 8/vie   关键词:STM32;CAN总线;MFC;通信   中图分类号:TP311 文献标识码:A :1009-3044(2017)05-0199-02   CAN简称为控制器局域网络(Controller Area Net32F103RCT6单片机作为主控芯片的CAN收发电路,主要完成数据采集和处理的任务,并实现与CAN总线的数据互传。上位机利用MFC编写的控制界面,对CAN总线上收到的数据进行显示,同时也可以完成向CAN总线发送数据的指令。   2 下位机的硬件设计   下位机的硬件框图如图2所示,主要结构分为:STM32F103RCT6单片机、复位和晶振、LED灯、JTAG接口、电源、数字隔离器、CAN收发器等。   STM32F103RCT6是一款基于ARM的微控制器产品,引脚数为64,闪存存储器容量为256k字节的增强型芯片。该芯片性能优越,损耗小,片上资源丰富,支持JTAG调试模式,符合我们的设计需要。它自身也具有CAN控制器,波特率最高为1Mb/s,符合CAN协议2.0A和2.0B的规定,能够实现CAN通讯。利用JTAG调试接口对微处理器进行初始化,通过J-LINK下载器向STM32芯片烧录各种应用程序,来控制数据的收发和处理,同时JTAG接口可以为STM32提供3.3V的工作电压,省去了外部电源为它供电。   CAN数据收发模块包含数字隔离器、CAN收发器、CAN端口。数字隔离器选用的是基于ADI公司的磁耦隔离技术的双通道数字隔离器。它处于系统的中间,用来隔离各传感器的节点。CAN收发器的型号为TJA1050,它是CAN协议控制器和物理总线(双绞线)之间的接口,用于将CAN控制器的二进制码流转换为CAN总线的差分信号发送,将CAN总线的差分信号转换为CAN控制器二进制码流接收,主要实现逻辑电平与差分电平的转换。CAN端口提供了两路差分线接口、接地端、电压接口,电压接口外接5V电压源,为TJA1050提供工作电压。   3 下位机软件设计   下位机的开发采用的是支持JTAG调试接口的开发工具Keil uVision5,编程的要点有5个:   1)初始化CAN通讯使用的目标引脚和端口时钟;2)使能CAN外设的时钟;3)配置CAN外设的工作模式、位时序以及波特率;4)配置筛选器的工作方式;5)编写测试程序,收发报文并校验。   与所有使用到GPIO的外设一样,都要先将使用到的GPIO引脚模式初始化,配置好复用功能,CAN的两个引脚都配置成通用推挽输出模式即可。根据CAN外设的要求,TX引脚要配置成推挽复用输出、RX引脚要被设置成浮空输入或上拉输入。由于一些引脚的默认复用功能不是CAN外设的引脚,需要用到外设引脚的复用功能重映射才能正常使用,所以要在GPIO时钟部分加入AFIO时钟,实现重映射功能。我们需要使实验板和CAN总线网络的通讯节点通信,实验板的CAN配置必须要与该总线一致,选用的CAN工作模式为正常模式,此模式下一个正常的CAN节点可以向总线发送数据和接收数据。通过对位时序和分频的设置可以将波特率设置为125Kbps,符合本实验的要求。为了方便管理接收报文,需要使用筛选器,它可以将输出连接到接收FIFO,若通过了筛选器的匹配,报文会被存储到接收FIFO,因此要对标识符ID,筛选器工作方式和位宽进行自主设置。程序中将用到CAN的接收中断,当FIFO接收到数据就会引起中断,中断设定的是让LED灯进入流水灯模式。配置中断就是根据需要配置中断的优先级。如图3所示为实验过程的框图。配置好寄存器、工作方式、波特率等要求后,初始化工作基本完成。构造中断返回的CAN消息,可以在通讯成功与失败时在PC机上做出显示,同时上位机要通过筛选器的配置构造CAN报文,来完成对下位机的控制,如果成功接收到上位机的CAN消息,实验板上的LED灯会呈现流水灯现象,否则就将结束。   4 上位机软件设计   上位机的开发使用Visual C++的MFC来编写控制界面,使用到动态链接库,文本框的编辑和各类控件。此界面可以实现CAN数据的收发与显示,并完成USB―CAN转换器与PC机匹配的功能。发送的CAN数据类型和内容可在界面上由我们自行设置。   5 结语   在本文中,笔者详细阐述了一种测试上位机和下位

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档