dtmf 신호의 수신기 및 송신기에 대한 연구. AVR의 DTMF(Dual-Tone Multi-Frequency) 생성기 이제 우리가 얻은 것을 살펴보겠습니다.

이 애플리케이션의 첫 번째 부분에서는 MSP430 마이크로컨트롤러를 사용하여 DTMF 신호를 생성하는 방법을 설명합니다. 이 경우에 사용된 가장 중요한 사양에 대해 설명하고, 적절한 아날로그 필터를 사용하여 구형파를 사용하여 사인파를 생성하는 이론적, 수학적 타당성을 제공합니다. 이 예제에는 MSP430 마이크로컨트롤러의 다양한 타이머 구성을 기반으로 구형파 신호를 생성하기 위한 테스트된 데모 프로그램도 포함되어 있습니다. 마지막 부분에서는 구형파 신호에서 DTMF 신호를 생성하기 위한 회로도를 제공합니다.

2 DTMF 신호 사양

약어 DTMF는 "Dual Tone Multi Frequency"를 의미하며 아날로그 통신 회선을 통해 전송하기 위해 서로 다른 주파수에서 숫자를 표현하는 방법입니다. 전화선. 표준을 개발할 때 조건이 고려되었습니다. 모든 주파수는 "음성" 범위에 있어야 하므로 전송 채널에 대한 요구 사항을 줄일 수 있습니다. 전화 네트워크는 전화 걸기 및 기타 정보를 위해 DTMF 신호를 사용합니다. 예를 들어 독일에서는 표준인 펄스 다이얼링 방식이 여전히 널리 사용되고 있음에도 불구하고 다이얼링 시간이 크게 증가하여 통신 회선에 비생산적인 부하가 발생합니다. 또한, 많은 추가적인 서비스톤 다이얼링을 통해서만 통신이 가능합니다. DTMF 방식을 사용하여 인코딩하는 경우 숫자 0~9 및 편지 AD, */E 및 #/F는 두 주파수의 조합을 나타냅니다.

빈도 1209Hz 1336Hz 1477Hz 1633Hz
697Hz 1 2 3
770Hz 4 5 6
852Hz 7 8 9
941Hz */이자형 0 #/에프

이 시스템에서 열은 "상위" 주파수 그룹(Hi-그룹: 1209-1633Hz)의 주파수를 나타내고 행은 "하위" 주파수 그룹(Lo-그룹: 697-941Hz)의 주파수를 나타냅니다. . 고조파의 영향을 제거하기 위해 음조 주파수가 선택됩니다. 주파수는 서로의 배수가 아니며 다른 주파수를 더하거나 빼서 DTMF 주파수를 얻을 수 없습니다. Deutsche Telekom 네트워크에서 다이얼러를 생성하려면 다음 사양이 필요합니다(Zulassungsvorschrift des Bundesamtes fur Post und Telekommunikation, BAPT 223 ZV 5(연방 우편 통신부의 공식 사양)에서 가져옴).

3 DTMF 신호 생성

위에서 설명한 대로 DTMF 신호는 아날로그이며 두 개의 독립적인 사인파로 구성됩니다. 따라서 그러한 신호만 생성하는 것은 불가능합니다. 디지털 방식으로. 디지털 신호는 ADC 및/또는 아날로그 필터를 사용하여 필요한 사인파 형태로 변환되어야 합니다.

3.1 구형파를 이용한 생성

구형파 신호를 사용하여 DTMF 신호를 생성하는 경우 소프트웨어와 하드웨어최소한. 주기 T를 갖는 모든 연속 신호는 다음과 같이 사인파와 코사인파의 무한한 합으로 구성된 푸리에 급수로 표현될 수 있습니다.

여기서 a0/2는 신호의 상수 구성 요소입니다. 가장 낮은 각주파수(w0)를 갖는 합산 요소를 주(기본) 고조파라고 하며, 나머지는 배음 또는 더 높은 고조파입니다.

마이크로컨트롤러를 사용하여 구현된 가장 간단한 연속 신호는 구형파이며 푸리에 계열의 형식은 다음과 같습니다.

전체 신호에 대한 각 주파수 구성요소의 기여도는 진폭 스펙트럼으로 가장 잘 설명됩니다(그림 2 참조).


쌀. 2: 구형파 신호의 진폭 스펙트럼

아날로그 필터를 사용하면 DC 성분과 고조파가 효과적으로 억제되는 반면 출력에서는 원래 구형파의 주파수와 동일한 주파수를 갖는 정현파 신호가 생성됩니다.

3.2 사행 생성 소프트웨어

사행 생성 프로그램은 다음 요구 사항을 충족해야 합니다.

  • 두 개의 독립적인 직사각형 신호를 합성할 수 있습니다.
  • 신호를 분리하려면 "상위"(Hi-Group) 및 "하위"(Lo-Group)에서 신호를 생성하는 두 개의 출력 핀이 필요합니다. 주파수 범위각기.
  • 소프트웨어는 약 65ms - 100ms 범위에서 필요한 신호 지속 시간을 설정할 수 있어야 합니다.

MSP430 시리즈 마이크로컨트롤러에는 구형파 신호를 생성할 수 있는 다양한 타이머가 내장되어 있습니다. '31x/'32x 제품군은 8비트 타이머와 타이머 포트를 사용하여 두 구형파 신호를 모두 생성합니다. 이 프로그램 1.048MHz와 동일한 MCLK 주파수에서 테스트되었습니다. '33x 제품군의 Timer_A는 두 가지 필수 신호를 독립적으로 생성할 수 있습니다. 두 번째 프로그램은 이 타이머를 사용하여 구형파를 생성하고 모든 MCLK 주파수와 함께 작동합니다. 두 프로그램 모두 아래에서 자세히 설명합니다.

3.2.1 8비트 타이머 및 타이머 포트를 사용하여 구형파 생성

그림에서. 도 3은 DTMF 신호 생성을 위한 초기화 절차의 흐름도이다. 두 주파수를 합성하기 위해 타이머 포트와 8비트 타이머 카운터가 사용됩니다. 이들 각각은 필요한 주파수를 정확하게 합성하는 데 필요한 프로그래밍 가능 카운터 레지스터입니다. 타이머 포트 카운터가 단일 16비트 타이머에 계단식으로 연결되고 시스템 주파수 MCLK에서 클록되면 높은 정확도로 높은 범위의 주파수를 생성할 수 있습니다. 인터럽트가 발생하면 해당 출력이 전환되고 두 8비트 카운터 레지스터가 모두 재설정됩니다. 로드된 값은 RAM의 두 변수에 저장되어 다른 작업을 위한 내부 레지스터를 저장합니다.

낮은 범위의 주파수는 8비트 타이머에 의해 생성됩니다. 이 타이머의 카운터 레지스터 폭은 8비트이므로 세 번째 인터럽트마다 필요한 출력 핀의 레벨 변경이 발생하여 동일한 주파수 카운터가 생성될 수 있습니다.

두 개의 타이머 출력 - 포트는 서로 다른 주파수의 두 개의 구불구불한 형태를 형성하는 데 사용됩니다.

쌀. 3 DTMF 신호 생성을 위한 초기화 절차 흐름도

초기화 절차는 한 번만 수행됩니다. 완료 후 전송된 문자의 16진수 값을 RAM의 전역 변수에서 읽습니다. 높고 낮은 DTMF 톤을 형성하는 두 개의 주파수가 두 테이블에서 생성되면 두 타이머를 모두 초기화하고 시작하기만 하면 됩니다. 전송 기간은 "낮은" 주파수의 반주기를 계산하여 제어되며 추가 테이블에서 읽혀집니다. 이 절차가 완료되면 폴링 기능으로 돌아갑니다. 해당 인터럽트 처리 루틴은 포트 핀을 전환합니다. 이 과정은 그림 1에 설명되어 있습니다. 4와 5.

타이머 포트의 작업에는 로그 기록만 포함됩니다. 레벨을 포트 출력으로 설정하고 RAM에서 카운터를 다시 로드하는 반면, 8비트 타이머의 작동은 약간 더 복잡한 구조를 가지고 있습니다. 즉, 인터럽트에 대한 각 입력은 카운터 레지스터에 의해 계산됩니다. 출력은 세 번의 인터럽트 후에만 상태를 변경할 수 있습니다. 또한 각 반주기도 계산됩니다. 특정 반주기 수에 도달하면 생성이 중지됩니다.


쌀. 4 블록 – 8비트 타이머의 인터럽트 회로(Lo-Group)


쌀. 5 블록 – 타이머 포트 인터럽트 회로(Hi-Group)

; 사용자 정의 정의 FLLMPY equ 32 ; 1.048MHz의 주파수 체배기 FLL TCLK equ FLLMPY*32768 ; TCLK: FLLMPY x f 석영 DL equ 85 ; DTMF 신호 지속 시간(65..100ms) LO_OUT equ 02h ; "낮은" 주파수 출력 HI_OUT equ 04h ; 고주파수 출력 RCOUNT equ r14 ; 길이 카운터 DTMF RTEMP equ r15 ; 서비스 레지스터.글로벌 DTMF_NR ; RAM의 전역 변수; DTMF 번호(0..F)의 경우; 정의 RAM.even .bss DTMF_TL ; 짝수 주소 alignment.bss DTMF_TH .bss DTMF_NR ; RAM의 전역 변수; DTMF 번호(0..F)의 경우.even ; 8비트 타이머에 대한 정의 TCCTL EQU 42H TCPLD EQU 43H TCDAT EQU 44H ; 범용 타이머 포트 TPCTL equ 04bh에 대한 정의; 타이머 포트 제어 TPCNT1 equ 04ch ; 타이머 포트 카운터 1 TPCNT2 equ 04dh ; 타이머 포트 카운터 2 TPD equ 04eh ; 타이머 포트 데이터 TPE equ 04fh ; 타이머-포트-해상도.text ; DTMF 빈도표: 표에는 다음이 포함됩니다. 한 반주기에 대한 MCLK 주기 수입니다. ; "상위" 주파수에 대한 표입니다. 수정 사항이 추가되었습니다. 인터럽트 진입 시간을 고려 DTMF_HI .word 0ffffh-(TCLK/(1336*2))+25 ; 0 .word에 대한 고주파수 0ffffh-(TCLK/(1207*2))+28 ; 1 .word에 대한 고주파수 0ffffh-(TCLK/(1336*2))+25 ; 2 .word의 고주파수 0ffffh-(TCLK/(1477*2))+24 ; 3워드의 고주파수 0ffffh-(TCLK/(1207*2))+28 ; 4 .word에 대한 고주파수 0ffffh-(TCLK/(1336*2))+25 ; 5 .word에 대한 고주파수 0ffffh-(TCLK/(1477*2))+24 ; 6 .word의 고주파수 0ffffh-(TCLK/(1207*2))+28 ; 7 .word에 대한 고주파수 0ffffh-(TCLK/(1336*2))+25 ; 8 .word의 고주파수 0ffffh-(TCLK/(1477*2))+24 ; 9 .word 0ffffh-(TCLK/(1633*2))+22 에 대한 고주파수 ; A .word의 고주파수 0ffffh-(TCLK/(1633*2))+22 ; B .word의 고주파수 0ffffh-(TCLK/(1633*2))+22 ; C .word의 고주파수 0ffffh-(TCLK/(1633*2))+22 ; D .word의 고주파수 0ffffh-(TCLK/(1207*2))+28 ; * .word 0ffffh-(TCLK/(1477*2))+24 에 대한 고주파수; #에 대한 빈도가 높음; "낮은" 주파수에 대한 표 DTMF_LO .byte 0ffh-(TCLK/(941*2*3)) ; 0 .byte 0ffh-(TCLK/(697*2*3)) 에 대한 낮은 주파수; 1 .byte에 대한 저주파 0ffh-(TCLK/(697*2*3)) ; 2 .byte 0ffh-(TCLK/(697*2*3)) 에 대한 저주파; 3 .byte 0ffh-(TCLK/(770*2*3)) 에 대한 저주파; 4 .byte 0ffh-(TCLK/(770*2*3)) 에 대한 저주파; 5 .byte 0ffh-(TCLK/(770*2*3)) 에 대한 저주파; 6 .byte 0ffh-(TCLK/(853*2*3)) 에 대한 저주파; 7 .byte 0ffh-(TCLK/(853*2*3)) 에 대한 저주파; 8 .byte 0ffh-(TCLK/(853*2*3)) 에 대한 저주파; 9 .byte 0ffh-(TCLK/(697*2*3)) 에 대한 저주파; A .byte 0ffh-(TCLK/(770*2*3)) 에 대한 저주파; B .byte 0ffh-(TCLK/(853*2*3)) 에 대한 낮은 주파수; C의 낮은 주파수 .byte 0ffh-(TCLK/(941*2*3)) ; D .byte 0ffh-(TCLK/(941*2*3)) 에 대한 저주파; *.byte 0ffh-(TCLK/(941*2*3)) 에 대한 낮은 주파수; #에 대한 낮은 빈도; 신호 기간 테이블 DTMF_L .byte 2*941*DL/1000 ; 0 .byte 2*697*DL/1000 의 절반 주기; 1 .byte 2*697*DL/1000 의 절반 주기; 2 .byte 2*697*DL/1000 의 절반 주기; 3 .byte 2*770*DL/1000 의 절반 주기; 4 .byte 2*770*DL/1000 의 절반 주기; 5 .byte 2*770*DL/1000 의 절반 주기; 6 .byte 2*852*DL/1000의 절반 주기; 7 .byte 2*852*DL/1000 의 절반 주기; 8 .byte 2*852*DL/1000의 절반 주기; 9 .byte 2*697*DL/1000 의 절반 주기; A .byte 2*770*DL/1000 의 절반 주기; B .byte 2*852*DL/1000의 절반 주기; C .byte 2*941*DL/1000의 절반 주기; D .byte 2*941*DL/1000 의 절반 주기; *.byte 2*941*DL/1000 의 반주기; # ;********************************************에 대한 반주기 ********** ******************************* ; DTMF-TX DTMF 서브루틴 ;******************************************** ******************************** DTMF_TX mov.b DTMF_NR,RTEMP ; 임시 레지스터에 숫자를 저장합니다. mov.b DTMF_L(RTEMP),RCOUNT ; 기간 카운터 저장, DTMF-Lo 주파수 mov.b #0a8h,&TCCTL에 대한 8비트 타이머 준비; MCLK mov.b의 클록 DTMF_LO(RTEMP),&TCPLD ; 등록 준비; mov.b #000,&TCDAT 미리 로드; 레지스터에서 카운터를 로드합니다. bis.b #008h,&IE1을 미리 로드합니다. 인터럽트를 활성화합니다. 8비트 타이머에서; DTMF-Hi 주파수 rla r15 에 대한 타이머 포트를 준비하는 단계; * 16비트 테이블의 경우 2 mov DTMF_HI(RTEMP),&DTMF_TL ; 고주파수에 대한 단어 저장 mov #003,RTEMP ; 8비트 타이머용 카운터 bis.b #008h,IE2 ; 인터럽트를 활성화합니다. 타이머 포트에서 mov.b &DTMF_TH,&TPCNT2 ; TC2 mov.b &DTMF_TL,&TPCNT1에 상위 바이트 로드 ; TC1 bis.b #080h,&TPD에 하위 바이트 로드 중; 16비트 타이머 활성화 bis.b #HI_OUT+LO_OUT,&TPE ; DTMF-Hi/Lo 출력 활성화 mov.b #090h,&TPCTL ; 타이머 ret 활성화 ;************************************************ ******** ******************************* ; 타이머 포트 인터럽트;********************************************* *** ******************************* TP_INT xor.b #HI_OUT,&TPD ; DTMF-Hi 출력 반전 mov.b &DTMF_TH,&TPCNT2 ; 선배 바 로딩 중

3.2.2 1 Timer_A를 이용한 구형파 생성

이 DTMF 신호 생성 루틴은 Timer_A만 사용하여 원하는 주파수를 모두 구형파합니다. 조립 과정에서는 MCLK 주파수 값과 관계없이 타이머가 프로그램을 사용할 수 있도록 적절한 값을 계산합니다. 출력 신호의 지속 시간은 밀리초 단위의 DL 상수로 지정됩니다.

; 하드웨어 정의; FLLMPY .equ 32 ; 1.048MHz의 주파수 체배기 FLL TCLK .equ FLLMPY*32768 ; TCLK: FLLMPY x f 석영 DL .equ 82 ; DTMF 신호 지속 시간(ms); (65..100ms) STACK .equ 600h ; 스택 초기화 주소. RAM 정의; STDTMF .equ 202h ; Hi 및 Lo 주파수 상태 TIM32B .equ 204 ; 타이머 레지스터 확장 LENGTH .equ 206h ; DTMF 기간 카운터; .text 0F000h ; 프로그램의 시작 주소입니다. ; Timer_A 초기화: MCLK, 연속 모드, 인터럽트 활성화; 타이머 출력 모듈 준비 Timer_A MCLK = 1.048 MHz (자동) ; INIT MOV #STACK,SP ;스택 포인터 초기화 CALL #INITSR ;승수 초기화; FLL 주파수 및 RAM MOV #ISMCLK+TAIE+CLR,&TACTL ; 타이머 초기화 MOV.B #TA2+TA1,&P3SEL ; 포트 P3.5/4 CLR TIM32B의 출력 TA2 및 TA1; 확장 타이머 레지스터 지우기 BIS #MCONT,&TACTL ; 타이머 시작 Timer_A EINT ; 일반 인터럽트 활성화 MAINLOOP ... ; 메인 루프; ;Keypress: SDTMF에는 테이블 오프셋이 포함됩니다. 상위 및 하위 바이트의 2개 주파수(0..6,0..6)에 대해; MOV&TAR,R5 ; 즉시 시작하려면: ADD FDTMFLO,R5 ; 더 짧은 시간에 대한 오프셋 MOV R5,&CCR1 ; 0.71ms 후 첫 번째 상태 변경 MOV R5,&CCR2 ; 1/(2x697) = 0.71ms MOV #OMT+CCIE,&CCTL1 ; 출력 반전, 비트 인터럽트. MOV #OMT+CCIE,&CCTL2 ; 반전 출력, 인터럽트 비트 MOV.B STDTMF,R5 ; 82ms 카운터 RRA R5 ; 낮은 주파수 상태 변경 횟수 MOV.B DTMFL(R5),LENGTH ; 신호 지속 시간 동안... ; 프로그램 지속; ; CCR0의 인터럽트 핸들러(여기에서는 사용되지 않음) TIMMOD0 ... 레티 ; ; 캡처 비교 레지스터 1..4의 인터럽트 핸들러; TIM_HND 추가 &TAIV,PC ; 가장 높은 요청을 처리합니다. RETI 우선순위; 인터럽트 요청 없음: RETI JMP HCCR1 ; CCR1로부터의 요청(DTMF 저주파) JMP HCCR2 ; CCR2로부터의 요청(DTMF 고주파수) JMP HCCR3 ; CCR3 JMP HCCR4의 요청; CCR4의 요청; 티모브 INC TIM32B; Timer_A를 32비트 RETI로 확장; ; DTMF 저주파: TA1은 출력 장치 1의 출력을 반전시킵니다. 각 상태 변화는 신호 지속 시간을 제어하기 위해 계산됩니다. HCCR1 푸시 R5; 사용된 레지스터 저장 MOV.B STDTMF,R5 ; 저주파 상태 DTMF ADD FDTMFLO(R5),&CCR1 ; 반주기 기간 추가 DEC.B LENGTH ; DL 신호 기간이 완료되었습니까? JNZ 타렛 ; 아니요; ; 예, DTMF 신호를 중지합니다. 인터럽트를 비활성화합니다. 빅 #OMRS+OUT+CCIE,&CCTL1 ; TA1 BIC #OMRS+OUT+CCIE,&CCTL2 재설정; TA2 TARET POP R5 재설정; R5 RETI를 복원하십시오. 인터럽트에서 복귀; ; 고주파수 DTMF: TA2는 출력 장치 2의 출력을 반전시킵니다. HCCR2 푸시 R5; 사용된 MOV 레지스터를 저장합니다. B STDTMF+1,R5 ; 고주파 상태 DTMF ADD FDTMFHI(R5),&CCR2 ; 반주기 기간 추가 POP R5 ; R5 RETI를 복원하십시오. 인터럽트에서 복귀; HCCR3 ... ;레지스터 CCR3에 의해 제어되는 작업 RETI HCCR4 ... ;레지스터 CCR4 RETI에 의해 제어되는 작업 ; ; DTMF 주파수 테이블: 테이블에는 다음이 포함됩니다. 반주기당 MCLK 주기 수. 조정된 값; 조립 공정 중 유효 주파수 MCLK; 그리고 최소값으로 반올림 가능한 실수주파수; FDTMFLO .단어 ((TCLK/697)+1)/2 ; 저주파 DTMF 697Hz .word ((TCLK/770)+1)/2 ; 770Hz .워드((TCLK/852)+1)/2 ; 852Hz .워드 ((TCLK/941)+1)/2 ; 941Hz FDTMFHI .word ((TCLK/1209)+1)/2 ; 고주파 DTMF1209Hz .word ((TCLK/1336)+1)/2 ; 1336Hz .워드 ((TCLK/1477)+1)/2 ; 1477Hz .워드 ((TCLK/1633)+1)/2 ; 1633Hz; ; 이 표에는 DL 신호 기간 동안의 반주기 수가 포함되어 있습니다(ms). ; 계산에는 더 낮은 DTMF 주파수가 사용됩니다. DTMFL .byte 2*697*DL/1000 ; 반주기 수.byte 2*770*DL/1000 ; DL의 경우 ms.byte 2*852*DL/1000 ; .byte 2*941*DL/1000 ; ; .sect "TIMVEC",0FFF0h ; 타이머 인터럽트 벡터 Timer_A .word TIM_HND ; 모듈 1..4의 벡터 타이머.단어 TIMMOD0 ; 타이머 모듈 0 vector.sect "INITVEC",0FFFEh ; 벡터 초기화.word 초기화

아래는 약간 더 빠른 솔루션입니다. 하지만 더 많은 RAM이 필요하기 때문에... 테이블에서 얻은 데이터는 매번 다시 계산되지 않고 간단히 말해서 RAM DTMFLO 및 DTMFHI에 저장됩니다. 읽기는 Timer_A 타이머 인터럽트 루틴에서 수행됩니다. 사용된 테이블은 이전 예에 표시된 테이블과 동일합니다.

FLLMPY .equ 32 ; 1.048MHz의 주파수 체배기 FLL TCLK .equ FLLMPY*32768 ; TCLK: FLLMPY x f 석영 DL .equ 82 ; DTMF 신호 지속 시간; ms 단위(65..100ms) STDTMF .equ 202h ; Hi 및 Lo 주파수 상태 TIM32B .equ 204 ; 타이머 레지스터 확장 LENGTH .equ 206h ; DTMF 기간 카운터 DTMFLO .equ 208h ; 더 낮은 주파수 DTMFHI .equ 20Ah의 반주기; 상위 주파수 반주기 STACK .equ 600h ; 스택 초기화 address.text 0F000h ; 프로그램의 시작 주소입니다. Timer_A 초기화: MCLK, 연속 모드, 인터럽트 활성화; 타이머 출력 모듈 준비 Timer_A MCLK = 1.048 MHz (자동) ; INIT MOV #STACK,SP ; 스택 포인터 초기화 CALL #INITSR ; 승수 초기화; FLL 주파수 및 RAM MOV #ISMCLK+TAIE+CLR,&TACTL ; 타이머 시작 MOV.B #TA2+TA1,&P3SEL ; 포트 P3.5/4 CLR TIM32B의 출력 TA2 및 TA1; 확장 타이머 레지스터 지우기 BIS #MCONT,&TACTL ;타이머 시작 Timer_A EINT ; 일반 인터럽트 활성화 MAINLOOP ... ; 메인 루프, Keypress: SDTMF에는 테이블 오프셋이 포함되어 있습니다. 상위 및 하위 바이트의 2개 주파수(0..6,0..6)에 대해; MOV&TAR,R5 ; 즉시 시작하려면 ADD FDTMFLO,R5 ; 더 짧은 시간에 대한 오프셋 MOV R5,&CCR1 ; 0.71ms 후 첫 번째 상태 변경 MOV R5,&CCR2 ; 1/(2x697) = 0.71ms; ; DTMF 주파수에 대한 두 개의 사이클 카운트를 가져옵니다. MOV.B STDTMF+1,R5 ; 고주파 DTMF MOV FDTMFHI(R5),DTMFHI ; 반주기 기간 MOV.B STDTMF,R5 ; 저주파 DTMF MOV DTMFLO(R5),DTMFLO ; 반주기 기간; ; 기간 카운터 RRA R5 ; 바이트 인덱스 준비 MOV.B DTMFL(R5),LENGTH ; 낮은 주파수 상태 변경 횟수 MOV #OMT+CCIE,&CCTL1 ; 출력 반전, 비트 인터럽트. MOV #OMT+CCIE,&CCTL2 ; 출력 반전, 비트 인터럽트. ... ; 메인 루프로 돌아갑니다. ; CCR0의 인터럽트 핸들러(여기에서는 사용되지 않음) TIMMOD0 ... 레티 ; ; 캡처 비교 레지스터 1..4의 인터럽트 핸들러; TIM_HND 추가 &TAIV,PC ; 가장 높은 요청을 처리합니다. RETI 우선순위; 인터럽트 요청 없음: RETI JMP HCCR1 ; CCR1로부터의 요청(DTMF 저주파) JMP HCCR2 ; CCR2로부터의 요청(DTMF 고주파수) JMP HCCR3 ; CCR3 JMP HCCR4의 요청; CCR4의 요청; 티모브 INC TIM32B; Timer_A를 32비트 RETI로 확장; ; DTMF 저주파: TA1은 출력 장치 1의 출력을 반전시킵니다. HCCR1 추가 DTMFLO,&CCR1 ; 반주기 기간 추가 DEC.B LENGTH ; DL 신호 기간이 완료되었습니까? JNZ 타렛 ; 아니요; ; 예, DTMF 신호를 중지합니다. 인터럽트를 비활성화합니다. 빅 #OMRS+OUT+CCIE,&CCTL1 ; TA1 BIC #OMRS+OUT+CCIE,&CCTL2 재설정; TA2 TARET RETI 재설정; 인터럽트에서 복귀; 고주파수 DTMF: TA2는 출력 장치 2의 출력을 반전시킵니다. HCCR2 추가 DTMFHI,&CCR2 ; 반주기 기간 추가 RETI ; 인터럽트에서 복귀; HCCR3. .. ;레지스터 CCR3 RETI HCCR4에 의해 제어되는 태스크 ... ;레지스터 CCR4 RETI에 의해 제어되는 태스크 ; ; 인터럽트 테이블과 벡터는 이전 예에 표시된 것과 동일합니다.

3.3 DTMF 신호 생성을 위한 하드웨어

위에서 언급한 바와 같이, 주파수 범위 200Hz~4600Hz에서 전송 주파수의 신호 레벨은 외부 신호(잡음) 레벨보다 최소 20dB 높아야 합니다. 또한, 사양에 따라 '상위' 그룹과 '하위' 그룹의 신호는 서로 다른 레벨을 가져야 하므로 각 신호에는 자체 필터가 필요합니다. 정현파 주파수 진폭은 푸리에 급수에서 얻을 수 있습니다.

아날로그 필터를 설계할 때 차단 주파수를 선택하려면 다음을 기준으로 다음 요구 사항을 준수해야 합니다.

  • 왜냐하면 "하위" 그룹의 주파수와 "상위" 그룹의 주파수 조합 가능성을 보장해야 하며, 그룹의 최저 주파수와 최고 주파수 사이의 레벨 차이가 3dB를 초과해서는 안 됩니다.
  • 그룹(f1)의 가장 낮은 주파수에 대해 고조파 억제(3f1)는 20dB보다 나빠서는 안 됩니다. 이 조건의 충족은 그룹의 낮은 빈도에 대해 가장 중요합니다. 필터 차단 주파수에서 최대한 멀리 떨어져 있습니다.

이 공식은 n차 고역 통과 버터워스 필터의 출력에서 ​​절대값의 제곱을 설명합니다.

이 공식은 주파수에 대한 버터워스 고역 통과 필터 이득의 의존성을 나타냅니다. 매개변수 fg와 n은 각각 필터의 ​​차단 주파수와 차수를 결정합니다.

우선, 위 요구사항의 준수를 고려하여 필요한 필터 차수를 계산해야 합니다.

첫 번째 조건을 충족하려면 그룹의 최저 주파수와 최고 주파수의 절대값의 제곱 비율이 3dB를 넘지 않아야 합니다.

두 번째 조건은 주파수 f1과 3f1의 절대값의 제곱 비율이 10/3보다 크면 자동으로 충족됩니다. 이 경우 직사각형 신호의 세 번째 고조파는 1/3보다 작습니다(푸리에 참조). 시리즈 및 그림 2):

두 그룹의 주파수를 계산한 결과 필요한 필터 차수 n=1.15를 얻었습니다. 따라서 연산 증폭기에 구축할 수 있는 2차 필터로 요구 사항을 충족할 수 있습니다. 3차 필터를 사용하는 경우 두 개의 추가 요소만 필요합니다. 그러나 이렇게 하면 구성 요소 매개변수의 분산에 대한 요구 사항이 줄어듭니다. 차단 주파수가 다음 제한 내에 있으면 위의 요구 사항이 모두 충족됩니다.

하위 그룹 fg>880Hz fg<1418 Гц
상위 그룹 fg>1527Hz fg<2460 Гц

차단 주파수가 최소이면 최대 고조파 감소가 발생합니다. 그러나 이 경우 그룹 내 최저 주파수와 최고 주파수의 차이는 3dB입니다. 가능한 가장 높은 차단 주파수에서는 레벨 차이가 최소화되지만 고조파 성분은 20dB만 억제됩니다.

필터를 계산할 때 고조파 억제에 더 많은 주의를 기울였으며 그룹 내 레벨 차이는 2dB로 고정되었습니다. 결과적으로 차단 주파수는 977Hz와 1695Hz입니다. 결과적인 고조파 억제는 요구 사항을 크게 초과합니다. 그룹 내 주파수 수준의 차이는 사용된 구성요소 매개변수의 확산과 관련된 차단 주파수 편차의 경우에도 요구 사항 내에 있습니다. 필터 요소의 값을 계산할 때 E12 시리즈의 표준 값에 대한 최대 근접성을 기준으로 저항이 선택되었습니다.

필터 출력에서는 고조파가 크게 억제된 2개의 정현파 신호가 생성됩니다. 이러한 신호를 결합하기 위해 추가 가산기가 도입됩니다.

따라서 단 3개의 연산 증폭기와 소수의 수동 소자를 사용하여 상당한 컴퓨팅 리소스를 사용하지 않고도 마이크로 컨트롤러를 사용하여 DTMF 신호를 생성할 수 있습니다.

시뮬레이터 프로그램을 이용하여 대략적인 값을 확인하였습니다. 필터의 응답은 계산된 주파수 응답과 매우 밀접하게 일치합니다.


쌀. 6: 3차 필터 출력에서 ​​697Hz 주파수를 갖는 직사각형 신호의 진폭 스펙트럼

그림에서. 그림 6은 3차 필터를 통과한 697Hz 주파수의 직사각형 신호의 진폭 스펙트럼을 보여줍니다. 그림에서 볼 수 있듯이 3차 및 5차 고조파(2091Hz 및 3485Hz)가 크게 감쇠되었습니다(-25.6dB).


쌀. 7: 3차 필터 출력에서 ​​941Hz 주파수를 갖는 직사각형 신호의 진폭 스펙트럼

그림에서. 그림 7은 주파수가 941Hz인 구형파 신호의 스펙트럼을 보여줍니다. 우리가 관심 있는 주파수 영역인 최대 4600Hz에는 고조파가 하나만 있습니다. 필터를 통과한 후 이 2823Hz 고조파는 크게 감쇠됩니다(-27.9dB). 그룹 내 최저 주파수와 최고 주파수 간의 레벨 차이는 1.9dB를 초과하지 않습니다.

매개변수의 변동성이 큰 저가형 부품을 사용하기 위해 추가 모델링을 수행하였다. 시뮬레이션 결과, 저항과 커패시터 값의 허용 확산은 10%인 것으로 나타났습니다.


그림 8: 히스토그램 – 그룹 내 신호 레벨 분포


그림 9: 히스토그램 - 고조파 억제

그림에서. 도 8 및 도 9는 몬테카를로 분석을 이용하여 얻은 히스토그램을 나타낸다. 이 경우 성분값은 10% 범위 내에서 무작위로 변했습니다. 100회 반복 후 모든 시뮬레이션 필터의 결과가 히스토그램으로 표시됩니다. 그림의 히스토그램에서 그림 8은 그룹 내 주파수 간의 레벨 차이를 보여줍니다. 최소 주파수와 최대 주파수 사이의 최대 허용 차이인 3dB는 어떠한 경우에도 달성되지 않았습니다. 평균값은 1.6dB로 계산된 값인 2dB보다 약간 더 좋습니다.

그림에서. 그림 9는 "낮은" 주파수 그룹에 대한 고조파 감쇠를 보여줍니다. 모든 경우에 필요한 값 20dB가 달성되며 평균값은 약 27dB입니다. 최악의 경우 고조파는 24.2dB만큼 억제됩니다.

"낮은" 주파수 그룹의 필터에 대해 계산된 값은 "상위" 주파수 그룹의 필터에 대해서도 수행됩니다.

두 필터 모두 동일한 회로를 가지고 있습니다. 유일한 차이점은 상위 및 하위 주파수 그룹에 대한 필터의 차단 주파수에 있습니다. R1과 C1은 1차 고역 통과 필터를 형성합니다. 왜냐하면 회로의 입력 저항도 R1에 따라 달라지므로 이 요소의 값이 너무 작아서는 안 됩니다. 그렇지 않으면 마이크로컨트롤러 출력이 과부하되고 구형파가 왜곡됩니다. 이 경우 상호 변조 왜곡으로 인한 추가 주파수가 신호에 추가되어 신호 대 잡음비에 부정적인 영향을 미칩니다.

고차 필터의 전달 함수는 수동 부품만으로는 얻을 수 없습니다.

따라서 2차 필터에는 연산 증폭기가 포함되어야 합니다. 능동 필터 이득은 저항 R1-1 및 R1-2를 사용하여 0.2로 설정됩니다. 보시다시피 신호가 다소 약해졌습니다. 이는 연산 증폭기의 과부하를 방지하는 데 필요합니다. 구형파 신호의 기본 정현파 고조파의 피크 진폭은 구형파 신호 자체의 진폭을 초과합니다(푸리에 계열 및 그림 2 참조). 추가 가산기는 필요한 출력 레벨을 조정합니다. 직사각형 신호의 일정한 성분으로 인해 연산 증폭기의 동작 지점은 Vcc/2 레벨로 설정됩니다(푸리에 계열 및 그림 2 참조). 이 경우 입력 분배기 R1-1/R1-2로 상수 성분을 제거할 수 없습니다. DC 전압으로 OS 회로를 분리하기 위해 커패시터 C3이 사용됩니다.

아날로그 필터의 각 출력에서는 각각 상위 및 하위 주파수 그룹의 신호가 생성됩니다. 추가 가산기에서는 이러한 신호가 추가됩니다. 이 회로 요소에서는 저항 R4 및 R5를 사용하여 전체 신호의 "낮은" 주파수와 "높은" 주파수 사이의 관계와 출력 신호 레벨을 설정할 수 있습니다. 따라서 출력 진폭은 여러 국가의 다양한 요구 사항에 맞게 쉽게 조정할 수 있습니다.

부품 값을 계산할 때 커패시터 값은 평소와 같이 고정되었으며 이에 따라 저항 값이 계산되었습니다. 이 회로에는 표준 E12 시리즈의 커패시터와 저항기가 10% 확산되어 사용되었습니다.

그림에서. 그림 10은 아날로그 필터와 가산기의 개략도를 보여줍니다.


쌀. 10: 개략도추가 가산기가 있는 아날로그 필터

커패시터 C1-1 및 C1-2는 Vcc/2 작동 지점에서 두 신호를 결합합니다. 이러한 요소에 대해 너무 큰 값을 선택하면 안 됩니다. 이는 저주파 저조파를 제거하는 저역 통과 필터 요소입니다. 필터 커패시터 C5는 기준 전압 잡음을 제거합니다. 피드백 저항 R6에 병렬로 연결된 추가 커패시터 C6은 1차 고역 통과 필터를 형성합니다. 가장 낮은 필터 차단 주파수를 선택한 경우 고주파 상호 변조 간섭을 추가로 필터링하면 출력 신호의 품질이 향상되지만 "상위" 그룹의 최고 주파수가 어느 정도 감쇠됩니다. 어떤 경우에는 1633Hz의 가장 높은 DTMF 주파수를 생성할 필요가 없습니다. 이는 서비스 심볼 A~D를 형성하는 데에만 사용되며, 필터 차단 주파수를 낮춤으로써 신호 대 잡음 비율을 향상시킬 수 있습니다. 따라서 차단 주파수를 높이면 고주파 간섭 수준이 높아지지만 동시에 DTMF 신호의 최고 주파수 구성 요소에 대한 부정적인 영향은 줄어듭니다.

4 DTMF 송신기 신호 연구 결과

아래 스펙트로그램(그림 11 및 12)은 다양한 주파수에서 DTMF 송신기의 출력 신호를 보여줍니다. 그림에서. 그림 11은 기호 "1"의 진폭 스펙트럼을 보여줍니다. 전송에 필요한 주파수(697Hz 및 1207Hz)는 각각 -10.5dB 및 -8.5dB 수준입니다. 2091Hz와 3621Hz의 고조파는 거의 30dB 억제됩니다. "D" 기호를 전송하기 위해 두 개의 가장 높은 주파수인 941Hz와 1633Hz가 생성됩니다. 그림에서 볼 수 있듯이. 도 12에서, 저주파 레벨은 -12dB이고, 고주파수 레벨은 -11dB이다. 해당 고조파는 30dB 이상 감쇠됩니다. 따라서 측정된 값은 시뮬레이션 결과 및 사양 요구 사항에 해당합니다.


쌀. 11: 기호 "1"의 진폭 스펙트럼: 697 및 1207Hz


쌀. 12: 기호 "D"의 진폭 스펙트럼: 941 및 1633Hz

생성된 구형파 신호의 절대 주파수 정확도는 두 개의 서로 다른 타이머를 사용할 때 달성할 수 없습니다. 결과는 두 주파수의 조합과 사용된 타이머 유형에 따라 달라집니다. 그 이유는 타이머 인터럽트 충돌 때문입니다. 그러나 ±1.8%의 요구 정확도는 큰 여유로 충족됩니다.

8비트 타이머와 타이머 포트 타이머가 MCLK 1.048MHz의 시스템 주파수에서 사용되는 경우 "하위" 그룹의 주파수는 0.3%보다 나쁘지 않은 정확도로 생성됩니다. 실제로 "상위" 그룹의 빈도에 대해서는 0.5% 이하의 편차가 얻어졌습니다.

유일한 예외는 가장 높은 주파수가 생성되는 DTMF 문자 "D"입니다. 결과적으로 이 조합에서 "상위" 그룹 1633Hz의 주파수 편차는 -0.97%입니다.

이러한 예외 없이 1633Hz의 최고 주파수도 0.5% 이상의 정확도로 생성됩니다. 다양한 주파수에 대한 최대 편차가 표에 나와 있습니다.

Timer_A를 사용하여 주파수를 생성하는 경우 오류는 사용된 MCLK 주파수에 따라 달라집니다.

MCLK, MHz 1,048 2,096 3,144 3,800
승수 FLL 32 64 96 116
697Hz +0,027% +0,027% +0,027% +0,027%
770Hz -0,015% -0,016% +0,033% -0,016%
852Hz +0,059% -0,023% +0,005% +0,031%
941Hz +0,029% +0,029% +0,029% +0,035%
1209Hz -0,079% +0,036% +0,036% -0,003%
1336Hz +0,109% -0,018% +0,025% +0,025%
1447Hz -0,009% -0,009% -0,009% -0,009%
1633Hz +0,018% +0,018% +0,018% +0,018%

5. 결론

이 예제의 소프트웨어는 매우 간단하며 약 300바이트를 차지하며 소량의 RAM과 ROM이 필요합니다. 내장된 타이머 모듈 덕분에 CPU 부하를 낭비하지 않고 필요한 주파수가 높은 정확도로 생성됩니다. 8비트 타이머와 타이머/포트를 생성에 사용하는 구성에서 인터럽트 루틴은 CPU 리소스의 약 12%를 차지합니다. Timer_A 타이머에 의해 주파수가 생성되는 경우 인터럽트 루틴 처리를 위한 CPU 부하가 6%로 감소됩니다. 결과적으로 DTMF 신호가 전송되는 동안 다른 작업이 실행될 수도 있고, 전류 소비를 줄이기 위해 CPU가 저전력 모드로 전환될 수도 있습니다.

구형파 신호를 사용하여 DTMF 신호를 생성하기 위해 설명된 모듈의 우수한 기능은 하드웨어 회로 설계를 통해 입증됩니다. 왜냐하면 회로에서 다양한 매개변수를 가진 구성 요소를 사용할 수 있으며 이러한 솔루션의 가격은 매우 낮습니다. 모든 사양 요구 사항이 대부분 충족되므로 MSP430을 제어 컨트롤러로 사용하는 계측기에는 별도의 DTMF 신호 발생기 모듈이 필요하지 않습니다.

특별한 경우에 추가 연산 증폭기를 사용하여 신호 대 잡음비를 높여야 하는 경우 상호 변조 왜곡을 더욱 억제하도록 필터를 구성할 수 있습니다. 이러한 추가 연산 증폭기는 DIL14 패키지의 쿼드 연산 증폭기에 이미 있습니다.

6개의 링크

Bundesamt fur Post und Telekommunikation(우편 통신 연방 사무소): BAPT 223 ZV 5, Zulassungsvorschrift fur Endeinrichtungen zur Anschaltung an Analoge Wahlanschlusse (ausgenommen Notruf- und Durchwahlanschlusse) des Telefonnetzes(아날로그 전화선에 연결된 단말 장치에 대한 공식 사양, 제외) 보안 및 통화 요구 사항) / Deutschen Bundespost Telekom의 ISDN; Bundesministerium fur Post und Telekommunikation, Draft, Bonn 1994년 4월 Papula: Mathematick fur Ingenieure 2(엔지니어를 위한 수학); Vieweg Verlag, Braunschweig 1990 Tietze / Schenk: Halbleiterschaltungstechnik; (Titze/Schenk, 반도체 회로 공학), 10판; Springer Verlag, 베를린 1993 Lutz Bierl / Texas Instruments: MSP430 제품군, 계측 애플리케이션 보고서, Texas Instruments, 2.1호, 1997년 1월, SLAAE10B Texas Instruments: MSP430 제품군, 아키텍처 사용자 가이드 및 모듈 라이브러리, Texas Instruments, 1996, SLAUE10B Texas Instruments: MSP430 제품군, 소프트웨어 사용자 가이드, Texas Instruments, 1996 Texas Instruments: MSP430 제품군, 어셈블리 언어 도구 사용자 가이드, Texas Instruments, 1996 Siwy, Robert: Systementwicklung einer Telekom-Applikation zum Senden und Empfangen von DTMF-Signalen mit dem 마이크로컨트롤러 MSP430(개발 MSP430 마이크로컨트롤러를 기반으로 디지털 신호를 수신하고 전송하는 통신 시스템; Diplomarbeit, Fachhochschule Landshut, 마이 1997

간단한 장치에 관해서는 동일한 ATtiny2313을 사용하여 DTMF 신호 발생기를 조립하기로 결정했습니다. 모르시는 분들을 위해 설명하자면 DTMF(Dual-Tone Multi-Frequency)는 전화번호를 누르는 데 사용되는 투톤 다중 주파수 아날로그 신호입니다. 위키피디아를 읽어보세요.

이러한 장치를 조립하기로 한 결정은 마이크로 컨트롤러를 사용하여 복잡한 아날로그 신호를 구현하려는 욕구에 따라 결정되었습니다. 이 장치에 대한 실제 응용 프로그램은 계획되지 않았지만 누군가 그러한 장치가 유용하다고 생각할 수 있습니까? 그걸 써!

DTMF 생성기 소스


이제 우리가 무엇을 얻었는지 봅시다.

신호는 PWM을 사용하여 생성되며 RC 회로를 사용하여 원하는 모양을 제공합니다. 결과적으로 RC 체인 후에 다음 신호를 얻습니다(버튼 6이 눌림).

유용한 신호의 전체 곡선을 따라 고주파 빗살을 관찰합니다(주파수가 가청보다 높으므로 소음이 발생하지 않음). 이는 RC 회로의 작업입니다. 커패시터의 커패시턴스나 저항의 저항을 높이면 라인을 더 매끄럽게 만들 수 있지만 이 경우 유용한 신호의 범위가 크게 줄어듭니다.

우리는 신호의 스펙트럼을 살펴보고 두 개의 개별 주파수(PWM 주파수가 디스플레이 영역을 벗어남)가 있는지 확인합니다. 이는 모든 것이 정상임을 의미합니다. 즉 장치가 정상적으로 작동합니다.

준비된 솔루션

DTMF 신호 생성 및 디코딩 작업을 위한 기성 솔루션이 있습니다. 다음은 이러한 마이크로회로에 대한 몇 가지 데이터시트입니다.

DTMF 생성기
- DTMF 디코더


추신 ATtiny2313에 ADC가 없다는 점이 아쉽습니다. DTMF 디코더를 사용할 수도 있습니다! 하지만 괜찮아, 메가로 반복할게, 꼭 첨부할게.

(6,868회 방문, 오늘 1회 방문)

톤 다이얼링(이중 톤 다중 주파수 신호, DTMF)은 지난 세기 50년대 당시 혁신적인 푸시 버튼 전화기를 위해 Bell Labs에서 개발되었습니다. 톤 모드에서 디지털 데이터를 표현하고 전송하기 위해 음성 주파수 범위의 주파수(톤) 쌍이 사용됩니다. 시스템은 4개의 주파수로 구성된 두 그룹을 정의하고 각 그룹에서 하나씩 두 개의 주파수를 동시에 전송하여 정보를 인코딩합니다. 이는 16개의 서로 다른 숫자, 기호 및 문자를 나타내는 총 16개의 조합을 제공합니다. DTMF 인코딩은 현재 ITU(International Telecommunication Union) 권장 사항 Q.23에서 입증된 바와 같이 광범위한 통신 및 제어 애플리케이션에서 사용됩니다.

이 기사에서는 8개의 주파수를 모두 재생하고 결과적인 2톤 출력 신호를 생성하는 DTMF 톤 발생기의 회로에 대해 설명합니다. 문제의 시스템은 Silego GreenPAK™ SLG46620V 칩을 기반으로 구축되었으며 연산 증폭기실레고 SLG88104V. 생성된 결과 신호는 전화 키패드의 행과 열에 의해 결정되는 두 주파수의 합입니다.

제안된 회로는 생성할 주파수 조합을 선택하기 위해 4개의 입력을 사용합니다. 회로에는 생성을 트리거하고 신호가 전송되는 시간 길이를 결정하는 활성화 입력도 있습니다. 발전기 출력 주파수는 DTMF에 대한 ITU 표준을 준수합니다.

DTMF 톤

DTMF 표준은 숫자 0-9, 문자 A, B, C 및 D, 문자 * 및 #의 인코딩을 두 주파수의 조합으로 정의합니다. 이러한 주파수는 고주파 그룹과 저주파 그룹의 두 그룹으로 나뉩니다. 표 1은 주파수, 그룹 및 해당 기호 표현을 보여줍니다.

1 번 테이블. DTMF 톤 코딩

고음 그룹

로우패스 그룹

다중 고조파를 피하기 위해 주파수가 선택되었습니다. 또한 이들의 합이나 차이로 인해 DTMF 주파수가 달라지지는 않습니다. 이러한 방식으로 고조파 또는 변조 왜곡이 방지됩니다.

Q.23 표준은 각 전송 주파수의 오류가 공칭 값의 ±1.8% 내에 있어야 하며 총 왜곡(고조파 또는 변조로 인해)이 기본 주파수보다 20dB 낮아야 한다고 명시합니다.

위에서 설명한 결과 신호는 다음과 같이 설명할 수 있습니다.

s(t) = Acos(2πfhight)+ Acos(2πflowt),

여기서 fhigh와 flow는 높은 주파수와 낮은 주파수 그룹의 해당 주파수입니다.

그림 1은 숫자 "1"에 대한 결과 신호를 보여줍니다. 그림 2는 이 신호에 해당하는 주파수 스펙트럼을 보여줍니다.

쌀. 1. DTMF 톤

쌀. 2. DTMF 톤 스펙트럼

DTMF 톤의 지속 시간은 톤 코딩을 사용하는 특정 애플리케이션에 따라 달라질 수 있습니다. 가장 일반적인 애플리케이션의 경우 지속 시간 값은 일반적으로 수동 다이얼링과 자동 다이얼링 사이에 속합니다. 표 2는 두 가지 채용 유형의 일반적인 기간을 요약한 것입니다.

표 2. 톤 다이얼링 신호의 지속 시간

다이얼 유형

고음 그룹

고음 그룹

수동 다이얼링

자동 전화 걸기

유연성을 높이기 위해 이 설명서에 제공된 DTMF 발생기에는 신호 생성을 시작하고 지속 시간을 결정하는 데 사용되는 활성화 입력이 장착되어 있습니다. 이 경우 신호 지속 시간은 활성화 입력의 펄스 지속 시간과 동일합니다.

DTMF 생성기 회로의 아날로그 부분

ITU 권장 사항 Q.23에서는 DTMF 신호를 두 개의 사인파로 생성된 아날로그 신호로 정의합니다. 제안된 DTMF 생성기 회로에서 Silego GreenPAK SLG46620V IC는 원하는 DTMF 주파수로 구형파 신호를 생성합니다. 필요한 주파수의 정현파 신호를 얻고 결과 신호(두 개의 정현파의 합)를 형성하려면 아날로그 필터와 가산기가 필요합니다. 이러한 이유로 이 프로젝트에서는 SLG88104V 연산 증폭기를 기반으로 한 필터와 결합기를 사용하기로 결정했습니다.

그림 3은 제안된 장치의 아날로그 부분의 구조를 보여줍니다.

쌀. 3. DTMF 신호 수신을 위한 아날로그 처리 회로

아날로그 필터는 직사각형 펄스에서 정현파 신호를 얻는 데 사용됩니다. 필터링이 수행된 후 두 신호가 합산되어 원하는 출력 2톤 DTMF 신호가 생성됩니다.

그림 4는 구형파 신호의 스펙트럼을 얻기 위해 사용된 푸리에 변환의 결과를 보여줍니다.

쌀. 4. 구형파 신호의 스펙트럼

보시다시피 구형파에는 홀수 고조파만 포함되어 있습니다. 푸리에 급수 형태로 진폭 A를 갖는 신호를 표현하면 다음과 같은 형식을 갖게 됩니다.

이 표현을 분석하면 아날로그 필터가 고조파에 대해 충분한 감쇠를 갖는 경우 원래 구형파 신호의 주파수와 동일한 주파수를 갖는 정현파 신호를 얻는 것이 가능하다는 결론을 내릴 수 있습니다.

Q.23 표준에 정의된 간섭 레벨 허용치를 고려하면 모든 고조파가 20dB 이상 감쇠되도록 해야 합니다. 또한 저역 통과 그룹의 모든 주파수는 고역 통과 그룹의 모든 주파수와 결합되어야 합니다. 이러한 요구 사항을 고려하여 각 그룹마다 하나씩 두 개의 필터가 개발되었습니다.

두 필터 모두 저역 통과 버터워스 필터였습니다. n차 버터워스 필터의 감쇠는 다음과 같이 계산할 수 있습니다.

A(f)[dB] = 10 log(A(f) 2) = 10log(1+(f/fc) 2n),

여기서 fc는 필터 차단 주파수이고, n은 필터 차수입니다.

각 그룹의 가장 낮은 주파수와 가장 높은 주파수 사이의 감쇠 차이는 3dB를 넘을 수 없으므로 다음과 같습니다.

A(f낮음)[dB] - A(f낮음)[dB] > 3dB.

주어진 절대값:

A(f높음) 2 / A(꽃) 2 > 2.

또한 앞서 말했듯이 고조파 감쇠량은 20dB 이상이어야 합니다. 이 경우 최악의 경우는 그룹에서 가장 낮은 주파수가 됩니다. 왜냐하면 3차 고조파가 가장 낮은 주파수이고 필터 차단 주파수에 가장 가깝기 때문입니다. 3차 고조파가 기본 고조파보다 3배 작다는 점을 고려하면 필터는 다음 조건(절대값)을 충족해야 합니다.

A(3fLOWER) 2 / A(fLOWER) 2 > 10/3.

이러한 방정식이 두 그룹 모두에 적용되는 경우 사용되는 필터는 2차 필터여야 합니다. 즉, 연산 증폭기를 사용하여 구현하는 경우 각각 2개의 저항기와 2개의 커패시터를 갖게 됩니다. 3차 필터를 사용하면 부품 공차에 대한 민감도가 낮아집니다. 선택된 필터 차단 주파수는 저역 통과 그룹의 경우 977Hz이고 고역 통과 그룹의 경우 1695Hz입니다. 이러한 값에서 주파수 그룹의 신호 레벨 차이는 위의 요구 사항과 일치하며 구성 요소 허용 오차로 인한 차단 주파수 변화에 대한 민감도는 최소화됩니다.

SLG88104V를 사용하여 구현된 필터의 개략도는 그림 5에 나와 있습니다. RC 쌍 SLG46620V 칩의 출력 전류를 제한하는 방식으로 선택되었습니다. 두 번째 필터 링크는 게인(0.2)을 결정합니다. 구형파 신호의 진폭은 연산 증폭기 작동 지점을 2.5V로 설정합니다. 원하지 않는 전압은 출력 필터 커패시터에 의해 차단됩니다.

쌀. 5. 출력 필터의 개략도

출력에서 필터 신호가 합산되고 결과 신호는 저주파수 및 고주파수 그룹에서 선택된 고조파의 합입니다. 필터 감쇠를 보상하기 위해 두 개의 저항 R9 및 R10을 사용하여 출력 신호의 진폭을 조정할 수 있습니다. 그림 6은 가산기 회로를 보여줍니다. 그림 7은 회로의 전체 아날로그 부분을 보여줍니다.

쌀. 6. 가산기의 개략도

쌀. 7. 회로의 아날로그 부분

DTMF 톤 제너레이터 회로의 디지털 부분

DTMF 톤 발생기 회로의 디지털 부분에는 각 DTMF 주파수마다 하나씩 전체 구형파 발생기 세트가 포함되어 있습니다. 이러한 생성기를 생성하려면 8개의 카운터가 필요하므로 구현을 위해 GreenPAK SLG46620V 칩이 선택되었습니다. 디지털 회로의 출력에서는 각 주파수 그룹마다 하나씩 두 개의 직사각형 신호가 생성됩니다.

구형파 신호는 카운터와 D 플립플롭을 사용하여 생성되며 듀티 사이클은 50%입니다. 이러한 이유로 카운터 스위칭 주파수는 필요한 DTMF 주파수의 두 배이며 DFF 플립플롭은 출력 신호를 두 개로 나눕니다.

카운터의 클록 소스는 내장된 2MHz RC 발진기이며, 그 주파수는 4 또는 12로 더 나뉩니다. 분할기는 비트 용량과 특정 값을 얻는 데 필요한 각 카운터의 최대값을 고려하여 선택됩니다. 빈도.

높은 주파수를 생성하려면 더 적은 수의 샘플이 필요하므로 신호를 4로 나누는 내부 RC 발진기에서 클록된 8비트 카운터를 사용하여 생성합니다. 같은 이유로 더 낮은 주파수는 14비트 카운터를 사용하여 구현됩니다.

SLG46620V에는 3개의 표준 14비트 카운터만 있으므로 더 낮은 주파수 중 하나는 8비트 CNT8 카운터를 사용하여 구현되었습니다. 샘플 수가 0~255 범위 내에 들어가려면 이 CNT8을 클록하기 위해 RC 발진기 신호를 12로 나눈 값을 사용해야 했습니다. 이 회로의 경우 샘플 수가 가장 많은 주파수는 가장 낮은 주파수를 선택했습니다. 이를 통해 오류를 최소화할 수 있었습니다.

표 3은 각 구형파의 매개변수를 보여줍니다.

표 3. 사각 펄스 발생기의 매개변수

클러킹

주파수 오류 [%]

로우패스 그룹

고음 그룹

표에서 볼 수 있듯이 모든 주파수는 1.8% 미만의 오차를 갖고 있어 DTMF 규격을 준수하고 있다. 이상적인 RC 발진기 주파수를 기반으로 계산된 이러한 특성은 RC 발진기 출력 주파수를 측정하여 조정할 수 있습니다.

제안된 회로에서는 모든 생성기가 병렬로 작동하지만 각 그룹에서 하나의 생성기의 신호만 마이크로 회로의 출력으로 전송됩니다. 특정 신호의 선택은 사용자가 결정합니다. 이는 표 4에 표시된 진리표와 함께 4개의 GPIO 입력(각 그룹당 2비트)을 사용하여 수행됩니다.

표 4. 저주파 그룹에서 주파수를 선택하는 표

로우패스 그룹

표 5. 고주파 그룹의 주파수 선택 표

고음 그룹

그림 8은 852Hz 구형파 발생기의 논리 회로를 보여줍니다. 이 패턴은 적절한 카운터 설정 및 LUT 구성을 통해 각 주파수에 대해 반복됩니다.

쌀. 8. 직사각형 펄스 발생기

카운터는 해당 설정에 따라 결정되는 출력 주파수를 생성합니다. 이 주파수는 해당 DTMF 톤 주파수의 두 배와 같습니다. 미터 구성 매개변수는 그림 9에 나와 있습니다.

쌀. 9. 직사각형 펄스 발생기 카운터 설정 예

카운터 출력 신호는 다음과 같이 연결됩니다. 시계 입력 D-플립플롭 트리거. DFF 출력이 반전으로 구성되어 있으므로 DFF 출력을 입력에 연결하면 D 플립플롭이 T 플립플롭으로 변환됩니다. DFF 구성 매개변수는 그림 10에서 볼 수 있습니다.

쌀. 10. 직사각형 펄스 발생기 트리거 설정 예

DFF 출력의 신호는 LUT 진리표 입력으로 공급됩니다. LUT는 각 특정 R1-R0 조합에 대해 하나의 신호를 선택하는 데 사용됩니다. LUT 구성의 예가 그림 11에 나와 있습니다. B 이 예에서는, R1이 "1"을 수신하고 R0이 "0"을 수신하면 입력 신호가 출력으로 전송됩니다. 다른 경우에는 출력에 "0"이 포함됩니다.

쌀. 11. 사각 펄스 발생기의 진리표 설정 예

위에서 언급한 바와 같이 제안된 회로는 Enable Enable 입력을 갖는다. 활성화 권한 입력에 논리 장치 "1"이 있으면 생성된 직사각형 신호가 마이크로 회로의 한 쌍의 출력에 공급됩니다. 전송 지속 시간은 활성화 입력의 펄스 지속 시간과 동일합니다. 이 기능을 구현하려면 몇 가지 LUT가 더 필요했습니다.

고역 통과 그룹은 그림 12와 같이 4비트 LUT 하나와 2비트 LUT 하나를 사용합니다.

쌀. 12. 고음 그룹 출력 회로

4비트 LUT1은 다음과 같이 구성됩니다. 논리 요소 OR이므로 입력에 "1"이 있으면 논리 1 "1"을 출력합니다. C1/C0 진리표에서는 발진기 중 하나만 선택할 수 있으므로 4비트 LUT1이 어떤 신호가 출력되는지 결정합니다. 이 LUT의 출력은 인에이블 입력이 로직 "1"인 경우에만 신호를 전송하는 2비트 LUT4에 연결됩니다. 그림 13과 14는 4비트 LUT1과 2비트 LUT4의 구성을 보여줍니다.

쌀. 13. 4비트 LUT1 구성

쌀. 14. 2비트 LUT4 구성

더 이상 4비트 진리표 LUT가 없었기 때문에 저역 통과 그룹에 2개의 3비트 LUT가 사용되었습니다.

쌀. 15. 로우패스 그룹 출력 회로

GreenPAK SLG46620V의 전체 내부 회로는 그림 16에 나와 있습니다. 그림 17은 DTMF 생성기의 최종 회로 다이어그램을 보여줍니다.

쌀. 16. DTMF 톤 제너레이터의 블록 다이어그램

쌀. 17. DTMF 톤 발생기의 개략도

DTMF 생성기 회로 테스트

제안된 DTMF 발생기를 테스트하는 첫 번째 단계에서는 생성된 모든 직사각형 신호의 주파수를 오실로스코프를 사용하여 확인하기로 결정했습니다. 예를 들어, 그림 18과 19는 852Hz 및 1477Hz에 대한 구형파 출력을 보여줍니다.

쌀. 18. 구형파 852Hz

쌀. 19. 구형파 1477Hz

모든 구형파 신호의 주파수를 확인한 후 회로의 아날로그 부분 테스트를 시작했습니다. 저주파와 고주파의 모든 조합에 대한 출력 신호를 검사했습니다. 예를 들어, 그림 20은 770Hz와 1209Hz 신호의 합을 보여주고, 그림 21은 941Hz와 1633Hz 신호의 합을 보여줍니다.

쌀. 20. DTMF 톤 770Hz 및 1209Hz

쌀. 21. DTMF 톤 941Hz 및 1633Hz

결론

이 기사에서는 Silego GreenPAK SLG46620V 칩과 Silego SLG88104V 연산 증폭기를 기반으로 하는 DTMF 톤 발생기용 회로를 제안했습니다. 생성기를 사용하면 사용자는 4개의 입력을 사용하여 원하는 주파수 조합을 선택하고 출력 신호의 지속 시간을 결정하는 활성화 입력을 제어할 수 있습니다.

SLG46620V 칩의 특성:

  • 유형: 프로그래밍 가능 혼합 신호 IC;
  • 아날로그 블록: 8비트 ADC, DAC 2개, 비교기 6개, 필터 2개, ION, 통합 발진기 4개,
  • 디지털 블록: 최대 18개의 I/O 포트, 상호 연결 매트릭스 및 조합 논리, 프로그래밍 가능 지연 회로, 프로그래밍 가능 함수 발생기, 6개의 8비트 카운터, 3개의 14비트 카운터, 3개의 PWM 발진기/비교기;
  • 통신 인터페이스: SPI;
  • 공급 전압 범위: 1.8~5V;
  • 작동 온도 범위: -40~85 °C;
  • 패키지 버전: 2 x 3 x 0.55mm 20핀 STQFN.

고유 한 특징:

  • 펄스 폭 변조(PWM)를 사용하여 사인파 생성
  • 서로 다른 사인파 신호를 하나의 DTMF 신호로 결합
  • 소스 코드어셈블리 및 C 언어로
  • STK500과 함께 작동하도록 설계됨
  • 프로그램 코드 크기 260바이트 / 상수 테이블 크기 128바이트
  • 테이블 변환 방법 사용

소개

이 문서에서는 펄스 폭 변조(PWM) 장치와 정적 RAM이 포함된 AVR 마이크로컨트롤러를 사용하여 DTMF 신호(이중 톤 다중 주파수 신호)를 생성하는 기술을 설명합니다. 이러한 신호는 전화기의 다이얼 버튼을 누를 때 재생되는 전화 통신에서 널리 사용됩니다. DTMF 신호를 적절하게 생성하려면 두 개의 주파수를 함께 중첩해야 합니다. 낮은 빈도(fb) 및 고주파수(fa). 표 1은 서로 다른 키를 눌렀을 때 서로 다른 주파수가 혼합되어 DTMF 톤을 생성하는 방법을 보여줍니다.

그림 1 - DTMF 신호 발생기 회로

표 1 - 톤 신호 생성 매트릭스

페이스북/fa 1209Hz 1336Hz 1477Hz 1633Hz
697Hz 1 2 3
770Hz 4 5 6
852Hz 7 8 9
941Hz * 0 #

표 1의 행은 낮은 빈도 값을 나타내고 열은 높은 빈도 값을 나타냅니다. 예를 들어, 행렬은 “5” 버튼을 누르면 주파수 fb = 770Hz와 fa = 1336Hz가 혼합되어야 함을 보여줍니다. 주파수가 다른 두 개의 정현파 신호를 추가하면 DTMF 신호가 형성됩니다.

진폭 비율은 어디에 있습니까? K=Ab/Aa소스 신호는 조건을 충족해야 합니다.

동작 원리

게다가 일반 정보펄스 폭 변조의 사용에 대해 아래에서는 펄스 폭 변조를 통해 정현파 신호를 생성하는 방법을 보여줍니다. 다음 단락에서는 기본 스위칭 주파수를 사용하여 다양한 주파수를 얻는 방법을 설명합니다. 고려한 후 이론적 기초 DTMF 신호 발생기 자체에 대해 설명하겠습니다. 사인파 생성

높은 VH와 낮은 VL 전압 레벨의 지속 시간 비율에 따라 PWM 출력의 평균값이 변경됩니다. 두 레벨의 지속 시간 사이의 비율이 일정하게 유지되면 결과적으로 일정한 VAV 전압 레벨이 생성됩니다. 그림 2는 펄스 폭 변조 신호를 보여줍니다.


그림 2 - DC 전압 레벨 생성

전압 레벨은 다음 식으로 결정됩니다.

(3)

펄스폭 변조에 의해 생성된 전압의 평균값이 매 PWM 사이클마다 변경된다면 정현파 신호가 생성될 수 있습니다. 높은 레벨과 낮은 레벨 사이의 관계는 해당 시간의 사인파의 전압 레벨에 따라 설정되어야 합니다. 그림 3은 이 프로세스를 보여줍니다. PWM의 소스 데이터는 각 주기별로 계산되어 변환 테이블(TC)에 기록됩니다.

그림 3은 기본 사인파의 주파수와 샘플 수 사이의 관계도 보여줍니다. 샘플 수(Nc)가 높을수록 결과 신호 모델링의 정확도가 높아집니다.

(4)

PWM 주파수는 PWM 분해능에 따라 달라집니다. 8비트 분해능에서 타이머의 최종 값(카운트의 최상위)은 0xFF(255)입니다. 왜냐하면 타이머는 앞뒤로 카운트한 다음 주어진 값두 배가되어야합니다. 따라서 스위칭 주파수는 다음과 같이 나누어 계산할 수 있습니다. 클럭 주파수타이머 f CK는 510입니다. 따라서 타이머 클록 주파수가 8MHz인 경우 결과적인 PWM 주파수는 15.6kHz가 됩니다.


그림 3 - PWM을 사용하여 정현파 신호 생성

사인파의 주파수 변경

정현파 샘플을 순차적이 아닌 한 번에 하나씩 조회 테이블에서 읽는다고 가정해 보겠습니다. 이 경우 동일한 샘플링 속도에서 주파수가 두 배인 신호가 생성됩니다(그림 4 참조).


그림 4 - 결과 주파수를 두 배로 늘림(XSW = 2)

비유하자면, 두 번째 값마다 읽는 것이 아니라 세 번째, 네 번째, 다섯 번째 값마다 읽는 경우(각각 단계 너비는 3, 4, 5...) 등입니다. 범위에서 Nc 주파수를 생성하는 것이 가능합니다. 고주파수의 경우 결과 파형은 정현파가 아닙니다. 변환표에 따라 단계 폭을 다음과 같이 나타냅니다. XSW, 어디

(5)

다음 PWM 기간(타이머가 오버플로되는 경우)에 대한 TP의 현재 위치 계산은 식(6)을 사용하여 수행됩니다. 위치의 새로운 가치 X LUT위치의 이전 상태에 따라 달라집니다. X" LUT단계 폭이 증가함에 따라 XSW

(6)

DTMF 신호를 얻기 위해 다양한 주파수 추가

DTMF 신호는 식 (1)과 (2)를 사용하여 생성될 수 있습니다. 산술 연산을 단순화하기 위해 산술 연산을 논리 시프트로 대체하기 위해 계수 K의 값을 0.75로 사용합니다. 식 (6)을 고려하면 PWM 제어를 위한 현재 값은 다음 식으로 계산할 수 있습니다.

그리고 그 점을 고려하면 X 루타=X' 루타 + XSWa ,X LUTb=X" LUTb + XSWb, 드디어 적어보자

DTMF 생성기 구현

안에 이 신청서 8비트 PWM 출력(OC1A)과 각각 7비트(n)로 지정된 128개의 사인 함수(Nc) 샘플이 포함된 테이블을 사용하는 DTMF 톤 발생기의 구성에 대해 설명합니다. 다음 표현식은 이러한 종속성을 보여주고 조회 테이블 항목을 계산하는 방법도 보여줍니다.

(9)

7비트를 사용하는 장점은 고주파 신호 값과 저주파 신호 값의 합이 1바이트 크기라는 점이다. 전체 DTMF 톤 세트를 지원하려면 표 1의 각 DTMF 주파수에 대해 8개의 값을 계산하여 조회 테이블에 입력해야 합니다.

더 높은 정확도를 달성하기 위해 다음 솔루션이 구현되었습니다. 식 5를 사용하여 계산된 값에는 5바이트만 필요합니다. 반올림 오류를 줄이기 위해 8바이트를 모두 사용하려면 이 값에 8을 곱합니다. 조회 테이블에 대한 포인터도 같은 방식으로 작성됩니다. 하지만 이 경우에는 8배의 값을 저장하는 데 2바이트가 필요합니다. 이는 이 바이트를 사인파 값에 대한 포인터로 사용하기 전에 3번의 오른쪽 이동과 기수 Nc 모듈러스 연산(Nc-1에 의한 논리적 곱셈)을 수행해야 함을 의미합니다.


그림 5 – STK500에 연결하기 위한 모듈 다이어그램

PWM 신호는 OC1A(PD5) 핀에서 생성됩니다. 추가 출력 필터를 사용하면 신호가 정현파와 더 잘 호환되도록 할 수 있습니다. PWM 주파수를 줄일 때 좋은 결과를 얻으려면 더 가파른 주파수 응답을 가진 필터를 사용해야 할 수도 있습니다.

키보드 연결은 그림 1에 나와 있습니다. 키보드 작동은 누른 키를 확인할 수 있도록 구성되어야 합니다. 이는 다음 알고리즘을 사용하여 수행할 수 있습니다.

  1. 누른 키의 문자열 확인
    • 포트 B의 하위 노트북을 출력으로 구성하고 로그를 설정합니다. "0"
    • 풀업 저항을 연결하여 포트 B의 하이 테트라드를 입력으로 구성합니다.
    • 버튼을 누른 라인은 로그가 있는 가장 높은 사분면의 숫자로 정의됩니다. "0"
  2. 누른 키 열 정의
    • 포트 B의 하이 노트북을 출력으로 구성하고 로그를 설정합니다. "0"
    • 풀업 저항을 연결하여 포트 B의 하위 4차를 입력으로 구성합니다.
    • 버튼을 누른 열은 로그가 있는 하위 4차원 숫자로 정의됩니다. "0"

참고: STK200에서는 저항이 PORTB 커넥터 핀과 마이크로컨트롤러 핀 BP5, PB6 및 PB7 사이에 직렬로 연결됩니다(STK200 다이어그램 참조). 키보드가 PORTB 커넥터에 연결된 경우 문제가 발생합니다.

그림 6은 누른 키를 결정하는 서브루틴의 동작을 보여줍니다. 누른 키에 따라 간격의 지속 시간이 결정됩니다. 인터럽트 루틴은 이 값을 사용하여 두 개의 DTM 톤 사인파에 대한 PWM 설정을 계산합니다. 인터럽트 처리 절차는 그림 7과 8에 나와 있습니다.

이 루틴은 다음 PWM 기간에 대한 타이머 출력과 비교할 값을 계산합니다. 인터럽트 루틴은 먼저 조회 테이블에서 다음 샘플 값의 위치를 ​​계산하고 거기에 저장된 값을 읽습니다.

룩업 테이블에서 샘플의 위치는 펄스 폭에 따라 결정되며, 실제 펄스 폭은 생성된 주파수에 따라 결정됩니다.

타이머 비교 레지스터에 기록되는 최종 값은 두 DTMF 주파수의 샘플 값을 고려한 공식 (7)을 사용하여 결정됩니다.


그림 6 – 메인 프로그램의 블록 다이어그램

현대의 도입으로 디지털 PBX러시아 연방의 전화 네트워크에서는 영어 약어 DTMF(Dual-Tone Multiple-Frequency)로 표시되는 다이얼링 신호를 전송하는 다중 주파수 방법이 점차 확산되고 있습니다. 때때로 이 다이얼링 신호 전송 시스템의 이름을 지정하기 위해 또 다른 영어 용어인 Touch-None(톤 다이얼링)이 사용됩니다. 이 방식은 1960년에 개발되었으나 실제 확산은 80년대 디지털(전자)전화교환기의 확산과 함께 시작되었다.

이 제어 신호 전송 방법을 사용하면 각 다중 주파수 숫자 신호는 ITU-T 권장 사항 Q.23 "터치 다이얼 전화기의 기술적 특징"에 따라 두 가지 톤으로 구성됩니다.

DTMF 주파수는 고조파적으로 선택되지 않습니다. 이는 빈도에 1 이외의 정수 제수가 없음을 의미합니다. 예를 들어, 주파수 1200과 1600Hz는 주파수 400Hz(3x400=1200과 4x400=1600)의 고조파이고, 주파수 697과 770Hz는 비고조파입니다.

각 신호에는 두 개의 주파수가 포함되어 있습니다. 하나는 낮은 주파수 그룹에서 선택되고 두 번째는 상위 주파수 그룹에서 선택됩니다.

전송된 정보와 주파수 사이의 대응 관계는 실험실 설비의 전면 패널에 있는 표에 표시됩니다.

600Ω 부하에서 측정된 2주파수 패키지의 전송 수준은 다음과 같습니다. 하위 주파수 그룹의 경우 - - 6dBmO ± 2dB, 상위 주파수 그룹의 경우 - - 3dBmO ± 2dB. 전체 신호 중 상위 주파수 그룹의 주파수 레벨은 하위 그룹의 주파수 레벨보다 2±1dB 더 높습니다. 모든 상위 주파수 구성 요소의 총 레벨은 하위 주파수 레벨보다 최소 20dB 낮습니다.

정상적인 신호 수신이 발생해야 하는 조건은 다음과 같습니다. 신호에 두 개의 주파수가 존재하며 그 중 하나는 하위 그룹에서 선택되고 다른 하나는 상위 그룹에서 선택됩니다. 주파수는 공칭 값과 1.8% 이상 다르지 않습니다. 두 주파수 각각의 레벨은 -7에서 -30dBmO까지입니다. 두 주파수 레벨의 차이는 3dB를 초과하지 않습니다. 주파수 신호의 지속 시간은 최소 40ms입니다.

설치를 시작하기 전에 다음 작업을 수행하십시오.

스위치 S6을 낮은 위치로 설정하십시오.

스위치 S13을 위쪽 위치로 설정합니다.

상위 및 하위 주파수 그룹의 발생기 스위치를 "끄기" 위치로 설정합니다.

아날로그 키 스위치(AK)를 "켜짐" 위치로 설정합니다.

발전기와 저항 R3의 출력 전압 조정용 손잡이를 시계 반대 방향으로 멈출 때까지 돌립니다.

dtmf 신호 컨디셔닝

1.1 설치를 활성화합니다.

1.2 오실로스코프를 KT3 테스트 포인트에 연결합니다.

1.3 상위 주파수 그룹의 생성기를 켜고 스위치 버튼 중 하나를 눌러 이 그룹의 주파수 중 하나를 선택합니다.

1.4 발전기 출력 전압 조정 손잡이를 돌려 CT3의 신호 진폭을 0.5V로 설정합니다.

1.5 오실로스코프 입력을 KT4 테스트 포인트로 전환합니다. 더 낮은 주파수 그룹의 생성기에 대해 1.3, 1.4단계를 반복하여 KT4의 전압을 0.5V로 설정합니다.

메모: 수행된 작업의 결과로 상위 및 하위 주파수 그룹의 동일한 진폭 신호가 가산기의 입력에 공급됩니다. 이러한 레벨을 설정한 후 발전기 출력 전압 조정 손잡이를 잠급니다.

1.6 오실로스코프 입력을 KT7 테스트 포인트로 전환합니다. DTMF 신호 처리기의 출력 전압을 조정하기 위해 저항기 손잡이(R3)를 돌려 CT7의 전압을 0.5V로 설정합니다.

메모: 수행된 작업의 결과, 연속적인 투톤 신호가 수신기 입력에 공급되고, 상위 및 하위 주파수 그룹의 발생기 주파수 조합에 해당하는 기호가 수신 기호의 표시기에 표시되어야 합니다. , 표에 따라. 수신 및 식별된 신호의 표시는 STD 수신기의 출력(LED 발광)에 신호가 있다는 것입니다.

      상위 및 하위 주파수 그룹의 주파수를 전환하여 이러한 주파수의 조합이 수신된 기호와 일치하는지 확인하십시오.