Skip to content

AUTOSAR DCM 실습#

0. 목차#

  1. Project Import
  2. DCM DID 및 DID Info 설정
  3. DCM Data 설정
  4. Generate
  5. SWC 생성 및 설정
  6. C Coding
  7. SCons 설정
  8. Composition 및 ECU Mapping
  9. ECU Configuration 생성
  10. Service and I/O 연결
  11. Build

1. Project Import#

우선 프로젝트를 가져오기 위해 상단 메뉴에서 File → Import를 클릭한다.

1

General → Existing Projects into Workspace를 선택한 뒤 Next를 클릭한다.

2

Browse를 통해 Base 프로젝트를 선택하고 Copy projects into workspace를 체크한 후 Finish를 누른다.

3


2. DCM DID 및 DID Info 설정#

프로젝트 탐색기에서 Configuration → Ecu → Ecud_Dcm.arxml로 이동한 뒤 Dcm을 더블클릭한다.

4

All Contents 탭에서 DcmConfigSet → DcmDsp → Did를 더블클릭한다.

5

+ 버튼을 클릭하여 DID를 추가한다. Short Name은 DcmDid_Test, Identifier는 0xF310, Used는 true로 설정한다.

6

Did Info를 더블클릭한 뒤 + 버튼을 클릭한다. Short Name을 DcmDidInfo_Test로 입력하고, Did Dynamically Defined는 false로 설정한다.

7

생성된 DcmDidInfo_Test를 더블클릭하고 Did Read를 클릭한다.

8

Number of Containers를 1로 설정하고 OK를 클릭한다.

9

다시 DcmDidInfo_Test를 더블클릭하고 이번에는 Did Write를 클릭한다.

10

Number of Containers를 1로 설정한 뒤 OK를 클릭한다.

11

Did를 더블클릭한 뒤 DcmDid_Test의 Info Ref 항목에서 ... 버튼을 클릭한다.

12

앞서 생성한 DcmDidInfo_Test를 선택하고 OK를 클릭한다.

13

DcmDid_Test를 더블클릭하고 Signal을 클릭한다.

14

Number of Containers를 1로 설정하고 OK를 클릭한다.

15

Container Details 창으로 넘어오면 Short Name을 DcmDidSignal_Test, Byte Offset을 0으로 설정한다.

16


3. DCM Data 설정#

DcmDsp → Data로 이동한 뒤 + 버튼을 클릭한다.

17

Short Name을 DcmData_Test, Byte Size를 4, Condition Check Read Fnc Used를 true로 설정한다.

18

Type을 UINT32, Use Port를 USE_DATA_SYNCH_CLIENT_SERVER로 설정한 뒤 Info Ref의 ... 버튼을 클릭한다.

19

DataInfo_NoScaling을 선택하고 OK를 클릭한다.

20

Did → DcmDid_Test → Signal을 더블클릭한 뒤 Data Ref 항목의 ... 버튼을 클릭한다.

21

DcmData_Test를 선택하고 OK를 클릭한다.

22


4. Generate#

상단의 망치 아이콘 옆 화살표를 클릭하고 Generate All을 선택한다.

23

Generate가 완료되면 왼쪽 위 초록색 버튼을 클릭한다. Service and I/O → Dcm으로 이동하여 DataServices_DcmData_Test가 추가되었는지 확인한다.

24


5. SWC 생성 및 설정#

Configuration → System → Swcd_App을 우클릭하여 New → AUTOSAR File로 새 파일을 생성한다.

25

File name을 App_DcmTest.arxml로 설정한 뒤 Finish를 클릭한다.

26

생성된 App_DcmTest.arxml → ARRoot을 우클릭하여 New → Application Sw Component Type로 SWC를 생성한다.

27

생성된 SWC를 더블클릭하고 Short Name을 SWC_DcmTest, Supports Multiple Instantiation을 false로 설정한다.

28

Ports 탭으로 넘어와서 + 버튼을 클릭하고 Client Server Interface → Server를 선택한다.

29

인터페이스 목록에서 DataServices_DcmData_Test를 선택하고 OK를 클릭한다.

30

생성된 포트를 더블클릭하여 Short Name을 DataServices_DcmData_Test로 설정한다. Operation에서 ReadData를 선택하고 Enable Provided Com Specs를 체크한 뒤 Queue Length를 1로 설정한다.

31

이어서 Operation에서 WriteData를 선택하고 Enable Provided Com Specs를 체크한 뒤 Queue Length를 1로 설정한다.

32

Runnables 탭으로 넘어와서 + 버튼을 클릭하고 새 Runnable을 더블클릭한다. Short Name을 RE_DcmTest_Read, Symbol을 DcmTest_Read_func, Can Be Invoked Concurrently를 false로 설정한다.

33

RTE Event 에서 Add를 클릭한다.

34

Operation Invoked Event에서 DataServices_DcmData_Test.ReadData를 선택하고 OK를 클릭한다.

35

+ 버튼으로 Runnable을 하나 더 추가하고 더블클릭한다. Short Name을 RE_DcmTest_Write, Symbol을 DcmTest_Write_func, Can Be Invoked Concurrently를 false로 설정한다.

36

RTE Event 에서 Add를 클릭한다.

37

Operation Invoked Event에서 DataServices_DcmData_Test.WriteData를 선택하고 OK를 클릭한다.

38


6. C Coding#

프로젝트 탐색기의 Static_Code → Reference_Code → src에서 New → File을 클릭한다.

39

File name을 SWC_DcmTest.c로 입력한 뒤 Finish를 클릭한다.

40

생성된 파일에 해당 코드를 입력한다.

41

#include "Rte_SWC_DcmTest.h"

uint32 DcmTest_Data = 128;

Std_ReturnType DcmTest_Read_func(Dcm_DataElement_DcmData_TestType* Data)
{
    *Data = DcmTest_Data;
}

Std_ReturnType DcmTest_Write_func(Dcm_DataElement_DcmData_TestType Data, Dcm_NegativeResponseCodeType* ErrorCode)
{
    DcmTest_Data = Data;
}

7. SCons 설정#

Build → SCons.arxml에서 Scons를 더블클릭하고 Module 탭을 클릭한다.

42

Rte를 찾아 더블클릭한 뒤 Expected Files List의 Add를 클릭한다.

43

입력란에 App_DcmTest를 입력한 뒤 Add를 클릭한다.

44

App_DcmTest가 추가된 것을 확인하고 OK를 클릭한다.

45

Input Files List의 Add를 클릭한다.

46

App_DcmTest를 입력하고 Add를 클릭한 뒤 OK를 누른다.

47


8. Composition 및 ECU Mapping#

Configuration → System → Composition → RootComposition.arxml로 이동한다. CSWC_RootComposition을 더블클릭하고 Components and Ports에서 + 버튼을 클릭한다.

48

SWC_DcmTest를 체크하고 OK를 클릭한다.

49

왼쪽 위 보라색 버튼을 클릭한 뒤 ECU Software Components Mapping을 선택한다.

50

OK를 클릭한다.

51

1 SwComponentPrototype이 추가된 것을 확인하고 Apply를 클릭한다.

52


9. ECU Configuration 생성#

왼쪽 위 초록색 버튼을 클릭한 뒤 Overview → Generate ECU Configuration을 선택한다.

53

Next를 클릭한다.

54

Service에서 Rte를 체크하고 Next를 클릭한다.

55

Finish를 클릭한다.

56


10. Service and I/O 연결#

왼쪽 위 초록색 버튼을 클릭한 뒤 Service and I/O 로 넘어와서 Dcm → DataServices_DcmData_Test 클릭 후 + 버튼을 클릭한다.

57

목록에 표시된 하나의 항목을 체크하고 OK를 클릭한다.

58


11. Build#

왼쪽 위 망치 아이콘 옆 화살표를 클릭하고 Build를 선택한다.

59

Build가 완료되면 실습을 종료한다.

60