일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- AUTOSAR
- 확률
- 백트레이더
- 블록체인
- toefl writing
- Bitcoin
- python
- AWS
- 아마존 웹 서비스
- Cloud
- 자동매매
- 비트코인
- 토플 라이팅
- 자동차sw
- 퀀트
- it
- backtest
- GeorgiaTech
- 백테스트
- backtrader
- 암호화폐
- can
- 개발자
- 오토사
- probability
- TOEFL
- 토플
- 클라우드
- 파이썬
- 프로그래밍
- Today
- Total
목록오토사 (20)
Leo's Garage
DEM(Diagnostic event manager)는 진단 기능의 중요한 모듈이다. 이 포스팅에서 DEM이 어떻게 동작하는지 알아보자. AUTOSAR를 충분히 오래 사용하셨다면 DCM, DEM, DLT, DET란 무엇인지 알 것이다. 그렇지 않다면 이 글이 진단에 대한 좋은 출발점이 될 수 있다. 오늘은 중요한 진단 모듈인 DEM(진단 이벤트 관리자)에 대해 자세히 알아보겠다. DEM이란 무엇이며 왜 필요한지 생각해보자. DTC(진단 문제 코드)에 대해 들어봤다면 DEM에 대해 잘 알고 있을 것이다. 이를 통해 진단 이벤트를 정의하고 보고할 수 있으며, 나중에 ECU의 문제를 진단하는 데 사용할 수 있다. DCM(진단 통신 관리자)과 상호 작용하여 결함 정보, 일명 DTC를 제공한다(진단 통신에 대한 ..
DEM 모듈은 DTC의 상태를 기록하는데 중요한 두 가지 서비스를 제공한다. 하나는 SWC에서 사용하는 Dem_SetEventStatus이고, 다른 하나는 BSW Component에서 사용하는 Dem_ReportErrorStatus이다. Component에 따라 CAN msg 미수신 등의 DTC 오류 조건이 감지되면, 해당 서비스에 의해서 DTC 로깅 요청이 DEM 모듈로 전송된다. Debouncing Counter : 고장 조건에서 의도하지 않은 jitter를 방지하기 위해서 reporter 모듈 또는 DEM 모듈에 Debouncing을 도입할 수 있다.. DEM 모듈의 Debouncing Counter는 설정된 이벤트에 대해서 Debouncing 기간을 Count한 후에 메모리에 DTC를 저장한다. ..
최근에 FEE 모듈과 Garbage Collection으로 인해 곤혹스러운 일을 겪은 것을 기념하며 해당 내용을 정리하고자 한다. FEE(Flash EEPROM Emulation) 모듈은 Flash 메모리를 마치 EEPROM처럼 사용하고자 할 때, 그 중간 역할을 하는 모듈이다. FEE 모듈에는 Garbage Collection이라는 기능이 있는데, 이 기능은 NvM(NVRAM Manager) Block을 새로운 Sector에 복사하고, 이미 채워진 Sector를 지우는 방식으로 Sector 전환 및 Dflash Clean을 하는 기능이다. 예를 들어 MCU에 NvM에 활용할 수 있는 Dflash가 512Kbyte 있다고 가정하자. 우리는 이 용량을 256Kbyte씩, 2개의 섹터로 나눠서 사용하고 싶다..
ECU의 Memory 저장 및 관리 작업은 이 NvM 모듈에서 이뤄진다. 제품 수명 주기 내에서 데이터를 지속적으로 저장하고 읽어야 하는 경우는 매우 흔하다. 바로 코 앞에 있는 쉬운 예는 차량의 진단 기능일 것이다. 차량에서 문제가 감지될 때마다 정비사(혹은 여유가 있는 사용자)가 읽을 수 있도록 '어떻게든' 저장해야 한다. 바로 이 때 NvM이 이 역할을 할 수 있다. 이 특정 사례의 경우에, DEM(진단 이벤트 관리자)이 NvM과 상호작용하여 주행 중에 감지된 진단 오류를 저장하게 된다. 사실 이것은 진단에만 적용되는 것은 아니다. Application에서 데이터에 접근하여 수정하거나, 센서 또는 엑츄에이터를 보정하고, XCP의 특정 Command를 사용할 때 NvM이 관여하는 경우가 있다. 정리하..
여기서 정리할 내용은 NvM 변수를 작성할 때 내부적으로 어떻게 처리되는지에 대한 내용이다. NvM(Non- Volatile Memory)은 어느 특정 시점에 저장되는 유형의 메모리로, Soft Reset 혹은 Hard Reset 후에 사용자가 적은 값이 그곳에 저장되는 것을 주로 볼 수 있다. 하지만 이것은 마법처럼 동작하지 않기 때문에 과연 이 동작 안에는 어떤 일이 일어나는지 알 필요가 있다. 이 NvM은 전원이 꺼지면 모든 정보를 잃는 휘발성 메모리와 다르게 전원이 없을 때에도 정보를 유지하는 메모리이다. 우리가 알고 있는 AUTOSAR NvM 모듈은 BackGround에서도 이것을 사용한다. SRAM과 DRAM을 전부 NvRAM으로 대체하면 더 좋은 거 아닌가라고 생각할 수도 있지만, 메모리 크..
AUTOSAR project를 Bring Up 하다보면, Com Signal이든, Dio Signal이든 또는 Adc Signal이든 SWC 간에 혹은 Composition과 내부 SWC 간에 Port로 연결하거나 할 때, 해당 Signal의 정의를 명확히 해줘야 하는 상황이 발생한다. Data Type을 살펴보면, Implementation Data Type이 있고, Application Data Type이 존재한다. 이 두 Data Type은 무엇이고 어떤 역할을 하는 것일까? Application Data Type은 말 그대로 Application이 이해하기 위한 Data Type이다. 실제로 물리적인 값을 표현한다고 생각하면 된다. 가령 volt, Ampere, m/s 등과 같은 물리적인 단위가 ..
커넥터는 서로 다른 소프트웨어 구성 요소의 두 포트를 연결하는 데 사용됩니다. PP포트(공급자 포트)에서 R포트(필요 포트)로의 데이터 흐름을 상징합니다. AUTOSAR에서 커넥터는 서로 다른 SWC간에 포트를 연결하는데 사용된다. P Port(Provider Port)에서 R Port(Require Port)로 데이터는 전달 된다. 이 커넥터 종류에는 Assembly Connector와 Delegation Connector 두 가지가 있다. Assembly Connector는 SWC간의 Port를 연결하는데 사용된다. Delegation Connector는 Composition이라고 불리는 Component 외부의 Port와 Component 내부의 Port를 연결할 때 사용한다. 이러한 연결은 Ass..
AUTOSAR Bring up 작업을 하다보니, 옛날에 마주했던 이슈들이나 혹은 tool 버전이 변경되서 마주하는 문제들이 매 순간 순간 나타나고 있다. 오늘 이야기할 주제는 OS Task Mapping에 대한 이야기이다. AUTOSAR에서는 application software의 경우, runnable이라는 단위로 각 기능 동작을 수행하고, BSW는 주로 mainfunction이라는 이름으로 기능 동작을 수행한다. 보통 AUTOSAR Project를 Set up하다보면 기본적으로 BSW configuration을 마친 상태에서 각 Core 별 Timer 설정, OS Application 생성, 각 주기 별 Task 생성과 각 Runnable 및 Mainfunction의 Task Mapping을 하게된다..
CAN 통신 과정은 아래와 같다. RTE Start 이후에 특정 Software Component에서 User Request API를 이용하여 Full Communication 요청을 BswM에게 보낸다. BswM은 해당 요청을 받고, ComM에게 Full COM 요청이 왔음을 알린다. 이때 User Request API 자체에 특정 Channel에 대한 정보가 담겨 있는데, 이를 바탕으로 ComM은 해당 요청이 어떤 Channel에 대한 요청인지를 파악하고, 해당 Channel에 대한 통신 시작 요청을 전달한다. Nm은 옵션인데, 해당 기능을 구현해야 한다면, Nm Channel을 통해서도 통신 시작을 알린다. CanSM은 ComM으로부터 Full Communication으로 상태를 변경함을 전달받는다..
AUTOSAR Project를 Bring up하다보면 마주치는 모듈 중 하나가 BswM(Basic Software Mode Manger) 모듈이다. 보통 초기화 단계의 설정과 OS run을 마치고 나면, 이제 Mode Management가 시작되게 된다. AUTOSAR 내에는 다양한 모드 매니져들이 존재하는데, EcuM(ECU State Manger), ComM(Communication Manager) CanSM(CAN state Manger) 등이 있다. 그런데 이렇게 많은 모드 매니져가 전부 BSW들의 모드를 직접 변경하거나 관리하는 것이 아니다. AUTOSAR 내에 모든 모드를 관리하기 위한 모듈이 존재하는데 그게 바로 BswM이다. 따라서 우리가 정상적으로 Key on을 하고 init이 끝났다면,..