低功耗汽车网络参考设计方案——飞思卡尔TRK-KEA128开发板评测+视频

分享到:

前些天,陪一个朋友去选车,无意中听到4S店的一个销售不停抱怨,“如今的买家太难搞了,太挑剔、又不容易被忽悠,像在以前买车基本就是看看外观,看看空间,再不济,坐上去溜一圈就可以决定买不买了;如今呢,除了要具备以上的这些条件,人们也愈发的重视车载的娱乐功能、使用操作的易用、稳定性、安全性如何等等...”

非常有意思的对话,这不禁让我感叹这个销售人员所遇到的“窘境”,如今车载的电器设备、娱乐功能确实是越来越多了,这些设备带来的好处是显而易见的,然而更多的功能也意味着更多的电子元件、更多的线路,这无疑让车身布线成为一项十分痛苦的工作,这问题该如何解决呢?

好在,前辈们已经找到了缓解了这种情况的办法——CAN总线,通俗的讲,CAN总线就好比在汽车的控制元件之间建立的网络,使它们实现资源上的共享(CAN总线通信方式:节点发送的信息可被网络中所有其他节点看到),这样,不仅大大减少了相同传感器、导线的数量,同时也使可以配置的控制单元读取更多信息,实现更加精确的控制。

目前,市面上基于CAN功能的控制芯片不少,而笔者前不久就曾在e络盟电子购买了一款面向汽车网络应用的CAN功能开发板——飞思卡尔TRK-KEA128,我想我大概知道可以拿它来做什么了!

TRK-KEA128搭载的是飞思卡尔Kinetis EA系列的微控制器,基于ARM Cortex-M0+内核,对于这个处理器,或许大家还有些印象,飞思卡尔的Kinetis L系列产品就属于全球首款基于M0+的微控制器。时光荏苒,走了一圈,难道飞思卡尔又回到了起点?答案当然是No!

飞思卡尔Kinetis有多个系列,L就属于面向超低功耗的应用,而我手上的EA系列则主要是面向汽车电子方面应用,如下图所示。

TRK-KEA128开发套件拆箱

TRK-KEA128开发套件拆箱

说了一些基本的知识,也该让大伙瞧瞧我手上的这块TRK-KEA128开发板的庐山真面目了。
TRK-KEA128开发板的庐山真面目1

TRK-KEA128开发板的庐山真面目2

TRK-KEA128开发板的庐山真面目3


TRK-KEA128采用了“高一层次”的全塑料盒密封包装,里面的配件包括了:

  • TRK-KEA128开发板 *1
  • USB线缆 *1
  • 快速上手指导 *1
  • DVD光盘 *1


板卡给人的第一眼印象是比较“别扭的”,板载资源分布相对比较集中,而在板卡的右上部分又空余了约1/3左右的PCB面积作为主MCU的引脚引出原型孔区,这样的分布与设计在开发板上见到的不多。整套开发套件比较讨好用户的地方应该属于套件中自带的这张DVD光盘了,里面包含了开发套件的一些资源整合以及软件IDE开发工具(Code Warrior for MCU 10.6)、DEMO例程等资源,让用户可以进行快速的开发板熟悉以及上手。

DEMO例程等资源

TRK-KEA128开发板资源

说起来也怪,当我拿到板卡后去官网查找一些最新资料的时候意外的发现了一件不可思议的事情,飞思卡尔官网给出的TRK-KEA128板卡的图片与我实际拿到的板卡不一样!难道是发错板卡了?

经过查看大量资料,原来TRK-KEA系列板卡还有三种型号:分为面向低端汽车应用的TRK-KEA8,面向车身应用的TRK-KEA64以及我手上的这块TRK-KEA128,而KEA128与前两者最大的不同就是集成了CAN控制器,因而在TRK-KEA128板卡上可以看到CAN电路,这也是与前两者最大的不同之处,TRK-KEA128板卡的资源情况如下图所示

TRK-KEA128板卡的资源1

TRK-KEA128板卡的资源2
TRK-KEA128板载资源:

  • 采用80 LQFP封装的Kinetis KEA128 MCU
  • 采用PK20DX128 MCU的板载OpenSDA调试和编程电路
  • 一个CAN通信接口、一个LIN通信接口
  • 一个环境光传感器、四个用户LEDs
  • 一个MCU RESET按键、一个SDA RESET按键、两个用户按键
  • 12V DC Jack输入、5V MicroUSB口输入


怎么说呢?TRK-KEA128板卡设计的还是中规中矩的,黑色PCB板,实际大小约为88mm*63mm(实际测量),板卡提供了两种供电方式5V以及12V,对于12V供电电压,可能有些人不太了解,这里有两点解释之处:一是一般小型汽车的电瓶是12V电压的输出,而板卡特意设计了一个12V的输入接口,由此能看到设计者还是非常用心的,考虑的十分周全,贴近实际需求;第二点则是板载了LIN总线接口,12V输入电压同样是用于LIN总线通信的工作电压。

TRK-KEA128板卡搭载的电路功能还是非常简单明了的,大致可以分为3个主要部分:

  • 一个是主控MCU以及延生的电路功能(例如IO口引出的用户扩展接口、按键\LEDs电路、利用ADC功能拓展的光线传感器电路)
  • 一个是基于PK20DX128 MCU的板载OpenSDA调试电路(在爱板网的评测文章中有详细介绍,这里我就不再多说了 )
  • 另一部分则是通过外部PHY扩展的CAN、LIN接口电路(即是板卡的应用重点,也是微控制器的特色功能)


微控制器PKEAZ128AMLK

首先来看看主控MCU PKEAZ128AMLK,基于48MHz主频的32位ARM Cortex-M0+处理器,集成了128KB FLASH以及16KB RAM,这属于飞思卡尔Kinetis EA系列中功能规格最高的一款产品,主要集成了CAN控制器,适合面向汽车网络的应用设计,微控制器采用了常见的LQFP80封装,如下图所示

LQFP80封装

PKEAZ128AMLK微控制器特性:

  • 高达48 MHz ARM Cortex M0+内核,集成128KB FLASH、16KB RAM,LQFP80封装
  • 2.7V~5.5V宽电压供电
  • 一个16通道12位SAR ADC,两个模拟比较器、定时器、安全模块等
  • SPI、I2C、UART、CAN2.0A/B、KBI等接口,最高支持扩展71GPIOs
  • 电源管理模块(PMC)具有三种模式:运行、等待、停止


关于PKEAZ128AMLK微控制器的功能单元可以参考下方的系统框图,更详细的参数可以参考官方的规格书。

系统框图

其实不用理会微控制器这些复杂的参数介绍,说穿了,PKEAZ128AMLK微控制器总结为两个功能特点:

  • 一是基于ARM Cortex-M0+处理器,功耗低,生态圈广泛;
  •  二则是集成了CAN2.0A/B控制器,具备CAN网关功能,适合需要CAN总线网络的应用。

    网关不仅可以实现低速CAN与高速CAN之间的通信,更能够接收一种协议格式并在转发前将其转换成另一种协议格式,在此文章中,比如建立LIN总线与CAN总线之间的通信。

 所以呢,我们很快就能找准适用领域,比如工业自动化,汽车电子应用等,说的再细一点,就比如说汽车,相信会有朋友有过这种经历,常时间闲置的汽车,偶尔想使用一次突然发现电子车门锁打不开了。这是由于汽车在放置不用的状态下是依靠车载的电瓶提供给车上电子器件提供休眠状态时的电流,所以我们如果把这个待机功耗做得越低,电瓶自然消耗的越慢,而Cortex-M0+在32位微控制器中很好满足了这个低功耗的条件。

再者,正如文章一开始所讲的,PKEAZ128AMLK微控制器的CAN功能已经成为车辆电子系统控制不可或缺的通信网络功能,另外我们还能从TRK-KEA128板卡上两个重要的接口电路上有所启发,除了CAN总线,还可以“制造”LIN总线实现车身电子网络的方案,如下图,KEA128作为中央网关,建立LIN与CAN之间的通信桥梁。

    LIN总线是一种低成本的串行通信网络,用于实现汽车中的分布式电子系统控制,作为CAN总线的辅助或者适用于不需要CAN总线的带宽和多功能的场合,如智能传感器和制动装置间的通讯。LIN总线的最大特点是协议简单、成本低、速率低。
LIN与CAN之间的通信桥梁

怎么理解呢?众所周知,汽车由多个不同的控制系统组成,如动力系统、诊断系统、仪表系统等,这些系统之间的通信可能会因为使用和配置的不同而采用不同的总线接口,如上面所示的LIN总线以及CAN总线,即使都采用了CAN总线的接口,也会因为控制系统的不同而有不同的CAN总线速率选择,例如动力系统和诊断系统对数据实时性要求较高,采用高速CAN,仪表系统的数据发送速率相对较低,可以采用低速CAN,这样,由于动力系统和仪表盘之间的速率存在差异,需要由网关来转换,而KEA128在这里就很好的充当了CAN网关的功能它可以将车辆的几个子系统连接起来, 实现数据通讯,如下图所示

系统连接起来

当然,除此之外我们还可以再往细的说,比如将LIN总线作为CAN总线的提供辅助,提供更细化的功能控制,如下图所示

LIN总线作为CAN总线

利用LIN总线可以将左右车镜和四向仪(可以改变车镜位置的四方向开关)连接起来,其中,四向仪是主节点,两个车镜是从节点,四向仪读取按键的状态,将命令发送给相应的车镜,可以非常方便的控制这些设备,是不是很神奇?原本复杂的电路通过CAN总线以及LIN总线的配合可以实现精简、精准的控制。

当然,以低功耗以及CAN功能为特色的PKEAZ128AMLK微控制器不仅仅局限于汽车电子应用,比如工业自动化、运输业等等,或许你能想到的更多!

TRK-KEA128板卡开发

  • 集成开发工具IDE选择


开发的难易度是每个工程师极为关心的问题,本人也是这样。由于TRK-KEA128板卡板载了OpenSDA调试器,所以硬件调试工具不用费心,用板载的就行。倒是集成IDE开发环境选择挺多,首先当然是飞思卡尔自家的Code Warrior,功能强大,并且附带的光盘中也自带了安装程序,上手指导说明以及相关的Demo例程,非常方便。

上手指导说明以及相关的Demo例程

不过这对于曾经没有使用过Code Warrior的朋友,上手难度还是非常大,或许飞思卡尔自己也感觉到了这种微妙的情况,所以我们可以从官网看到不久前更新的针对Keil、IAR第三方IDE工具的例程支持,如下图所示

Keil、IAR第三方IDE工具

不过有一点要提醒大家(我已经上当了),在下载的Keil例程压缩包中,解压出来的工程文件名后缀为.uvprojx,这是基于KEIL5.0以上版本的工程文件,所以,要使用Keil这个IDE的话,你知道该如何做的,而IAR版本似乎没什么限制。

 

  • 驱动安装


对于初次使用TRK-KEA128开发板,驱动安装也是非常费事的,最简单的方法是安装光盘中提供的Code Warrior IDE软件,它会自动帮你安装所有的驱动,这是最省事也最不费脑子的操作,如下图所示
安装所有的驱动

如果不想使用Code Warrior,那推荐大家一个一个安装对应的驱动程序,好在,爱板网先前的评测文章中此类教程非常多,也很详细,可以参考,这里不再一一说明了(详细的安装教程,包含MSD Flash编程模式、Debug模式以Bootloader模式的使用)。

  • 开发板上电&例程下载


一切准备就绪后,直接给TRK-KEA128板卡上电后就能启动后会运行出厂程序,例程给人的直观感受是关于LED的控制:1颗LED呈闪烁状态,其它三颗实现跑马灯功能,猜测可能采用了飞思卡尔FTM模块的功能(多功能定时器模块),如下图所示
三颗实现跑马灯功能

那接下去下载、调试该如何操作?

其实这个问题在爱板网之前的文章中都有解答,主要还是回绕这个OpenSDA调试器展开,可以进入MSD模式下载或者Debug模式下载调试,具体的文字说明参考OpenSDA的使用,简要的步骤见下面的流程框图。
流程框图

下面则是以Debug模式下下载调试为例说明:

  • 让TRK-KEA128板卡进入Debug模式(如上如所示,按住复位按键上电进入Bootloader模式-->烧录Debug固件)
  • 选择相应的IDE工具,这里以IAR7.1版本为例(CodeWarrior、Keil5.11.10版本、IAR7.1版本笔者都试过,比较下来IAR是最为方便的)


有一点还是要说明下,如果使用CodeWarrior或者Keil5.0版本,需要安装对应微控制器的软件支持包。比如KEIL IDE则要安装Keil.Kinetis_KEAxx_DFP.1.1.0.pack,如下图所示

软件支持包

CodeWarrior也是同理,具体的安装方法可以直接通过 IDE工具在线升级,或者直接去各字官网下载软件包导入,操作很简单,这里就不再一一说明了。在这些步骤完成后就可以导入官方提供的例程进行编译、下载调试等操作了。下图则是通过IAR调试界面调试官网提供的例程4——如何配置和使用KBI模块读取按钮的状态。
KBI模块读取按钮

另外,顺便提下,本次的TRK-KEA128开发板搭载的OpenSDA调试器仍为第一代的版本,不开源,而目前最新的OpenSDA版本为V2.1,相应的板卡为飞思卡尔FRDM-K22F,两个版本的OpenSDA调试器区别也参考爱板网的评测文章。

最后,附上本次飞思卡尔TRK-KEA128开发板简要的视频评测(超清可选)

 

小结

介绍飞思卡尔TRK-KEA128开发板基本的板载功能和简要的上手开发指导,TRK-KEA128搭载基于32位低功耗ARM Cortex-M0+的微控制器PKEAZ128AMLK,板载完整的CAN/LIN接口电路,OpenSDA调试器,开发环境方便,特别适合有低功耗、CAN总线网络需求的应用领域,如文章一再提及的汽车电子领域,众所周知,车载电子设备带给我们的好处是显而易见的,无论是舒适性、行车安全,还是其它方面,而且相信随着电子技术的不断发展,功能只会越来越多,这就要求汽车电子工程师在设计电路的时候需要多方面综合考量,比如说待机功耗、电子元器件选型,如何布线等需求,而TRK-KEA128的出现无疑为工程师提供了一个值得借鉴的方案。

继续阅读
如何让你的CAN更加安全?办法在这里!

每辆汽车中都使用CAN网络来连接电子控制单元(ECU),预计未来十年它仍会是主导性网络。随着汽车电子设备不断增多,跨CAN网络交换的实时数据量也在增加。

CAN总线中特殊波特率如何计算?

CAN总线采用的是异步串行通信,也就是没有单独的时钟线来保证各个收发器之间时钟的一致,每个收发器是按事先设置的波特率来对总线上的电平进行分位。因此波特率设置准确对CAN总线的稳定通信来说非常重要。

怎样避免CAN总线节点设计的错误

CAN总线网络中,若其中一个节点出现硬件或者软件上的错误,很可能导致总线电平持续保持在显性状态,总线上所有节点均不能正常通信。在节点设计时,应该如何通过硬件手段避免这一问题发生?

CAN总线如何抗干扰?遵守六条“军规”肯定没错!

随着CAN总线在电动汽车、充电桩、电力电子、轨道交通等电磁环境比较恶劣的场合应用越来越多,信号干扰的问题已经严重影响到使用者对CAN总线的信任。究竟如何才能抗干扰?本文展示了致远电子CAN总线抗干扰的6条“军规”。

Kinetis KEA系列内容集锦(介绍、开发资料、技术问答)

Kinetis EA系列32位ARM®Cortex®MCU广泛适用于质量要求和长期供货保证要求都很高的汽车和工业应用。文章主要从以下几方面汇总了Kinetis KEA的相关内容,希望在各位的学习研发过程中有丢丢帮助: 1.KEA产品介绍篇 2.资料、开发篇(通用资料、开发板评测、开发教程、例程、开发笔记) 3.技术问答篇