일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Cloud
- 토플 라이팅
- it
- 토플
- GeorgiaTech
- 백테스트
- 프로그래밍
- 자동매매
- 오토사
- 개발자
- backtest
- 백트레이더
- can
- 블록체인
- 확률
- 퀀트
- backtrader
- AWS
- TOEFL
- 파이썬
- 아마존 웹 서비스
- 클라우드
- 암호화폐
- 자동차sw
- Bitcoin
- probability
- toefl writing
- python
- AUTOSAR
- 비트코인
- Today
- Total
목록자동차 및 자동차 SW (58)
Leo's Garage
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으로 대체하면 더 좋은 거 아닌가라고 생각할 수도 있지만, 메모리 크..
OBC의 주요 기능은 외부 전원원(전기 충전소 또는 가정용 전원)에서 전기를 고속으로 수신하여, 전기차의 배터리 팩을 충전하는 것 이다. OBC는 AC(교류)전원을 DC(직류)전원으로 변환하여 배터리에 저장할 수 있도록 한다. AC 전원은 주로 주택이나 상업용 건물등의 전기 인프라에서 제공되는 일반적인 전력이다. OBC는 이러한 AC전력을 전기차의 배터리가 수용 가능한 DC 전력으로 변환하는 중요한 역할을 수행한다. 전기차는 충전용량에 따라 급속충전, 완속충전으로 나눠지는데, 급속충전의 경우 7 ~ 22 kW의 용량을 충전하고, 7kW 이하의 충전용량은 완속충전이라고 부른다. DC충전을 위해서라면, 사실 전력변환장치를 차량에 내장할 필요가 없을 것이다. 충전소에서 AC전원을 충분히 DC전원으로 변환한 후..
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..
Vector Microsar Set up을 하면서, 초기에 CAN DBC를 import하게 되면, CAN Message에 담겨있는 Signal들을 각각 SWC 상에서 연결하게 된다. 물론 개발자의 입장에 따라서 각 Signal을 직접 연결하는 것도 방법이지만, 편의성을 위해서 각 Signal을 Group 단위로 모아서 Authoring 작업도 가능하다. CANdb++ editor를 통해 DBC file을 열고, 각 message 하위에 Signal Group을 생성해서 Signal을 그 안에 위치시킬 수 있다. 완벽하게 적절한 예제 사진은 아니지만(인터넷 상에 적절한 예제가 없다 ㅜㅜ), 위의 Multiplexing/Group 항에 현재는 Multiplexing에 대한 정보가 담겨있지만, Signal G..
Calibration은 ECU 개발에서 중요한 단계 중 하나인데 파라미터를 조정하는 것으로 생각하면 좋다. 제어 알고리즘 파라미터, ADC, Sensor 등을 다뤄본 경험이 있다면 규모가 작더라도 Calibration을 해 본 경험이 있을 것이다. ECU의 경우, AUTOSAR 사양에 완벽하게 포함되지는 않지만 기본적으로 여러가지 Calibration 옵션이 있다. 이유는 기본적으로 Calibration은 HW에 따라 달라지기 때문이다. ECU에서 Calibration은 SW 요구사항에 맞게 개발 중에 조정되는 Constant Parameter를 조정하는 것으로 정의할 수 있다. 과연 Constants는 Flash영역에 있는데 어떻게 변경한다는 걸까? 일시적으로 RAM으로 옮겨서 조정해야 할까? 아니면 ..
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을 하게된다..