⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bertest.h

📁 c编写的lpc2129控制误码芯片ds2172的代码
💻 H
字号:
//DS2172 寄存器地址定义,来源于DS2172英文手册表2
//            寄存器名  地址                         可读/写情况
#define 	PSR3  	0X00    //模板设置寄存器3   	 R/W
#define 	PSR2  	0X01    //模板设置寄存器2   	 R/W
#define 	PSR1  	0X02    //模板设置寄存器1   	 R/W
#define 	PSR0  	0X03    //模板设置寄存器0   	 R/W
#define 	PLR   	0X04    //模板长度寄存器   	 	 R/W
#define 	PTR   	0X05    //多项式寄存器     	 	 R/W
#define 	PCR  	0X06    //模板控制寄存器   	 	 R/W
#define 	EIR  	0X07    //错码插入寄存器   	 	 R/W
#define 	BCR3  	0X08    //位计数器寄存器3   	 R
#define 	BCR2  	0X09    //位计数器寄存器2   	 R
#define 	BCR1  	0X0A    //位计数器寄存器1   	 R
#define 	BCR0  	0X0B    //位计数器寄存器0    	 R
#define 	BECR3  	0X0C    //位错误计数器寄存器3    R
#define 	BECR2  	0X0D    //位错误计数器寄存器2    R
#define 	BECR1  	0X0E    //位错误计数器寄存器1    R
#define 	BECR0  	0X0F    //位错误计数器寄存器0    R
#define 	PRR3  	0X10    //模板接收寄存器3        R
#define 	PRR2  	0X11    //模板接收寄存器2        R
#define 	PRR1  	0X12    //模板接收寄存器1        R
#define 	PRR0  	0X13    //模板接收寄存器0        R
#define 	SR  	0X14    //状态寄存器        	 R
#define 	IMR  	0X15    //中断标记寄存器         R/W
#define 	TR  	0X1C    //测试寄存器             R/W


#define 	LCDNUM   		10
#define		LCDDB  			( 0xFF<<LCDNUM )    // P0.10~P0.17 定义为LCD的数据输入端
#define 	LCDCS  			( 1<<28 )   		// P0.28  定义为LCD的数据选通
#define 	LCDA0  			( 1<<29 )         	// P0.29  定义为LCD命令和数据选通端
#define		LCDBACKLIGHT	( 1<<25 )			// P1.25  定义为LCD背光控制  
#define 	LCDWR  			( 1<<2  )         	// P0.2	  定义为LCD屏的数据写信号      
#define 	LCDRD  			( 1<<3  )         	// P0.3	  定义为LCD屏的数据读信号 
#define	  	FPGA_RESET		( 1<<18 )			// P1.18  控制FPGA复位,高电平有效 
#define		MPU_TEST		( 1<<19 )			// P1.19  输出方波,以测试MPU是否写入成功

#define 	BERNUM   		10
#define		BERDB  			( 0xFF<<BERNUM )    // P0.10~P0.17 定义为LCD的数据输入端
#define 	BERCS  			( 1<<24 )   		// P1.24  定义为BER的数据选通
#define 	BERWR  			( 1<<2  )         	// P0.2	  定义为BER的数据写信号      
#define 	BERRD  			( 1<<3  )         	// P0.3	  定义为BER的数据读信号 
#define 	BERALE 			( 1<<17 )         	// P1.17  定义为BER的ALE
#define		BERTL			( 1<<21 )			// P1.21  定义为BER的TL
#define		BERRL			( 1<<22 )			// P1.22  定义为BER的RL
#define		BERLC			( 1<<23 )			// P1.23  定义为BER的LC
#define		BERINT			( 1<<30 )			// P0.30  定义为BER的INT/


#define 	PPG_TYPE_No  20

typedef struct
	{
	unsigned char PP_LENGTH;//伪随机模板长度的阶,实际长度为(2**PP_LENGTH)-1;
		
	unsigned char PTR_V;	//多项式寄存器的取值
	unsigned char PLR_V;	//模板长度寄存器的取值
	
	unsigned char TINV_V;	//发送数据倒置选择
	unsigned char RINV_V;	//接收数据倒置选择	
		
	}PPG; 			//pseudorandom pattern generation  伪随机模板产生,来源于 ds2172英文手册Talbe 4;
				//使用伪随机模板时,PSR3~PSR0的值均为0xff;
		
		
//伪随机模板寄存器设置表
const PPG  PPG_TABLE[PPG_TYPE_No]=
	{
	0x03,0x00,0x02,0x00,0x00,
	0x04,0x00,0x03,0x00,0x00,	
	0x05,0x01,0x04,0x00,0x00,	
	0x06,0x04,0x05,0x00,0x00,	
	0x07,0x00,0x06,0x00,0x00,
	0x09,0x04,0x08,0x00,0x00,	
	0x0A,0x02,0x09,0x00,0x00,	
	0x0B,0x08,0x0A,0x00,0x00,	
	0x0F,0x0D,0x0E,0x01,0x01,
	0x11,0x02,0x10,0x00,0x00,	
	0x12,0x06,0x11,0x00,0x00,	
	0x14,0x02,0x13,0x00,0x00,	
	0x15,0x01,0x14,0x00,0x00,
	0x16,0x00,0x15,0x00,0x00,	
	0x17,0x11,0x16,0x01,0x01,	
	0x19,0x02,0x18,0x00,0x00,
	0x1C,0x02,0x1B,0x00,0x00,
	0x1D,0x01,0x1C,0x00,0x00,	
	0x1F,0x02,0x1E,0x00,0x00,	
	0x20,0x10,0x1F,0x00,0x00		
	}; 
	
	
	
#define 	RPG_TYPE_No  10	

typedef struct
{
	unsigned char RP_TYPE;  //重复模板类型,取值为Table 5的行位置		
	unsigned char PTR_V;	//多项式寄存器的取值
	unsigned char PLR_V;	//模板长度寄存器的取值
	
	unsigned char PSR3_V;	//模板设置寄存器3的取值	
	unsigned char PSR2_V;	//模板设置寄存器2的取值	
	unsigned char PSR1_V;	//模板设置寄存器1的取值	
	unsigned char PSR0_V;	//模板设置寄存器0的取值		
			
}RPG; 		//repetitive pattern generation  重复模板产生,来源于 ds2172英文手册Talbe 5;
		//使用重复模板时,TINV,RINV的值均为0;
		
//重复模板寄存器设置表		
const RPG  RPG_TABLE[RPG_TYPE_No]=
	{
	0x01,0x00,0x00,0xff,0xff,0xff,0xff,
	0x02,0x00,0x00,0xff,0xff,0xff,0xfe,	
	0x03,0x00,0x01,0xff,0xff,0xff,0xfe,		
	0x04,0x00,0x03,0xff,0xff,0xff,0xfc,		
	0x05,0x00,0x17,0xff,0x20,0x00,0x22,
	0x06,0x00,0x0f,0xff,0xff,0x00,0x01,	
	0x07,0x00,0x07,0xff,0xff,0xff,0x01,		
	0x08,0x00,0x03,0xff,0xff,0xff,0xf1,
	0x09,0x00,0x04,0xff,0xff,0xff,0xf0,		
	0x0a,0x00,0x02,0xff,0xff,0xff,0xfc	
	};

#define		BitNum	0
#define		ErrNum	1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -