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

📄 e1.h

📁 芯片bt8237的底层驱动,实现E1/T1帧的构建
💻 H
📖 第 1 页 / 共 3 页
字号:
#define E1_VERSION	"1.0E"//modified from "1.0D-ADT0" ,this code is Xavi standard! 12/30/2002


#ifndef TURE
	#define TURE					1
#endif
#ifndef FALSE
	#define FALSE					0
#endif

#define PASS					0x00
#define FAIL					0x01

#define ENABLE					TURE
#define DISABLE					FALSE

#define NORMAL					FALSE
#define REVERSE					TURE

typedef unsigned int UINT;
typedef unsigned char UCHAR;

// define access LONG & INT type value macro
#define ADDR_LONG(a)			(*(volatile unsigned long *)a)               /*把地址a里的数据赋给addr_long*  unsigned long 32/
#define ADDR_INT(a)				(*(volatile UINT *)a)
#define ADDR_BYTE(a)			(*(volatile UCHAR *)a)
#define ADDR_ABYTE(a)			((volatile UCHAR *)a)

// define CPLD data & status registers

#define V35_SR					ADDR_BYTE(0xC0FFF800)
#define V35_C0R					ADDR_BYTE(0xC0FFF900)
#define V35_C1R					ADDR_BYTE(0xC0FFFA00)
#define V35_MR					ADDR_BYTE(0xC0FFFB00)

#define CPLD_GET(x)		cpld.byte = x                                         /*CPLD_GET(x)里的参数为V35_SR,COR,C1R,MR*/
#define CPLD_SET(x)		x = cpld.byte

typedef struct                                            /*16位中使用到了8位*/
{
	unsigned char ver:4;
	unsigned char reserved:1;
	unsigned char ll:1;
	unsigned char rts:1;
	unsigned char dtr:1;
}st_cpld_sr;
#define CPLD_LL_DISABLE			0
#define CPLD_LL_ENABLE			1

#define CPLD_RTS_DISABLE		0
#define CPLD_RTS_ENABLE			1

#define CPLD_DTR_DISABLE		0
#define CPLD_DTR_ENABLE			1

typedef struct
{
	unsigned char cts:1;
	unsigned char dsr:1;
	unsigned char dcd:1;
	unsigned char lp:1;
	unsigned char dce:1;
	unsigned char tclk:1;
	unsigned char dtinv:1;
	unsigned char ckinv:1;
}st_cpld_c0r;
#define CPLD_CTS_DISABLE		0
#define CPLD_CTS_ENABLE			1

#define CPLD_DSR_DISABLE		0
#define CPLD_DSR_ENABLE			1

#define CPLD_DCD_DISABLE		0
#define CPLD_DCD_ENABLE			1

#define CPLD_LOOPBACK_ENABLE	0
#define CPLD_LOOPBACK_DISABLE	1

#define CPLD_DTE_MODE			0
#define CPLD_DCE_MODE			1

#define CPLD_INVTER_CLOCK		0
#define CPLD_NORMAL_CLOCK		1

#define CPLD_INVTER_DATA		0
#define CPLD_NORMAL_DATA		1

typedef struct
{
	unsigned char mode:3;
	unsigned char clock:1;
	unsigned char tx_gled:1;
	unsigned char tx_rled:1;
	unsigned char rx_gled:1;
	unsigned char rx_rled:1;
}st_cpld_c1r;

#define WAN_V10_MODE		0x07
#define WAN_V11_MODE		0x06
#define WAN_EIA530_MODE		0x05
#define WAN_X21_MODE		0x04
#define WAN_V35_MODE		0x03
#define WAN_V28_MODE		0x01
#define WAN_UNUSED			0x00

#define CPLD_EXTERNAL_CLOCK		0
#define CPLD_INTERNAL_CLOCK		1

//#define CPLD_DTE_MODE			0
//#define CPLD_DCE_MODE			1

#define CPLD_3_CLOCK			0
#define CPLD_2_CLOCK			1

//#define CPLD_INVTER_DATA		0
//#define CPLD_NORMAL_DATA		1

#define CPLD_LED_ON				0
#define CPLD_LED_OFF			1


typedef struct
{
	unsigned char mode:4;
	unsigned char reserved:2;
	unsigned char wan_txd:1;
	unsigned char wan_rxd:1;
}st_cpld_mr;
#define REG_V35_MODE			0x01
#define REG_E1_MODE				0x02

#define SELECT_E1           0
#define SELECT_T1           1
/* CLAD Frequency Select */
#define CSEL_OSEL_MASK        0x07
#define CSEL_OSEL_1024        0x00
#define CSEL_OSEL_2048        0x01
#define CSEL_OSEL_4096        0x02
#define CSEL_OSEL_8192        0x03
#define CSEL_OSEL_2560        0x04
#define CSEL_OSEL_1544        0x05
#define CSEL_OSEL_1536        0x06
#define CSEL_OSEL_MULT        0x07

#define CSEL_VSEL_MASK        0x70
#define CSEL_VSEL_1024        0x00
#define CSEL_VSEL_2048        0x10
#define CSEL_VSEL_4096        0x20
#define CSEL_VSEL_8192        0x30
#define CSEL_VSEL_2560        0x40
#define CSEL_VSEL_1544        0x50
#define CSEL_VSEL_1536        0x60
#define CSEL_VSEL_MULT        0x70


/* Transmit Framer Configuration */
#define TCR0_TFRAME_MASK      0x0F
#define TCR0_FAS              0x00  
#define TCR0_FAS_CRC          0x04  
#define TCR0_FAS_CAS          0x08  
#define TCR0_FAS_CRC_CAS      0x0F  
#define TCR0_FT               0x00
#define TCR0_SF               0x04
#define TCR0_SF_JYEL          0x05
#define TCR0_SLC              0x08
#define TCR0_ESF_FPS          0x01
#define TCR0_ESF_MIMIC_CRC    0x0C
#define TCR0_ESF_FORCE_CRC    0x0D

typedef union
{
    unsigned char byte;
    st_cpld_sr	sr_bit;
    st_cpld_c0r	c0r_bit;
    st_cpld_c1r	c1r_bit;
    st_cpld_mr	mr_bit;
}un_cpld_reg;






#define bt8370_reg unsigned char

typedef struct
{
	unsigned char ver:4;
	unsigned char did:4;
}st_did;
typedef union
{
    unsigned char byte;
    st_did bit;
}un_did;

typedef struct
{
	unsigned char t1e1n:1;
	unsigned char rframe:4;
	unsigned char reserved:2;
	unsigned char reset:1;
}st_cro;
typedef union
{
    unsigned char byte;
    st_cro bit;
}un_cro;

typedef struct
{
	unsigned char jsize:3;
	unsigned char jcenter:1;
	unsigned char jauto:1;
	unsigned char jdir:1;
	unsigned char jfree:1;
	unsigned char jen:1;
}st_jat_cr;
typedef union
{
    unsigned char byte;
    st_jat_cr bit;
}un_jat_cr;

typedef struct
{
	unsigned char patt:1;
	unsigned char dl2:1;
	unsigned char dl1:1;
	unsigned char timer:1;
	unsigned char count:1;
	unsigned char error:1;
	unsigned char alarm2:1;
	unsigned char alarm1:1;
}st_irr;
typedef union
{
    unsigned char byte;
    st_irr bit;
}un_irr;

typedef struct
{
	unsigned char sigfrz:1;
	unsigned char rlof:1;
	unsigned char rlos:1;
	unsigned char ralos:1;
	unsigned char rais:1;
	unsigned char rpdv:1;
	unsigned char ryel:1;
	unsigned char rmyel:1;
}st_isr7;
typedef union
{
    unsigned char byte;
    st_isr7 bit;
}un_isr7;

typedef struct
{
	unsigned char onesec:1;
	unsigned char tlof:1;
	unsigned char reserved:1;
	unsigned char tloc:1;
	unsigned char tshort:1;
	unsigned char tpdv:1;
	unsigned char loopup:1;
	unsigned char loopdn:1;
}st_isr6;
typedef union
{
    unsigned char byte;
    st_isr6 bit;
}un_isr6;

typedef struct
{
	unsigned char ferr:1;
	unsigned char merr:1;
	unsigned char serr:1;
	unsigned char cerr:1;
	unsigned char jerr:1;
	unsigned char ckerr:1;
	unsigned char rslip:1;
	unsigned char tslip:1;
}st_isr5;
typedef union
{
    unsigned char byte;
    st_isr5 bit;
}un_isr5;

typedef struct
{
	unsigned char ferr:1;
	unsigned char crc:1;
	unsigned char lcv:1;
	unsigned char febe:1;
	unsigned char berr:1;
	unsigned char sef:1;
	unsigned char cofa:1;
	unsigned char fred:1;
}st_isr4;
typedef union
{
    unsigned char byte;
    st_isr4 bit;
}un_isr4;

typedef struct
{
	unsigned char rframe:1;
	unsigned char rmf:1;
	unsigned char rmsync:1;
	unsigned char rsig:1;
	unsigned char tframe:1;
	unsigned char tmf:1;
	unsigned char tmsync:1;
	unsigned char tsig:1;
}st_isr3;
typedef union
{
    unsigned char byte;
    st_isr3 bit;
}un_isr3;

typedef struct
{
	unsigned char tmsg1:1;
	unsigned char tnear1:1;
	unsigned char tempty1:1;
	unsigned char tdlerr1:1;
	unsigned char rmsg1:1;
	unsigned char rnear1:1;
	unsigned char rffull1:1;
	unsigned char tbop:1;
}st_isr2;
typedef union
{
    unsigned char byte;
    st_isr2 bit;
}un_isr2;

typedef struct
{
	unsigned char tmsg2:1;
	unsigned char tnear2:1;
	unsigned char tempty2:1;
	unsigned char tdlerr2:1;
	unsigned char rmsg2:1;
	unsigned char rnear2:1;
	unsigned char rfull2:1;
	unsigned char rbop:1;
}st_isr1;
typedef union
{
    unsigned char byte;
    st_isr1 bit;
}un_isr1;

typedef struct
{
	unsigned char tferr:1;
	unsigned char tmerr:1;
	unsigned char tserr:1;
	unsigned char tcerr:1;
	unsigned char psync:1;
	unsigned char bslip:1;
	unsigned char reserved:2;
}st_isr0;
typedef union
{
    unsigned char byte;
    st_isr0 bit;
}un_isr0;//////////////////////////////////////////////////////////////////////////////

typedef struct
{
	unsigned char aloop:1;
	unsigned char floop:1;
	unsigned char lloop:1;
	unsigned char ploop:1;
	unsigned char reserved:4;
}st_loop;
typedef union
{
    unsigned char byte;
    st_isr1 bit;
}un_loop;

typedef struct
{
	unsigned char ts:5;
	unsigned char fs:2;
	unsigned char dl3en:1;
}st_dl3_ts;
typedef union
{
    unsigned char byte;
    st_dl3_ts bit;
}un_dl3_ts;

typedef struct
{
	unsigned char txtxn:1;
	unsigned char active:1;
	unsigned char timeout:1;
	unsigned char found:1;
	unsigned char invalid:1;
	unsigned char reserved:3;
}st_fstat;
typedef union                                                              /*define union is for easier to read the unmber of register*/
{
    unsigned char byte;
    st_fstat bit;
}un_fstat;

typedef struct
{
	unsigned char tmsync_io:1;
	unsigned char tfsync_io:1;
	unsigned char rmsync_io:1;
	unsigned char rfsync_io:1;
	unsigned char indy_io:1;
	unsigned char tdl_io:1;
	unsigned char rdl_io:1;
	unsigned char onesec_io:1;
}st_pio;
typedef union
{
    unsigned char byte;
    st_pio bit;
}un_pio;

typedef struct
{
	unsigned char rcko_oe:1;
	unsigned char clado_oe:1;
	unsigned char tcko_oe:1;
	unsigned char indy_oe:1;
	unsigned char rdl_oe:1;
	unsigned char tdl_oe:1;
	unsigned char reserved:2;
}st_poe;
typedef union
{
    unsigned char byte;
    st_poe bit;
}un_poe;

typedef struct
{
	unsigned char tcki:2;
	unsigned char cladi:2;
	unsigned char tsbcki:2;
	unsigned char rsbcki:2;
}st_cmux;                                        /*Clock Input Mux (CMUX)*/
typedef union
{
    unsigned char byte;
    st_cmux bit;
}un_cmux;

typedef  struct
{   
    	unsigned char tmux:6;
    	unsigned char reserved:2;
}st_tmux;
typedef union
{
    unsigned char byte;
    st_tmux bit;
}un_tmux;                

⌨️ 快捷键说明

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