在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

DS31256的分數(shù)級T1 (FT1)環(huán)回檢測

星星科技指導員 ? 來源:ADI ? 作者:ADI ? 2023-06-16 15:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本應用筆記介紹了利用DS31256的接收BERT (誤碼率測試)功能實現(xiàn)分數(shù)級T1 (FT1)上環(huán)回或下環(huán)回檢測(V.54)的方法,并給出了示例代碼。

概述

這篇應用筆記介紹了利用DS31256的接收BERT功能實現(xiàn)分數(shù)級T1 (FT1)上環(huán)回或下環(huán)回檢測(V.54)的方法,詳細說明請參考分數(shù)級T1.403附錄B規(guī)范。所提供的算法和示例代碼簡化了DS31256最終用戶的設計。

DS31256只有一個BERT引擎,但有16個V.54引擎(每端口一個)。因此,當測試端口多于一個時,軟件帶寬必須能夠處理多路復用技術。

算法

圖1圖2所示流程圖詳細說明了上環(huán)回、下環(huán)回的操作流程。假設只有端口0查找FT1模板。基本算法設置BERT查詢上環(huán)回模板。同步后,這個算法檢測并確保BERT同步于可編程周期(例程中為0.6秒),然后查找一個全“1”模板。下環(huán)回例程中采用相同的同步、檢驗,隨后是全“1”模板。

本例中選擇0.6秒周期確保BERT同步,但這個時間周期必須根據(jù)sync_loop函數(shù)運行的快慢進行調(diào)整。

圖1. FT1 (上環(huán)回與下環(huán)回)檢測流程

圖1. FT1 (上環(huán)回與下環(huán)回)檢測流程

圖2. FT1 (上環(huán)回與下環(huán)回)檢測流程(續(xù))

圖2. FT1 (上環(huán)回與下環(huán)回)檢測流程(續(xù))

示例代碼中函數(shù)調(diào)用定義

在進入特定程序前,必須了解一些假設條件,程序中需要下列函數(shù)。

  1. write_reg (addr, data)—將特定數(shù)值寫入指定的DS31256寄存器
    addr = DS31256寄存器相對于芯片基地址的偏移量
    data = 需要寫入寄存器的數(shù)據(jù)
    
  2. read_reg (addr)—讀取DS31256特定地址的寄存器并返回值:
    addr = DS31256寄存器相對于芯片基地址的偏移量
    
  3. write_ind_reg (addr, data)—將特定數(shù)據(jù)寫入指定的DS31256間接尋址寄存器,然后在返回前等待寄存器的“忙”位被清除:
    addr = 要寫入數(shù)據(jù)的間接尋址寄存器
    data = 寫入指定的間接尋址寄存器的數(shù)據(jù)
    
  4. read_ind_reg (addr, i)—讀取指定地址的DS31256間接尋址寄存器并返回數(shù)值:
    addr = DS31256寄存器相對于芯片基地址的偏移量
    i = 索引
    
  5. 標準的C語言打印函數(shù)printf

函數(shù)示例代碼

FT1測試函數(shù)

void FT1Test()
{
	int status = 0;
	
	FT1Setting(0, 0); 				-- Configure the device for BERT
status = sync_loop(1, 300, 5000); 		-- FT1 loop-up test
if(status == 1) 				-- Return status is synced
{
  	status = sync_loop(3, 300, 5000);	-- FT1 all ones test
  	if(status == 1)
  	{
   	loopbackSetup(1);			-- Place channelized in network loopback
	status = sync_loop(2, 300, 5000);	-- FT1 loop-down test
	
	if(status == 1)
   	     {
status = sync_loop(3, 300, 5000); 	-- FT1 all ones test
    		if(status == 1)
loopbackSetup(0);			-- Take out from channelized loopback 
    		else
checkstatus(3);			-- Print out test status
   	} 
	else 
	{
checkstatus(2);			-- Print out test status
	}
  	} 
else 
{
checkstatus(3);			-- Print out test status
  	}
} 
else 
{
  	checkstatus(1);				-- Print out test status
}
}

1. 打印測試狀態(tài)信息函數(shù)

void checkstatus(int type)
{
	switch(type)
 	{
 	case 1: printf("Loopup pattern not found");	
  		break;
 	case 2: printf("Loopdown pattern not found");
  		break;
 	case 3: printf("All 1's pattern not found");
  		break;
 	}
}

2. 配置FT1函數(shù)

該例程假設端口0用于FT1檢測。

void FT1Setting(int dev, int port)
{
int mc = 0;						-- Variables to be used
int ds0 = 0;
int rcfg = 0;
	
mc = read_reg (0x10);				-- Read Master Control(MC) 0x00 register
mc = mc & 0xf07f;	-- Mask out the read-back value from MC 
write_reg (0x10, mc); 	-- Assign the BERT to port 0 (MC.BPS4-0) 

write_reg(0x0304, 0x4000); 	-- Configure port 0 in receive port 
for(ds0 = 0; ds0 < 128; ds0 = ds0 + 1) 		-- Configure register 
{							--Assign timeslot R[0]CFG[ds0].RBERT bit  
write_ind_reg(0x0300, 0x0100 + ds0);	-- Assign all 128 ds0’s to RBERT 
	}				
printf("FT1 configuration completed."); 
}

3. 執(zhí)行FT1測試函數(shù)

int sync_loop(int pattern, int sync_cnt, int timeout) 
{  
int timeCnt = 0; 					-- Variables will be used
int cnt = 0;
int status = 0;
int temp = 0;
int sync = 0; 
int bertc0 = 0; 
int bertec0 = 0;

BertSetup(pattern);					-- Set up the BERT

bertc0 = read_reg (0x500);				-- Toggle RESYNC
bertc0 = bertc0 | 0x0001;	-- Mask the read BERTC0 value 
write_reg (0x500, bertc0);				-- Write a 1 into BERTC0.RESYNC
bertc0 = bertc0 & 0xfffe;				-- Mask out read-back value
write_reg (0x500, bertc0);				-- Write 0 into BERTC0.RESYNC

bertc0 = read_reg (0x500);				-- Read BERTC0
bertec0 = read_reg (0x518);				-- Read BERTEC0
sync = ((bertec0 & 0x0001) == 0x0001);  		
timeCnt = timeCnt + 1;

while(cnt

4. 在BERT寄存器中建立模板

void BertSetup(int pattern) 
{  
	switch (pattern)  
	{
  	case 1:
write_reg (0x500, 0x0 & 0x003c);	-- Disable BERTC0.RINV 
break;					-- Set 2E7-1 pattern
case 2:
write_reg (0x500, 0x0020 & 0x003c);--Enable BERTC0.RINV 
break;					-- Set 2E7-1 pattern
  	default:
write_reg (0x508, 0xffff);		-- Set BERT Repetitive Pattern Set 
write_reg (0x50C, 0xffff);		-- in BERTBRP0-1
write_reg (0x500, 0x0010 & 0x003c);-- Disable BERTC0.RINV
   		break;					-- Set to repetitive pattern
 	}
}

5. 建立環(huán)回模式函數(shù)

該例程假設將端口0置于環(huán)回模式。

void loopbackSetup(int val)
{
	int a = 0; 
	int tmp = 0;
	
	tmp = val< 11;
	write_reg(0x0304, tmp); 	-- Set port and channel 0 
 	for (a = 0; a < 128; a++)	-- Set T[0]CFG[a].CNLB to place channel in 
	{	-- loopback  
write_ind_reg(0x0300, 0x0200 + a);		 
	}

	if(val ==1)
	{
write_reg(0x0200, 0x0008); 			-- Enable TP[0]CR.TFDA1 to allow data to 
printf("Loopup detected");			-- be transmitted normally
printf("Channel placed in loopback");	
	}
	else
	{
write_reg(0x0200, 0x0000); 			-- Disable TP[0]CR.TFDA1 bit 
printf("Loopdown detected");
  	printf("Channel taken out from loopback");
	} 
}

結論

本應用筆記介紹了如何使用DS31256的接收BERT功能,從例程和軟件算法可以看出實施FT1上回環(huán)和下回環(huán)檢測非常簡單。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5432

    瀏覽量

    124002
  • C語言
    +關注

    關注

    180

    文章

    7631

    瀏覽量

    141046
  • 代碼
    +關注

    關注

    30

    文章

    4895

    瀏覽量

    70481
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    DS31256,pdf,datasheet (256-Cha

    The DS31256 Envoy is a 256-channel HDLC controller that can handle up to 60 T1 or 64 E1 data
    發(fā)表于 04-21 23:49 ?18次下載

    Enabling Fractional-T1(FT1) Lo

    the receive BERT function in the DS31256 to perform Fractional-T1(FT1)loop-up or loop-down detection (V.54). Ov
    發(fā)表于 04-18 11:23 ?1110次閱讀
    Enabling Fractional-<b class='flag-5'>T1</b>(<b class='flag-5'>FT1</b>) Lo

    Examples of DS31256 Applicatio

    OverviewDS31256 has 256 independent directional HDLC channels, which support up to 64 T1 or E1 data streams. Si
    發(fā)表于 04-18 11:25 ?804次閱讀
    Examples of <b class='flag-5'>DS31256</b> Applicatio

    DS31256 HDLC Controller Step-b

    Abstract: This application note provides an example of how to configure a single T1 port on DS31256
    發(fā)表于 04-18 11:29 ?1381次閱讀
    <b class='flag-5'>DS31256</b> HDLC Controller Step-b

    DS31256 HDLC Controller Step-b

    Abstract: This application note provides an example of how to configure a single T1 port on DS31256
    發(fā)表于 04-18 11:30 ?923次閱讀
    <b class='flag-5'>DS31256</b> HDLC Controller Step-b

    DS31256 Loopback Modes

    Abstract: This application note shows how to configure various loopback modes of the DS31256 HDLC
    發(fā)表于 04-18 11:31 ?913次閱讀
    <b class='flag-5'>DS31256</b> Loopback Modes

    DS31256 Gapped Clock Applicati

    Abstract: This application note discusses how to realize gapped clock applications with the DS31256
    發(fā)表于 04-18 11:32 ?1122次閱讀
    <b class='flag-5'>DS31256</b> Gapped Clock Applicati

    DS31256的初始化步驟

    摘要:DS31256 Envoy HDLC控制器在發(fā)送數(shù)據(jù)包之前的初始化順序。 概述按照設計,DS31256上電以后不會控制PCI總線。所有的物理端口(端口0至15)發(fā)送全1 (非HDLC空閑碼)
    發(fā)表于 04-20 09:02 ?1116次閱讀

    DS31256 and T1/E1 Interface

    2155, DS21Q55, DS21Q50 and DS26528 in T1/E1, 2MHz, 4MHz, 8MHz clock mo
    發(fā)表于 04-20 09:26 ?1696次閱讀
    <b class='flag-5'>DS31256</b> and <b class='flag-5'>T1</b>/E<b class='flag-5'>1</b> Interface

    DS31256 HDLC控制器的配置步驟—橋接模式

    DS31256 HDLC控制器的配置步驟—橋接模式 本應用筆記提供了怎樣配置橋接模式下DS31256 HDLC控制器T1端口的例子。文章提供了一個實際例程,以方便最終用戶使用,幫助他
    發(fā)表于 04-21 14:59 ?1652次閱讀
    <b class='flag-5'>DS31256</b> HDLC控制器的配置步驟—橋接模式

    DS31256 上啟用小數(shù) T1 (FT1) 環(huán)檢測

    發(fā)表于 11-17 12:42 ?0次下載
    在 <b class='flag-5'>DS31256</b> 上啟用小數(shù) <b class='flag-5'>T1</b> (<b class='flag-5'>FT1</b>) <b class='flag-5'>環(huán)</b><b class='flag-5'>回</b><b class='flag-5'>檢測</b>

    如何利用DS31256 HDLC控制器實現(xiàn)間隔時鐘應用

    DS31256有16個物理端口(16 Tx和16 Rx)或鏈路,可配置為信道化或非信道化。通道化端口可以處理一個、兩個或四個 T1 或 E1 數(shù)據(jù)鏈路。這些端口或鏈路的時鐘可以支持間隔時鐘。本應用筆記介紹如何在256通道HDLC
    的頭像 發(fā)表于 01-13 10:25 ?1184次閱讀
    如何利用<b class='flag-5'>DS31256</b> HDLC控制器實現(xiàn)間隔時鐘應用

    DS31256 接口 - 電信

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS31256相關產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有DS31256的引腳圖、接線圖、封裝手冊、中文資料、英文資料,DS31256真值表,DS31256
    發(fā)表于 01-14 19:46
    <b class='flag-5'>DS31256</b> 接口 - 電信

    DS31256閉合時鐘應用

    DS16有16個物理端口(16 Tx和31256 Rx)或鏈路,可配置為信道化或非信道化。通道化端口可以處理一個、兩個或四個 T1 或 E1 數(shù)據(jù)鏈路。這些端口或鏈路的時鐘可以支持間隔
    的頭像 發(fā)表于 02-13 15:43 ?986次閱讀
    <b class='flag-5'>DS31256</b>閉合時鐘應用

    DS上啟用分數(shù)T1環(huán)檢測

    本應用筆記介紹如何使用DS31256的接收BERT功能執(zhí)行分數(shù)T1FT1)環(huán)路或環(huán)路下降檢測(V.54),如
    的頭像 發(fā)表于 02-22 10:08 ?1122次閱讀
    在<b class='flag-5'>DS</b>上啟用<b class='flag-5'>分數(shù)</b><b class='flag-5'>T1</b><b class='flag-5'>環(huán)</b><b class='flag-5'>回</b><b class='flag-5'>檢測</b>
    主站蜘蛛池模板: 亚洲第一页视频 | 黄色小网站在线观看 | 久久久精品午夜免费不卡 | 在线亚洲精品 | 天堂在线视频网站 | 干中文字幕 | 色综合激情网 | 婷婷99视频精品全部在线观看 | 4438成人成人高清视频 | 岛国大片在线 | 天天精品视频在线观看资源 | www成年人视频| 91大神精品在线观看 | 中国一级特黄剌激爽毛片 | 午夜色站| 夜夜爽夜夜操 | 在线免费国产 | 在线视频 二区 | 男人的天堂久久精品激情 | 亚洲色图21p| 99青草青草久热精品视频 | 亚洲成人网在线 | 久久精品国产清自在天天线 | 欧美一区二区三区视频在线观看 | 香蕉爱爱网 | 亚洲va国产va天堂va久久 | 亚洲国产色婷婷精品综合在线观看 | 中文字幕佐山爱一区二区免费 | 欧美日韩亚洲国产一区二区综合 | 午夜神马福利 | 免费色视频在线观看 | ww欧洲ww在线视频看ww | 淫操| 国产免费久久精品99久久 | 青青伊人91久久福利精品 | 最近在线观看免费完整视频 | 欧美影院一区 | 久久久久久国产精品免费 | 神马午夜51| 亚洲高清国产一线久久 | 国产国产成人人免费影院 |