게시글
질문&답변
SW Update관련 질문사항
안녕하세요! 답변 드리겠습니다 학술적으로 마이컴과 MCU가 100% 정확하게 같은 용어인지는 제가 장담은 못하겠는데, 제가 아는 지식으로는 사실 같은 의미로 사용하고 있습니다. hex파일과 s19 파일 모두 mcu sw를 빌드했을 때 만들어지는 결과물로, mcu flash에 다운로드 해야 할 코드를 hex 형태로 표현하는 파일의 일종이고 거의 같은 내용을 담고 있습니다.(주소 정보 + hex 형태의 코드)근데 같은 내용을 표현하는 양식(?)이 달라서 notepad++ 등으로 확인해보면작성된 포맷이 좀 다르긴한데.. 결론적으로는 둘다 address 정보 + hex파일 형태의 코드를 담고 있는 같은 용도의 파일 + 그러나 작성하는 포맷이 다른 것 이라고 생각하면 될거 같습니다.실무적으로는 사용하는 MCU에 따라서 주로 쓰는 컴파일러가 있을텐데, 해당 컴파일러 디폴트 옵션에서 해당 mcu에 맞게 s19 또는 hex를 만들어 줄겁니다.그리고 제가 알기로 가장 큰 차이는 s19 형태를 사용하는 mcu는 동작할 때 메모리 주소를 big endian 형태로 해석하고, hex 형태를 사용하는 mcu는 메모리 주소를 little endian 형태로 해석합니다.OTA 과정도 그렇지만 진단 통신을 통한 SW 다운로드 시퀀스 자체가 OEM이 각각의 차종 마다 각자 정해서 사용하는 것이라, ecu reset이 시퀀스에 포함된다 or안된다 라고 잘라서 답을 하기가 힘든데요. 제 경험으로만 얘기하면 주행 중 OTA로 SW 다운로드할 때 다운로드 다 끝나고 나서 ecu reset을 곧바로 하는 경우는 없었습니다. 말씀하신 것처럼 차량이 실제로 주행 중인 상황인데 ecu reset을 해버리면 그게 어떤 영향을 미칠지 모르니까요. SWAP도 마찬가지입니다. 제어기가 현재 동작하고있는데 실시간으로 새로운 버전으로 swap 되버리면 그게 어떤 영향을 미칠지 가늠이 안되고 위험합니다.그래서 보통 주행 중에 OTA로 SW를 다운로드 하게 되면, 반대편 Bank에 다운로드까지만 해놓고, 일단은 기존에 사용 중이던 SW가 계속 동작합니다.그러다가 운전자가 시동을 끄면 , 그 이후에 SWAP을 하는 식으로 시퀀스를 구성합니다.OTA를 통한 sw update의 정확한 시퀀스는 차량마다 다 제각각이라서 글로 짧게 설명하기가 어렵네요.. 네비게이션에 알람 떴을때 운전자가 어떤 버튼을 선택했는지 + 다운로드가 아직 안끝났는데 시동을 꺼버리는 경우 등등.. 여러가지 시나리오를 고려해서 진단 시퀀스를 만듭니다.그래서 OTA를 통한 SW Update의 정확한 시퀀스는 업무하실때 oem이 제시하는 정확한 스펙을 확인해보셔야 합니다. 제 강의에서는 a/b bank라는 기능의 개요를 소개하는 정도가 목적이었습니다. 제안 감사합니다. 다음 강의는 고민이 많습니다.. 떠오르는 여러가지 주제가 있는데 막상 강의를 만들려고 하다 보니 강의에서 다뤄야 할 기술 수준, 범위를 정하기가 어렵네요.제 업무에 직접적으로 필요한 지식은 알고있지만 해당 주제로 강의를 만들기에는 저도 모르는 내용이 많은 부분들이 많다보니.. 그런 내용들까지 추가로 공부하고 정리해서 강의를 만들자니 어렵고.그렇다고 그런 내용들을 다 빼버리자니 수준이 너무 낮아지는거 아닌가 싶고..그래서 어떻게 될지 모르겠습니다 ㅜㅜ
- 0
- 1
- 13
질문&답변
Control DTC Setting
2번 질문은 저도 생각해보지않은 이슈인데 좀 알아봐야겠습니다.. 솔직히 모르겠네요..
- 1
- 2
- 86
질문&답변
Control DTC Setting
안녕하세요 질문 주신 내용은 제가 대강의 예시를 든 것이고 구체적이고 정확한 예시가 아니긴 한데요. 제가 표현을 애매하게 한 거 같습니다. 예시의 상황에서는 "엔진 제어기가 캔 메세지를 보내지 않는다"라는 dtc가 뜰텐데요. 근데 dtc 기록은 제어기마다 각자 하는거니까 이 기록이 자율 주행제어기에 기록될 것입니다. 제가 "자율 주행제어기에서 고장이 발생했었다"라고 얘기한건 자율 주행제어기가 고장 났다는 의미가 아니라, 엔진제어기 통신 관련 dtc가 자율주행제어기에 기록돼있다는 의미로 설명한거였습니다. 근데 아래와 같이 말씀하셨는데 이것도 충분히 가능한 시나리오입니다. "자율주행 제어기에서 엔진 제어기로부터 신호를 받지 못해서, 이에 따라 본인의 동작을 하지 못한 부분에 대한 DTC로써 자율주행 제어기에서 고장이 발생했다"이 부분은 자율주행제어기 sw 개발자가 고장감지하는 로직을 어떻게 구현했냐에 따라 달라질겁니다
- 1
- 2
- 86
질문&답변
MCU의 온도 관련 데이터 저장 영역?
안녕하세요.1. 온도 측정 기능 자체를 표준화하는 오토사 bsw 모듈은 없기 때문에 이 부분은 유저가 적절히 구현을 해야될 거 같습니다. 이때 제어기에서 온도 센싱을 어떻게 하는지에 따라 사용되는 bsw 모듈이 달라질 것입니다.온도에 따른 저항의 크기변화를 활용하는 온도센서를 사용한다면 오토사 adc모듈을 활용하여 전압측정을 해서 온도를 측정할것이고. 온도를 측정해서 Spi통신, uart통신, can통신 등으로 센싱값을 mcu에게 전송해주는 환경이라면 bsw의 spi모듈,uart모듈,can모듈 등을 사용하게 될겁니다. 2.초기 온도값의 의미를 이해하지 못했습니다. Mcu가 wakeup 했을때 지정된 초기값이라고 하셨는데, 초기에 측정된 값을 의미하는 건가요? 이 값이 어디에 활용되는지 용도를 모르겠는데 제어기를 껐다가켜도 계속 유지되야하는 값이라면 오토사의 nvm 모듈 활용하여 nvm에 저장해둘 것이고 그게 아니라면 측정된 온도값을 그냥 특정 변수에 담아두면 되지않을까요?
- 0
- 1
- 48
질문&답변
NM & Default Session 관련 질문
맞습니다. 이 부분을 제가 설명을 빠뜨렸는데 실제로 진단기가 중간중간에 계속 3E 메세지를 보냅니다. 맞습니다. 사실 3E를 계속 보내고있었을테니 세션이 계속 유지가 됐을 것이고 그렇다면 굳이 끝에서 다시 extended session으로 바꿀 필요는 없습니다. 확실히하는 차원에서 넣은 것이기도 하고, 다운로드 진행한 제어기의 경우 마지막에 ecu reset을 하니까 세션이 혼자 디폴트세션일텐데 이 상태에서 펑셔널로 커뮤니케이션 컨트롤, dtc control 메세지 등을 날리면 네거티브답장이 올테니 그것을 막는 차원(?)이 아닐까하고 추측해봅니다.
- 1
- 2
- 71
질문&답변
NM & Default Session 관련 질문
안녕하세요~ 1.이해하신 내용이 맞습니다. 2.각 제어기가 켜지는 조건은 제어기마다 제 각각이라 천편일률적으로 얘기하긴 어려운데요. 몇가지 예시를 들면 제어기를 off 했을때, 해당 제어기에서 mcu를 off하지만 대신에 통신 트랜시버, 혹은 PMIC라고 불리는 mcu에게 전원을 공급하는 장치를 standby mode라는 모드로 유지합니다. Standy 모드에서는 전력을 매우 적게 사용하면서 외부의 신호만 감지하게 됩니다. 외부 신호의 예시는 특정 캔메세지, 혹은 사용자가 누르는 버튼으로부터 전달받는 전기적 신호 등이 있습니다. 이런 신호를 전달 받으면 standby 모드에서 깨어나면서 다시 mcu를 on해서 제어기가 켜지게 됩니다.
- 1
- 2
- 71
질문&답변
레지스터의 메모리 크기에 꼭 맞춰 포인터 자료형을 선택해야할까요?
네 이해하신 내용이 맞습니다.한 줄로 답변하려니 성의 없어보이는데.. 이해하신 내용이 맞아서 더 부연 설명할 게 없네요..^^;;
- 0
- 1
- 39
질문&답변
SW reprogramming 과정에서 질문
안녕하세요.1번 질문) 해당 부분(SW 다운로드 검증절차)는 표준에서 정확한 방법을 정의 한 건 아니라서OEM에서 사양으로 정할 부분입니다.그리고 OEM에서 사양이 정해지면, 부트로더를 그 사양에 맞게 구현하는 것입니다.그래서, 1번 질문에서 검증 결과 값을 메세지 파라미터로 보내는게 사양이라면,애초에 부트로더 SW 구현하는 사람이 그에 맞게 SW를 구현해야 하므로,Hex파일에 있는 모든 값을 인풋으로 판단하게 부트로더를 구현해야 할 것입니다.2번 질문)이것도 정답이 딱 정해져 있는게 아니라서 천편일률 적으로 답하기가 어렵습니다.2byte는 설명의 편의상 제가 예시를 든 것이고.. 4byte, 32byte를 쓰는 경우도 있구요.보안성을 강화하기 위해서 검증결과값 계산할때 암호키를 사용해서 암호화 하는 방식을 사용하기도 합니다.이 부분은 사양마다 워낙 다른 부분이라 일괄적으로 답을 드릴 수가 없고.. 대강의 과정만 제가 이해하기 쉽게 예시로 든 것입니다. ※ 1번 질문을 제가 제대로 이해하고 답변 드리는건지 모르겠네요.. 답변이 됐을까요??
- 1
- 1
- 45
질문&답변
강의 자료 다운로드
아 죄송합니다. 강의자료 업로드를 깜빡했습니다. 오늘안에 업로드하겠습니다
- 0
- 2
- 45
질문&답변
SWC에서 Port의 존재 이유?
Swc를 하나의 c 파일이라고 생각해보면, c언어 sw 개발할 때 서로 다른 c 파일 간에 데이터를 주고 받거나 서로 함수를 호출하는 등 파일 간에 소통을 하는 경우가 많은데요. 이때 전역변수를 활용하거나 혹은 함수 호출해서 코드구현하면 되는데..오토사에서는 굳이 포트라는걸 사용하는걸 규칙으로 정했는데.왜 만들었냐고 하시면 그 의도를 제가 100% 완벽하게 설명하긴 힘들지만swc 간의 연결 관계를 체계적으로 관리하기를 원해서 그런게 아닌가싶습니다.예를 들어 A Swc와 B Swc 간에 전역변수를 선언해서 extern 으로 데이터를 주고받게 코드 구현을 할 수 있는데 구현이 어려운건 아니지만, 두 swc간에 이런식으로 서로 주고받는 정보들이 많이 있다면, 이런 부분들을 체계적으로 관리하기가 어려울거 같습니다. Hw의 경우 hw 소자들간의 연결관계를 회로도를 열어서 확인해보면 바로 알 수 있듯이, sw도 그런식으로(?) 관리되기 원하는게 아닌가 싶습니다.
- 0
- 1
- 42