STM32的CAN分析仪设计
首先,本文对CAN总线进行了介绍。然后,对CAN分析仪的应用及研究意义做了介绍和分析。最后,对CAN分析仪的工作原理及设计思路做了详细解说。本设计利用STM32作为核心控制芯片,并通过软件编程、硬件电路设计实现CAN分析仪的设计,同时对CAN数据的发送接收通过RS232串口实现与电脑的通信。同时设计结果可利用已有的CAN分析仪进行调试。与传统的CAN分析仪相比,本设计利用STM32做出的CAN分析仪不仅降低了成本,同时简化了电路结构,使得通信更加可靠,编程更加简单。M000264
关键词:CAN总线 STM32 CAN分析仪
First of all, the CAN Bus is introduced at the first of this article.Then, the application and research significance of CAN Analyzer have been described and analyzed.Finally,the CAN Analyzer working principle and desigen ideas to do a detailed explanation.The design uses STM32 as the core control chip, and through the software programming,hardware circuit design to achieve the design of CAN Analyzer,and communication with the computer through the RS232 interface to send and receive data from the CAN Bus.At the same time,the design results using real CAN Analyzer for debugging.Compared with the traditional CAN Analyzer,this design of CAN Analyer with STM32 not only reduce the cost and simplifying the circuit structure,make the communication more reliable,the programming more simple.
1.引言 查看完整请+Q:351916072获取
1.1 CAN总线的介绍
CAN总线是现场总线的一种,它是控制器局域网(Controller Area Network)的简称。其一开始被用于汽车产业,并逐步成为车载网络系统中比较新颖的高速网络协议标准。与其他通用的总线相比,CAN总线的数据传输具有可靠性、灵活性、实时性等特性。由于发送和接收电平都互相校验,所以CAN总线误码率低。CAN的系统开放性好,有利于不同系统的互联,其所有格式定义公开,不同公司的CAN模块均可接入。目前CAN总线广泛地应用于汽车工业、工业控制、安防监控、工程机械、医疗器械、自动化等领域。
CAN总线的主要特性:
①成本低廉;
②数据传输距离远;
③传输速率高;
④可靠的检测和处理错误能力;
⑤无破坏性的逐位仲裁机制;
⑥基于验收滤波器进行多地址帧传递;
⑦远程数据请求;
⑧错误的节点自动脱离,不影响总线正常工作。
由于CAN总线的多种特性使得CAN总线成为目前国内外应用最为广泛地现场总线。
1.2 CAN分析仪的国内外研究现状
随着经济的发展,CAN总线成为应用最为广泛的现场总线。而最近几年,主要通过PC机和CAN适配卡相连,并且利用上位机软件分析总线网络状况从而实现对CAN总线网络的监测【1】。但这种方法有一定的弊端:就如高端的CAN适配卡价格高昂,而低端的CAN适配卡的监测精度不高。同时在系统设计、调试和使用的过程中,避免不了的会出现设计不成熟或不正常干扰,使得CAN总线系统无法正常运行。利用CAN总线分析仪,能方便快速的定位通信故障并且排除故障。
目前,国内外已存在一些CAN总线分析仪产品。国内的CAN总线分析仪大都采用微控制单元(MCU)和CAN控制芯片的结构模式。这些分析仪能对CAN总线发送报文进行监测;能够对CAN总线在正常情况下流动于CAN总线上的报文进行监测或向CAN总线发送报文。但是当CAN总线的某节点受到严重干扰甚至故障,会使得总线流动的通信位流不符合CAN总线消息帧结构,上述这种CAN总线分析仪就无法提供更多的监测信息【2】,因此其应用受到很大的限制。国外对CAN总线的研究应用、监测工具的研究和设计水平较高,但其技术保密、价格高昂,难以推广使用。所以设计一款成本低廉、性能优越稳定且能克服国内同类CAN总线分析仪缺陷的分析仪显得尤为重要。 查看完整请+Q:351916072获取
1.3 研究CAN分析仪的目的和意义
CAN总线采用差分信号传输,错误检测能力强,通信距离远,因此被用到汽车,厂矿等干扰较强的一些特殊的场合。目前的CAN的稳定性能和高可靠性被认同,CAN总线被广泛运用。CAN总线分析仪作为一种通用的分析总线的设备,在CAN总线研究和应用领域占据了尤为重要的地位,现如今,随着经济发展,技术的进步,国内运用CAN总线的工程越来越多,但是在CAN现场总线产品前期开发和后期测试过程中缺少有效的现场监测和排错手段【3】,从而延长了开发周期。由此可以看出一款出色的CAN总线分析仪对CAN总线的研究和应用领域有着尤为重要的意义。而STM32单片机具有高速、低耗的优越性能,完全达到总线分析仪的主控制芯片要求。利用STM32设计的CAN分析仪具有低成本、硬件电路简单、可靠性高等特点。
1.4 研究思路和技术方法
CAN分析仪用来监测CAN总线的运行状态,实现CAN总线与PC机之间的通信。本设计会用到接收CAN信号的CAN模块,而STM32系列芯片包含该模块可以满足设计要求,简化电路。STM32是一个通用的微控制器产品系列,为了适应多数应用要求和成本低廉的要求,在产品的规则和设计上遵循了配置丰富、灵活多样并合理地提供多种选项的原则【4】。每个外设都拥有多种配置选项,使用者可以按照具体需要作出合适选择。STM32F103的时钟频率可达72MHz,是同类STM32中性能最高的。其相较于其他处理器具有成本低、低功耗、较强的处理性能、极低的中断处理时间等优点,所以可用其作为CAN分析仪的核心芯片。
首先查资料了解CAN分析仪,确定本设计采用STM32F103单片机作为核心控制器。本设计利用安富莱的开发板来实现具体功能,开发板型号为STM32F103ZE-EK。了解STM32F103中各个模块,主要是CAN通信模块和串口通信模块。利用RS232串口实现CAN分析仪与PC机之间的通信,编写程序实现对CAN数据的发送和接收。可以利用已有的USB-CAN200分析仪对设计程序进行调试,反复修改最终得到理想的设计结果。
2.CAN分析仪的硬件电路设计
本设计做的是CAN分析仪,CAN分析仪设计到CAN的通信模块。传统的单片机如AT89S51单片机没有CAN通信模块,而STM32系列的单片机中直接集成了CAN的通信模块。利用STM32设计CAN分析仪的话,可简化设计电路,节省资源。
2.1 STM32系列的介绍
STM32系列基于ARM Cortex-M3内核,是专为一些要求性能高、价格低、功耗低的嵌入式应用设计的。STM32可分成不同的系列,按性能分为STM32F103“增强型”系列,STM32F101“基本型”系列。STM32F103系列逻辑门少、终端延迟程度小并且方便调试。其系统性能高,数据处理能力强,应用范围涉及广泛,从低端的微控制器一直到高端的操作系统都有STM32的运用。基本型STM32F101系列时钟频率达36MHz,以同样价格得到比同价位的产品大幅提升的功能,是16位产品中最佳的选择。两个系列的闪存都在32K到128K,但不同之处在于外设接口组合和SRAM的最大容量不同。STM32F103系列片上集成了借助APB总线连接的众多外设和输入\输出接口和高速存储器。片上存储器Flash最多达512K;SARM最多达64KB。时钟频率最高时即72MHz时,从闪存执行程序,STM32功耗为36mA,是市场上32位中功耗最低的,相当于0.5mA/MHz。
STM32F103系列采用与系统器件紧耦合的方法,缩小了芯片的面积,降低了成本。除了面积缩小,STM32F103基于Thnmb指令架构,代码密度高,降低了系统对存储器的要求。STM32F103系列的芯片与其他的芯片相比,具有的优势:较小的处理器内核;处理芯片成本低;高效电源管理机制,功耗低;处理器性能强,满足大多数工业级产品要求;中断处理时间极低;可供选择的存储器保护单元,安全性高;对汇编代码不作要求,系统开发过程简单。
STM32系列的特性:
基于高性能的Cortex-M3内核:1.25Mips/MHz;
一流的外设:4Mb/s的USART,两个12位ADC, 18Mb/s的SPI,18MHz的I/O翻转速度;
功耗低:所有外设工作且工作频率在72MHz时消耗36mA,待机的时候下降到2μA;
最大集成度:STM芯片上集成了复位电路、低电压检测、准确的RC振荡器等电路;
简易的结构和易用的工具。
STM32F10x重要参数:①2V-3.6V供电;②电压5V的I/O管脚;③优异的安全时钟模式;④带唤醒功能的低功耗模式;⑤内部RC振荡器;⑥内置复位电路;工作于-40℃至+85℃或105℃。
2.2 系统硬件构成
整个系统的框架图如图2.1所示:
图2.1 系统总体框架图 查看完整请+Q:351916072获取
本设计的CAN分析仪主要由核心控制器STM32F103、高速光耦6N137、CAN接收器TJA1050、PC机和RS232接口组成。设计的CAN分析仪可以完成双向传输,一方面可以从外设接收数据到PC机:接收CAN数据,将接收的CAN数据转换成RS232数据,再利用RS232串口将转化好的数据传送给电脑完成整个系统通信。当然,本设计利用CAN分析仪与电脑连接,从电脑发送CAN数据经过CAN分析仪来传递CAN数据。另一方面也可将PC机发送的信息传递给CAN总线:通过RS232串口接收来自PC机的数据,将接收到的RS232电平转换为CAN数据,再由CAN分析仪传送给PC机,在PC机上用CANTools软件显示数据,完成整个发送和接收过程。
CAN分析仪的硬件电路设计一般分为2种:一种是核心芯片加上CAN控制器和CAN收发器;另一种是自带CAN控制器的核心芯片加上CAN接收器。这2种方法都需通过CAN收发器和CAN总线连接。当然2种方法各有优缺点:第一种编写的CAN程序针对独立的CAN控制器,程序可移植性好,编写的程序可移植到任意的控制芯片,但其占用了控制器的I/O资源,硬件电路变得复杂。而第二种方法较于第一种只能针对特定的控制器,例如本设计采用的STM32F103控制器,程序不可移植,但硬件电路简单。因此本设计所用的STM32F103控制器已经包含了CAN控制器,所以只需再加上CAN接收器TJA1050便可完成系统的设计。
2.3 CAN的驱动电路
2.3.1 CAN收发器TJA1050
CAN分析仪设计必不可少CAN收发器TJA1050。STM32中已经包含了CAN控制器,所以本设计只需加一个CAN收发器TJA1050作为CAN总线的驱动器。TJA1050支持较高的CAN通信速率,是一种高速CAN收发器。它是CAN协议控制器和物理总线之间的接口,其可以为总线发送差动信号,为CAN控制器提供差动接收性能。
目 录
1.引言 1
1.1 CAN总线的介绍 1
1.2 CAN分析仪的国内外研究现状 1
1.3 研究CAN分析仪的目的和意义 2
1.4 研究思路和技术方法 2
2.CAN分析仪的硬件电路设计 3
2.1 STM32系列的介绍 3
2.2 系统硬件构成 4
2.3 CAN的驱动电路 5
2.3.1 CAN收发器TJA1050 5
2.3.2 CAN的驱动电路 6
2.4 RS232接口电路 7
2.4.1 SP3232E介绍 7
2.4.2 接口电路 7
2.4.3 电平转化 8
2.5 部分辅助电路 8
2.5.1 电源电路 8
2.5.2 晶振电路 8
3.CAN分析仪的软件设计 9
3.1软件的整体设计 9
3.2 CAN协议与RS232协议的转换 10
3.3 初始化程序 11
3.3.1 CAN的初始化 11
3.3.2 RS232初始化程序 12
3.4 CAN的通信设计 15
3.4.1 CAN数据发送 15
3.4.2 CAN数据接收 16
3.5 RS232通信设计 18
3.5.1 RS232数据的发送 18
3.5.2 RS232数据的接收 20
3.5.3 和校验 21
4.CAN分析仪的调试 22
结语 26
参考文献 28
致谢 29 查看完整请+Q:351916072获取
关键词:CAN总线 STM32 CAN分析仪
First of all, the CAN Bus is introduced at the first of this article.Then, the application and research significance of CAN Analyzer have been described and analyzed.Finally,the CAN Analyzer working principle and desigen ideas to do a detailed explanation.The design uses STM32 as the core control chip, and through the software programming,hardware circuit design to achieve the design of CAN Analyzer,and communication with the computer through the RS232 interface to send and receive data from the CAN Bus.At the same time,the design results using real CAN Analyzer for debugging.Compared with the traditional CAN Analyzer,this design of CAN Analyer with STM32 not only reduce the cost and simplifying the circuit structure,make the communication more reliable,the programming more simple.
1.引言 查看完整请+Q:351916072获取
1.1 CAN总线的介绍
CAN总线是现场总线的一种,它是控制器局域网(Controller Area Network)的简称。其一开始被用于汽车产业,并逐步成为车载网络系统中比较新颖的高速网络协议标准。与其他通用的总线相比,CAN总线的数据传输具有可靠性、灵活性、实时性等特性。由于发送和接收电平都互相校验,所以CAN总线误码率低。CAN的系统开放性好,有利于不同系统的互联,其所有格式定义公开,不同公司的CAN模块均可接入。目前CAN总线广泛地应用于汽车工业、工业控制、安防监控、工程机械、医疗器械、自动化等领域。
CAN总线的主要特性:
①成本低廉;
②数据传输距离远;
③传输速率高;
④可靠的检测和处理错误能力;
⑤无破坏性的逐位仲裁机制;
⑥基于验收滤波器进行多地址帧传递;
⑦远程数据请求;
⑧错误的节点自动脱离,不影响总线正常工作。
由于CAN总线的多种特性使得CAN总线成为目前国内外应用最为广泛地现场总线。
1.2 CAN分析仪的国内外研究现状
随着经济的发展,CAN总线成为应用最为广泛的现场总线。而最近几年,主要通过PC机和CAN适配卡相连,并且利用上位机软件分析总线网络状况从而实现对CAN总线网络的监测【1】。但这种方法有一定的弊端:就如高端的CAN适配卡价格高昂,而低端的CAN适配卡的监测精度不高。同时在系统设计、调试和使用的过程中,避免不了的会出现设计不成熟或不正常干扰,使得CAN总线系统无法正常运行。利用CAN总线分析仪,能方便快速的定位通信故障并且排除故障。
目前,国内外已存在一些CAN总线分析仪产品。国内的CAN总线分析仪大都采用微控制单元(MCU)和CAN控制芯片的结构模式。这些分析仪能对CAN总线发送报文进行监测;能够对CAN总线在正常情况下流动于CAN总线上的报文进行监测或向CAN总线发送报文。但是当CAN总线的某节点受到严重干扰甚至故障,会使得总线流动的通信位流不符合CAN总线消息帧结构,上述这种CAN总线分析仪就无法提供更多的监测信息【2】,因此其应用受到很大的限制。国外对CAN总线的研究应用、监测工具的研究和设计水平较高,但其技术保密、价格高昂,难以推广使用。所以设计一款成本低廉、性能优越稳定且能克服国内同类CAN总线分析仪缺陷的分析仪显得尤为重要。 查看完整请+Q:351916072获取
1.3 研究CAN分析仪的目的和意义
CAN总线采用差分信号传输,错误检测能力强,通信距离远,因此被用到汽车,厂矿等干扰较强的一些特殊的场合。目前的CAN的稳定性能和高可靠性被认同,CAN总线被广泛运用。CAN总线分析仪作为一种通用的分析总线的设备,在CAN总线研究和应用领域占据了尤为重要的地位,现如今,随着经济发展,技术的进步,国内运用CAN总线的工程越来越多,但是在CAN现场总线产品前期开发和后期测试过程中缺少有效的现场监测和排错手段【3】,从而延长了开发周期。由此可以看出一款出色的CAN总线分析仪对CAN总线的研究和应用领域有着尤为重要的意义。而STM32单片机具有高速、低耗的优越性能,完全达到总线分析仪的主控制芯片要求。利用STM32设计的CAN分析仪具有低成本、硬件电路简单、可靠性高等特点。
1.4 研究思路和技术方法
CAN分析仪用来监测CAN总线的运行状态,实现CAN总线与PC机之间的通信。本设计会用到接收CAN信号的CAN模块,而STM32系列芯片包含该模块可以满足设计要求,简化电路。STM32是一个通用的微控制器产品系列,为了适应多数应用要求和成本低廉的要求,在产品的规则和设计上遵循了配置丰富、灵活多样并合理地提供多种选项的原则【4】。每个外设都拥有多种配置选项,使用者可以按照具体需要作出合适选择。STM32F103的时钟频率可达72MHz,是同类STM32中性能最高的。其相较于其他处理器具有成本低、低功耗、较强的处理性能、极低的中断处理时间等优点,所以可用其作为CAN分析仪的核心芯片。
首先查资料了解CAN分析仪,确定本设计采用STM32F103单片机作为核心控制器。本设计利用安富莱的开发板来实现具体功能,开发板型号为STM32F103ZE-EK。了解STM32F103中各个模块,主要是CAN通信模块和串口通信模块。利用RS232串口实现CAN分析仪与PC机之间的通信,编写程序实现对CAN数据的发送和接收。可以利用已有的USB-CAN200分析仪对设计程序进行调试,反复修改最终得到理想的设计结果。
2.CAN分析仪的硬件电路设计
本设计做的是CAN分析仪,CAN分析仪设计到CAN的通信模块。传统的单片机如AT89S51单片机没有CAN通信模块,而STM32系列的单片机中直接集成了CAN的通信模块。利用STM32设计CAN分析仪的话,可简化设计电路,节省资源。
2.1 STM32系列的介绍
STM32系列基于ARM Cortex-M3内核,是专为一些要求性能高、价格低、功耗低的嵌入式应用设计的。STM32可分成不同的系列,按性能分为STM32F103“增强型”系列,STM32F101“基本型”系列。STM32F103系列逻辑门少、终端延迟程度小并且方便调试。其系统性能高,数据处理能力强,应用范围涉及广泛,从低端的微控制器一直到高端的操作系统都有STM32的运用。基本型STM32F101系列时钟频率达36MHz,以同样价格得到比同价位的产品大幅提升的功能,是16位产品中最佳的选择。两个系列的闪存都在32K到128K,但不同之处在于外设接口组合和SRAM的最大容量不同。STM32F103系列片上集成了借助APB总线连接的众多外设和输入\输出接口和高速存储器。片上存储器Flash最多达512K;SARM最多达64KB。时钟频率最高时即72MHz时,从闪存执行程序,STM32功耗为36mA,是市场上32位中功耗最低的,相当于0.5mA/MHz。
STM32F103系列采用与系统器件紧耦合的方法,缩小了芯片的面积,降低了成本。除了面积缩小,STM32F103基于Thnmb指令架构,代码密度高,降低了系统对存储器的要求。STM32F103系列的芯片与其他的芯片相比,具有的优势:较小的处理器内核;处理芯片成本低;高效电源管理机制,功耗低;处理器性能强,满足大多数工业级产品要求;中断处理时间极低;可供选择的存储器保护单元,安全性高;对汇编代码不作要求,系统开发过程简单。
STM32系列的特性:
基于高性能的Cortex-M3内核:1.25Mips/MHz;
一流的外设:4Mb/s的USART,两个12位ADC, 18Mb/s的SPI,18MHz的I/O翻转速度;
功耗低:所有外设工作且工作频率在72MHz时消耗36mA,待机的时候下降到2μA;
最大集成度:STM芯片上集成了复位电路、低电压检测、准确的RC振荡器等电路;
简易的结构和易用的工具。
STM32F10x重要参数:①2V-3.6V供电;②电压5V的I/O管脚;③优异的安全时钟模式;④带唤醒功能的低功耗模式;⑤内部RC振荡器;⑥内置复位电路;工作于-40℃至+85℃或105℃。
2.2 系统硬件构成
整个系统的框架图如图2.1所示:
图2.1 系统总体框架图 查看完整请+Q:351916072获取
本设计的CAN分析仪主要由核心控制器STM32F103、高速光耦6N137、CAN接收器TJA1050、PC机和RS232接口组成。设计的CAN分析仪可以完成双向传输,一方面可以从外设接收数据到PC机:接收CAN数据,将接收的CAN数据转换成RS232数据,再利用RS232串口将转化好的数据传送给电脑完成整个系统通信。当然,本设计利用CAN分析仪与电脑连接,从电脑发送CAN数据经过CAN分析仪来传递CAN数据。另一方面也可将PC机发送的信息传递给CAN总线:通过RS232串口接收来自PC机的数据,将接收到的RS232电平转换为CAN数据,再由CAN分析仪传送给PC机,在PC机上用CANTools软件显示数据,完成整个发送和接收过程。
CAN分析仪的硬件电路设计一般分为2种:一种是核心芯片加上CAN控制器和CAN收发器;另一种是自带CAN控制器的核心芯片加上CAN接收器。这2种方法都需通过CAN收发器和CAN总线连接。当然2种方法各有优缺点:第一种编写的CAN程序针对独立的CAN控制器,程序可移植性好,编写的程序可移植到任意的控制芯片,但其占用了控制器的I/O资源,硬件电路变得复杂。而第二种方法较于第一种只能针对特定的控制器,例如本设计采用的STM32F103控制器,程序不可移植,但硬件电路简单。因此本设计所用的STM32F103控制器已经包含了CAN控制器,所以只需再加上CAN接收器TJA1050便可完成系统的设计。
2.3 CAN的驱动电路
2.3.1 CAN收发器TJA1050
CAN分析仪设计必不可少CAN收发器TJA1050。STM32中已经包含了CAN控制器,所以本设计只需加一个CAN收发器TJA1050作为CAN总线的驱动器。TJA1050支持较高的CAN通信速率,是一种高速CAN收发器。它是CAN协议控制器和物理总线之间的接口,其可以为总线发送差动信号,为CAN控制器提供差动接收性能。
目 录
1.引言 1
1.1 CAN总线的介绍 1
1.2 CAN分析仪的国内外研究现状 1
1.3 研究CAN分析仪的目的和意义 2
1.4 研究思路和技术方法 2
2.CAN分析仪的硬件电路设计 3
2.1 STM32系列的介绍 3
2.2 系统硬件构成 4
2.3 CAN的驱动电路 5
2.3.1 CAN收发器TJA1050 5
2.3.2 CAN的驱动电路 6
2.4 RS232接口电路 7
2.4.1 SP3232E介绍 7
2.4.2 接口电路 7
2.4.3 电平转化 8
2.5 部分辅助电路 8
2.5.1 电源电路 8
2.5.2 晶振电路 8
3.CAN分析仪的软件设计 9
3.1软件的整体设计 9
3.2 CAN协议与RS232协议的转换 10
3.3 初始化程序 11
3.3.1 CAN的初始化 11
3.3.2 RS232初始化程序 12
3.4 CAN的通信设计 15
3.4.1 CAN数据发送 15
3.4.2 CAN数据接收 16
3.5 RS232通信设计 18
3.5.1 RS232数据的发送 18
3.5.2 RS232数据的接收 20
3.5.3 和校验 21
4.CAN分析仪的调试 22
结语 26
参考文献 28
致谢 29 查看完整请+Q:351916072获取
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/dzxx/dzkxyjs/2404.html