안녕하세요 저는 자동차업계에서 MCU SW 개발 업무를 하고 있습니다.
학교 다니던 시절 임베디드 쪽에는 전혀 관심이 없었는데 회사에서 MCU SW 업무를 맡게되면서
많은 어려움을 겪었습니다.
무엇을 하나 새로 배울 때마다 근데 이게 왜 이렇게 되지? 어떻게 이렇게 되지? 궁금함이 꼬리에 꼬리를 물었고 그런 부분들을 하나하나 찾아가며 궁금증을 해결하였습니다. 그런식으로 혼자 배우다보니 지금은 오히려 다른 사람들보다 훨씬 제 직무에 대해서 잘 알고 있다고 자부합니다.
신입사원 때 고생하던 과거의 저 자신에게 알려준다는 마음으로 강의합니다.
講義
受講レビュー
- CAN通信 - 自動車新入社員が知っておくべきすべてのこと
- [AUTOSAR] 新入社員に伝えるAUTOSAR基礎概念の完成
- 新入社員に伝える - MCU SW職務の基本概念の完成
投稿
Q&A
디버거와 디버깅
안녕하세요.. 질문의 의도를 제가 정확하게 이해를 못했습니다.IDE 에서 브레이크포인트 찍거나, 변수값 확인하거나,변수값 변경하거나, SW를 MCU에 다운로드 하거나 하는 그런 기능이 디버깅 기능이고.이런 기능을 사용 하려면 결국 사용자의 PC와 MCU 간에 서로 소통을 해야되니까중간에 디버거라는 하드웨어가 필요한 것입니다.
- 0
- 1
- 14
Q&A
adc
안녕하세요. 어떤 것과 헷갈리신건지 모르겠지만일반적으로 MCU 가 제공하는 기능중에 ADC 라고 하면아날로그 to 디지털의 약자로 발생된 전압(아날로그 신호)를 측정해서 측정 값으로 바꿔주는 기능을 의미합니다.혹시 말씀하신 것은 DAC가 아닌지요?
- 0
- 1
- 12
Q&A
BSW 개발자의 역할
그리고 두번째 질문도질문 자체가 좀 애매한데요.부트로더, UDS 기반의 서비스 구현을 오토사 기반의 SW로 개발할 수도 있고Non Autosar SW로 개발 할 수도 있습니다.어떤게 더 유리한 방법인지를 따져서 정할 문제이고 정해져 있는 규칙은 없습니다. 이건 부트로더,진단통신 SW 뿐만 아니라 어떤 SW 이든 마찬가지인데어떤 SW를 개발하든 꼭 오토사 기반으로 개발할 필요는 없습니다.재사용성 ,개발효율 이런걸 따져서 유리한 방법을 고르면 됩니다,, 실제로 부트로더 sw만 별도로 판매하는 업체들도 있는데그 업체들도 오토사기반으로 개발된 부트로더를 판매하기도하고, 오토사 기반이 아닌 부트로더를 판매하기도 합니다.
- 0
- 3
- 34
Q&A
BSW 개발자의 역할
안녕하세요. 답이 늦어서 죄송합니다.질문 주신 내용은 답변하기가 상당히 애매한데요.. 우선 첫번째 질문에 대한 답변입니다.질문 주신 내용은 R&R 에 관한 것이라 회사마다,팀마다,프로젝트마다 정하기 나름이라명확하게 구분 지어서 답을 드릴 수가 없습니다.제가 업무 할 때도 항상 R&R을 어떻게 나눌건지 항상 이슈가 되는 부분입니다.일단 오토사의 이론적인 컨셉만을 기준으로 얘기하면BSW 영역은 Configuration만 하고 별도로 개발자가 핸드 코딩을 하지 않는게 기본적인 컨셉입니다.근데 실제로 일을 해보면BSW 개발자도 별도로 SWC와 러너블을 만들어서 나름의 로직을 구현하는 경우들이 있고.또 BSW 에서 Configuration 한 내용에 따라 SWC 러너블은 아니지만 그랑 비슷하게 속이 비어져있는 Callback 함수가 code gen되는 경우가 있는데그 callback 내부에 코드 구현을 어떻게 하냐에 따라서 BSW의 동작이 달라집니다.그래서 이런 부분은 BSW 개발자가 코딩을 하기도 합니다.그리고 SWC 러너블이 실행되려면 일단 OS가 돌아간 이후부터 돌아가는데OS가 켜지기 전에 수행되는 여러가지 고장진단 로직 이런것들을 BSW 개발자가 구현하기도 합니다.. 뭐라고 정리해서 답을 드리가가 어렵네요..
- 0
- 3
- 34
Q&A
120옴 저항 관련 문의
답이 늦어 죄송합니다.솔직히 말씀드리면 캔 종단저항에 대해서 제가 모든 내용을 완벽하게 파악하지 못 했습니다. 회사에서 업무하면서 통신 에러나면 종단저항 연결했는지 확인해보라고 배운 정도(?) 입니다. ㅠㅠ일단 제가 파악한 바로는 종단저항 사용 목적이 신호왜곡 방지 목적인데, 종단저항이 없다고해서 무조건 에러가 나는건 아닌거 같습니다. 그래서 강의에서도 제가 양끝단에 120옴 저항 다는궐 권장하고 있다고 표현했던겁니다. 일단 저도 완벽하게 이해는 안되지만 캔통신 장비(예를 들어 canoe) 를 사용할 때 종단 저항이 없어도 에러가 안나는 경우가 있고, 제어기 쪽에 하나만 달아도 에러가 안나는 경우가 있는거 같습니다. 캐노의 경우 장비에 따로 종단저항이 내장되어있지않기 때문에 질문1번에 대해 답을 하자면, 저항이 하나만 있는 상태가됩니다.. ( 왠지 정확한 이유는 모르겠지만 그래도 통신이 되더라구요..) 2번질문. 실차에는 이미 통신을 할 수 있게 버스에 저항을 달아놨을겁니다. 그래서 canoe에 저항 안달아도 됩니다.
- 0
- 2
- 45
Q&A
B라는 제어기가 CAN 버스에 CAN 신호를 송신하고 있다면 A제어기는 B제어기의 작업이 끝날 때까지 CAN 신호를 송신 못하나요? 작업이 완료될 때까지 기다려야 하나요?
기다리는 주체가 캔컨트롤러라면 질문하신 내용이 맞습니다. 하나의 버스에 여러 메세지를 동시에 보낼 수 없으니 캔 컨트롤러가 메세지 보내려고 했는데 다른 제어기가 이미 메세지 송신 중이라면 해당 메세지 송신 완료될때까지 기다렸다가 송신을 시도합니다.
- 0
- 2
- 27
Q&A
FTB(Fault type Btye) 관련 질문!
아래 답변은 AI 자동답변인데 맞는 얘기입니다.Fault type byte는 말그대로 에러를 적당한(?) 성격으로 분류해서 가독성을 제공합니다. 예를들어 배터리고전압,산소센서고전압. 이그니션고전압 이런 고장들이 있다면 "고전압고장" 이라는 분류로 묶어서 fault type byte를 정하는 식입니다. 이렇게 사용하면 FTB만 봐도 대강 어떤성격의 고장인지 분류할 수 있어 편합니다
- 0
- 2
- 58
Q&A
여러개 제어기가 동일한 메시지를 수신할 때 동시에 수신하나요?
안녕하세요 메세지를 수신한다.라는 문장을 어떻게 해석하냐에 따라 다를거 같은데요.일단 메세지 수신과정을 3단계로 분리해보죠.1.메세지가 전선을 타고 전달되어 수신측 제어기의 mcu pin에 전달2 캔 컨트롤러가 메세지를 수신하여 특정 레지스터(메모리)에 수신된 메세지를 저장3. sw는 해당 메모리에 접근하여 저장된 값을 읽어감 메세지가 전달되려면 어쨋든 전선을 통해 신호가 전달되야하고. 신호가 전달되려면 매우 빠른 속도이긴해도 어쨋든 송신측으로 부터 수신제어기가 얼마나 멀리떨어져있냐에 따라서 전달되는데에 시간차가 있긴할겁니다.근데 0.000001초 도 차이가 안날거라 사실상 거의 동시일겁니다. 그리고 그렇게 신호가 전달되고나서 캔컨트롤러가 메세지값을 파싱해서 메모리에 저장하는것도 소요시간이 거의 똑같을겁니다.그래서 1번,2번 상황까지는 b.c.d제어기 모두 거의 동시에 완료될겁니다.그리고 3번의 경우는 메세지 읽어가는 sw를 어떻게 구현했는지에 따라 타이밍이 달라질거라 누가 더 빨리받을지는 답변이 불가하겠네요
- 0
- 2
- 44
Q&A
차종마다 다른 DBC파일을 써야하나요?
안녕하세요. 차량의 네트워크 컨셉을 정하는 것은 차량 제조사가 하기 때문에, 제가 답변 드릴 수 있는 범위의 질문이 아닙니다ㅠㅠ 차종이 다르더라도 해당 네트워크에서 사용하는 캔 메세지,시그널 등의 정보가 모두 동일하다면 써도 문제없겠지만. 차종에 따라 어떤 정보가 달라졌을지 알 수 없으니.. 답변이 불가합니다. 실제 네트워크 구성은 달라졌는데 동일한 dbc를 임포트해서 쓴다면 메세지를 이상하게 해석하게 될겁니다.. 그래서 일반적인 경우를 말하자면 차종마다 별도로 dbc를 관리해야하고 차종에 맞게 사용해야합니다.
- 0
- 2
- 128
Q&A
외부 툴 연동을 위한 Socket 통신 구현 방법
위 답변은 AI의 자동답변인데, 제 강의에서 외부툴과 Canoe 연동하는 부분은 다루지 않습니다. 사실 일을 하면서 디버거, 파워서플라이 등 외부 툴과 CANOE를 연동해서 사용하고 싶은 욕심이 저도 있는데.CAPL을 통해서 그게 가능한데 방법을 제가 모르는건지. 애초에 불가능한건지 저도 사실 모르겠습니다. 한가지 대안은 파이썬을 사용해서 Canoe를 컨트롤 할 수 있습니다. 그래서 다른 외부툴과 캐노동작을 연동시키려면 파이썬을 활용하는게 좋지않을까싶습니다..
- 0
- 2
- 93