1. PCM編譯器晶元Tp3057
1. 點到點PCM多路電話通信原理
脈沖編碼調制(PCM)技術與增量調制(ΔM)技術已經在數字通信系統中得到廣泛應用。當信道雜訊比較小時一般用PCM,否則一般用ΔM。目前速率在155MB以下的准同步數字系列(PDH)中,國際上存在A解和μ律兩種PCM編解碼標准系列,在155MB以上的同步數字系列(SDH)中,將這兩個系列統一起來,在同一個等級上兩個系列的碼速率相同。而ΔM在國際上無統一標准,但它在通信環境比較惡劣時顯示了巨大的優越性。
點到點PCM多路電話通信原理可用圖9-1表示。對於基帶通信系統,廣義信道包括傳輸媒質、收濾波器、發濾波器等。對於頻帶系統,廣義信道包括傳輸媒質、調制器、解調器、發濾波器、收濾波器等。
本實驗模塊可以傳輸兩路話音信號。採用TP3057編譯器,它包括了圖9-1中的收、發低通濾波器及PCM編解碼器。編碼器輸入信號可以是本實驗模塊內部產生的正弦信號,也可以是外部信號源的正弦信號或電話信號。本實驗模塊中不含電話機和混合電路,廣義信道是理想的,即將復接器輸出的PCM信號直接送給分接器。
2. PCM編解碼模塊原理
本模塊的原理方框圖圖9-2所示,電原理圖如圖9-3所示(見附錄),模塊內部使用+5V和-5V電壓,其中-5V電壓由-12V電源經7905變換得到。
圖9-2 PCM編解碼原理方框圖
該模塊上有以下測試點和輸入點:
• BS PCM基群時鍾信號(位同步信號)測試點
• SL0 PCM基群第0個時隙同步信號
• SLA 信號A的抽樣信號及時隙同步信號測試點
• SLB 信號B的抽樣信號及時隙同步信號測試點
• SRB 信號B解碼輸出信號測試點
• STA 輸入到編碼器A的信號測試點
• SRA 信號A解碼輸出信號測試點
• STB 輸入到編碼器B的信號測試點
• PCM PCM基群信號測試點
• PCM-A 信號A編碼結果測試點
• PCM-B 信號B編碼結果測試點
• STA-IN 外部音頻信號A輸入點
• STB-IN 外部音頻信號B輸入點
本模塊上有三個開關K5、K6和K8,K5、K6用來選擇兩個編碼器的輸入信號,開關手柄處於左邊(STA-IN、STB-IN)時選擇外部信號、處於右邊(STA-S、STB-S)時選擇模塊內部音頻正弦信號。K8用來選擇SLB信號為時隙同步信號SL1、SL2、SL5、SL7中的某一個。
圖9-2各單元與電路板上元器件之間的對應關系如下:
•晶振 U75:非門74LS04;CRY1:4096KHz晶體
•分頻器1 U78:A:U78:D:觸發器74LS74;U79:計數器74LS193
•分頻器2 U80:計數器74LS193;U78:B:U78:D:觸發器74LS74
•抽樣信號產生器 U81:單穩74LS123;U76:移位寄存器74LS164
•PCM編解碼器A U82:PCM編解碼集成電路TP3057(CD22357)
•PCM編解碼器B U83:PCM編解碼集成電路TP3057(CD22357)
•幀同步信號產生器 U77:8位數據產生器74HC151;U86:A:與門7408
•正弦信號源A U87:運放UA741
•正弦信號源B U88:運放UA741
•復接器 U85:或門74LS32
晶振、分頻器1、分頻器2及抽樣信號(時隙同步信號)產生器構成一個定時器,為兩個PCM編解碼器提供2.048MHz的時鍾信號和8KHz的時隙同步信號。在實際通信系統中,解碼器的時鍾信號(即位同步信號)及時隙同步信號(即幀同步信號)應從接收到的數據流中提取,方法如實驗五及實驗六所述。此處將同步器產生的時鍾信號及時隙同步信號直接送給解碼器。
由於時鍾頻率為2.048MHz,抽樣信號頻率為8KHz,故PCM-A及PCM-B的碼速率都是2.048MB,一幀中有32個時隙,其中1個時隙為PCM編碼數據,另外31個時隙都是空時隙。
PCM信號碼速率也是2.048MB,一幀中的32個時隙中有29個是空時隙,第0時隙為幀同步碼(×1110010)時隙,第2時隙為信號A的時隙,第1(或第5、或第7 —由開關K8控制)時隙為信號B的時隙。
本實驗產生的PCM信號類似於PCM基群信號,但第16個時隙沒有信令信號,第0時隙中的信號與PCM基群的第0時隙的信號也不完全相同。
由於兩個PCM編解碼器用同一個時鍾信號,因而可以對它們進行同步復接(即不需要進行碼速調整)。又由於兩個編碼器輸出數據處於不同時隙,故可對PCM-A和PCM-B進行線或。本模塊中用或門74LS32對PCM-A、PCM-B及幀同步信號進行復接。在解碼之前,不需要對PCM進行分接處理,解碼器的時隙同步信號實際上起到了對信號分路的作用。
3. TP3057簡介
本模塊的核心器件是A律PCM編解碼集成電路TP3057,它是CMOS工藝製造的專用大規模集成電路,片內帶有輸出輸入話路濾波器,其引腳及內部框圖如圖9-4、圖9-5所示。引腳功能如下:
圖9-4 TP3057引腳圖
(1) V一 接-5V電源。
(2) GND 接地。
(3) VFRO 接收部分濾波器模擬信號輸出端。
(4) V+ 接+5V電源。
(5) FSR 接收部分幀同信號輸入端,此信號為8KHz脈沖序列。
(6) DR 接收部分PCM碼流輸入端。
(7) BCLKR/CLKSEL 接收部分位時鍾(同步)信號輸入端,此信號將PCM碼流在FSR上升沿後逐位移入DR端。位時鍾可以為64KHz到2.048MHz的任意頻率,或者輸入邏輯「1」或「0」電平器以選擇1.536MHz、1.544MHz或2.048MHz用作同步模式的主時鍾,此時發時鍾信號BCLKX同時作為發時鍾和收時鍾。
(8) MCLKR/PDN 接收部分主時鍾信號輸入端,此信號頻率必須為1.536MHz、1.544MHz或2.048MHz。可以和MCLKX非同步,但是同步工作時可達到最佳狀態。當此端接低電平時,所有的內部定時信號都選擇MCLKX信號,當此端接高電平時,器件處於省電狀態。
(9) MCLKX 發送部分主時鍾信號輸入端,此信號頻率必須為1.536MHz、1.544MHz或2.048MHz。可以和MCLKR非同步,但是同步工作時可達到最佳狀態。
(10) BCLKX 發送部分位時鍾輸入端,此信號將PCM碼流在FSX信號上升沿後逐位移出DX端,頻率可以為64KHz到2.04MHz的任意頻率,但必須與MCLKX同步。
圖9-5 TP3057內部方框圖
(11) DX 發送部分PCM碼流三態門輸出端。
(12) FSX 發送部分幀同步信號輸入端,此信號為8KHz脈沖序列。
(13) TSX 漏極開路輸出端,在編碼時隙輸出低電平。
(14) GSX 發送部分增益調整信號輸入端。
(15) VFXi- 發送部分放大器反向輸入端。
(16) VFXi+ 發送部分放大器正向輸入端。
TP3057由發送和接收兩部分組成,其功能簡述如下。
發送部分:
包括可調增益放大器、抗混淆濾波器、低通濾波器、高通濾波器、壓縮A/D轉換器。抗混淆濾波器對采樣頻率提供30dB以上的衰減從而避免了任何片外濾波器的加入。低通濾波器是5階的、時鍾頻率為128MHz。高通濾波器是3階的、時鍾頻率為32KHz。高通濾波器的輸出信號送給階梯波產生器(采樣頻率為8KHz)。階梯波產生器、逐次逼近寄存器(S•A•R)、比較器以及符號比特提取單元等4個部分共同組成一個壓縮式A/D轉換器。S•A•R輸出的並行碼經並/串轉換後成PCM信號。參考信號源提供各種精確的基準電壓,允許編碼輸入電壓最大幅度為5VP-P。
發幀同步信號FSX為采樣信號。每個采樣脈沖都使編碼器進行兩項工作:在8比特位同步信號BCLKX的作用下,將采樣值進行8位編碼並存入逐次逼近寄存器;將前一采樣值的編碼結果通過輸出端DX輸出。在8比特位同步信號以後,DX端處於高阻狀態。
接收部分:
包括擴張D/A轉換器和低通濾波器。低通濾波器符合AT&T D3/D4標准和CCITT建議。D/A轉換器由串/並變換、D/A寄存器組成、D/A階梯波形成等部分構成。在收幀同步脈沖FSR上升沿及其之後的8個位同步脈沖BCLKR作用下,8比特PCM數據進入接收數據寄存器(即D/A寄存器),D/A階梯波單元對8比特PCM數據進行D/A變換並保持變換後的信號形成階梯波信號。此信號被送到時鍾頻率為128KHz的開關電容低通濾波器,此低通濾波器對階梯波進行平滑濾波並對孔徑失真(sinx)/x進行補嘗。
在通信工程中,主要用動態范圍和頻率特性來說明PCM編解碼器的性能。
動態范圍的定義是解碼器輸出信噪比大於25dB時允許編碼器輸入信號幅度的變化范圍。PCM編解碼器的動態范圍應大於圖9-6所示的CCITT建議框架(樣板值)。
當編碼器輸入信號幅度超過其動態范圍時,出現過載雜訊,故編碼輸入信號幅度過大時量化信噪比急劇下降。TP3057編解碼系統不過載輸入信號的最大幅度為5VP-P。
由於採用對數壓擴技術,PCM編解碼系統可以改善小信號的量化信噪比,TP3057採用A律13折線對信號進行壓擴。當信號處於某一段落時,量化雜訊不變(因在此段落內對信號進行均勻量化),因此在同一段落內量化信噪比隨信號幅度減小而下降。13折線壓擴特性曲線將正負信號各分為8段,第1段信號最小,第8段信號最大。當信號處於第一、二段時,量化雜訊不隨信號幅度變化,因此當信號太小時,量化信噪比會小於25dB,這就是動態范圍的下限。TP3057編解碼系統動態范圍內的輸入信號最小幅度約為0.025Vp-p。
常用1KHz的正弦信號作為輸入信號來測量PCM編解碼器的動態范圍。
圖9-6 PCM編解碼系統動態范圍樣板值
語音信號的抽樣信號頻率為8KHz,為了不發生頻譜混疊,常將語音信號經截止頻率為3.4KHz的低通濾波器處理後再進行A/D處理。語音信號的最低頻率一般為300Hz。TP3057編碼器的低通濾波器和高通濾波器決定了編解碼系統的頻率特性,當輸入信號頻率超過這兩個濾波器的頻率范圍時,解碼輸出信號幅度迅速下降。這就是PCM編解碼系統頻率特性的含義。
四、實驗步驟
1. 熟悉PCM編解碼單元工作原理,開關K9接通8KHz(置為1000狀態),開關K8置為SL1(或SL5、SL7),開關K5、K6分別置於STA-S、STB-S端,接通實驗箱電源。
2. 用示波器觀察STA、STB,調節電位器R19(對應STA)、R20(對應STB),使正弦信號STA、STB波形不失真(峰峰值小於5V)。
3. 用示波器觀察PCM編碼輸出信號。
示波器CH1接SL0,(調整示波器掃描周期以顯示至少兩個SL0脈沖,從而可以觀察完整的一幀信號)CH2分別接SLA、PCM-A、SLB、PCM-B以及PCM,觀察編碼後的數據所處時隙位置與時隙同步信號的關系以及PCM信號的幀結構(注意:本實驗的幀結構中有29個時隙是空時隙,SL0、SLA及SLB的脈沖寬度等於一個時隙寬度)。
開關K8分別接通SL1、SL2、SL5、SL7,觀察PCM基群幀結構的變化情況。
4. 用示波器觀察PCM解碼輸出信號
示波器的CH1接STA,CH2接SRA,觀察這兩個信號波形是否相同(有相位差)。
5. 用示波器定性觀察PCM編解碼器的動態范圍。
開關K5置於STA-IN端,將低失真低頻信號發生器輸出的1KHz正弦信號從STA-IN輸入到TP3057(U82)編碼器。示波器的CH1接STA(編碼輸入),CH2接SRA(解碼輸出)。將信號幅度分別調至大於5VP-P、等於5VP-P,觀察過載和滿載時的解碼輸出波形。再將信號幅度分別衰減10dB、20dB、30dB、40dB、45dB、50dB,觀察解碼輸出波形(當衰減45dB以上時,解碼輸出信號波形上疊加有較明顯的雜訊)。
也可以用本模塊上的正弦信號源來觀察PCM編解碼系統的過載雜訊(只要將STA-S或STB-S信號幅度調至5VP-P以上即可),但必須用專門的信號源才能較方便地觀察到動態范圍。
2. pcm編解碼系統的頻率響應特性
特性:將頻率不同的正弦信號輸入感測器,相應的輸出信號的幅度和相位與頻率之間的關系稱為頻率響應特性。頻率響應特性可由頻率響應函數表示,它由幅頻特性和相頻特性組成。
本實驗模塊可以傳輸兩路話音信號。採用TP3057編譯器,它包括了圖9-1中的收、發低通濾波器及PCM編解碼器。
編碼器輸入信號可以是本實驗模塊內部產生的正弦信號,也可以是外部信號源的正弦信號或電話信號。本實驗模塊中不含電話機和混合電路,廣義信道是理想的,即將復接器輸出的PCM信號直接送給分接器。
標注方法
放大器在不同的輸出功率下,其頻響是不同的,通常輸出功率越大,其頻響指標就越差。而一個比較負責任的指標標注,應該指「在該放大器的最大不失真功率下測量的指標」,而一些廠家為了迴避大功率輸出下放大器特性的劣化,使得該指標「看起來好看」,往往採用的是「標准測試方式」,也就是說,在給定放大器放大倍數(增益)的條件下進行測試,而這個放大倍數通常是1。
3. 用c語言完成:1.哈夫曼編碼/解碼器2.內部排序演算法的性能分析
我把網上的程序修改了一下,並整合了,你看看
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define M 50
#define MAX 100000;
typedef struct
{
int weight;//結點權值
int parent,lchild,rchild;
}HTNODE,*HUFFMANTREE;
typedef char** HUFFMANCODE;//動態分配數組存儲哈夫曼編碼表
typedef struct
{
int key; /*關鍵字*/
}RecordNode; /*排序節點的類型*/
typedef struct
{
RecordNode *record;
int n; /*排序對象的大小*/
}SortObject; //待排序序列
HUFFMANTREE huffmantree(int n,int weight[])//構建哈夫曼樹
{
int m1,m2,k;
int i,j,x1,x2;
HUFFMANTREE ht;
ht=(HUFFMANTREE)malloc((2*n)*sizeof(HTNODE));
for(i=1;i<(2*n);i++)//初始化哈夫曼樹中各結點的數據,沒初始值的賦值為0
{
ht[i].parent=ht[i].lchild=ht[i].rchild=0;
if(i<=n)
ht[i].weight=weight[i];
else
ht[i].weight=0;
}
for(i=1;i<n;i++)//每一重循環從森林中選擇最小的兩棵樹組建成一顆新樹
{
m1=m2=MAX;
x1=x2=0;
for(j=1;j<(n+i);j++)
{
if((ht[j].weight<m1)&&(ht[j].parent==0))
{
m2=m1;
x2=x1;
m1=ht[j].weight;
x1=j;
}
else if((ht[j].weight<m2)&&(ht[j].parent==0))
{
m2=ht[j].weight;
x2=j;
}
}
k=n+i;
ht[x1].parent=ht[x2].parent=k;
ht[k].weight=m1+m2;
ht[k].lchild=x1;
ht[k].rchild=x2;
}
return ht;
}
void huffmancoding(int n,HUFFMANCODE hc,HUFFMANTREE ht,char str[])
{
int i,start,child,father;
char *cd;
hc=(HUFFMANCODE)malloc((n+1)*sizeof(char*));//分配n個字元編碼的頭指針
cd=(char*)malloc(n*sizeof(char));//分配求編碼的工作空間
cd[n-1]='\0';//編碼結束符
for(i=1;i<=n;++i)//逐個字元求哈夫曼編碼
{
start=n-1;
for(child=i,father=ht[i].parent;father!=0;child=father,father=ht[father].parent)/*從葉子結點到根結點求逆向編碼*/
if(ht[father].lchild==child)
cd[--start]='0';
else
cd[--start]='1';
hc[i]=(char*)malloc((n-start)*sizeof(char));//為i個字元編碼分配空間
strcpy(hc[i],&cd[start]);//從cd復制哈夫曼編碼串到hc
}
free(cd);//釋放工作空間
for(i=1;i<=n;++i)
{
printf("\n%c的編碼:",str[i]);
printf("%s\n",hc[i]);
}
}
void huffman()
{
int i,j,k,m,n;
char str[50];
int weight[50];
HUFFMANCODE hc=NULL;
HUFFMANTREE ht;
fflush(stdin);
printf("\n請輸入字元(一次性連續輸入所求的字元):");/*如:abcjhjg不要輸成ab cj hig,即字元間不加空格*/
gets(str);
for(j=0;j<50;j++)
{
if(str[j]=='\0')
break;
}
n=j;
for(j=n;j>0;j--)
str[j]=str[j-1];
str[n+1]='\0';
for(k=0;k<n;k++)
{
printf("\n請輸入%c的權值:",str[k+1]);
scanf("%d",&weight[k]);
}
for(k=n;k>0;k--)
weight[k]=weight[k-1];
weight[0]=0;
ht=huffmantree(n,weight);
huffmancoding(n,hc,ht,str);
}
void InsertSort(SortObject *p,unsigned long *compare,unsigned long *exchange)
{
int i,j,k;
RecordNode temp;
SortObject *pvector;
fflush(stdin);
if((pvector=(SortObject *)malloc(sizeof(SortObject)))==NULL)
{
printf("OverFollow!");
getchar();
exit(1);
}
k=pvector->n;
pvector->record=(RecordNode *)malloc(sizeof(RecordNode)*k);
for(i=0;i<p->n;i++)/* 復制數組*/
pvector->record[i]=p->record[i];
pvector->n=p->n;
*compare=0;
*exchange=0;
for(i=1;i<pvector->n;i++)
{
temp=pvector->record[i];
(*exchange)++;
j=i-1;
while((temp.key<pvector->record[j].key)&&(j>=0))
{
(*compare)++;
(*exchange)++;
pvector->record[j+1]=pvector->record[j];
j--;
}
if(j!=(i-1))
{
pvector->record[j+1]=temp;
(*exchange)++;
}
}
free(pvector);
}
void SelectSort(SortObject *p,unsigned long *compare,unsigned long *exchange)
{
int i,j,k;
RecordNode temp;
SortObject *pvector;
if((pvector=(SortObject *)malloc(sizeof(SortObject)))==NULL)
{
printf("OverFollow!");
getchar();
exit(1);
}
k=pvector->n;
pvector->record=(RecordNode *)malloc(sizeof(RecordNode)*k);
for(i=0;i<p->n;i++)/*復制數組*/
pvector->record[i]=p->record[i];
pvector->n=p->n;
*compare=0;
*exchange=0;
for(i=0;i<pvector->n-1;i++)
{
k=i;
for(j=i+1;j<pvector->n;j++)
{
(*compare)++;
if(pvector->record[j].key<pvector->record[k].key)
k=j;
}
if(k!=i)
{
temp=pvector->record[i];
pvector->record[i]=pvector->record[k];
pvector->record[k]=temp;
( *exchange)+=3;
}
}
free(pvector);
}
void BubbleSort(SortObject *p,unsigned long *compare,unsigned long *exchange)
{
int i,j,noswap,k;
RecordNode temp;
SortObject *pvector;
if((pvector=(SortObject *)malloc(sizeof(SortObject)))==NULL)
{
printf("OverFollow!");
getchar();
exit(1);
}
k=pvector->n;
pvector->record=(RecordNode *)malloc(sizeof(RecordNode)*k);
for(i=0;i<p->n;i++)/* 復制數組*/
pvector->record[i]=p->record[i];
pvector->n=p->n;
*compare=0;
*exchange=0;
for(i=0;i<pvector->n-1;i++)
{
noswap=1;
for(j=0;j<pvector->n-i-1;j++)
{
(*compare)++;
if(pvector->record[j+1].key<pvector->record[j].key)
{
temp=pvector->record[j];
pvector->record[j]=pvector->record[j+1];
pvector->record[j+1]=temp;
(*exchange)+=3;
noswap=0;
}
}
if(noswap) break;
}
free(pvector);
}
void ShellSort(SortObject *p,int d,unsigned long *compare,unsigned long *exchange)
{
int i,j,increment,k;
RecordNode temp;
SortObject *pvector;
if((pvector=(SortObject*)malloc(sizeof(SortObject)))==NULL)
{
printf("OverFollow!");
getchar();
exit(1);
}
k=pvector->n;
pvector->record=(RecordNode *)malloc(sizeof(RecordNode)*k);
for(i=0;i<p->n;i++)/* 復制數組*/
pvector->record[i]=p->record[i];
pvector->n=p->n;
*compare=0;
*exchange=0;
for(increment=d;increment>0;increment/=2)
{
for(i=increment;i<pvector->n;i++)
{
temp=pvector->record[i];
(*exchange)++;
j=i-increment;
while(j>=0&&temp.key<pvector->record[j].key)
{
(*compare)++;
pvector->record[j+increment]=pvector->record[j];
(*exchange)++;
j-=increment;
}
pvector->record[j+increment]=temp;
(*exchange)++;
}
}
free(pvector);
}
void QuickSort(SortObject *pvector,int left,int right,unsigned long *compare,unsigned long *exchange)
{
int i,j;
RecordNode temp;
if(left>=right)
return;
i=left;
j=right;
temp=pvector->record[i];
(*exchange)++;
while(i!=j)
{
while((pvector->record[j].key>=temp.key)&&(j>i))
{
(*compare)++;
j--;
}
if(i<j)
{
pvector->record[i++]=pvector->record[j];
(*exchange)++;
}
while((pvector->record[i].key<=temp.key)&&(j>i))
{
(*compare)++;
i++;
}
if(i<j)
{
pvector->record[j--]=pvector->record[i];
(*exchange)++;
}
}
pvector->record[i]=temp;
(*exchange)++;
QuickSort(pvector,left,i-1,compare,exchange);
QuickSort(pvector,i+1,right,compare,exchange);
}
void SortMethod(void)
{
int i,j,k,l;
unsigned long num[5][10]={0};
unsigned long sum[10]={0};
SortObject *pvector;
fflush(stdin);
printf("請輸入待排序的隨機數個數:\n");
scanf("%d",&k);
pvector=(SortObject *)malloc(sizeof(SortObject));
for(j=0;j<5;j++)
{
pvector->record=(RecordNode *)malloc(sizeof(RecordNode)*k);
for(i=0;i<k;i++)
pvector->record[i].key=rand();
pvector->n=k;
InsertSort(pvector,&num[j][0],&num[j][1]);
SelectSort(pvector,&num[j][2],&num[j][3]);
BubbleSort(pvector,&num[j][4],&num[j][5]);
ShellSort(pvector,4,&num[j][6],&num[j][7]);
QuickSort(pvector,0,k-1,&num[j][8],&num[j][9]);
}
printf("\n排序比較如下");
for(j=0;j<5;j++)
{
printf("\n\n對%d個數進行排序,結果為:\n",k);
printf("1.插入排序:比較-->%-7ld次 移動-->%-7ld次\n",num[j][0],num[j][1]);
printf("2.選擇排序:比較-->%-7ld次 移動-->%-7ld次\n",num[j][2],num[j][3]);
printf("3.冒泡排序:比較-->%-7ld次 移動-->%-7ld次\n",num[j][4],num[j][5]);
printf("4.希爾排序:比較-->%-7ld次 移動-->%-7ld次\n",num[j][6],num[j][7]);
printf("5.快速排序:比較-->%-7ld次 移動-->%-7ld次\n",num[j][8],num[j][9]);
if(j!=5)
printf("按回車繼續\n");
getchar();
}
for(j=0;j<5;j++)
{
sum[0]=sum[0]+num[j][0];
sum[1]=sum[1]+num[j][1];
sum[2]=sum[2]+num[j][2];
sum[3]=sum[3]+num[j][3];
sum[4]=sum[4]+num[j][4];
sum[5]=sum[5]+num[j][5];
sum[6]=sum[6]+num[j][6];
sum[7]=sum[7]+num[j][7];
sum[8]=sum[8]+num[j][8];
sum[9]=sum[9]+num[j][9];
}
printf("\n\n對%d個隨機數進行5次排序,平均比較次數和平均移動次數為:\n",k);
printf("1.插入排序:平均比較-->%-7ld次 平均移動-->%-7ld次\n",sum[0]/5,sum[1]/5);
printf("2.選擇排序:平均比較-->%-7ld次 平均移動-->%-7ld次\n",sum[2]/5,sum[3]/5);
printf("3.冒泡排序:平均比較-->%-7ld次 平均移動-->%-7ld次\n",sum[4]/5,sum[5]/5);
printf("4.希爾排序:平均比較-->%-7ld次 平均移動-->%-7ld次\n",sum[6]/5,sum[7]/5);
printf("5.快速排序:平均比較-->%-7ld次 平均移動-->%-7ld次\n",sum[8]/5,sum[9]/5);
free(pvector);
}
void sort()
{
int i;
while(1)
{
SortMethod();
printf("\n是否繼續?\n1.繼續\n2.返回菜單\n");
scanf("%d",&i);
if(i==2)break;
fflush(stdin);
getchar();
}
}
void huff()
{
int i;
while(1)
{
huffman();
printf("\n是否繼續?\n1.繼續\n2.返回菜單\n");
scanf("%d",&i);
if(i==2)break;
fflush(stdin);
getchar();
}
}
main()
{
int i,j,k;
while(1)
{
printf("請選擇要運行的功能:\n");
printf("1.哈夫曼編碼解碼器\n");
printf("2.內部排序性能分析\n");
printf("3.退出該程序\n\n");
printf("你的選擇為:");
scanf("%d",&i);
switch(i)
{
case 1:huff();break;
case 2:sort();break;
case 3:exit(0);
default:break;
}
fflush(stdin);
getchar();
system("cls");
}
}
4. 求程式控制交換PCM編解碼實驗的畢業設計
程式控制交換原理實驗系統及控制單元實驗
一、 實驗目的
1、熟悉該程式控制交換原理實驗系統的電路組成與主要部件的作用。
2、體會程式控制交換原理實驗系統進行電話通信時的工作過程。
3、了解CPU中央集中控制處理器電路組成及工作過程。
二、 預習要求
預習《程式控制交換原理》與《MCS-51單片計算機原理與應用》中的有關內容。
三、 實驗儀器儀表
1、主機實驗箱 一台
2、三用表 一台
3、電話單機 四台
四、 實驗系統電路組成
(一)電路組成
圖1-1是該實驗系統的原理框圖
圖1-1 實驗系統的原理框圖
圖1—2是該實驗系統的方框圖,其電路的組成及主要作用如下:
1、用戶模塊電路 主要完成BORSCHT七種功能,它由下列電路組成:
A、 用戶線介面電路
B、 二\四線變換器
C、 PCM編解碼電路
用戶線介面電路 二/ 四線變換器 二/四線變換器 用戶線介面電路
用戶1 PCM CODEC電路 PCM CODEC電路 用戶3
用戶線介面電路 二/ 四線變換器 二/ 四線變換器 用戶線介面電路
用戶2 PCM CODEC電路 PCM CODEC電路 用戶4
時鍾信號電路 控制、檢測電路 輸出顯示電路 二次穩壓電路
多種信號音電路 CPU中央處理器 鍵盤輸入電路 直流電源
圖1-2實驗系統方框圖
2、交換網路系統 主要完成空分交換與時隙交換兩大功能,它由下列電路組成:
A、空分交換網路系統
B、時隙交換網路系統
3、多種信號音電路 主要完成各種信號音的產生與發送,它由下列電路組成:
A、450Hz撥號音電路
B、忙音發生電路
C、回鈴音發生電路
D、25Hz振鈴信號電路
4、CPU中央集中控制處理器電路 主要完成對系統電路的各種控制,信號檢測,號碼識別,鍵盤輸入信息,輸出顯示信息等各種功能。
5、系統工作電源 主要完成系統所需要的各種電源,本實驗系統中有+5V,-5V,+12V,-12V,-48V等5組電源,由下列電路組成:
A、內置工作電源:+5V,+12V,-12V,-48V
B、穩壓電源: -8V,-5V
控制部分就是由CPU中央處理系統、輸入電路(鍵盤)、輸出電路(數碼管)、雙音多頻DTMF檢測電路、用戶環路狀態檢測電路、自動交換網路驅動電路與交換網路轉換電路、擴展電路、信號音控制電路等電路組成。
下面簡要說明各部分電路的作用與要求:
1、鍵盤輸入電路:主要把實驗過程中的一些功能通過鍵盤設置到系統中。
2、顯示電路: 顯示主叫與被叫電路的電話號碼,同時顯示通話時間。
3、輸入輸出擴展電路:顯示電路與鍵盤輸入電路主要通過該電路進行工作。主要晶元是D8155A,SN74LS240,MC1413。
4、雙音多頻DTMF接收檢測電路:把MT8870DC輸出的DTMF四位二進制信號,接收存貯後再送給CPU中央集中控制處理系統。
5、用戶狀態檢測電路:主要識別主、被叫用戶的摘掛機狀態,送給CPU進行處理。
6、自動交換網路驅動電路:主要實現電話交換通信時,CPU發出命令信息,由此電路實現驅動自動交換網路系統,其核心集成電路為SN74LS374,D8255A,GD74LS373等晶元。
7、信號音控制電路:它完全按照CPU發出的指令進行操作,使各種信號音按照系統程序進行工作。
8、振鈴控制電路:它也是按照CPU發出的指令進行工作,具體如下:
(A)不振鈴時,要求振鈴支路與供電系統分開。
(B)振鈴時,鈴流送向話機,並且供電系統通過振鈴支路向用戶饋電,用戶狀態檢測電路同時能檢測用戶的忙閑工作狀態。
(C)當振鈴時,用戶一摘機就要求迅速斷開振鈴支路。
(D)振鈴時要求有1秒鍾振、4秒鍾停的通斷比。
以上是CPU中央集中控制處理系統的主要工作過程,要全面具體實現上述工作過程,則要有軟體支持,該軟體程序流程圖見圖1—4。
圖1-3 鍵盤功能框圖
對圖1-3所示的鍵盤功能作如下介紹:
「時間」: 該鍵可設置系統的延時時間。如久不拔號、久不應答、位間不拔號的延時,預設值為10秒,可選擇的時間值有10秒、30秒、1分鍾。按一次該鍵則顯示下一個時間值,三個值循環顯示,當按下「確認」鍵時,就選定當前顯示值供系統使用,按「復位」鍵則清除該次時間的設定。
「會議電話」: 該鍵為召開電話會議的按鍵。電話會議設置用戶1為主叫方,其他三路為被叫方,只能由主叫方主持召開會議,向其他三路發出呼叫。電路完全接通或者接通兩路後,主叫方能和任一被叫方互相通話。除「復位」鍵外,其他鍵均推失去功能。會議結束後,可按「復位」鍵重啟系統。
「中繼」: 該鍵為局內交換切向中繼交換的功能按鍵,按下此鍵,再按「確認」鍵進行確認,則工作模式由局內交換切換為中繼交換,顯示器循環顯示「d」,此時方可通過中繼撥打「長途」電話。按「復位」鍵重啟系統,進入正常局內交換模式。
「確認」: 該鍵完成對其他功能鍵的確認,防止誤按鍵,在鍵盤中除「復位」鍵外,其他功能鍵都必須加「確認」鍵才能完成所定義的功能。
「復位」: 該鍵為重啟系統按鍵。在任何時候或者系統出現不正常狀態時都可按下此鍵重啟系統(有用戶通話時,會中斷通話),所有設置均為默認值。
圖1-5是顯示電路工作示意說明圖。
主叫號碼顯示 計時顯示 被叫號碼顯示
圖1-5 顯示電路
開 始
NO
有用戶呼叫嗎?
呼叫�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1 YES
去 話 接 續
向主叫送撥號音
NO
第一位號碼來了嗎?
撥號開始�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1 YES
停送撥號音,收存號碼
內 部 處 理
撥號完畢�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1
被叫閑嗎? NO
YES
來 話 接 續 向主叫送忙音
向被叫送鈴流,向主叫送回鈴音
被叫應答否? NO
主叫掛機否?
應答�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1 YES
停送鈴流,回鈴音,接通電路 YES
話終掛機否?
掛機�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1�6�1 YES
拆線(釋放復原)
結 束
圖1-4 程序工作流程示意圖
五、實驗內容
1、測量實驗系統電路板中的TP91~TP95各測量點電壓值,並記錄。
2、從總體上初步熟悉兩部電話單機用空分交換方式進行通話。
3、初步建立程式控制交換原理系統及電話通信的概念。
4、觀察並記錄一個正常呼叫的全過程。
5、觀察並記錄一個不正常呼叫的狀態。
圖1-6 呼叫識別電路框圖
五、 實驗步驟
1、接上交流電源線。
2、將K11~K14,K21~K24,K31~K34,K41~K44接2,3腳;K70~K75接2,3腳;K60~K63接2,3腳。
3、先打開「交流開關」,指示發光二極體亮後,再分別按下直流輸出開關J8,J9。此時實驗箱上的五組電源已供電,各自發光二極體亮。
4、按 「復位」鍵進行一次上電復位,此時,CPU已對系統進行初始化處理,數碼管循環顯示「P」 ,即可進行實驗。
5、將三用表拔至直流電壓檔,然後測量TP91,TP92,TP93,TP94,TP95的電壓是否正常:TP91為-12V,TP92為-48V,TP93為+5V,TP94為+12V,TP95為-5V。(-48V允許誤差±10%,其它為±5%)
6、將四個用戶接上電話單機。
7、正常呼叫全過程的觀察與記錄。(現以用戶1為主叫,用戶4為被叫進行實驗)
A、 主叫摘機,聽到撥號音,數碼管顯示主叫電話號碼「68」 。
B、 主叫撥首位被叫號碼「8」,主叫撥號音停,主叫繼續撥完被叫號碼「9」。
C、 被叫振鈴,主叫聽到回鈴音。
D、 被叫摘機,被叫振鈴停,主叫回鈴音停,雙方通話。數碼管顯示主叫號碼和被叫號碼,並開始通話計時。
E、 掛機,任意一方先掛機(如主叫先掛機),另一方(被叫)聽到忙音,計時暫停,雙方都掛機後,數碼管循環顯示「P」 。
8、不正常呼叫的自動處理
A、 主叫摘機後在規定的系統時間內不撥號,主叫聽到忙音。(系統時間可以設置,在系統復位後按「時間」可循環顯示「10」,「30」,「100」,分別表示10秒,30秒,1分鍾,選定一個時間,按「確定」即系統時間被設置,在復位狀態時,系統時間默認為10秒。)
B、 撥完第一位號碼後在規定的系統時間內沒有撥第二位號碼時,主叫聽到忙音。
C、 號碼撥錯時(如主叫撥「56」 ),主叫聽到忙音。
D、 被叫振鈴後在規定的系統時間內不摘機,被叫振鈴音停,主叫聽到忙音。
六、 實驗注意事項
對實驗系統加電一定要嚴格遵循先打開系統工作電源的「交流開關」,然後再打開直流輸出開關J8,J9。實驗結束後,先分別關直流輸出開關J8,J9。最後再關「交流開關」,以避免實驗電路的器件損壞。
七、 實驗報告要求
1、畫出實驗系統電路的方框圖,並作簡要敘述。
2、對正常呼叫全過程進行記錄。
實驗二 用戶線介面電路及二\四線變換實驗
一、實驗目的
1、全面了解用戶線介面電路功能(BORST)的作用及其實現方法。
2、通過對MH88612C電路的學習與實驗,進一步加深對BORST功能的理解。
3、了解二\四線變換電路的工作原理。
二、預習要求
認真預習程式控制交換原理中有關用戶線介面電路等章節。
三、實驗儀器儀表
1、主機實驗箱 一台
2、電話單機 二台
3、20MHz示波器 一台
4、三用表 一台
四、電路工作過程
在現代電話通信設備與程式控制交換機中,由於交換網路不能通過鈴流、饋電等電流,因而將過去在公用設備(如繩路)實現的一些用戶功能放到「用戶電路」來完成。
用戶電路也可稱為用戶線介面電路(Subscriber Line Interface Circuit—SLIC)。任何交換機都具有用戶線介面電路。
模擬用戶線介面電路在實現上的最大壓力是應能承受饋電、鈴流和外界干擾等高壓大電流的沖擊,過去都是採用晶體管、變壓器(或混合線圈)、繼電器等分立元件構成,隨著微電子技術的發展,近十年來在國際上陸續開發多種模擬SLIC,它們或是採用半導體集成工藝或是採用薄膜、厚膜混合工藝,並已實用化。在實際中,基於實現和應用上的考慮,通常將BORSCHT功能中過壓保護由外接元器件完成,編解碼器部分另單成一體,集成為編解碼器(CODEC),其餘功能由所謂集成模擬SLIC完成。
在布控交換機中,向用戶饋電,向用戶振鈴等功能都是在繩路中實現的,饋電電壓一般是-60V,用戶的饋電電流一般是20mA~30 mA,鈴流是25HZ,
90V左右,而在程式控制交換機中,由於交換網路處理的是數字信息,無法向用戶饋電、振鈴等,所以向用戶饋電、振鈴等任務就由用戶線介面電路來承擔完成,再加上其它一些要求,程式控制交換機中的用戶線介面電路一般要具有B(饋電)、O(過壓保護)、R(振鈴)、S(監視)、C(編解碼)、H(混合)、T(測試)七項功能。
模擬用戶線介面電路的功能可以歸納為BORSCHT七種功能,具體含義是:
(1)饋電(B-Battery feeling)向用戶話機送直流電流。通常要求饋電電壓為—48伏,環路電流不小於18mA。
(2)過壓保護(O-Overvoltage protection)防止過壓過流沖擊和損壞電路、設備。
(3)振鈴控制(R-Ringing Control)向用戶話機饋送鈴流,通常為25HZ/90Vrms正弦波。
(4)監視(S-Supervision)監視用戶線的狀態,檢測話機摘機、掛機與撥號脈沖等信號以送往控制網路和交換網路。
(5)編解碼與濾波(C-CODEC/Filter)在數字交換中,它完成模擬話音與數字碼間的轉換。通常採用PCM編碼器(Coder)與解碼器(Decoder)來完成,統稱為CODEC。相應的防混疊與平滑低通濾波器佔有話路(300HZ~3400HZ)帶寬,編碼速率為64kb/s。
(6)混合(H-Hyhird)完成二線與四線的轉換功能,即實現模擬二線雙向信號與PCM發送,接收數字四線單向信號之間的連接。過去這種功能由混合線圈實現,現在改為集成電路,因此稱為「混合電路」。
(7)測試(T-Test)對用戶電路進行測試。
模擬用戶線介面功能見圖2—1。
鈴流發生器 饋電電源
發送碼流
過 振 低通 編
a 壓 測 鈴 饋 混 碼
模
擬 保 試 繼 電 合 平衡 器
用 (編碼信號)
戶 護 開 電 電 電 網路 解
線
b 電 關 器 路 路 碼
路 低通 器
接收碼流
測試 振鈴控台 用戶線
匯流排 制信號彈 狀態信號
圖2-1 模擬用戶線介面功能框
(一)用戶線介面電路
在本實驗系統中,用戶線介面電路選用的是MITEL公司的MH88612C。MH88612C是2/4線厚膜混合用戶線介面電路。它包含向用戶話機恆流饋電、向被叫用戶話機饋送鈴流、用戶摘機後自行截除鈴流,摘掛機的檢測及音頻或脈沖信號的識別,用戶線是否有話機的識別,語音信號的2/4線混合轉換,外接振鈴繼電器驅動輸出。MH88612C用戶電路的雙向傳輸衰耗均為-1dB,供電電源+5V和-5V。其各項性能指標符合郵電部制定的有關標准。
(1)該電路的基本特性
1、向用戶饋送鈴流
2、向用戶恆流饋電
3、過壓過流保護
4、被叫用戶摘機自截鈴
5、摘掛機檢測和LED顯示
6、音頻或脈沖撥號檢測
7、振鈴繼電器驅動輸出
8、語音信號的2/4線轉換
9、能識別是否有話機
10、無需偶合變壓器
11、體積小及低功耗
12、極少量外圍器件
13、厚膜混合型工藝
14、封裝形式為20引線單列直插
圖2-2是它的管腳排列圖
(2)MH88612C引出端功能的說明
0腳:IC Internal Connection:空端。
1腳:TF Tip Feed: 連接外接二極體作為保護電路連到-48V和地。。
2腳:IC Internal Connection:空端。
3腳:VR Voice Receive(input): 四線語音信號的接收端。
4腳:VRef Voltage Reference:設置向用戶電話線送恆流饋電的參考電壓,恆流通過VRef調節;也可接地,一般為21mA環流。
5腳:VEE 負供電電源,通常為-5V DC。
6腳:GNDA 供電電源和饋電電源的地端,模擬接地。
7腳:GS Gain setting(input):低電平時直接接收附加增益為-0.5 dB,
此增益除編解碼增益設置之外的,高電平時為0dB。
8腳:VX Voice Transmit(output):四線語音信號的發送端。
9腳:TIP 連接用戶電話的「TIP」線。
10腳:RING 連接用戶電話的「RING」線。
11腳:RF Ring Feed:外部連接至振鈴繼電器。
12腳:VDD 正供電電源,通常為+5V DC。
13腳:RC Relay Control(input)振鈴繼電器控制輸入端,高電平有效
14腳:RD 振鈴繼電器驅動輸出端,外接振鈴繼電器線圈至地端,內部有一線圈感應箝位二極體。
15腳:RV Ring Feed Voltage:用戶線鈴流源輸入端,外部連接至振鈴繼電器。
16腳:VRLY 振鈴繼電器正供電電源,能常為+5V DC。
17腳:IC Internal Connection:空端。
18腳:VBat 用戶線饋電電壓,通常為-48V DC
19腳:CAP 連接外部電容作為振鈴濾波控制連電阻到地。
20腳:SHK 摘掛機狀態檢測及脈沖號碼輸出端,摘機時輸出高電平。
(3)用戶線介面電路主要功能
圖2-3是MH88612C內部電路方框圖,其主要功能說明如下:
TF VR
TIP
RING VX
RF
RV
VRLY
RC
VRef
RD CAP
SHK
圖2-3 MH88612C內部電路方框圖
1、向用戶話機供電,MH88612C可對用戶話機提供恆流饋電,饋電電流由VBAT以及VDD供給。恆定的電流為25 mA。當環路電阻為2KΩ時,饋電電流為18 mA,具體如下:
A、 供電電源VBat採用-48V;
B、 在靜態情況下(不振鈴、不呼叫),-48V電源通過繼電器靜合接點至話機;
C、 在振鈴時,-48V電源通過振鈴支路經繼電器動合接點至話機;
D、 用戶掛機時,話機叉簧下壓饋電迴路斷開,迴路無電流流過;
E、 用戶摘機後,話機叉簧上升,接通饋電迴路(在振鈴時接通振鈴支路)迴路。
2、MH88612C內部具有過壓保護的功能,可以抵抗保護TIP- -RING埠間的瞬時高壓,如結合外部的熱敏與壓敏電阻保護電路,則可保護250V左右高壓。
3、振鈴電路可由外部的振鈴繼電器和用戶電路內部的繼電器驅動電路以及鈴流電源向用戶饋送鈴流:當繼電器控制端(RC端)輸入高電平,繼電器驅動輸出端(RD端)輸出高電平,繼電器接通,此時鈴流源通過與振鈴繼電器連接的15端(RV端)經TIP––RING埠向被叫用戶饋送鈴流。當控制端(RC端)輸入低電平或被叫用戶摘機都可截除鈴流。用戶電路內部提供一振鈴繼電器感應電壓抑制箝位二極體。
4、監視用戶線的狀態變化即檢測摘掛機信號,具體如下:
A、用戶掛機時,用戶狀態檢測輸出端輸出低電平,以向CPU中央集中控制系統表示用戶「閑」;
B、用戶摘機時,用戶狀態檢測輸出端輸出高電平,以向CPU中央集中控制系統表示「忙」;
5、在TIP––RING埠間傳輸的語音信號為對地平衡的雙向語音信號,在四線VR端與VX端傳輸的信號為收發分開的不平衡語音信號。MH88612C可以進行TIP––RING埠與四線VR端和VX端間語音信號的雙向傳輸和2/4線混合轉換。
6、MH88612C可以提供用戶線短路保護:TIP線與RING線間,TIP線與地間,RING線與地間的長時間的短路對器件都不會損壞。
7、MH88612C提供的雙向語音信號的傳輸衰耗均為-dB。該傳輸衰耗可以通過MH88612C用戶電路的內部調整,也可通過外部電路調整;
8、MH88612C的四線埠可供語音信號編解碼器或交換矩陣使用。
由圖1-1可知,本實驗系統共有四個用戶線介面電路,電路的組成與工作過程均一樣,因此只對其中的一路進行分析。
圖2-4是用戶1用戶線介面電路的原理圖:
圖2-4 用戶線介面電路電原理圖
為了簡單和經濟起見,反映用戶狀態的信號一般都是直流信號,當用戶摘機時,用戶環路閉合,有用戶線上有直流電流流過。主叫摘機表示呼叫信號,被叫摘機,則表示應答信號,當用戶掛機時,用戶環路斷開,用戶線上的直流電流也斷開,因此交換機可以通過檢測用戶線上直流電流的有無來區分用戶狀態。
當用戶摘機時,發光二極體D10亮表示用戶已處於摘機狀態,TP13由低電平變成高電平,此狀態送到CPU進行檢測該路是否摘機,當檢測到該路有摘機時,CPU命令撥號音及控制電路送出f=450HZ,U=3V的波形。
此時,在TP12上能檢測到如圖2—5所示波形
TP12
0 2VP-P t
f = 400~450Hz
圖2-5 450Hz撥號音波形
當用戶聽到450HZ撥號音信號時,用戶開始撥電話號碼,雙音多頻號碼檢測電路檢測到號碼時通知CPU進行處理,CPU命令450HZ撥號音發生器停止送撥號音,用戶繼續撥完號碼,CPU檢測主叫所要被叫用戶的號碼後,立即向被叫用戶送振鈴信號,提醒被叫用戶接聽電話,同時向主叫用戶送回鈴音信號,以表示線路能夠接通,當被叫用戶摘機時,CPU接通雙方線路,通信過程建立。一旦接通鏈路,CPU即開始計時,當任一方先掛機,CPU檢測到後,立即向另一方送忙音,以示催促掛機,至此,主、被叫用戶一次通信過程結束。
通過上述簡單分析,不難得出各測量點的波形。
TP11:通信時有發送話音波形;撥號時有瞬間DTMF波形;不通信時則此點無波形。
TP12:通信時有接收話音波形:摘機後撥號前有450HZ撥號音信號;不通信時則此點無波形。
TP13:摘掛機狀態檢測測量點
掛機:TP13=低電平。
摘機:TP13=高電平。
TP14:振鈴控制信號輸入,高電平有效。即工作時為高電平,常態為低電平。
由於4個用戶線介面電路的測量點相同,故對其它三個用戶線介面電路的測量點就不一一敘述,波形均相同,即:
TP11=TP21=TP31=TP41
TP12=TP22=TP32=TP42
TP13=TP23=TP33=TP43
TP14=TP24=TP34=TP44
(二)二\四線變換電路
在該實驗系統中,二\四線變換由用戶線介面電路中的語音單元電路實現,圖2-6為電路的功能框圖,該電路完成二線–––單端之間信號轉換,在MH88612C內部電路中已經完成了該變換。
T
TR
R
圖2-6 二/四線變換功能框圖
二\四線變換的作用就是把用戶線介面電路中的語音模擬信號(TR)通過該電路的轉換分成去話(T)與來話(R),對該電話的要求是:
1、將二線電路轉換成四線電路;
2、信號由四線收端到四線發端要有盡可能大的衰減,衰減越大越好;
3、信號由二線端到四線發端和由四線收端到二線端的衰減應盡可能小,越小越好;
4、應保持各傳輸端的阻抗匹配;
以便於PCM編解碼電路形成發送與接收的數字信號。
五、實驗內容
1、參考有關程式控制交換原理教材中的用戶線介面電路等單節,對照該實驗系統中的電路,了解其電路的組成與工作過程。
2、通過主叫、被叫的摘、掛機操作,了解B、R、S等功能的具體作用。
六、實驗步驟
1. 接上交流電源線。
2. 將K11~K14,K21~K24,K31~K34,K41~K44接2,3腳;K70~K75接2,3腳;K60~K63接2,3腳。
3. 先打開「交流開關」,指示發光二極體亮後,再分別按下直流輸出開關J8,J9,此時實驗箱上的五組電源已供電,各自發光二極體亮。
4. 按「復位」鍵進行一次上電復位,此時,CPU已對系統進行初始化處理,顯示電路循環顯示「P」,即可進行實驗。
5. 用戶1,用戶3接上電話單機。
6. 用戶電話單機的直流供電(B)的觀測。(現以用戶1為例)
1) 用戶1的電話處於掛機狀態,用三用表的直流檔測量TP1A,TP1B對地的電壓,TP1A為-48V,TP1B為0V,它們之間電壓差為48V。
2) 用戶1的電話處於摘機狀態,用三用表的直流檔測量TP1A,TP1B對地的電壓,TP1A為-10V左右(此時的電壓與電話的內阻抗有關,所以每部電話的測量值不一定相同),TP1B為-3.7V左右。
以上給出的電壓值只是作為參考。
7. 觀察二/四線變換的作用。
1) 用正常的呼叫方式,使用戶1、用戶3處於通話狀態。
2) 當用戶1對著電話講話時(或按電話上的任意鍵),用示波器觀察TP11上的波形,為語音信號(或雙音多頻信號),不講話時無信號。
3) 當用戶1聽到用戶3講話時(或用戶3按電話上任意鍵),用示波器觀察TP12上的波形,為語音信號(或雙音多頻信號),對方不講話時無信號。
4) 用示波器觀察TP1A。不管是用戶1講話還是用戶3講話(或按電話上的任意鍵)此測試點都有語音波形(或雙音多頻信號)。
8. 摘、掛機狀態檢測的觀測。
1) 當用戶1的電話摘機時,用示波器測量TP13為高電平(4V左右)。
2) 當用戶1的電話掛機時,用示波器測量TP13為低電平(0V左右)。
9. 被叫話機振鈴(R)的觀測。
1) 用戶1處於掛機狀態,用戶3呼叫用戶1,即用戶3撥打「68」,使用戶1振鈴。
2)當用戶1的電話振鈴時,用示波器觀察TP14,振鈴時TP14為高電平(3V左右);不振鈴時TP14為低電平(0V左右)。
七、實驗注意事項
當實驗過程中出現不正常現象時,請按一下「復位」鍵,以使系統重新啟動。
八、實驗報告要求
1、畫出本次實驗電路方框圖,並能說出其工作過程。
2、畫出各測量點在各種情況下的波形圖。