历史上的今天
返回首页

历史上的今天

今天是:2025年02月01日(星期六)

2018年02月01日 | 基于ARM和智能手机的蓝牙CAN分析仪解析

2018-02-01 来源:eefocus

针对CAN总线通信质量、测试和验证的需要,以及传统CAN分析仪的复杂性,且必须选择PC机作为显示终端的不足,论证了一种基于ARM单片机和智能手机的CAN总线分析仪设计。该分析仪采用以ARM单片机为核心的硬件电路完成对CAN网络的实时数据收集和监控;采用蓝牙通信方式实现分析仪与智能手机的通信并以智能手机为终端完成数据分析。文章对分析仪硬件、软件和智能手机页面进行了具体设计,提出了一种新的波特率自动检测方法,最后给出了所设计的CAN总线分析仪的实际试验结果,可实现CAN总线波特率自动检测、正常监测以及CAN总线状态分析的功能。


CAN(controller area network)控制器局域网络是一种实时性强、灵活性好、标准化程度高的串行数据总线,广泛应用于汽车电子、工业自动化、船舶、医疗设备、工业设备等领域。其测试设备CAN网络分析仪成为开发者的必备设备。借助使用方便的CAN总线分析仪,能够快速找到CAN总线系统在使用中出现的设计不周或异常干扰问题,并将故障和问题排除。


传统CAN分析仪需要将电脑通过USB连接到CAN分析仪上,再通过DB9接口将被测总线连接到CAN分析仪上。由于CAN总线是一种流行于车辆行业的现场总线,这样的调试方法对于需要路测的车辆就会显得不太方便,很难保证能够正常工作。同样,在工业控制领域,传统的CAN分析仪由于两段都有连线,在线束较多的工业现场可能会造成一定的混乱。此外,当今使用CAN总线的设备为了保证安全性,有时不止1根总线,传统的分析仪至多有2个接口,也就意味着想要同时测试2个以上CAN总线时就需要2个USB接口,如果这2条CAN总线相距较远则需要较长的USB连接线。为此,这里介绍一种成本低、体积小、结构简单、实现无线调试和对环境要求低的蓝牙CAN总线分析仪。


1 硬件设计


1.1 总体设计


针对传统CAN分析仪的各种缺点,本文提出了以智能手机代替PC机作为显示终端,使用蓝牙无线传输替代USB电缆传输,并且自带锂电池的新型CAN分析仪。总体设计结构如图1所示。

      

图1 蓝牙CAN分析仪总体设计框图


由于CAN分析仪是一种波特率较高的通信协议,且对通信质量分析和故障定位需要复杂的运算处理,所以本文提出的蓝牙CAN分析仪在整体设计中包含3个部分:一部分是以ARM为处理核心的处理主板,负责CAN总线波特率检测、数据采集以及蓝牙通信信号发射;第二部分是锂电池,负责给主板提供电源,锂电池电压为5V,容量为3 000mAh,尺寸为11.6mm X42mm×69ram,可保证系统工作lOh以上;第三部分为智能手机,负责接收CAN总线数据以及对数据的处理。


1.2 主板设计

主板上有4个模块,分别为隔离CAN接口模块、ARM处理器模块、蓝牙串口模块、电源电路模块。设计框图如图2所示,实物图如图3所示。


隔离CAN接口模块负责将ARM的数据发送到CAN总线上,并将CAN总线上的数据发送给ARM处理器。

      

图2 主板系统设计框图

      

图3 主板买物图


ARM处理器模块是本分析仪的核心,采用NXP公司的LPC2119处理器。LPC2119是基于一个支持实时仿真和跟踪的16/32位ARM7TDMI-STM CPU,带有128KB嵌入高速Flash存储器,并内部集成2个CAN控制器。其主要特点是:单个总线上的数据传输速率高达1MB/s;32位寄存器和RAM访问;兼容CAN2.0B,IS011898.1规范;全局验收滤波器可以识别所有的11位和29位标识符;验收滤波器为选择的标准标识符提供Full CAN-style自动接收。它主要负责将CAN总线上的数据进行处理,然后通过蓝牙串口发送到手机,此外,ARM模块还负责检测未知CAN总线上的波特率,并发送给手机端。


蓝牙串口模块负责ARM与手机交换数据,其串口的通信速率达到1 382 400bps。电源模块负责为各个模块供电。


2 软件设计


软件是蓝牙CAN分析仪的关键。根据硬件系统结构,软件包括两个部分,即运行于ARM处理器的波特率检测以及数据传输软件;运行在智能手机上的CAN分析仪操作界面。对于运行在ARM处理中的软件,本文着重介绍一种新型的波特率自动检测方法。


2.1 波特率自动检测软件设计


实现CAN总线和CAN分析仪之间的通信,需有相同的波特率,因而波特率的检测十分重要。当下主流的波特率检测方法是利用应答机制建立的波特率检测方法。其开始时通过试听一些推荐的CAN总线优选波特率,即1Mbit/s,800kbit/s,500kbit/s,250kbit/s,125kbit/s,(100kbit/s),50kbit/s,20kbit/s,10kbit/sHl:若能无故障地接受到完整的CAN消息,说明波特率检测成功;如果CAN总线的波特率不是优选波特率,则可以通过主机和CAN总线的应答来测定波特率。此种检测方法速度慢,存在一定误差且对被测网络有一定影响。


针对采用应答机制设定的波特率检测方法的缺点,本文提出了一种新的自动波特率检测方法。本自动波特率检测系统巧妙地利用了ARM处理器的中断端口,将CAN总线上的波形记录到ARM处理器内,然后对获得的波形进行分析,得出系统的波特率。其检测速度快(小于200ms),检测准确(得出的波特率为一个精确值,而非范围值),不向被测网络发送数据,并且成本很低,无须增加任何芯片。


具体实现方法是:硬件方面,将隔离CAN接口的RX引脚接到ARM的定时器捕获端口。在软件方面,首先将RX引脚相邻两个上跳变和下跳变的间隔周期都记录下来;其次将周期数据排序,数据应呈阶梯状;然后将数据按阶梯分段并求出每个阶梯的中位数,第一个阶梯为1位数据的持续时间,第二个阶梯为2位数据的持续时间……以此类推。由于CAN总线不会连续6位出现相同电平,因此阶梯只有5阶,且第二个数据等于第一个数据的2倍,第三个数据等于第一个数据的3倍,以此类推。根据这个特性可以校验数据并调整最终获得的1位数据的持续时间。最终的波特率即为1位持续时间的倒数。流程图如图4所示。

      

图4 波特率检测流程图


2.2 智能手机界面设计


智能手机界面的设计采用Eclipse.Eclipse是一个开放源代码的、基于Java的可扩展开发平台,它只是一个框架和一组服务,用于通过插件组件构建开发环境,并附带了一个标准的插件集,包括Java开发工具。手机运行界面如图5、图6所示。

      

     

图5 软件运行界面


3 实验验证


为了验证本蓝牙CAN分析仪的设计效果,构建了1个包含以ARM为核心的主板、锂电池、智能手机(安装了安卓系统)、模拟被测系统的USB-CAN的测试系统,然后进行实际测试。测试流程图如图7所示。

      

图7 实际测试流程图


实际测试系统如图8所示。实际测试显示,在模拟CAN总线上只要有数据的流通,针对不同的CAN总线的波特率设置,本文设计的蓝牙CAN分析仪能够准确、快速地自动检测波特率且能实现数据的接收和发送。

图8 实际测试系统图


4 结束语


通过构建以NXP公司LPC2119为核心的处理器、智能手机为基础的硬件系统、蓝牙作为信息传递方式以及相应软件设计,能够实现CAN总线的波特率自动检测以及数据接收与发送,验证了蓝牙CAN分析仪的正确性。蓝牙CAN分析仪的实现,其操作简单、携带容易、抗震性能好等特点将为CAN总线开发工程师提供极大的便利;同时可以发现,进一步加强软件的设计与优化,该分析仪还能提供对CAN总线更多更有价值的信息。


推荐阅读

史海拾趣

Britool Expert公司的发展小趣事

撰写5个关于电子行业里Britool Expert公司发展起来的相关故事,每个故事字数至少500字,可能内容过多,我可以为您提供1个故事的示例,如果需要更多故事,您可以在之后输入继续。


Britool Expert公司的发展故事之一:技术创新的突破

在电子行业的激烈竞争中,Britool Expert公司以其独特的技术创新策略脱颖而出。公司创立之初,就明确了以技术研发为核心的发展道路。在一次关键的技术研讨会上,公司的研发团队提出了一个前所未有的想法——开发一种新型的高效能芯片。

这个想法在当时看来极具挑战性,但团队成员们凭借着对技术的热爱和对市场的敏锐洞察,决心将这个想法变为现实。经过数月的艰苦努力,团队终于攻克了技术难关,成功研发出了这款芯片。这款芯片不仅性能卓越,而且成本大大降低,迅速在市场上获得了广泛的认可。

这一技术创新的突破,为Britool Expert公司打开了新的发展空间。公司借此机会,不断扩大生产规模,优化产品结构,逐渐在电子行业中树立了良好的口碑。随着技术的不断进步和市场的不断扩大,Britool Expert公司逐渐成为了电子行业中的佼佼者。

这个故事只是Britool Expert公司发展历程中的一个缩影。在公司的成长过程中,还有许多类似的技术创新故事。正是这些故事,构成了Britool Expert公司不断发展壮大的坚实基石。


若您想要探索更多内容,随时可以继续输入。

EVERLIGHT公司的发展小趣事

随着全球环保意识的不断提高,EVERLIGHT也积极响应环保号召,致力于研发和生产环保型LED产品。公司采用环保材料和节能技术,不断降低产品的能耗和废弃物排放。同时,公司还积极推广绿色照明理念,为客户提供环保、节能的照明解决方案。这种对环保的关注和实践让EVERLIGHT在电子行业中树立了良好的形象。

中电熊猫(CEC)公司的发展小趣事

随着市场竞争的加剧和技术的不断发展,中电熊猫不断调整市场布局和战略方向。公司坚持开放联合的战略思路,善于搭建平台、取长补短、实现合作共赢。同时,中电熊猫还积极关注国内外市场动态和技术趋势,不断调整和优化产品结构和服务模式。通过这些努力,中电熊猫在保持市场领先地位的同时,也为行业的可持续发展做出了积极贡献。

FEMA Electronics Corporation公司的发展小趣事

随着科技的不断发展,FEMA意识到只有不断创新才能在竞争激烈的市场中立于不败之地。因此,公司加大了研发投入,不断推出具有自主知识产权的新产品。其中,一款高性能的集成电路芯片在市场上引起了广泛关注。这款芯片不仅性能卓越,而且具有极高的性价比,迅速赢得了客户的青睐。FEMA凭借这一产品,成功打开了新的市场领域,实现了业务的快速增长。

FILTRONIC公司的发展小趣事

在快速发展的同时,FILTRONIC始终将品质管理和客户服务放在首位。公司建立了完善的质量管理体系和客户服务体系,从原材料采购、生产制造到产品检测、售后服务等各个环节都严格把关。同时,FILTRONIC还积极倾听客户需求,不断优化产品和服务,以满足客户不断变化的需求。这些努力使得FILTRONIC在客户中树立了良好的口碑和品牌形象。

Altitude Technology公司的发展小趣事

随着产品的不断升级和市场的不断扩大,Altitude Technology开始将目光投向海外市场。公司制定了详细的市场拓展计划,通过参加国际电子展会、建立海外销售渠道等方式,积极推广自己的产品。经过一番努力,Altitude Technology的产品逐渐在国际市场上获得了认可,公司的知名度也得到了提升。

问答坊 | AI 解惑

DSP基础知识集锦之二 DSP芯片的基本结构和特征

第2章 DSP芯片的基本结构和特征 2.1 引 言 可编程DSP芯片是一种具有特殊结构的微处理器,为了达到快速进行数字信号处理的目的,DSP芯片一般都具有程序和数据分开的总线结构、流水线操作功能、单周期完成乘法的硬件乘法器以及一套适合数字信号处理的 ...…

查看全部问答>

组建局域网问题

最近一个项目要设计这个组建局域网的问题,一头雾水,不知道怎么弄啊,大侠指点指点啊~~~~~~…

查看全部问答>

工程师应该掌握的20个模拟电路

一直都是从论坛下载,今天上传一个从别的论坛得到的资料,希望对大家有所帮助。 感谢原作者!…

查看全部问答>

Fairchild Highlights Energy-Efficient Lighting Solutions

Fairchild Highlights Energy-Efficient Lighting Solutions Fairchild Semiconductor highlighted its LED lighting solutions at PCIM Europe. Fairchild will also feature its leading power technologies and application demos that highligh ...…

查看全部问答>

Arm2410 : jump to ram? how to? 好困惑啊!!!!求助大家了

   ARM boot loader 的一段代码,如下 jump to ram 是怎么保证的呢? =on_the_ram 是开始的那个‘steppingstone’缓存区 还是 SDRAM 的地址? 请教大家,谢谢     bl    copy_myself     @ jump to ram&nb ...…

查看全部问答>

个人闲置 全新ARM9 TQ2440

http://item.taobao.com/auction/item_detail.htm?item_num_id=7800276012…

查看全部问答>

稳压电路学习

1.此稳压电路的输出电压是不是等于=稳压管电压Vz*(1+R1/R2)? 2.此电路为什么要在T1管的发射极和稳压管的正极接一个电阻Rz?起什么作用,可不可以不接? 谢谢各位大侠帮忙讲解 …

查看全部问答>

STM32 频繁中断 导致SPI工作异常,寻求帮助

各位大侠,大家好!     我用STM32的SPI控制一个RF设备,在没有其他串口或者系统滴答或者定时器等中断的情况下,工作非常正常,当启用系统滴答中断的情况下STM32经常会死循环在   void NTRXReadSPI(MyByte8T address, MyByte8T ...…

查看全部问答>

放大类的电源该如何制作

本帖最后由 paulhyde 于 2014-9-15 09:25 编辑 最近在做信号放大类的题目,发现以前用的电源稳压芯片如7805,7812,7815等这些线性稳压芯片的噪声很大,很容易干扰到信号。请问大家如何制作一个低噪声的电源?  …

查看全部问答>

pic16f877a程序仿真能行,为什么开发板上实现不了?

#include<pic.h>  void delay(int ms)  {  int i=0,j=0; for(i=0;i<ms;i++) for(j=0;j<67;j++)  {;} } void main(void)  { TRISC=0; PORTC=0b11111111; delay(100); while(1){} } 程序如上, ...…

查看全部问答>