새로운 무선 MCU 및 모듈을 통한 연결형 IoT 응용 제품 구현
DigiKey 유럽 편집자 제공
2016-08-16
모든 사물 인터넷(IoT) 기반 비즈니스 모델은 여러 에지 노드부터 클라우드 기반 분석 및 제어 응용 분야에 이르기까지 모두 안정적이고 안전한 무선 통신이 필요합니다. 마이크로 컨트롤러 기반 센서 및 액추에이터를 설계하는 개발자는 다양한 MCU 개발 플랫폼과 도구 체인을 잘 갖추고 있습니다. 과거에는 무선 통신의 프로비저닝이 그리 쉽지 않았습니다. 지역별 무선 규정 승인을 받고 자체적으로 검증된 무선 프로토콜 스택을 사용하거나 만들어야 한다는 점과 RF의 복잡성으로 인해, 설계 엔지니어는 별도 설계를 만드는 대신 사전 승인된 무선 모듈을 채택하는 경우가 많습니다.
IoT 에지 노드 및 센서의 상대적으로 낮은 성능 수요와 무선 연결성을 모두 충족하는 것은 추가적인 MCU 호스트가 필요하지 않은 새로운 무선 MCU 및 모듈입니다. 이러한 호스트-리스, 즉 독립형 장치 및 모듈은 설계 공정 전체를 단순화하고 가속화합니다. 하지만 적합한 모듈이 있다는 것만으로 개발자의 필요가 충족되지는 않습니다. 오늘날의 제품 개발 환경에서 임베디드 엔지니어는 모듈의 전체 기능을 처음부터 학습할 시간이 없습니다. 따라서 소프트웨어 드라이버, 코드 및 평가 플랫폼이 있는지 여부가 장치 기능만큼 중요합니다. 개발자가 장치와 클라우드 간 통신을 빠르게 구현할수록 출시 시기를 앞당기고 상업적 성공을 달성할 가능성이 커집니다.
이러한 조건을 모두 충족하는 무선 MCU의 예가 바로 Texas Instruments의 CC3200 SimpleLink™ 계열입니다. SimpleLink 장치는 평가 기판, 코드 예제 및 포괄적 SDK의 전체 에코시스템으로 보완됩니다. 다양한 패키지 크기로 제공되는 CC3200는 80MHz에서 작동하는 ARM® Cortex®-M4 애플리케이션 마이크로 컨트롤러를 802.11 b/g/n Wi-Fi 네트워크 프로세서 서브 시스템과 통합합니다. 이 두 번째 서브 시스템에는 애플리케이션 MCU의 모든 Wi-Fi 통신 스택을 오프로드하는 역할을 하는 전용 ARM MCU 코어가 있습니다.

그림 1: CC3200 하드웨어 개요 제품 구성도
배터리 기반 IoT 설계에 최적화된 CC3200은 배터리 관리 기능과 같은 다양한 기능과 GPIO, UART, SPI, PWM 및 4채널 12비트 ADC를 포함한 포괄적인 주변 장치 인터페이스 집합을 갖추고 있습니다. 주요 기능 집합이 그림 1에 설명되어 있습니다. 256kB의 RAM이 적용된 CC3200에는 SHA2 및 MD5 인증 기능과 함께 빠른 AES, DES 및 3DES 암호화를 위한 하드웨어 256비트 암호화 엔진도 적용되었습니다. DC-DC 컨버터가 통합되고 자체 전력 관리 서브 시스템을 갖추고 있기 때문에 다양한 공급 전압을 수용할 수 있을 뿐만 아니라 저전력 소비 모드(RTC가 실행 중인 상태에서 장치를 최대 절전 모드로 전환하는 최저 전력)도 제어할 수 있습니다. 이 모드에서는 4μA 미만만 소비합니다.

그림 2: CC3200 내장형 소프트웨어 개요.
CC3200의 다른 관점인 장치 내장형 소프트웨어 기능을 그림 2에서 볼 수 있습니다. Wi-Fi 서브 시스템은 스테이션, 액세스 포인트 및 Wi-Fi Direct 모드와 WPA2 Personal 및 Enterprise 보안, WPS 2.0을 지원합니다. TCP/IP, TLS/SSL 및 HTTP 서버 스택이 온칩 내장됩니다.
CC3200의 전체 기능은 그림 3에서 볼 수 있습니다. 이 그림에서는 GPIO와 주변 장치 인터페이스, 전력 관리 및 비교적 적은 수의 추가적인 필요 수동 부품을 확인할 수 있습니다.
그림 3: CC3200 기능별 제품 구성도.
장치의 핀 다중화 기능을 조사해 보면 CC3200의 설계에 고려된 사항을 이해할 수 있습니다. 많은 수의 주변 장치 인터페이스 기능을 최소의 패키지 크기에 수용할 때 많이 사용되는 방법인 핀 다중화를 통해, 주변 장치 집합을 특정 핀에 매핑할 수 있습니다. 핀 다중화는 하드웨어 구성 및 레지스터 제어의 조합을 통해 구현됩니다. 이 프로세스에 대한 자세한 내용과 사용 가능한 매핑 옵션은 TI CC3200 규격서에 명시되어 있습니다. TI에서는 설계 공정을 지원하기 위해 다양한 사용 사례별 권장 핀 다중화 구성 표를 제공합니다(그림 4). 이 방식을 통해 광범위한 응용 분야의 초기 단계에 설계를 구체화할 수 있어서 주변 장치 집합 및 사용 가능한 핀아웃을 최대한 활용할 수 있습니다.
| CC3200 권장 핀아웃 그룹화 사용 - 예제(1) | |||||||||||
| 홈 시큐리티 하이엔드 토이 | Wi-Fi 오디오 ++ 산업용 | 센서-태그 | 홈 시큐리티 토이 | Wi-Fi 오디오 ++ 산업용 | Wi-Fi 원격, 7x7 키패드 및 오디오 포함 | 센서 도어록 화재 경보 토이, 캠 미포함 | 산업 가전 | 산업 가전 스마트-플러그 | 산업 가전" | GPIO | |
| 외부 32kHz(2) | 외부 32kHz(2) | 외부 TCXO 40MHz(-40°C ~ 85°C | |||||||||
| Cam + I2S(Tx 또는 Rx) + I2C + SPI + SWD + UART-Tx + (App Logger) 2 GPIO + 1 PWM + *4 Hib에서 오버레이 절전 해제 | I2S(Tx 또는 Rx) + 1Ch ADC + 1x 4와이어 UART + 1x 2와이어 UART + 1비트 SD 카드 + SPI + I2C + SWD + 3 GPIO + 1 PWM + 1 GPIO, Wake-From-Hib 포함 | I2S(Tx 또는 Rx) + 2Ch ADC + 2와이어 UART + SPI + I2C + SWD + 2 PMW + 6 GPIO + 3 GPIO, Wake-From-Hib 포함 | Cam + I2S(Tx 또는 RX) + I2C + SWD + UART-Tx + (App Logger) 4 GPIO + 1PWM + *4 Hib에서 오버레이 절전 해제 | I2S(Tx 및 Rx) + 1Ch ADC + 2x 2와이어 UART + 1비트 SD 카드 + SPI + I2C + SWD + 4 GPIO + 1 PWM + 1 GPIO, Wake-From-Hib 포함 | I2S(Tx 및 Rx) + 1Ch ADC + UART(Tx만) I2C + SWD + 15 GPIO + 1 PWM + 1 GPIO, Wake-From-Hib 포함 | I2S(Tx 및 Rx) + 2Ch ADC + 2와이어 UART + SPI + I2C + 3 PMW + 3 GPIO, Wake-From-Hib 포함 + 5 GPIO SWD + | 4Ch ADC + 1x 4와이어 UART + 1x 2와이어 UART + SPI + I2C + SWD + 1 PWM + 6 GPIO + 1 GPIO, Wake-From-Hib 포함 Ext 40MHz TCXO 지원 | 3Ch ADC + 2와이어 UART + SPI + I2C + SWD + 3 PWM + 9 GPIO + 2 GPIO, Wake-From-Hib 포함 | 2Ch ADC + 2와이어 UART + I2C + SWD + 3 PWM + 11 GPIO + 5 GPIO, Wake-From-Hib 포함 | ||
| 핀 번호 | 핀아웃 #11 | 핀아웃 #10 | 핀아웃 #9 | 핀아웃 #8 | 핀아웃 #7 | 핀아웃 #6 | 핀아웃 #5 | 핀아웃 #4 | 핀아웃 #3 | 핀아웃 #2 | 핀아웃 #1 |
그림 4: CC3200 권장 핀 다중화 구성.
CC3200 장치를 응용 제품에 통합하려는 경우 여러 개발 옵션을 사용할 수 있습니다. 응용 제품용 PCB를 자체 설계하는 것 이외에 선별된 CC3200이 포함되며 20.5 x 17.5 x 1.5mm에 불과한 콤팩트한 모듈에서 수동 부품, 크리스털 및 칩 안테나를 지원하는 CC3200 모듈을 선택할 수 있습니다.
CC3200 모듈의 시제품 제작 시 CC3200 LaunchPad XL 평가 기판 (그림 5)이 도움이 됩니다. USB를 통해 PC에 직접 연결할 수 있고 플래시 프로그래밍용 JTAG 에뮬레이션을 제공하는 이 보드는 사용자 LED, 푸시 버튼, 가속도계 및 온도 센서를 호스트합니다.

그림 5: CC3200 LaunchPad XL 평가 기판.
TI는 제품 페이지, 소프트웨어 개발 Wiki 그리고 클라우드 에코시스템 파트너 전용 페이지를 포함한 SimpleLink 제품군 전용 리소스를 광범위하게 갖추고 있습니다. SimpleLink SDK는 Wiki에서 다운로드할 수 있으며 다양한 예제 애플리케이션, 애플리케이션 소스 코드 및 기술 정보를 제공합니다. TI는 업계에서 인정되는 여러 IDE를 SDK에 사용하도록 권장하며 이것이 자체 Code Composer Studio 및 IAR Workbench입니다. 포함 파일과 헤더 파일 그리고 GCC 작성 스크립트 및 기타 라이브러리 함수도 제공됩니다. 코드 예제는 애플리케이션, 주요 구성 파라미터 및 작동 방식에 대한 설명과 함께 문서화되어 있습니다. 전체 소스 코드 및 헤더 파일 집합이 C에 포함되어 있습니다. 한 가지 예제에서는 CC3200이 사이트 ‘openweathermap.org’와 통신하여 특정 도시에 대한 날씨 정보를 요청한 다음 연결된 하이퍼터미널에 이 정보를 표시하는 것을 보여 줍니다. 그 출력은 그림 6을 확인하세요.

그림 6: CC3200 Get Weather 애플리케이션의 출력.
다른 코드 샘플로는 MQTT 클라이언트/서버 애플리케이션의 구현, 이메일 데모 및 최대 절전 모드를 최대한 이용한 센서 기반 설계가 포함됩니다.
CC3200 SDK 내에서 제공되는 애플리케이션 예제는 C/C++의 사용에 초점을 맞추고 있지만 다른 여러 옵션도 사용할 수 있습니다. 그러한 대안 중 하나가 MicroPython입니다. Python 3 인터프리트 프로그래밍 언어를 기반으로 하는 MicroPython은 마이크로 컨트롤러에서의 이용에 최적화된 성공적인 Kickstarter 펀딩 캠페인의 결과물입니다. MicroPython의 네트워크 지원 버전은 CC3200 장치를 완전하게 지원하며 해당 사이트에서 다운로드할 수 있습니다.
Wi-Fi 통신 및 응용 프로세서를 프로비저닝하기 위한 CC3200 SimpleLink 접근법은 IoT 시장에서 폭넓게 인정받았습니다. 그러한 예가 IBM이 MQTT를 통해 CC3200 LaunchPad를 IBM의 Watson IoT Foundation 플랫폼에 연결한 것입니다. 그 밖의 클라우드 플랫폼 에코시스템 파트너로는 Temboo 및 Xively 등이 있습니다.
다른 사전 인증된 독립형 Wi-Fi 모듈 제품군으로는 Silicon Labs의 Bluegiga WF121 계열(그림 7)이 있습니다. CC3200과 마찬가지로 두 가지 메인 부품으로 구성되는데 각각 80MHz에서 실행되는 Microchip PIC32 계열 32비트 마이크로 컨트롤러를 사용하는 애플리케이션 마이크로 컨트롤러와 2.4GHz 802.11 b/g/n 준수 무선 장치입니다. 참조 가이드와 응용 예제를 비롯한 이 계열에 대한 자세한 정보는 여기에서 볼 수 있습니다.

그림 7: Silicon Labs Bluegiga WF121.
호스트와 무선 트랜시버 간의 통신은 그림 8에서처럼 UART, USB 또는 SPI를 통해 이뤄집니다. 여기에는 소프트웨어 아키텍처도 도해되어 있습니다. BGLib ANSI C 호스트 라이브러리를 사용하여 마이크로 컨트롤러용 애플리케이션을 프로그래밍할 수 있지만 Bluegiga의 스크립팅 언어인 BGScript를 사용할 수도 있습니다. BASIC 스타일 프로그래밍 구조를 기반으로 하는 이 언어는 꽤 복잡하고 강력한 애플리케이션을 만드는 방법을 쉽고 간단하게 익힐 수 있습니다. 이 언어는 무선 연결, 보안, 데이터 전송 및 주변 장치, GPIO, SPI, I2C 등과의 상호 작용을 설정하고 관리하기 위한 명령 및 함수를 제공합니다.

그림 8: Bluegiga 소프트웨어 환경.
또한 BGScript는 Bluetooth 연결을 제공하는 모듈을 포함한 독립형 Bluegiga 모듈 제품군 전체에 사용할 수 있습니다. 그림 9에 모듈의 ADC를 읽는 간단한 BGScript 코드 예제가 나와 있습니다.

그림 9: ADC를 읽는 BGScript 예제.
Bluegiga DKWF121은 WF121 모듈을 사용하여 Wi-Fi 독립형 설계의 시제품을 제작하기 위한 평가 기판입니다. 이 보드는 모듈의 사용 가능한 모든 핀아웃을 호스트하므로 평가 설계에 쉽게 연결할 수 있습니다. 모든 GPIO 핀이 넓은 시제품 제작 영역 주변의 패드에 있습니다. DKWF121에 대한 모든 시작 정보를 제공하는 유용한 온라인 카탈로그 페이지를 DigiKey 사이트에서 확인할 수 있습니다.
앞서 언급했듯이 Bluegiga 제품군에는 BLE113과 같은 독립형 Bluetooth 모듈도 포함됩니다. 소형 배터리 전원 응용 제품과 부속품을 대상으로 하는 애플리케이션을 개발할 때 BGScript를 사용하면 매우 편리하고 간편하게 데이터 연결을 설정하고 전송할 수 있습니다. Bluegiga 제품 라인업은 많은 IoT 개발 및 전문 제작자 커뮤니티의 지원을 받고 있으므로, Node.js용 bglib 및 Python용 bgapi_py와 같은 다른 개발 언어를 지원하는 라이브러리도 사용할 수 있습니다. 그림 10은 Node.js 라이브러리를 사용하여 수신 Bluetooth 데이터를 별도 변수로 구문 분석하는 것이 얼마나 간단한지 보여 줍니다.

그림 10: Bluegiga BLE113 모듈에서 Node.js BGLib 라이브러리를 사용하여 Bluetooth 수신 데이터를 구문 분석.
사전 인증된 무선 모듈을 사용하면 IoT 응용 제품의 설계 속도가 크게 단축되지만, 독립형 무선 모듈을 사용하면 전체 BOM이 줄어들 뿐만 아니라 전체 설계 공정이 더욱 간소화됩니다. 이러한 방식을 살펴보는 임베디드 엔지니어는 하드웨어 기능뿐만 아니라 소프트웨어 도구의 양, 프로그래밍 언어의 유연성, 제공되는 애플리케이션 예제도 검토하는 것이 좋습니다. 이 방식을 이용하면 독립형 IoT 장치를 더 빠르게 출시할 수 있어서 소중한 설계 리소스와 예산을 절약할 수 있습니다.
면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.
