8월, 2013의 게시물 표시

모드버스(Modbus) 슬레이브 제작

이미지
발췌:  http://blog.daum.net/nnjjyy105/456 모드버스(Modbus) 슬레이브 제작 수개월전 제작된 모드버스 마스터에 이어 저자인 오브레이는 사이프레스(Cypress) PSoC 마이크로콘트롤러에서 구현되는 모드버스 슬레이브 제작에 착수하였다. 사용자 설정 변경을 가능케 하거나 CRC 생성 속도를 높이기 위한 슬레이브 제작에 필요한 3개의 방법을 설명할 것이다. 모드버스 마스터 제작(“일반 모드버스 시물레이터,” 서킷 셀라 200/201, 2007)에 대한 글을 2회 연재한 후, 약간 연관이 있는 세 번째 글로 모드버스 슬레이브에 대해 다루어야겠다고 생각했었다. 하지만 그 실행에 시간이 상당히 소요되었고 또 다른 모드버스 프로젝트를 준비하는 단계였으므로 이러한 나의 논리에는 약간 모순이 있었다.  사이프레스 세미콘덕터 CY8C27243 PSoC 마이크로콘트롤러에서 구현되는 모드버스 슬레이브를 제작하였지만, 거의 대부분 C 언어로 개발되었다 (그림 1 참조). 따라서, 다른 마이크로콘트롤러로의 포팅에는 문제가 없다. PSoC는 순환 중복 검사(CRC)를 하드웨어적으로 생성하고, 범용적인 소프트웨어 접근법에 덧붙여, CRC 생성 속도를 현저히 높일 수 있는 독특한 접근법에 대해 설명할 것이다. 세 번째 접근법에서는 설정을 동적으로 바꾸는 PSoC의 유연성을 보여주도록 하겠다. 모드버스 개요  모드버스는 I/O 공간을 단일 비트 디지털(코일) 레지스터 또는 16 비트 레지스터로 분류한다. 홀딩 레지스터와 인풋 레지스터(16비트)의 해석은 슬레이브의 설계자에게 맡겨진다. 이러한 레지스터는 ADC 값 또는 다른 기능에 사용될 수 있으며, 슬레이브의 설계 (16 비트 레지스터 양식에 맞도록 데이터 변형이 필요), 릴레이, 근접 센서에 의해 결정이 된다. 마스터 콘트롤러는 직렬 네트워크에 지정되는 슬레이브에 포함된 레지스터를 통해 읽기와 쓰기를 수행한다.  슬레이브의 레지스터 맵도 슬레이브 설계자에게 맡겨진다. 이에 대해서는 추