SAE J2534 (�ڶ�����): ʹ�� 2004 API

Elsa Carlsson
Fri, 12 Nov 2021 13:12:43 +0000

�����������ǽ���SAE J2534��������ϵ�в��͵ĵڶ���������ϵ�н���SAE J2534(���������汾)���������ʹ��2004 API��Ȼ��˵�������ʼʹ���ƺ���Ϸ��J2534��

���£�����J2534��ϵ�п�������
����������ɵĴ˲���ϵ�н�����SAE J2534���������Ķ���汾�������������ʹ��2004 API���Լ�˵����ο�ʼʹ���ƺ���Ϸ��J2534��
SAE J2534����һ���֣�������|�˽���࡭
SAE J2534���ڶ����֣���ʹ��2004 API |�˽���࡭
SAE J2534���������֣���ʹ���ƺ���Ϸ��SAE J2534|�˽���࡭

2 ʹ�� 2004 API

Ҫ��Ч��ʹ��J2534 API�������Ҫ�˽���ʹ�õ�Э�飬����Ҫ�˽��Э���API�������� �C ��J2534ʵ���Ͼ�����Э�鲻��֪���������ȼ�Ҫ����һ������֧�ֵĻ���CAN��Э��(ֱ��J2534-2 2019)��Ȼ���Ҫ����һ�����ͨ��J2534 APIʹ��ÿ��Э����

2.1 Э�����

���ǽ������ƺ���Ϸ��J2534 DLLĿǰ֧�ֵ�����Э����CAN 2.0��CAN FD��ISO-TP�� ISO-TP FD����J2534�У������е�����Э�顰ID�������ǽ���������Ϊ������Э�����Դ�����ʵ����������ϸ΢�Ĳ����������FDЭ��ʵ��������FD�汾��CAN�����汾��֧��CAN�ɱ����ʸ�ʽ(FD)��ͬʱ���ṩ��ͨCAN�汾�����й�������ֵ��һ����ǣ�ISO-TP (�߱��򲻾߱�FD)����CAN (��Ӧ2.0��FD)֮�ϵĸ߼�Э����

2.1.1 CAN 2.0

��Ϊ��������Э��Ļ�����CAN 2.0(��ʱ��Ϊ����CAN)��һ���ݴ�Э�飬���ڴ����Ϊ֡�ı��ģ��㲥�������ϵ����нڵ㡣��Щ֡��CAN����(�Ϊ8�ֽ�)��CAN ID��ɣ�CAN ID���ȿ�����11(��׼)��29(��չ)λ������ȷ����Щ֡���Ƚ������ߣ����Ϊ���ٲá���Ȼ����Щ֡����������Ԥ����ı����ʷ�����

2.1.2 CAN FD

2015�꣬CAN�ı�׼�ļ�ISO11898�õ�������������CAN FD – �ɱ�����CAN������ζ�������ڿ���ѡ��һ�����������ٲ�CAN ID����ʹ����һ��(���ߵı�����)������ʵ��������ͨ�����ߵĴ����ٶȣ����ǻ����Է��͸��������CAN���ݳ���Ϊ12��16��20��24��32��48��64���ֽ� �C ��CAN 2.0���е��8���ֽڻ�������

�������ϣ�ÿ֡���ݶ������ˣ��Ƿ����ñ�����ת��(BRS)�����䴫�������һ������λ�������Ƿ�ʹ��CAN 2.0��CAN FD���������Ҳ������һ������λ�б���(��������㲻ʹ��FD���Ͳ���ʹ��BRS)������ζ��֧��CAN FD���豸�������ֲ�ͬ��ʽ��ȡ��д�뱨����

������ע�⣬���۸�ʽ��Σ�������Ȼ����ѡ������Ҫ11λ����29λID����BRSһ��ʹ�õ�����������ͨ����Ϊ���ٲñ����ʡ��͡����ݱ����ʡ�(Ҳ�������м���롰-�Ρ�)��

2.1.3 ISO-TP

ISO 15765�ǹ��ʱ�׼����֯�ƶ���һϵ�б�׼�����Ǹ���Ȥ�������ĵڶ����֣�ISO 15765-2���������ˡ�����Э����������� �� ����������Ҫ�˽⴫��Э��ISO-TP��

��ע�ⲻͬ���˸����Э�鲻ͬ�����ƣ���Ϊ�ñ�׼������δΪ��������J2534�����ΪISO 15765������ISO 15765ϵ���л����ĸ�������׼���������˽����ΪISO 15765-2�����ܸñ�׼��������׼������Э��֮��Ĵ������ݣ������ҽ���������ΪISO-TP��ISO����Э�飩����Ϊ������Ϊ������ˣ���ָ����Э��������Ͻ��޴���Э����

��������һ���������ǻ�û����Ŀ�ʼ�鿴ISO-TP�Ĺ���ԭ����ISO-TP�ǹ�����CAN 2.0֮�ϵĸ��߼���Э�飬����ҪĿ�����ñ��Ŀɡ��ֶΡ����ֳɶ��CAN֡ �� ����ζ������Է��͸����ı�����Ϊ����һ������ķ�ʽ���д˲��������ڷ��ͷ��ͽ��շ�֮��ʹ��������ͨ������֡�ķ����ٶȣ���ȷ��֡������

��������ͨ��ζ�ţ���������ñ��ķֶΣ��ͱ���������͸�Ψһ�Ľ��շ�������ISO-TP�����һ���֣����Ŀ���һ��һ���ͣ�Ҳ����һ���Զ෽���͡���ISO-TP�����У�һ��һͨ�ų�Ϊ������Ѱַ���� һ���Զ෽ͨ�ų�Ϊ������Ѱַ������Ȼ��Щ���ﳣ�øе�����������Ǹ������

֡�ķֶ�

��Ҫ����һ��ISO-TP������������ʺ�һ������CAN������ô�ܼ򵥣�����ֱ����Ϊ����֡(SF)����������һ���Զ෽ͨ�ţ�����Ψһ���з��� �� һ�Զ�ISO-TP���ı���ʹ��SF��

��һ��һͨѶ�ɷ��͸����ı���������������£�����������һ��Я�������ܶ���Ч���صĵ���CAN֡ �� ��һ��֡(FF)��Ȼ��һ��(����)������������Ϊ�����һ����������(FC)֡���˲���������ͣ��ȡ����������䣬�ڼ������������£�����������������STmin(��С���ʱ��)��BS(���С)��������������һֱʹ�õ���һ����������֡FC��

Ȼ�󣬷�����������һ��������Ч�غɵ�CAN֡���顱����Ϊ����֡(CF)����֡�����������ɿ��С(Block Size)��������С���ʱ���������Ϸ���CAN֮֡�����ȴ���ʱ��������һ����󣬷������ȴ���һ��FC��Ȼ���ظ��˹�������������Ч���ش�����Ϻ󣬴���Ի��漴��Ȼֹͣ��

AddressingѰַ

�����е�ÿ���ڵ㶼��һ����ַ������ÿ�����ģ��õ�ַ�Լ��ַ�ʽ֮һ������ɡ���ַ��Ϣ������������Щ��ʽ�Ǳ�׼���ģ���Щ���ǣ�ÿ�ַ�ʽ���м��ֲ�ͬ�ı��� �C ���书�ܻ�����Ѱַ������

���ã�J2534 API�ý��û�ѡ����һ������API���ԣ�ÿ��ISO-TP���Ķ���һ����ַ���������һ������չ����ַ – ���������������CAN ID��һ���ֽڣ�Ҳ������һ����ͨ��ַ – ����������£�����ȫ��ͬ��CAN ID��

Ȼ���û����Զ�����

1. ���ĸ���ַ���յ���֡SF��

2. ���ĸ���ַ�����ֶδ��䣬�Լ��ظ�ÿ���ֶδ���ĵ�ַ��

3. ��Щ��ַ���Խ��մ��䣬�Լ���Щ��ַ��Ҫ���ո����ظ���

2.1.4 ISO-TP FD

2016��ISO 15765-2��ISO-TPЭ����������֧��CAN FD�����˵��ǣ����������˵û��ʲô�仯�������ڱ���ָ��֡ΪCAN 2.0��CAN FD���Ǵ���BRS��CAN FD���Լ�ָ������CAN FD֡�Ĵ�С(����ܲ���Ҫÿ��֡����64�ֽ�)��

��һ�������ǣ�ISO-TP���ĵ���Ч�������Ϊ4095�ֽڣ���ISO-TP FD���ӵ��»��ƿ�ʹ��4G�ֽ�(4294967296 �ֽ�)��

������J2534 APIֻ��ʹ��28��29�������ֽڣ��ܹ�4124��4123���ֽڣ���ȡ���������Ƿ�ʹ����չѰַ��������Ϊ���ķ��ھ�̬��С�Ľṹ����:/. (���ڴ�ԭ���ƺ���Ϸ APIĿǰû��ʵ�����ֶ��������)

2.2����˳��

�������Ѿ��˽����Э��ķ�չ���̣���ô�������DLL�Խ���ͨѶ���������ĵ���˳������

1. PassThruOpen(): ��һ���豸(�ƺ���Ϸ DLLֻ��һ���豸)��

2. PassThruConnect(): ʹ���ض���Э��ID���ӵ��豸�ϵ�ͨ����

3. ���������Ҫʹ��ͨ��

4. PassThruDisconnect(): �Ͽ�ͨ��

5. PassThruClose(): �ر��豸��

��һ���Ǵ�һ���豸���ڶ������ø��豸���ӵ�һ��ͨ��������J2534-1 2004ֻ��һ���豸�������Ա�������������ӵ�ͨ�������DLL����J2534-2ʵ�ֶ�����ͨ���ķ��ʣ������ʹ��ͬһ�豸���Ӷ��ͨ����ֻҪ���ǲ�ʹ��ͬһ������������

���ڶϿ�ͨ���͹ر��豸���Ǻ���Ȥ����������ʡ����Щ������

��ע�⣬����API���ö��᷵��һ��״̬�����һ����������״̬��Ϊstatus_NOERROR=0�����������PassThruGetLastError()?�Ի�ȡ�Դ���ĸ���ϸ���������磬���ṩ��CAN ID�Ƿ�̫С��̫�󣬻�����CAN���ݳ���������������ERR_INVALID_MSG��

2.2.1 CAN 2.0

Э��ID:?CAN,?CAN_CH1,?CAN_CH2��

CANʹ��ע������ṩ��ͨ���ţ�CAN_CH1ΪCANlibͨ��0��CAN_CH2ΪCANlibͨ��1���ȵȡ�

1. PassThruOpen()

2. PassThruConnect(), ͨ��Э��IDѡ��CANlibͨ�������������ʡ������ӱ�־�ϣ������ָ��ͨ����Ҫ����11λ��29λCAN ID�������������߶���Ҫ��

3. �����κ����ü��ɷ��ͱ�����

4. PassThruStartFilter(), ����Ӧ�����ЩCAN ID�����䱨����û��������ù�����֮ǰ���޷������������ߵ�ͨѶ��

2.2.2 CAN FD

Э��IDs:?FD_CAN_CH1,?FD_CAN_CH2��

CAN FD�޷�ʹ��ע����е�ͨ���ţ�CHx ID�Ĳ�����ʽ��CAN 2.0������FD_CAN_CH1��CANlibͨ��0��FD_CAN_CH2��CANlibͨ��1���ȵ���

1. PassThruOpen()

2. PassThruConnect(), ʹ��Э��IDѡ��CANlibͨ���������ٲñ�����(���޴˱�����)�������ӱ�־�У������ָ��ͨ������11λ��29λCAN ID�������������ֶ���Ҫ��ͨ����δ������

3. PassThruIoctl(),?SET_CONFIG(����): ����FD_CAN_DATA_PHASE_RATEΪ��Ҫ�����ݱ����ʡ�ͨ�����������ӵ�CAN������

4. �����κ����ü��ɷ��ͱ�����

5. PassThruStartFilter(), ����Ӧ�����ЩCAN ID�����䱨����û��������ù�����֮ǰ���޷������������ߵ�ͨѶ��

��ʹ��Ӳ�ʹ�ñ������л���Ҳ������ͨ�����ӵ�CAN���߲����ͺͽ��ձ���֮ǰ��ָ�����ݱ����ʡ�

2.2.3 ISO-TP

Э��ID:?ISO15765,?ISO15765_CH1,?ISO15765_CH2��

��CAN 2.0���ƣ�ISO15765ʹ��ע������ṩ��ͨ���ţ�ISO15765_CH1ΪCANlibͨ��0��ISO15765_CH2ΪCANlibͨ��1���ȵ���

1. PassThruOpen()

2. PassThruConnect(), ͨ��Э��IDѡ��CANlibͨ���������������������ӱ�־�У������ָ��ͨ������11λ��29λCAN ID�������������ֶ���Ҫ��

3. �����κ����ü��ɷ��ͷǷֶα�����

4. PassThruStartFilter(), ���屨�ĵ�ַ������ͨ����ͨ����������֡FC�Ĵ����ַ��Ӧ���н��յ�ַ�ı������ֶα���Ҳ�����ڴ����ַ�Ϸ��ͣ�����������£�ͨ���ڴ�FC���н��յ�ַ��������һ�Զ�(����Ѱַ)����ʱ����Ҫ�ṩ��ͬ�ĵ�ַ����(��Ϊһ�Զ౨�ĴӲ���Ҫ��������֡FC)��

2.2.4 ISO-TP FD

Э��ID: FD_ISO15765_CH1,?FD_ISO15765_CH2��

��CAN FD���ƣ���FD_ISO15765_CH1ΪCANlibͨ��0��FD_ISO15765_CH2ΪCANlibͨ��1��ʱ���޷�ʹ��ע����е�ͨ������

1. PassThruOpen()

2. PassThruConnect(), ͨ��Э��IDѡ��CANlibͨ���������������������ӱ�־�У������ָ��ͨ������11λ��29λCAN ID�������������ֶ���Ҫ��ͨ����δ������

3. PassThruIoctl(),?SET_CONFIG: ����FD_CAN_DATA_PHASE_RATEΪ��Ҫ�����ݱ�������ͨ�����������ӵ�CAN������

4. �����κ����ü��ɷ��ͷǷֶα�����

5. PassThruStartFilter(), ���屨�ĵ�ַ������ͨ����ͨ����������֡FC�Ĵ����ַ��Ӧ���н��յ�ַ�ı������ֶα���Ҳ�����ڴ����ַ�Ϸ��ͣ�����������£�ͨ���ڴ�FC���н��յ�ַ��������һ�Զ�(����Ѱַ)����ʱ����Ҫ�ṩ��ͬ�ĵ�ַ����(��Ϊһ�Զ౨�ĴӲ���Ҫ��������֡FC)��

����

ISO-TP

��15765-2:2011�ж���Ĵ���Э�飬��֧��15765-2:2016�����CAN FD����ʱ�����ΪISO 15765-2��ISO 15765��

ISO-TP FD
15765-2:2016�ж���Ĵ���Э��(����֧��CAN FD)��

CAN
ISO 11898�ж���Ŀ���������������CAN 2.0��CAN FD���ܳơ�

CAN 2.0
֧�����8�ֽ����ݵġ����䡱 CAN����֧�ֱ������л���

CAN FD
CAN�������Э�飬֧�ֱ�CAN 2.0�����������Լ��������л���

J2534
һϵ�б�׼��ָ��Pass-Thru�豸(ͨ��ʽ�豸)������ͨ��J2534 DLL���豸ͨ�ŵ�Pass-Thru API��

J2534 DLL
DLL�ɽӿ��������ṩ������Pass-Thru API��

Pass-Thru API

����J2534 DLL��API������ʵ��ʹ�õ����ĸ���˾��J2534 DLL�����������̶�����ʹ�ô�API��

Pass-Thru�豸
ͨ��J2534��׼����һ���ض����͵��豸���߱�������J2534 DLL��

������Դ

�ƺ���Ϸ��SAE J2534�ĸ���