자동차 임베디드 시스템에 대한 질문...

zkjinz의 이미지

안녕하세요?
학부 졸업을 반학기 남겨둔 컴퓨터 공학과(computer science가 이게 맞나요?) 학생입니다..
언제나 KLDP에서 얻어가기만 하다가 염치불구하고 질문까지 올립니다.. :oops:
다름이 아니라.. 제가 워낙에 차와 컴퓨터를 좋아하는지라 자동차에 들어가는 임베디드 시스템에 대해
공부를 해보려고 하는데요.. 어디서 부터 손을대야 할지 모르겠네요..
할줄아는거라고는 자동차 ECU에 컴퓨터를 연결해서 뭐가 들어있는지 "살펴보는" 수준이구요..
이쪽을 공부하려면 꼭 읽어야하는 책이라던가 개발자 분들이 계신 포럼이 있다면 알려주시면 감사하겠습니다..

여담이지만... 제 목표가 "OS를 만들자" 인데.. 머리가 나쁜지.. 공부를 하면할수록 자신이 없어지는거 같습니다.. :?
아.. 그런데 쓰고보니 여기에 올릴만한 글이 아닌것 같기도 하고 글이 두서가 없네요.. 죄송합니다.. ^^;

ganadist의 이미지

http://www.interfacebus.com/Design_Connector_Automotive.html 에 보면 자동차에서 쓰이는 여러가지 버스와 프로토콜에 관한 설명과 링크가 걸려있습니다.

참고하세용~ (역시 두서없는 답변.. 털썩)

----
데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러

antibug의 이미지

그럼 자동차용 embeded쪽은 다 아신거 아닌가요... :shock:

이쪽 ecu는 종류도 많고 연결 방법도 다양해서 개인적으로 만지기는
좀 벅차다고 생각되네요. 통신 방식도 주로 CAN, KLine, LIN 등을
사용하는데요 (잠시후 MOST를 사용할 것 같습니다.) 이녀석들이
장비가격이 장난이 아니라서요... 사실 embeded로 직접 만들면
몇푼 안하는데 완제품은 허벌 비싸죠... 웬만한 회사에서도 못 사서
쓰고 있습니다. (한국에서... 지금 보니 미국에 계신가봅니다...)

그리고 기술적으로는 자동차용 embeded쪽에서 별로 배울만한
것은 없습니다. 아, 하드웨어적으로 내부 회로를 보호한다거나
그런 쪽은 자동차쪽이 매우 튼튼하긴 하죠. 그러니까 최신기술을
사용하는 사이트라기보다는 안전한 기술을 사용하는 사이트라고
생각하시는게 좋을 것 같습니다. 엔진쪽은 잘 못봤지만 다른 쪽에
사용되는 CPU는 아직도 16메가 클럭을 사용하고 있습니다.
특정 CPU만 사용하는 것은 아니지만 대개 그정도를 사용합니다.

프로토콜도 네트워크 프로토콜까지는 표준이 있긴 하지만 그 위에
서는 다들 제각각이라서... (물론 서로 비슷하긴 하지만 파라메터
등이 달라서 같이 사용하기는 거의 불가능하죠...)

에... 역시 횡설수설....

--------------------------------------
재미없는 일은 하지 말자는 인간 쓰레기.
-.-;

digitie의 이미지

윗분 말씀대로 자동차쪽 임베디드는 최신 기술을 재빨리 들여오기보다는 이미 검증된 기술을 안정적으로 사용하는데 중점을 두고 있습니다. 물론, 가격 상승요인을 줄이기 위해 더 낮은 사양, 더 간단한 시스템으로 자동차를 제어하는 것이 중요하기 때문에 최적화가 필요하긴 합니다만 요새야 워낙에 하드웨어 기술이 발달해서 자동차 제어 정도에는 극한의 최적화가 필요하진 않습니다.

여튼간에 ECU의 가장 기본적인 몇가지 기능을 설명해드리면 제작에 조금은 도움이 되지 않을까 싶어 몇자 적어봅니다. 먼저 여기에 올라왔던 임베디드를 이용한 가솔린자동차 컨트롤시스템.을 읽어보시는 것도 좋을 듯 싶습니다.

ECU를 제작하고자 하는 경우 무엇보다도 feedback control에 대해 명확한 이해가 있어야 합니다. 시스템을 제작하기 전에 자신이 설계한 시스템이 stable한지 unstable한지 정도는 확인이 가능해야 하니까요. 또한 자동차에 들어가는 각 센서의 기능과 특성을 정확하게 알고 있어야 합니다. 가장 기본적인 공연비 제어의 경우에도 AFS, 크랭크 앵글 센서, 노킹센서, 산소센서정도는 항상 필요하거든요.

가솔린 엔진을 기준으로 할 때 가장 기본적으로 ECU에서 제어해 주어야할 것이 정상 상태(steady state)에서의 공연비 제어입니다. 연료와 공기가 일정하게 들어올 때 공기 유량 센서(Air Flow Sensor)를 통해 산소의 질량 류량(kg/s)를 계산하고 그에 따라 적절한 연료를 분사하는 것입니다. 매니폴더에 장착된 산소센서를 통해 들어오는 산소량을 이용하여 항상 공연비가 14.7:1에 근접하도록 만드는 것 또한 중요합니다.

최적의 출력을 내기 위한 노킹 감지도 아주 중요합니다. 최적의 출력을 내기 위해서는 노킹 감지및 제어가 필수적이지요. 출력을 높이기 위해 MBT까지 점화 시기를 진각시키는 경우 어느 한계 이상을 넘어가면 노킹이 발생하기 마련입니다. 일반적인 경우 기본 값으로 정해진 점회 시기에서 점점 점화 시기를 진각시키다가 노킹이 발생하는 순간 발생하는 특정한 파장의 주파수를 센서로 감지해서 점화 시기를 지각시키는 시스템입니다.

그 다음 중요한 것이 공회전 상태에서 낮은 RPM으로 엔진을 기동시키는 것 입니다. 공회전 상태에서는 엔진의 출력이 차량을 움직이는데 사용되지 않기 때문에 되도록 낮은 RPM에서 안정적으로 엔진을 구동시키는 것이 중요합니다. 쓰로틀이 닫혀있어서 소량의 공기만이 들어가기 때문에 에어컨 컴프레셔나 파워 스티어링의 유압 펌프와 같은 부하가 걸리는 경우 시동이 꺼질수도 있습니다. 이 역시 제어 해줄 필요가 있지요.

공회전 상태에서의 제어는 상식적으로 생각할 때 어려워 보이지 않지만 엔진 제조사에서 피나는 원가 절감 노력을 한 덕분에 공회전 상태에서 최적 RPM으로 엔진을 유지하는 것이 좀 꼬여 있습니다. 자세한 정보는 인터넷 검색해보시면 많이 나올겁니다.

저온 시동도 중요합니다. 온도가 아주 낮을 경우(-20도 이하) 연료가 아주 작은 방울로 바뀌어 공기와 섞이는게 잘 되지 않기 때문에 외기 온도를 측정하여 특정 조건보다 낮을 경우 연료를 평소때의 5~10배정도로 분사해줄 필요가 있습니다.

그 다음 중요한 것이 비정상 상태(transient state)에서의 공연비 제어입니다. 이 부분에 대해서는 저도 정확하게 아는 바가 없어서 말씀 드리기 힘드네요. :shock:

그리고 다른 시스템과의 통신도 빼먹을 수 없지요. 요즘의 오토 미션 같은 경우에는 자체적으로 TCU(Transmition Control Unit)을 가지고 있고 엔진과 연동하여 최적의 운행전략을 세웁니다. 거기다가 TCS, ESP 까지 들어가면 장난이 아니죠. 요즘엔 Throttle by wire를 사용하는 엔진이 많아서 악셀을 밟는 정도에 선형적으로 쓰로틀이 열리는 시스템은 거의 없다고 보시며 됩니다. 기본적으로 선형적인 값을 갖지만 TCU, ESP 등이 보정값을 넘기고 그 값까지 처리해서 최종적인 쓰로틀 개도 정도를 결정하는게 보편적입니다.

다른 시스템과의 통신은 취미로 제작하는 경우에는 무시해도 됩니다.

기타 다른 많은 제어가 필요하지만 기본적인 ECU를 제작하려고 하는 경우 정상 상태의 공연비 제어 정도로도 충분합니다.

하지만 가장 중요한건 ECU를 통한 제어가 엔진의 안정성(stability)를 보장할 수 있는가 하는 것과 몇개의 센서가 고장나더라도 엔진의 기본적인 작동에는 무리가 없어야 한다는 걸 꼭 명심해두셔야 합니다.

ECU 제작의 경우 외국에서 진행중인 megasquirt 프로젝트를 참고해보시는 것도 좋습니다.
(국내서의 경우 "ECU 내손으로 만들자"라는 책이 있긴 하지만 절대 비추합니다.)

그리고 내연 기관에 대한 공부를 하신다면 ECU 제작에 대한 감이 조금은 더 오지 않을까 싶습니다. 개인적으로는 PRENTICE HALL 에서 나온 Internal Combustion Engine 을 추천합니다. 책도 얇고 설명도 잘 되어 있습니다.

논문의 경우 www.ksae.org 에 가입하셔서 자료검색해보시면 몇몇 쓸만한 논문을 발견하실 수 있을겁니다. 자동차공학회지에 실리는 기사도 몇몇 쓸만한게 있구요.

아.. 그리고 ECU와 컴퓨터를 연결시킬 수 있다면 해당 ECU가 장착된 자동차의 정비지침서를 보는 것도 아주 큰 도움이 됩니다. 연식마다 ECU가 다른 경우도 있으니 꼭 해당 차량의 연식, 정확한 모델명을 알고 있어야 합니다.

도움이 되셨길 :)

showmethemoney

zkjinz의 이미지

답변 정말 감사합니다..
최신 기술과 검증된 기술이라.. 미처 여기까지는 깊게 생각을 못해봤네요..
역시 자동차는 안전이 우선이죠. =)

흠.. MegaSquirt project 굉장하군요. 부러울 따름입니다..
보니까 DIY Assembly guide도 있는듯한데, 졸업하기전에 학교 랩에있는
부품들이나 좀 축내야겠습니다... :)
다시한번 답변 감사드립니다.

soulsteel의 이미지

지금 현제 사용하고있습니다만... 미국놈들이 원래 사용하던 데이타값을 제차에다가 엎어치기하는수준이라 뭐라 말을할수는 없습니다 하지만 지금사용하는 ms-1 프로세서사용하는 3.0보드같은경우는 그냥 단독ecu로 사용가능할정도로 완성도가 높습니다 소소한것까지 제어가 가능하다는 타사에서 나오는 그래디에서나오는 프로펙-b나 아펙시에서나오는 거뭐시냐 잘기억이안나네. 그녀석보다 훠얼씬 좋다고 생각됩니다 ..
궁금한건 아래 사이트 참고 http://www.symtechlabs.com

silasoni의 이미지

후에 편리하게 찾아보기 위해 도장 찍고~

paeksj98의 이미지

제가 관련된 회사에서 일을 하고있는데 고민중..이직을 해 말아....
관련된 직종이 별로 없어서 고민중....ㅠㅠ