이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 9306|회답: 0

지그비 여정 (8): 여러 중요한 CC2430 기본 실험 - 감시자

[링크 복사]
게시됨 2014. 10. 30. 오후 11:23:37 | | | |
1. 상하층 연결

현재 윈도우 7이든 미래의 윈도우 8과 윈도우 9 등 운영체제가 아무리 좋더라도, 항상 블루스크린이 존재하며, 작은 마이크로컨트롤러도 마찬가지입니다~ 전기 소음, 정전, 정전기 방전 등 예측 불가능한 원인이 임베디드 시스템의 비정상 작동을 초래할 수 있습니다.

정확히 말하면, 워치 독은 마이크로컨트롤러 프로그램의 실행 상태를 모니터링하기 위해 특별히 사용되는 회로 구조인 워치독 타이머여야 합니다. 기본 원리는 다음과 같습니다: 워드로 그린 그림과 같이 워드로 그린 그림과 같이, 워드로 그린 그림과 같이 0부터 시작해 0부터 카운트를 시작합니다.

간단한 경비견 적용 방법을 소개해 보겠습니다: 개를 어떻게 놓아줄 수 있을까요? 어떻게 먹여야 할까요? 먹이를 주지 않으면 어떻게 될까요?

2. 감시견의 이야기(1) 실험 소개

개가 먹이를 주면 시스템은 정상적으로 작동하며; 개에게 밥을 주지 않으면 시스템이 계속 재시작됩니다.

(2) 프로그램 플로우차트

(3) 실험적 소스 코드 및 분석/*
    실험 설명: 감시견 실험에서는 개에게 먹이를 주지 않으면 시스템이 계속 재시작됩니다.
*/

#include

#define 이끄는 1 P1_0         
#define led2 P1_1         
#define led3 P1_2         
#define led4 P1_3   

/*系统时钟初始化
-------------------------------------------------------*/
공허xtal_init(공허)
{
  잠 &= ~0x04;            //都上电
  반면(! (잠 그리고0x40));     //晶体振荡器开启且稳定
  CLKCON &= ~0x47;            32MHz 크리스털 발진기를 선택하세요
  잠 |=0x04;
}

/*LED初始化
-------------------------------------------------------*/
공허led_init(공허)
{
  P1SEL =0x00;              P1은 일반 I/O 포트입니다
  P1DIR |=0x0F;              P1.0 P1.1 P1.2 P1.3 출력
  
  LED1 =1;                  //关闭所有LED
  led2 =1;
  led3 =1;
  LED4 =1;
}

/*看门狗初始化
-------------------------------------------------------*/
공허watchdog_Init(공허)   
{
  WDCTL =0x00;              //看门狗模式,时间间隔一秒
  WDCTL |=0x08;            //启动看门狗
}

/*喂狗程序
-------------------------------------------------------*/
공허피트독(공허)   
{
  WDCTL =0xa0;
  WDCTL =0x50;
}

/*延时函数(小于1秒。读者可以想一下,若大于1秒,会出现什么情况)
-------------------------------------------------------*/
공허지연(공허)
{
  서명 없음 지능n;
  에 대해(n=50000; N>0; n--);
  에 대해(n=50000; N>0; n--);
  에 대해(n=50000; N>0; n--);
  에 대해(n=50000; N>0; n--);
  에 대해(n=50000; N>0; n--);
  에 대해(n=50000; N>0; n--);
  에 대해(n=50000; N>0; n--);
}

/*主函数
-------------------------------------------------------*/
공허주요(공허)
{
  xtal_init();  
  led_init();
  watchdog_Init();

  지연();
  LED1 =0;         //点亮led1
  
  반면(1)
  {
    피트독();      개 먹이 명령 (시스템이 가입 후 재설정되지 않고, 작은 불빛이 깜빡이지 않음; 주석이 붙으면 시스템은 계속 초기화되고, 작은 불빛은 1초마다 깜빡입니다)
  }
}

위 소스 코드를 보시다시피, Watch Dog의 운영 방식은 매우 간단하며, 전체 과정은 새로운 SFR만 포함합니다.WDCTL.다음은 중국 매뉴얼에 나오는 CC2430에 대한 구체적인 설명입니다:

감시견의 사용은 다음과 같이 요약할 수 있습니다:모드를 선택→ 타이머 간격을 선택→ 개에게 먹이를 주기→

(1) 모드 선택:

워치독 타이머는 "워치독 모드"와 "타이머" 모드 두 가지 모드를 가지고 있습니다.

타이머 모드에서는 일반 타이머와 동등하며, 타이머 간격에 도달하면 인터럽트가 발생합니다(ioCC2430.h 파일에 인터럽트 벡터가 WDT_VECTOR로 표시되어 있습니다); 워치독 모드에서는 예약된 간격에 도달하면 중단이 발생하지 않고 대신 리셋 신호가 시스템에 전송됩니다.

이 실험에서는 통과했다WDCTL. MODE=0게이트키퍼 모드를 선택하려면,

  (2) 예정된 간격 선택:

위 그림에서 보듯이, 선택할 수 있는 시계 주기는 네 가지이며, 검사의 편의를 위해 1s(즉, 순서)의 시간 구간을 선택합니다.WDCTL.INT=00)。

  (3) 개를 풀어주기:

순서WDCTL.EN=1워치독 타이머를 시작하려고요.

  (4) 개에게 먹이를 주기:

타이머가 시작되면 0부터 카운트를 시작해요. 개의 개수가 32768(즉, <1초)에 도달하기 전에, 다음과 같은 코드로 개에게 먹이를 주면:

  WDCTL =0xa0;
  WDCTL =0x50;  

그 후 타이머의 카운트 값이 0으로 해제되고, 다시 0x0000에서 카운트가 시작되어 리셋 신호를 보내지 못하게 됩니다. 이 신호는 개발판에 나타납니다: LED1은 항상 켜져 있고 깜빡이지 않습니다;

만약 개에게 먹이를 주지 않으면(즉, 이 코드를 주석 삭제하지 않고), 타이머 수가 32768에 도달하면 리셋 신호가 발송되고 프로그램이 처음부터 다시 실행됩니다. 이는 개발판에 나타납니다: LED1이 계속 깜빡이고, 깜빡임 간격은 1입니다. (참고: 개 먹이 프로그램은 위 코드와 엄격히 일치해야 하며, 순서가 뒤집히거나 틀렸거나 적게 쓰여도 0을 지우는 데 영향을 미치지 않습니다.) )

CC2430 팁
두 가지 추가 노트:
(1)워치독 모드워치독 타이머가 활성화되어 있을 경우, 0을 WDCTL.EN으로 설정하는 것은 유효하지 않습니다(즉, 이 비트는 타이머를 멈추는 역할을 할 수 없습니다);
(2)타이머 모드, 타이머를 지우기 위해 WDCTL.CLR[0]에 1을 쓸 수 있습니다; 활성화 비트 WDCTL.EN에 0을 쓰면 타이머가 멈추고, 활성화 비트에 1을 쓰면 타이머가 0x0000부터 다시 시작됩니다.


(4) 실험 결과:

FeedDog 기능을 추가하고 코드를 실행하면 LED1이 항상 켜져 있고(시스템이 리셋되지 않음),

FeedDog 함수에 주석을 지우고 코드를 실행해 보면 LED1이 1초 간격으로 깜빡임을 확인하는데(시스템은 1초마다 초기화됩니다).

3. 결론

이 절에서는 워치독 타이밍 회로의 원리와 사용법을 설명합니다. 실용에서는 높은 신뢰성이 요구될 경우 시스템에서 감시독을 사용할 수 있습니다. 시스템이 어떤 이유로(더 이상 개에게 먹이를 줄 수 없는) 다운되면, 아무도 먹이를 주지 않는 개가 짖습니다: "주인님, 이상이 있습니다, 이상이 있습니다! ”

무선 센서 네트워크의 경우, 실행 시 전력 소비는 성능 평가에서 매우 중요한 요소입니다. 다음 섹션에서는 CC2430 시스템 절전 상태와 그에 따른 중단된 기상 호출에 대해 논의하겠습니다.






이전의:지그비 여정 (7): 여러 중요한 CC2430 기본 실험 - DMA 전송
다음:지그비 여정 (9): 여러 가지 중요한 기본 CC2430 실험 - 체계적인 수면과 중단된 각성
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com