Skip to content

AUTOSAR IO 실습#

IO 포트 번호
PWM(LED Blue) PTA31
ADC(Pot) PTA11
SW05 PTB26
LED_Green PTA30

0. 목차#

  1. Project 생성
  2. MCAL Configuration
  3. IoHwAb Configuration
  4. VFB level
  5. RTE level
  6. C coding
  7. ECU Mapping
  8. ECU Extract
  9. ECU Configuration
  10. Generate & Build

1. Project 생성#

  • FileImportGeneralExisting Projects into WorkspaceNext 선택
    1-1

  • Browse.. → Base Project 선택 → Copy projects into workspace 체크 → Finish 클릭
    1-2

    Copy projects into workspace는 원본 프로젝트 보존 목적 위함.


2. MCAL Configuration#

  • Configuration -> Ecu -> Mcal -> Ecud_Port.arml -> Port 더블클릭
  • 다음 아래의 Container -> PortContainer_A -> Pin 으로 안에 담겨 있는 핀 확인 2-1
  • 이후 실습에서 스크롤시 세부 설정을 본인도 모르게 스크롤 할 수 있기에 다음 영역(파란 박스 안)에서 스크롤 또는 직접 사이드바 컨트롤 권장 2-2
  • PTA31을 더블클릭
  • Initial Mode : PORT_ALT1_FUNC_MODE
  • Mode : EMIOS_1_EMIOS_1_CH_14_H_OUT 선택 - > Ok 클릭 2-3
  • PTA11 더블클릭
  • Direction : PORT_PIN_IN
  • Initial Mode : PORT_ANALOG_INPUT_MODE 2-4
  • Mcal -> Ecud_PWM.arxml -> Pwm 더블클릭 -> Channel로 이동 2-5
  • Configuration -> Ecu -> Mcal -> Ecud_PWM.arxml -> Pwm 더블클릭 -> Channel 클릭 2-6
  • 우측 상단의 + 버튼 클릭하여 Channel을 생성.
  • Short Name : PwmChannel_PTA31
  • Id : 1
  • Class : PWM_FIXED_PERIOD
  • Period Default : 8191, Dutycycle Default : 0 2-7
  • 이후 Hw Channel을 설정해야함.
  • 필요한 Hw Channel 생성을 위해 이동.
    2-8
  • Emios 클릭.
  • PwmEmios_0 -> Channels -> PwmEmiosChannels_0
  • 우측 상단의 + 버튼으로 채널을 생성. 2-9
  • Short Name : PwmEmiosChannels_CH14
  • Emios Ch Id : CH_14
  • Emios Ch Mode : EMIOS_PWM_IP_MODE_OPWMB
  • Emios Ch Counter Bus : EMIOS_PWM_IP_BUS_BCDE 2-10
  • 다음은 Bus Ref를 설정해야 하지만 필요한 Bus Ref가 없기에 생성해주어야 함. 2-11
  • Mcal -> Ecud_Mcl.arxml -> Mcl 더블클릭.
  • Emios Common으로 이동. 2-12
  • EmiosCommon_1 -> Emios Mcl Master Bus -> + 버튼 클릭.
  • Short Name : EmiosMclMasterBus_1_CH8, Number : EMIOS_CH_8
  • Mode Type : MCB_UP_COUNTER, Emios Mcl Default Period : 8191
  • Prescaler : DIV_12 2-13
  • Pwm -> Emios -> PwmEmiosChannels_CH14의 Bus Ref를 생성한 EmiosMasterBus_1_CH08로 설정. 2-14
  • Channel -> Hw Channel, Mcu Clock Reference 설정. 2-15

  • Hw Channel : PwmEmiosChannels_CH14
    2-16

  • Mcu Clock : CORE_CLK
    2-17

3. IoHwAb Configuration#

  • Mcal -> Ecud_IoHwAb.arxml -> IoHwAb 더블클릭 -> All Contents 클릭 3-1
  • IoHwAbAnalogInputDirect -> Logical
  • 기존에 있던 IoHwAbAnalogInputDirectLogical_Test2의 이름을 다음과 같이 IoHwAbAnalogInputDirectLogical_Pot로 변경. 3-2
  • IoHwAbDigitalDirect 클릭
  • 아래와 같이 + 버튼 두번 클릭(2개의 Logical을 생성)
  • Short Name : IoHwAb…_LED_Green, IoHwAb…_SW05 3-3
  • LED_Green, SW05의 Port Pin Ch Ref를 설정
  • LED_Green : PTA30, SW05 : PTB26 3-4
  • IoHwAbPwm 클릭 -> + 버튼 클릭
  • Short Name : IoHwAb…_LED_Blue
  • Hw Pwm Ch Ref : PwmChannel_PTA31 3-5
  • 생성한 I/O를 확인하기 위해 Harmonize & generat를 해주어야함.
  • Configure ECU and Generate Code -> Generate ECU Configuraton을 클릭. 3-6
  • Next -> Rte 선택 -> Next -> Rte: Generate SwInstance configuration 체크 -> Finish 클릭 3-7
  • 좌측 상단의 망치아이콘의 화살표 클릭 -> Generate All 클릭
  • Generate는 오류가 나오게 되는데 무시해도 무관.
  • Generate 완료 후 -> Configure ECU and Generate Code -> Service and I/O 클릭 -> Pot, SW05, LED_Green, LED_Blue가 생성되었는지 확인 3-8
  • 사진과 같이 만든 IO들을 확인할 수 있음. 3-9

4. VFB level#

SWC 생성 : SWC_IOTest#

  • Configuration -> System -> Swcd_App -> New -> AUTOSAR File
  • File name : App_Rte.arxml
  • ARPackage : App_Rte 4-1

  • App_Rte[ARPackage] -> New -> Application Sw Component Type 클릭

  • Short Name : SWC_IOTest
  • Supports Multiple Instantiation : false 4-2

  • 하단 탭의 Ports 클릭 -> 상단 Ports 옆의 + 클릭 -> Client Server Interface -> Client 클릭 4-3

  • 앞의 Client 생성을 총 4번 진행함. (+버튼을 4번 눌러서) 아래 그림과 같이 IoHwAb_If_DigDir 2개, IoHwAb_If_Pwm, IoHwAb_If_AnalnDir를 생성. 4-4
  • 1번째 IoHwAb_If_DigDir Port 클릭
  • Short Name : R_SW05
  • Operations : ReadDirect, Enable Required Com Specs 체크
    4-5
  • 2번째 IoHwAb_If_DigDir Port 클릭
  • Short Name : R_LED_Green
  • Operations : WriteDirect, Enable Required Com Specs 체크 4-6
  • IoHwAb_If_AnalnDir Port 클릭
  • Short Name : R_Pot
  • Operations : ReadDirect, Enable Required Com Specs 체크
    4-7
  • IoHwAb_If_Pwm Port 클릭
  • Short Name : R_LED_Blue
  • Operations : SetDutyCycle, Enable Required Com Specs 체크
    4-8

5. RTE level#

Runnable 설정 : SWC_IOTest#

  • 하단 탭의 Runnables 클릭 -> +클릭
  • Short Name : RE_IOTest
  • Symbol : IOTest_func 5-1
  • RTE Event -> Add -> Timing Event -> OK 클릭 5-2 5-3
  • 생성된 Timing Event 더블클릭 -> Period : 100 msec 5-4 5-5
  • Operation / Mode / Trigger Access -> Add 클릭 5-6
  • Sychronous Server Call Point(SSCP) 4개 선택 -> OK 클릭
  • R_LED_Blue.SetDutyCycle & R_LED_Green.WriteDirect & R_PotReadDirect & R_SW05.ReadDirect 5-7

6. C coding#

  • Static_Code -> Reference_Code -> src 폴더 위에서 우클릭 -> New -> File 6-1
  • File name : SWC_IOTest.c
  • Finish 클릭 6-2
  • C 파일 작성 6-3

7. ECU Mapping#

  • Configuration -> System -> Composition -> RootComposition.arxml -> CSWC_RootComposition -> Components and Ports 클릭
  • + 버튼 클릭 -> SWC_IOTest 선택 -> OK 클릭 7-1

8. ECU Extract#

  • 상단의 Auto-WizSystem Configuration & ECU ExtractECU Software Components Mapping 클릭. 8-1
  • 우측 하단의 OK를 누른 후 추가하고자 하는 SWC와 Connector가 적용되는지 확인한 후 Apply 클릭. 8-2

9. ECU Configuration#

  • Configure ECU and Generate Code -> Generate ECU Configuration 클릭 9-1
  • Next -> Rte 선택 -> Next -> Rte: Generate SwInstance configuration 체크 -> Finish -> OK 클릭 9-2
  • Task Mapping을 위해 상단에 Rte event to Task Mapping 클릭 9-3
  • Sw Component Instance -> SwcInstance_SWC_IOTest 선택 -> Mapping 할 Task로 OsTask_ASW_FG1_100ms 선택
  • TE_RE_IOTest 선택 -> Add 9-4
  • Configure ECU and Generate Code -> Servise and I/O 클릭
  • 생성한 Pot, SW05, LED_Green, LED_Blue 를 Mapping 하는 과정 9-5
  • P_IoHwAb…_Pot 선택 -> Automatic Connection 우측에 + 클릭
  • Respect Naming Rule 해제 -> 이름 일치하는 것 선택 -> OK
  • 같은 방식으로 SW05, LED_Green, LED_Blue에 대해 진행 9-6 9-7

10. Generate & Build#

  • BuildScons.arxmlSCons 더블클릭 후
  • 하단의 All ContentsRTSWGenerationModule 10-1

  • Rte 폴더 찾기

  • 오른쪽 창에서 Input Files List 우측의 Add를 클릭
    10-2

  • 'App_Rte'(이전에 생성한 AUTOSAR file이름) 입력 → AddOK 클릭 10-3

  • 좌측 상단 망치의 화살표 클릭 → Build 10-4