기본 콘텐츠로 건너뛰기

[BLE] TI CC2540 Mini DK 사용하기 - KeyFobDemo


1. 문서 및 소프트웨어
    
    1.1 문서
    
        가. Bluetooth Low Energy CC2540/41 Mini Development Kit User's Guide (http://www.ti.com/litv/pdf/swru270c)
            4. Using BTool
            Appendix
        나. CC2540/41 Bluetooth Low Energy Software Developer's Guide (http://www.ti.com/lit/pdf/swru271)
            4. Working with Projects using IAR Embedded Workbench 8.10.4
        다. CC2540 Bluetooth Low Energy Sample Applications Guide (http://www.ti.com/litv/pdf/swru297b)
            9. KeyFobDemo
    
    1.2 소프트웨어

        가. Bluetooth low energy software stack and tools 1.3 (www.ti.com/blestack)
            - KeyFobDemo 애플리케이션과 BTool을 포함하고 있다.
        나. IAR Embedded Workbench for 8051 (http://supp.iar.com/Download/SW/?item=EW8051-EVAL)
            - 30일 평가판 다운로드.
            
2. 빌드 및 다운로드
    
    2.1 빌드
    
        1) IAR Embedded Workbench for 8051을 실행하고 Open -> Workspace... 메뉴를 선택한다.
        2) BLE 소프트웨어 스택의 KeyFobDemo 프로젝트 아래에서 다음 파일을 선택하여 프로젝트를 연다.
            Texas Instruments\BLE-CC254x-1.3\Projects\ble\KeyFob\CC2540DB\KeyFobDemo.eww
        3) 좌측 Workspace 화면에서 KeyFobDemo를 선택하고 마우스 오른쪽 버튼을 누르면 나타나는 팝업 메뉴에서 Rebuild All를 선택한다.
        
    2.2 다운로드
    
        1) KeyFob에 전지를 넣고 CC Debugger와 연결한다.
        2) CC Debugger를 PC에 연결한다.
        3) IAR Embedded Workbench의 Project -> Download and Debug 메뉴를 선택하여 이미지를 KeyFob에 다운로드한다.
    
3. USB 동글과 KeyFob 연결

    1) USB 동글을 PC에 연결한다. 장치 관리자에서 USB 동글의 포트 번호를 확인한다.
    2) BTool을 실행한다. 직렬포트 설정 대화 상자에서 USB 동글의 포트 번호를 지정한다. 다른 항목은 기본으로 설정된 값을 사용한다.
    3) Keyfob의 오른쪽 버튼(B3)을 눌러 Discoverable 모드로 진입한다.
    4) BTool의 Discover/Connect 탭에서 장치 발견 및 연결을 실행한다.
        - 'Discovery' 섹션의 'Scan' 버튼을 누른다. 잠시 후 "Devices Found"의 값이 1로 바뀌는 것을 확인한다.
        - 'Link Control' 섹션의 Slave BDA에서 발견된 장치의 주소를 선택하고 'Establish' 버튼을 누른다. 왼쪽 패널에 "Connection info" 항목이 추가되는 것을 확인한다.

4. Primary Service 확인

    KeyFobDemo 애플리케이션이 제공하는 Primary Service 목록을 알아보도록 하자. BTool의 우측 화면에서 Read / Write 탭을 열고 Characteristic Read 영역에서 아래와 같이 지정한 다음 Read 버튼을 누른다. Primary Service 선언임을 지칭하는 UUID는 0x2800이다.
    
        Sub-Procedure:          Read Using Characteristic UUID
        Characteristic UUID:    00:28
    
    그러면 로그창에 Handle/Data 항목들이 표시될 것이다. Data 항목은 Primary Service로 제공되는 서비스의 UUID이고, Handle 항목은 해당 서비스의 시작 핸들의 값이다.
    
         Handle : 0x0001
         Data : 00:18
         
         Handle : 0x000C
         Data : 01:18
         
         Handle : 0x0010
         Data : 0A:18
         
         Handle : 0x0023
         Data : 03:18
         
         Handle : 0x0026
         Data : 02:18
         
         Handle : 0x0029
         Data : 04:18
         
         Handle : 0x002D
         Data : 0F:18
         
         Handle : 0x0032
         Data : A0:FF
         
         Handle : 0x0045
         Data : E0:FF
         
    Data 항목의 값들이 서비스의 UUID이므로 다음과 같은 Primary Service들이 제공되고 있음을 알 수 있다.
    
        0x1800      Generic Access Profile
        0x1801      Generic Attribute Profile
        0x180A      Device Information
        0x1803      Link Loss
        0x1802      Immediate Alert
        0x1804      Tx Power
        0x180F      Battery Service
        0xFFA0      Accelerometer
        0xFFE0      Simple Keys

5. Link Loss Service
    
    KeyFob이 USB 동글로부터 일정 거리 이상 멀어지면 연결이 끊어질 것이다. 이 때 KeyFob의 버저가 울리고 LED가 깜박이도록 해 보자. 연결이 끊어졌을 때 어떻게 알릴지는 Alert Level의 값에 따라 달라지는데 다음 세 가지 유형 중 하나로 지정할 수 있다.
    
        No Alert        - 장치가 경고를 하지 않는다.
        Mild Alert      - 장치가 경고를 한다.
        High Alert      - 장치가 가능한 가장 강력한 방식으로 경고를 한다.
        
    BTool의 우측 화면에서 Read / Write 탭을 연다.
    
    5.1 현재의 Alert Level 확인
    
        Link Loss Service가 제공하는 Characteristic 선언의 목록을 표시하도록 우측 화면의 Characteristic Read 영역에서 아래와 같이 지정한 다음 Read 버튼을 누른다. Characteristic 선언임을 지칭하는 UUID는 0x2803이고, 검색할 핸들의 범위는 Link Loss Service의 시작 핸들인 0x0023 이후부터 다음 서비스의 시작 핸들인 0x0026 바로 이전으로 지정하였다. 
    
            Sub-Procedure:          Read Using Characteristic UUID
            Characteristic UUID:    03:28
            Start Handle:           0x0024
            End Handle:             0x0025
        
        로그 창에 표시되는 아래의 내용에서 Data 항목은 Link Loss Service가 제공하는 Characteristic에 대한 선언이다.
        
            Handle : 0x0024
            Data : 0A:25:00:06:2A
            
        Data 항목의 첫번째 바이트 0x0A는 해당 Characteristic의 값을 읽거나 쓸 수 있음을 나타낸다. 그 다음 두 바이트 0x0025는 해당 Characteristic의 값을 참조할 때 사용할 핸들값이다. 마지막 두 바이트 0x2A06은 해당 Characteristic이 Alert Level임을 지칭하는 UUID이다.

        따라서 현재의 Alert Level을 읽기 위하여 아래와 같이 핸들값을 지정하고 Read 버튼을 누른다.
        
            Sub-Procedure:                  Read Characteristic Value / Descriptor
            Characteristic Value Handle:    0x0025
        
        그러면 로그 창에 아래와 같이 표시되는데, 0x00은 "No Alert"를 의미한다. 즉 연결이 끊어지더라도 경고음이나 LED로 알리지 않을 것이다.
        
            Value : 00 
        
    5.2 새로운 Alert Level 설정
    
        Alert Level의 값으로 "High Alert"를 설정하기 위하여 우측 화면의 Characteristic Write 영역에서 아래와 같이 지정하고 Write 버튼을 누른다.
        
            Characteristic Value Handle:    0x0025
            Value:                          0x02

    5.3 Link Loss 테스트
    
        KeyFob을 들고 USB 동글로부터 수 미터 이상 이동하면서 버저음이 울리고 LED가 깜박이는지 확인해 본다.

댓글

댓글 쓰기

이 블로그의 인기 게시물

Windows에 AMP와 MediaWiki 설치하기

1. 들어가기     AMP는 Apache + MySQL +  Perl/PHP/Python에 대한 줄임말이다. LAMP (Linux + AMP)라고 하여 Linux에 설치하는 것으로 많이 소개하고 있지만 Windows에서도 간편하게 설치하여 사용할 수 있다.       이 글은 Windows 7에 Apache + MySQL + PHP를 설치하고 그 기반에서 MediaWiki를 설치하여 실행하는 과정을 간략히 정리한 것이다. 2. MySQL     * 버전 5.6.12     1) 다운로드         http://dev.mysql.com/downloads/installer/         MySQL Installer 5.6.12         Windows (x86, 32-bit), MSI Installer         (mysql-installer-web-community-5.6.12.0.msi)     2) 다운로드한 MSI 파일을 더블클릭하여 설치를 진행한다.           설치 위치:                   C:\Program Files\MySQL               선택 사항:                       Install MySQL Products             Choosing a Se...

MATLAB Rutime 설치하기

MATLAB Rutime 설치하기 미설치시 에러 MATLAB Runtime 을 설치하지 않은 환경에서 MATLAB 응용프로그램이나 공유 라이브러리를 사용하려고 하면 아래와 같은 에러 메시지가 표시될 것입니다. 처리되지 않은 예외: System.TypeInitializationException: 'MathWorks.MATLAB.NET.Utility.MWMCR'의 형식 이니셜라이저에서 예 외를 Throw했습니다. ---> System.TypeInitializationException: 'MathWorks.MATLAB.NET.Arrays.MWArray'의 형식 이니셜라이저에서 예외를 Throw했습니다. ---> System.DllNotFoundException: DLL 'mclmcrrt9_3.dll'을(를) 로드할 수 없습니다. 지정된 모듈을 찾을 수 없습니다. (예외가 발생한 HRESULT: 0x8007007E) 위치: MathWorks.MATLAB.NET.Arrays.MWArray.mclmcrInitialize2(Int32 primaryMode) 위치: MathWorks.MATLAB.NET.Arrays.MWArray..cctor() --- 내부 예외 스택 추적의 끝 --- 위치: MathWorks.MATLAB.NET.Utility.MWMCR..cctor() --- 내부 예외 스택 추적의 끝 --- 위치: MathWorks.MATLAB.NET.Utility.MWMCR.processExiting(Exception exception) 해결 방법 이 문제를 해결하기 위해서는 MATLAB Runtime 을 설치해야 합니다. 여러 가지 방법으로 MATLAB Runtime 을 설치할 수 있습니다. MATLAB 이 설치되어 있는 경우에는 MATLAB 설치 폴더 아래에 있는 MATLAB Runtime 설치 프로그램을 실행하여 설치합니다. ...

Wi-Fi 카드 2.4GHz로만 동작시키기

Wi-Fi 카드 2.4GHz로만 동작시키기 별도의 Wi-Fi AP 장치를 두지 않고 아래와 같은 기기들로만 Wi-Fi 네트워크를 구성하고자 할 때 주변 기기들이 2.4GHz만 지원하기 때문에 PC에서 실행하는 AP가 항상 2.4GHz를 사용하도록 Wi-Fi 카드를 설정해 주어야 합니다. 기기 Wi-Fi 카드 주파수 대역 Wi-Fi Direct 지원 PC (Windows 10) 2.4GHz, 5GHz O 주변 기기들 2.4GHz X Wi-Fi 카드별 주파수 대역 선택 방법 Windows 시작 메뉴에서 설정 을 클릭합니다. Windows 설정 화면에서 네트워크 및 인터넷 을 클릭합니다. 설정 화면의 왼쪽 메뉴바에서 Wi-Fi 를 클릭합니다. 화면 오른쪽 관련 설정 구역에 있는 어댑터 옵션 변경 을 클릭합니다. 설정을 바꾸고자 하는 Wi-Fi 카드 항목을 선택하고 마우스 오른쪽을 누른 다음 속성 메뉴를 클릭합니다. 대화상자의 네트워킹 탭 화면에 있는 구성 버튼을 클릭합니다. 장치 속성 대화상자의 고급 탭 화면으로 이동합니다. 제시되는 속성 항목들은 제품별로 다르며 자세한 사항은 아래의 제품별 설명을 참고하여 값을 설정하시기 바랍니다. Intel Dual Band Wireless-AC 7265 기술 사양 주파수 대역: 2.4GHz, 5GHz 무선 표준: 802.11ac 주파수 대역 선택 장치 속성 대화상자에서 아래와 같이 선택합니다. Wireless Mode 1. 802.11a => 5GHz 4. 802.11b/g => 2.4GHz (이 항목 선택) 6. 802.11a/b/g => 2.4GHz, 5GHz Intel Dual Band Wireless-AC 8265 기술 사양 주파수 대역: 2.4GHz, 5GHz 무선 표준: 802.11ac 주파수 대역 선택 장치 속성 대화상자에서 아래와 같이 ...