'Flight Controller 이해/인터페이스'에 해당되는 글 3건

  1. 2017.12.24 CAN 통신이란?
  2. 2017.03.09 드론에서 사용되는 무선 통신 1
  3. 2014.03.24 TWI(I2C) 통신이란?


CAN(Controller Area Network) 프로토콜은 Bosch사에서 1986년 자동차 전장 용으로 처음 개발되었으며 1991년에 스펙 2.0이 발표되었고 현재 국제 표준 프로토콜로 성장하였습니다. 이는 호스트 컴퓨터 없이 3개 이상의 MCU나 controller, 장치들이 서로 다중 통신이 가능하며, 메시지는 우선순위 따라 ID(Identifier)를 할당하고 이 ID를 이용해 메시지를 구별합니다. 다양한 에러 감지 메커니즘이 상호 보완적으로 에러를 감지하기 때문에 높은 안정성을 보장하며, 메시지 전송 시 에러가 감지되면 자동적으로 해당 메시지를 즉시 재전송하는 기능이 있기 때문에 다른 프로토콜에 비해서 에러 회복 시간이 짧다는 것입니다.


차량에 적용하는 CAN 통신의 예제


버스가 유휴 상태인 경우 모든 CAN 노드는 메시지를 보낼 수 있고, 전송된 모든 메시지는 모든 노드에서 수신됩니다. 수신 노드는 ID 필터링 기준에 따라 메시지의 무시 여부를 판단합니다. 정교한 오류 감지 및 결함 격리 메커니즘과 문제가 발생한 메시지의 재전송으로 데이터 무결성과 일관성이 보장합니다. 또한 두 개 이상의 CAN 노드가 동시에 메시지 전송을 요청하는 경우 우선순위가 가장 높은 메시지가 즉시 버스 액세스 권한을 획득하도록 프로토콜이 보장합니다. 현재는 CAN의 안정성과 신뢰성 등 장점이 입증되어 항공기, 의료기 등에 사용되고 IoT application에서도 사용되는 추세입니다.


가장 쉽고 편리하고 익숙한 UART 통신은 별도의 transceiver가 필요없고 모든 MCU가 반드시 내장하게 됩니다. 그러나 보통 115200bps로 대략 10kbps로 느리며 한 바이트 통신이라는 단점이 있습니다. 예를 들어, 드론 제어를 할 경우에 다수의 센서 등과 같이 여러 바이트가 하나의 패킷이 되는 경우에는 패킷을 분리하는 작업이 용이하지 않다는 것입니다. 뿐만 아니라 UART는 하나의 장치와 두개의 선으로 독립적이야 하나 관성센서보드, 제어보드, 초음파센서보드, GPS, 무선통신만으로 5개를 초과하여 10가닥 이상이 필요하다는 것입니다.


CAN을 지원하는 MCU의 경우에는 한번에 8-byte 데이터를 전송하는 HW 패킷을 제공하므로 UART(보통 RS232/RS485) 통신에서는 패킷 통신을 위해 위에서 말한 것처럼 사용자가 일일이 패킷 형식을 만들어 주고 수신 받을 때도 그런 해석이 필요하지만 CAN은 8byte 데이터를 담는 HW 패킷 통신을 기본으로 함으로, 사용자는 데이터 버퍼에 데이터를 쓰고 전송만 하면 그 외 모든 처리는 하드웨어가 알아서 하므로 분산제어 분야 적용에도 용이하다는 것입니다.


CAN 통신의 특징:

1) 2선 twist pair를 이용한 전기적 differential 통신을 하므로 저가이며 전기적인 잡음에 매우 강해 신뢰성이 우수합니다.

2) 이론적으로 2,032개의 장치들을 연결할 수 있으나 CAN transceiver에 따라 최대 노드수(32, 64, 128...)는 달라 집니다.

3) 통신 버스를 공유하고 있는 CAN controller들은 모두가 마스터(master)가 될 수 있는 Multi-Master 통신을 합니다.

4) 40m 내에서 최대 1Mbps로 우수한 통신 속도를 갖습니다.

5) 8byte 데이터 전송을 하는 하드웨어 패킷을 제공합니다.

6) 다수의 MCU, DSP 등에 기본으로 내장되어 있습니다.

7) 통신 프로토콜/에러 처리를 하드웨어적으로 처리합니다.

8) PLUG & PLAY를 제공합니다.


CAN transceiver는 프레임이라는 패킷으로 CAN 네트워크에서 데이터를 전송하며, CAN 2.0B 버전 이후에 29bit 식별자를 갖는 extended data format의 간단한 설명입니다.



    • SOF(Start Of Frame) - 메시지 시작을 표시하며, 무부하 기간 이후 버스의 노드를 동기화하기 위해 사용

    • Identifier(ID, 식별자) - 메시지의 우선순위를 가리며 2진 값이 더욱 낮을수록 우선순위는 더욱 높아짐

    • RTR(Remote Transmission Request) - 원격 전송 요청 비트, 이 비트가 '0'이면 데이타 프레임이고, '1'이면 메세지가 원격 전송 요청을 의미

    • SRR(Substitute Remote Request) - 표준 프레임의 RTR 위치에 점유

    • IDE(IDentifier Extension) - 이 비트가 '0'이면 표준 CAN 식별자를 전송하고, '1'이면 확장 CAN 식별자를 전송을 의미

    • R0, R1 - 예약비트

    • DLC(Data Length Code) - 데이터 프레임의 데이터 바이트 수(0~8)

    • Data Field - 8byte(64bit) 전송 데이터, MSB부터 전송.

    • CRC(Cyclic Redundancy Check) - 16bit(15bit + 구획문자) 16bit checksum으로 오류 검출 Field.

    • ACK(ACKnowledge Field) - 2bit(1bit + 구획문자)로 오류가 없는 메시지가 전송되었다는 것을 나타냄.

    • EOF(End Of Frame Field) - 메세지(프레임) 종료 Field

    • IFS(Inter Frame Space) - 컨트롤러가 요구하는 시간의 양을 포함하며, 메시지 버퍼 영역에서 적절한 위치로 정확하게 수신된 프레임을 이동시킴


대표적인 CAN Transceiver로는 PCA82C250/C251가 있습니다.



'Flight Controller 이해 > 인터페이스' 카테고리의 다른 글

드론에서 사용되는 무선 통신  (1) 2017.03.09
TWI(I2C) 통신이란?  (0) 2014.03.24
Posted by Nature & Life


사용자는 무선송신기(Tx)를 이용하여 드론에 명령을 내리게 됩니다. 이때 전송된 신호는 주로 FM 통신 방식으로 드론에 장착된 수신기(Rx)에 전달되고, 수신기는 이 FM 신호로부터 각 채널의 신호를 뽑아 PWM 방식으로 비행제어기(FC)의 각 채널에 유선으로 보내집니다. 이런 식으로 국내의 수십 MHz 대역의 무선조종용 ISM(Industrial Scientific Medical) 주파수를 사용해 제한된 출력으로 허가 없이 사용하여 저렴한 비용으로 실현하였습니다.


최근에는 송수신시 드론의 다양한 상태, 예를 들어, 밧데리 소진으로 인한 저전압 등을 드론으로부터 조종자에게 보여질 수 있도록 양방향 통신의 필요성이 대두되었고, 이러한 기능은 종래 사용하던 주파수의 좁은 대역폭의 한계로, 종래에는 무선데이터통신시스템용 ISM 주파수인 2.4GHz 대역으로 옮겨가 PPM 방식이 주류가 되었다는 것입니다.


드론에서는 이와같은 Wireless 통신 방식이 점차 증가하였는데 일례로, 지상관제국(GCS)에서 설정한 경유지(waypoint)에 따라 순차적으로 비행하는 자동비행 모드나 드론에서 촬영된 항공 사진이나 동영상 혹은 기타의 정보를 전송받기 위해서 텔레메트리(telemetry)라는 통신 장치가 그것이라는 것입니다. 이들의 무선 통신 방식은 2.4GHz의 ISM 주파수로 블루투스(Bluetooth)와 지그비(Zigbee) 등이 있습니다.


블루투스와 지그비 통신 방식은 현재도 계속 진화하고 있으며 도달거리나 전송속도 등의 차이는 아래 표에서와 같이 비교하였습니다.



위와 같은 무선 통신 기술은 Bluetooth와 유사한 BLE, Zigbee와 유사한 Z-wave에 Wi-Fi(Wireless LAN)와 함께, 모두 2.4GHz의 ISM 주파수를 사용하는 근거리 무선 통신 기술들로 요즈음 사물인터넷 즉, IoT(Internet Of Things) 장비들을 묶어주는 역할을 하고 있다는 것입니다. 드론 조종의 특성상, 지그비가 통신거리가 가장 적합하고 2.4GHz 대역이 도달거리가 짧고 장애물에 취약하다는 점을 감안하면 드론이 시야에서 완전히 확보된 상태에서 조종해야 함을 유의해야 할 것입니다.  



'Flight Controller 이해 > 인터페이스' 카테고리의 다른 글

CAN 통신이란?  (0) 2017.12.24
TWI(I2C) 통신이란?  (0) 2014.03.24
Posted by Nature & Life

 

 

통신약정(Protocol)이란 데이터를 보내는 사람과 받는 사람이 정보를 오류없이 원할히 주고 받을 수 있도록 쌍방간에 정하는 규칙 혹은 약정입니다. 이는 원거리 인터넷이나 FAX 통신도 혹은 PC와 그 주변기기와의 통신같은 근거리 통신에도 반드시 존재하며 자동차 내에서 혹은 한 보드내에서 칩과 칩 사이의 통신에도 적용됩니다.

 

AVR의 경우에는 다른 칩과의 통신방법으로 SPI(Serial Peripheral Interface)인 SCI(Serial Communication Interface, UART)나 TWI 통신을 지원합니다. 어느 정도 근거리 통신에서도 사용되어야 하기에 송수신에 앞서서 노이즈 등에 대비하여 신호의 크기를 키워야 할 필요가 하는데 이것이 PC 등에 사용되는 RS232C 트랜시버가 됩니다.

 

이러한 SPI 방식에서는 보내는 라인과 받는 라인 그리고 동기화된 클럭(Clock)으로 3가닥의 라인을 필요로 하였고, 한편 이 라인의 수를 더 간소화시켜 오직 2가닥 만으로 데이터의 송수신을 가능하게 한 새로운 인터페이스(Interface)를 제공하게 되었는데 이를 TWI라고 명명합니다.

 

TWI는 'Two Wire Interface'의 약자로 이를 통해서 AVR 칩은 오직 2가닥 만으로 128개의 다른 장치들과의 통신할 수 있다는 것입니다. TWI는 Atmel社 등이 주로 사용하지만 1980년대 Philips社에서 만든 I2C 인터페이스와 매우 유사하여 하드웨어의 별다른 수정없이 그대로 사용할 수 있다는 장점이 있습니다. 통상 I2C 인터페이스가 2가닥의 라인을 이용하므로 TWI라 부르게 되었습니다.

 

Philip社에서 제창한 I2C(IIC)는 칩(IC)간의 통신을 의미하는 'inter IC(Integrated Circuit)'의 준말로 'i square c'라고 읽으며, 비록 서로 다른 회사로부터 만들어졌지만 10-bit 주소나 고속 모드(high speed mode) 등에 차이를 제외하면 서로 호환가능하여 수정없이 사용할 수 있다는 것입니다.

 

TWI 통신이 가능한 장치는 데이터(SDA, Serial Data Line)와 클럭(SCL, Serial Clock) 라인이 공통 버스(bus)에 연결되어 고유의 주소값을 가져 다른 칩과 통신시 master와 slave의 관계를 번갈아가며 데이터의 송수신이 가능합니다. 표준 모드(standard mode)에서 100kbit/s로 통신할 수 있고 버스의 capacitance가 400pF을 넘지 않는 한도에서 칩을 계속 연결할 수 있다고 알려집니다.

 

 

 

 

간단하게 설명하면 아래 그림과 같이 데이터(SDA)를 클럭(SCK)에 동기화하여 주고 받는 방식으로 먼저 데이터를 주고 받고자하는 장치 주소(Address)를 1~7번 비트에 싣고 보낼지 읽을지에 따라서 8번 비트를 Read('1')나 Write('0')로 설정하며 그 다음에 데이터를 연속적으로 읽거나 실을 수가 있다는 것입니다.

 

 

 

여기서 ACK 비트는 정보의 송신자에게 직전 8-bit의 정보를 수신했는지의 여부를 확인하는 값입니다.

 

 

'Flight Controller 이해 > 인터페이스' 카테고리의 다른 글

CAN 통신이란?  (0) 2017.12.24
드론에서 사용되는 무선 통신  (1) 2017.03.09
Posted by Nature & Life