C언어로프로그램을 제어프로그램을 개발하는 경우와 매틀랩/시뮬링크를 이용하는 방법의 차이는 무엇인지 생각해보자.
큰 개발조직에서는 엔지니어가 사양을 도출하면 프로그래머가 프로그래밍을 한다. 그러나 작은 조직에서는 엔지니어가 프로그래밍을 배워가 같이 하는 경우가 많다. 이 경우 엔지니어가 C언어와 하드웨어(마이크로프로세서와 주변기기) 다루는 법을 배워야 한다. 우선 C언어를 배우는 과정을 살펴보자.
- 변수선언, 유저 정의형 변수(struct, union)
- 로직 플로우(if else, while, for loop, switch 등)
- 함수로만들어 구조화 하는 법
- 포인터 : 함수간에 자유로운 데이터 주고 받기위해
- 여러화일로 나누어 프로그래밍 하는 법, 설계 기법
그 다음은 하드웨어를 공부해야 한다. 기본 I/O기능과 스케줄러는 누군가 해준다고 해도 다음은 알아야 한다.
- ADC, DAC, Digital I/O, Counter, Communication(Serial, CAN, TCP/IP 등)
- Interrupt
- Debugger 사용법
매틀랩/시뮬링크를 사용할 경우에는 우선 C언어를 몰라도 할 수는 있다. 물론 알면 큰 도움이 된다. 기본적으로 매틀랩의 사용법은 공학전공자의 경우 제어과목을 들어본 사람이면 경험이 있을 것이고 좀더 해본 사람은 시뮬링크도 사용은 해봤을 것이다. 거기에다가 시뮬링크에서는 로직 플로우를 다루기가 불편한데, Stateflow를 사용하면 매우 편해진다. 그리고 장점은 graphical하게 로직 플로우를 설계하면 바로 코드가 생성되며 또한 그래픽컬하게 시뮬레이션을 할 수도 있어 디버깅이 편하다.
VHLL을 사용하게 되면 전문 프로그래머가 사양서가 확실할 경우 매뉴얼 코딩하는 것보다는 속도가 느릴 수 있다. 그러나, VHLL에서의 장점은 소프트웨어 도큐먼트를 따로 만들지 않아도 되며, 남이 만든 것을 이해하는 것도 매우 쉽고, 자기가 만든 것도 나중에 업그레이드 할 때 매우 쉽게 접근이 가능하다는 것이다. 결국 개발 인원을 적게 투입해도 되고, 전체 개발 기간은 단축 가능하다.
또한 신뢰도도 높일 수 있다.
최서호
©COPYRIGHT, Seo-Ho Choi Ph.D.
PLEASE DO NOT QUOTE OR COPY ANY OR ALL OF THIS DRAFT WITHOUT WRITTEN
PERMISSION FROM THE AUTHOR
출처 :
http://cclark.tistory.com/archive/20070602
좋은자료 감사합니다.