### ELM327 AT指令集详解
#### 概述
ELM327是一款流行的车载诊断(OBD)适配器芯片,广泛应用于汽车诊断系统。它支持多种通信协议,如CAN、ISO 9141-2、J1850 PWM等,并能够通过串行接口与外部设备进行数据交换。为了实现这些功能,ELM327提供了丰富的AT指令集,用于配置其工作模式、参数以及与其他系统的交互方式。
#### AT指令集介绍
AT指令集是ELM327芯片进行配置和控制的基础,以下是对该指令集中部分命令的详细介绍:
1. **@1 - 显示设备描述**
- **版本:** 1.0
- **描述:** 此命令用于显示ELM327设备的基本描述信息。
- **分组:** General
2. **@2 - 显示设备标识符**
- **版本:** 1.3
- **描述:** 通过此命令可以获取ELM327设备的唯一标识符,这对于识别特定硬件版本或制造商非常有用。
- **分组:** General
3. **@3cccccccccccc - 存储设备标识符**
- **版本:** 1.3
- **描述:** 允许用户设置一个自定义的设备标识符,该标识符可用于识别特定的ELM327设备。
- **分组:** General
4. ** - 重复上一条命令**
- **版本:** 1.0
- **描述:** 如果需要多次执行相同的命令,可以使用此命令来简化操作过程。
- **分组:** General
5. **AL - 允许长消息(>7字节)**
- **版本:** 1.2
- **描述:** 在默认情况下,ELM327限制了单条消息的最大长度为7个字节。启用此命令后,可以接收更长的数据包。
- **分组:** OBD
6. **AR - 自动接收**
- **版本:** 1.2
- **描述:** 开启此命令后,ELM327将自动接收所有可用数据而无需等待特定命令触发。
- **分组:** OBD
7. **AT0 - 关闭自适应定时**
- **版本:** 1.2
- **描述:** 关闭自适应定时功能可以提高在固定速度下的通信稳定性。
- **分组:** OBD
8. **AT1 - 自适应定时自动1**
- **版本:** 1.2
- **描述:** 启用自适应定时自动1模式,ELM327将根据接收到的数据包大小自动调整定时参数。
- **分组:** OBD
9. **AT2 - 自适应定时自动2**
- **版本:** 1.2
- **描述:** 自适应定时自动2模式提供了一个更加复杂的算法来调整定时参数,适用于变化较大的通信环境。
- **分组:** OBD
10. **BD - 执行缓冲区转储**
- **版本:** 1.0
- **描述:** 使用此命令可以清空内部缓冲区中的数据,这有助于诊断和调试。
- **分组:** OBD
11. **BI - 绕过初始化序列**
- **版本:** 1.2
- **描述:** 当需要快速启动ELM327并立即开始数据传输时,可以使用此命令跳过正常的初始化步骤。
- **分组:** OBD
12. **BRDhh - 尝试波特率除数hh**
- **版本:** 1.2
- **描述:** 通过设置不同的波特率除数值,可以尝试找到最佳的通信速率。
- **分组:** General
13. **BRThh - 设置波特率握手超时**
- **版本:** 1.2
- **描述:** 此命令允许设置波特率握手过程中等待应答的时间长度。
- **分组:** General
14. **CAF0 - 关闭CAN自动格式化**
- **版本:** 1.0
- **描述:** 在某些情况下,可能需要禁用CAN消息的自动格式化功能。
- **分组:** CAN
15. **CAF1 - 打开CAN自动格式化**
- **版本:** 1.0
- **描述:** 该命令开启CAN消息的自动格式化功能,使消息更容易被解析。
- **分组:** CAN
16. **CFhhhhhhhh / CFhhh - 设置ID过滤器**
- **版本:** 1.0
- **描述:** 这些命令允许用户根据特定的ID来筛选CAN消息。
- **分组:** CAN
17. **CFC0 - 关闭CAN流控制**
- **版本:** 1.0
- **描述:** 在不需要流控制的情况下,可以使用此命令关闭流控制功能。
- **分组:** CAN
18. **CFC1 - 打开CAN流控制**
- **版本:** 1.0
- **描述:** 打开流控制功能可以帮助管理CAN总线上的数据流量,防止数据溢出。
- **分组:** CAN
19. **CMhhhhhhhh / CMhhh - 设置ID掩码**
- **版本:** 1.0
- **描述:** ID掩码用于确定哪些CAN消息将被接受或忽略。
- **分组:** CAN
20. **CPhh - 设置CAN优先级(仅对于29位)**
- **版本:** 1.3
- **描述:** 在扩展CAN帧中,可以设置消息的优先级,以优化总线访问。
- **分组:** CAN
21. **CRAhhh / CRAhhhhhhhh - 设置CAN接收地址**
- **版本:** 1.3
- **描述:** 该命令允许指定接收特定地址的CAN消息。
- **分组:** CAN
22. **CS - 显示CAN状态**
- **版本:** 1.0
- **描述:** 此命令可以查看当前CAN总线的状态信息,包括错误计数等。
- **分组:** CAN
23. **CVdddd - 校准电压到dd.dd伏特**
- **版本:** 1.0
- **描述:** 通过校准电压值,可以确保传感器读数的准确性。
- **分组:** Volts
24. **D - 设置所有默认值**
- **版本:** 1.0
- **描述:** 此命令将所有设置恢复到出厂默认值。
- **分组:** General
25. **D0 - DLC关闭**
- **版本:** 1.3
- **描述:** 关闭数据长度编码功能,以便更好地兼容旧版设备。
- **分组:** CAN
26. **D1 - DLC打开**
- **版本:** 1.3
- **描述:** 打开数据长度编码功能,以支持较新的CAN通信标准。
- **分组:** CAN
27. **DM1 (J1939) - 监听DM1消息**
- **版本:** 1.2
- **描述:** 此命令用于监控J1939协议中的特定类型消息。
- **分组:** J1939
28. **DP - 描述当前协议**
- **版本:** 1.0
- **描述:** 显示当前使用的通信协议及其配置。
- **分组:** OBD
29. **DPN - 通过编号描述协议**
- **版本:** 1.0
- **描述:** 提供了一种按数字索引查询协议的方式。
- **分组:** OBD
30. **E0 - 关闭回显**
- **版本:** 1.0
- **描述:** 禁用回显功能后,ELM327将不再显示发送出去的命令。
- **分组:** General
31. **E1 - 打开回显**
- **版本:** 1.0
- **描述:** 开启回显功能,使得发送的命令也会显示在输出中。
- **分组:** General
32. **FCSD [1-5字节] - 流控制设置数据**
- **版本:** 1.1
- **描述:** 用于配置CAN总线上的流控制参数。
- **分组:** CAN
33. **FCSH hhhhhh - 流控制设置头部**
- **版本:** 1.1
- **描述:** 设置流控制报文中的头部信息。
- **分组:** CAN
34. **FCSM h - 流控制设置模式**
- **版本:** 1.1
- **描述:** 定义流控制报文的模式字段。
- **分组:** CAN
35. **FE - 忘记事件**
- **版本:** 1.3a
- **描述:** 清除存储在ELM327中的所有事件记录。
- **分组:** General
36. **H0 - 关闭头部**
- **版本:** 1.0
- **描述:** 关闭OBD消息中的头部信息,这可以减少数据传输量。
- **分组:** OBD
37. **H1 - 打开头部**
- **版本:** 1.0
- **描述:** 显示OBD消息中的头部信息,这对于调试非常有帮助。
- **分组:** OBD
38. **I - 打印ID**
- **版本:** 1.0
- **描述:** 显示ELM327的ID信息。
- **分组:** General
39. **IB10 / IB96 - 设置ISO Baud率**
- **版本:** 1.0
- **描述:** 设置ISO 9141-2协议下的通信波特率。
- **分组:** ISO
40. **IFRH / IFRS / IFR0 / IFR1 / IFR2 - 设置IFR值**
- **版本:** 1.2
- **描述:** 这些命令用于配置J1850 PWM协议下的不同IFR(Initial Frame Rate)值。
- **分组:** J1850
41. **IIAh - 设置ISO(慢速)初始化地址**
- **版本:** 1.2
- **描述:** 为ISO 9141-2协议设置初始地址,这对于某些特定车辆非常重要。
- **分组:** ISO
以上是对ELM327 AT指令集中部分常用命令的详细介绍,这些命令涵盖了从基本的设备信息获取到高级的通信配置等多个方面。了解并熟练掌握这些命令,对于开发基于ELM327的汽车诊断系统至关重要。
1