汽车行业已经采用了诊断总线。这些相当简单、低成本的串行接口允许汽车制造商连接传感器、执行器、电源控制、按钮、开关、显示器、指示器等。过去复杂、昂贵且通常不可靠的线束线束几乎一去不复返了。
这对于专业机械师和“自己动手”也是一个福音。低成本阅读器可以帮助解决现代汽车和发动机的问题。当它接入汽车的电子设备时,我们可以访问发动机统计数据、实时传感器数据、设置、模式、存储的警报和错误代码。
许多嵌入式设计都利用了这种连接性,从低成本信号直通和拦截(用于远程启动器)到手持数据终端类型的阅读器,再到用于赛车和其他高性能应用的更复杂的实时数据采集工具。
因此,有一系列微控制器,从小型 8 位部件到高端 32 位部件,通过 CAN 总线瞄准这一庞大且易于接受的人群,CAN 总线是一种车辆总线标准,旨在允许微控制器和设备与在没有主机的车辆内相互连接。这种基于消息的协议专为汽车应用而设计,但现在也用于航空航天、工业自动化和医疗设备等领域。
本文着眼于支持 CAN 应用的微控制器。
一个共同的标准
加利福尼亚州早在 1966 年就开始立法使用控制系统来对抗烟雾。这些想法进入了 1970 年的清洁空气法案,并诞生了使用计算机化汽车系统来减少排放。
到 1988 年,汽车工程师协会 (SAE) 已经定义了标准诊断、连接器和信号。在 EPA 采用了大部分 SAE 标准后,OBDII 于 1996 年成为扩展标准集。自 1996 年以来,基本 OBDII 协议已拆分如下,欧洲和克莱斯勒使用 ISO 9141(或 KWP2000),福特使用脉冲宽度调制 SAE J1850,通用汽车使用具有可变脉冲宽度调制的 SAE J1850。
2008 年,所有在美国销售的汽车都必须使用采用 CAN 双绞线信号的现代 OBDII 协议或 ISO15765-4,该协议使用标准 SAEJ1962 连接器和引脚 6 和 14 上的差分信号进行通信(图 1 )。唯一的变化是标识符长度和总线速度(表 1)。
表 1:现代 ISO15765-4 连接因标识符位长度和数据速率而异。
图 1:旧协议使用 7/15 或 2/10 信号对。对于强制性 ISO15765,引脚 6 和 14 是 CAN 总线使用的差分信号对。
事实上的标准 ELM327 命令集类似于 Hayes 调制解调器使用的 AT 风格命令集。ASCII 字符串和参数启动功能并返回有关引擎数据、代码等的状态信息。由于信息的自由流动可用性,基于 ROM 的查找表可以保存固件可访问的代码含义。使用 Internet 搜索引擎可以轻松解码较旧的密码。此外,如何修复它的帖子和视频使个人比以往任何时候都更容易利用 OBDII 和 CAN 接口。
只是挂在公交车上
几种类型的产品可以很好地利用 OBDII 来利用汽车的电子系统。由于 CAN 允许总线上使用碰撞检测和避免方案的多主控,因此为 CAN 总线控制的车辆增加计算能力相对容易。所有节点都使用邮箱和缓冲区来相互共享和获取数据,侦听命令,并在寻址时跳转。
除了静态测量之外,还可以通过 OBDII 获得实时发动机数据。这允许在多功能显示器上定制仪表和仪表组,这对于仪表板上甚至没有温度计的现代车辆来说尤其重要。此外,汽车计算机的性能增强芯片允许高级用户微调性能或经济设置(通常有违反汽车保修条款的风险)。
重要的是要知道 CAN 总线上的成帧数据包是 UART 样式的数据字符串。因此,任何具有 UART 的微控制器都具有良好的时序控制电路,可以在非标准波特率下保持精度,是 CAN 控制的可行候选者。
另一方面,物理接口使用大多数基于 UART 的微控制器不支持的半双工差分信号技术。因此,要将 UART 修补到 CAN 中,需要一个CAN 收发器芯片,例如英飞凌 IFX1050G(图 2A)或安森美半导体的 AMIS426711CAB1RG(图 2B)。这些类型的物理层接口芯片使逻辑电平 TX 和 RCV 线路适应电隔离或非隔离汽车总线。
图 2:CAN 总线收发器允许任何基于 UART 的微增益连接到 OBDII 总线。每个都有有用的功能。英飞凌 IFX1050G(左)具有抑制、只读和低功耗模式,适用于可能断开汽车电源的阅读器。ON Semiconductor AMIS426711(右)具有自动波特率检测器,可用于检测和支持旧协议。
具有内置差分收发器的微控制器可以是通用的或专用的。以Innovasic IA82527PLC44AR2 CAN 控制器 IC 为例(图 3)。它在外形、尺寸和功能上都与传统的 Intel 82527 通信控制器兼容,并针对 CAN 支持进行了改进。外设式 CAN 支持也来自Microchip,其MCP2515T-1/ML SPI 可访问的独立 CAN 控制器,以及来自恩智浦的SJA1000T/N1,118独立 CAN 控制器,带有并行接口。
图 3:作为自立式外围芯片的 CAN 控制器有助于将设计快速推向市场,因为大部分繁重的工作已经完成。Innovasic IA82527 为本地主机微控制器提供串行和并行接口以及 I/O 端口。
传统架构在处理 CAN 数据方面做得很好。8 位、50 MHz Silicon Labs C8051F550-IM具有内置 CAN 控制器,作为广受欢迎的 8051 核心处理器的外围设备(图 4)。与旧的 8051 相比,1.8 到 5.25 伏的部件主要使用单周期指令,使其性能提高 12 倍。
图 4:作为传统内核的附加外设,基于 Silicon Labs 8051 的 C8051F550 让设计人员可以在添加 CAN 功能的同时保留传统电路板和代码。
其他片上外设包括 I²C、SPI、UART 和 12 位 A/D。该公司还提供利用片上串行调试接口和仿真器端口的C8051F560DK开发套件。Digi-Key 网站上还提供了串行通信概述产品培训模块。
更多马力,16 位部件,如飞思卡尔 MC912D60ACFUE8可能是一个不错的选择。作为公司 HC12/HC16 系列的一部分,这些 16 位部件与熟悉的 68HC11 系列处理器向上兼容,具有 20 位 ALU、混合信号支持和差分 CAN 总线引脚。
飞思卡尔部件的一个关键优势是 msCAN 软件,它提供消息调度和优先级,以及用于协调多个消息和活动的高级缓冲区管理。特别感兴趣的是符合 CAN 2.0 B 扩展标识符模式的两个可屏蔽标识符接受过滤器。飞思卡尔部件还具有串行调试/仿真端口和内部 EEPROM 以及闪存。
更复杂的设计可能包括驱动高分辨率 LCD 和 TFT,同时还集成以太网、GPS、Wi-Fi、蓝牙或 USB。这些设计将需要更多的 I/O、更宽的数据路径、外部总线以及通常更大的马力。许多现成的嵌入式处理器已准备好在此处提供服务,例如支持 CAN 的Renesas RX600系列 32 位 MCU。32 位 RX CPU 内核以 100 MHz 的最大工作频率提供 165 DMIPS,瑞萨 MCU 实现了符合 ISO11898-1 规范的 CAN 模块(图 5)的一个通道(32 个邮箱)。CAN 模块发送和接收两种格式的消息,即标准标识符(11 位)和扩展 ID(29 位)。瑞萨电子还提供了一个产品培训模块,名为 CAN 外设和 API。
图 5:瑞萨 CAN 模块框图。
总结
使用 OBDII 和 CAN 更容易诊断和控制汽车处理环境。许多设备制造商提供零件和套件来帮助您入门。借助标准化的连接器、消息传递协议和信号级别,没有什么能阻止工程师充分利用汽车的计算机来添加特性、功能或提高性能或经济性。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)