1、通信集成电路通信集成电路设计第设计第01(B)章章1 PCM的基本原理的基本原理 抽样频率为抽样频率为8000Hz(周期为(周期为125us),对),对每一话路每抽样一次经过量化可以编成每一话路每抽样一次经过量化可以编成8位码位码组,占用一个时隙。组,占用一个时隙。30/32路路PCM系统中,系统中,32路复用路复用125us。这。这32路时隙构成一个路时隙构成一个“帧帧”。而而16帧又合成一个复帧。帧又合成一个复帧。E1的一个时分复用帧(其长度的一个时分复用帧(其长度T=125us)共划分为)共划分为32相等的时隙,时隙的编号为相等的时隙,时隙的编号为CH0-CH31。其中时隙。其中时隙CH
2、0用用作帧同步用,时隙作帧同步用,时隙CH16用来传送信令,剩下用来传送信令,剩下CH1-CH15和和CH17-CH31 共共30个时隙用作个时隙用作30个话路。每个时隙传送个话路。每个时隙传送8bit,因此共用,因此共用256bit。每秒传送。每秒传送8000个帧,因此个帧,因此PCM一一次群次群E1的数据率就是的数据率就是 2.048Mbit/s。1、一条、一条E1是是2.048M的链路,用的链路,用PCM编码。编码。2、一个、一个E1的帧长为的帧长为256个个bit,分为分为32个时隙,个时隙,一个时隙为一个时隙为8个个bit。3、每个时隙在、每个时隙在E1帧中占帧中占8bit,8*8k
3、=64k,即,即一条一条E1中含有中含有32个个64K。2 E1帧结构帧结构 E1有成帧有成帧,成复帧与不成帧三种方式成复帧与不成帧三种方式,在成帧在成帧的的E1中第中第0时隙用于传输帧同步数据时隙用于传输帧同步数据,其余其余31个时隙个时隙可以用于传输有效数据可以用于传输有效数据;在成复帧的在成复帧的E1中中,除了第除了第0时隙外时隙外,第第16时隙是用于传输信令的时隙是用于传输信令的,只有第只有第1到到15,第第17到第到第31共共30个时隙可用于传输有效数据个时隙可用于传输有效数据;而在而在不成帧的不成帧的E1中中,所有所有32个时隙都可用于传输有效数个时隙都可用于传输有效数据。如下图所
4、示:据。如下图所示:成帧第0时隙传输帧同步数据第1时隙-第31时隙传输有效数据成复帧第0时隙传输帧同步数据第1到15时隙传输有效数据第16时隙传输信令第17到第31时隙传输有效数据不成帧 所有32个时隙都可用于传输有效数据在在在在E1E1信信信信道道道道中中中中,8bit8bit组组组组成成成成一一一一个个个个时时时时隙隙隙隙(TSTS),由由由由3232个个个个时时时时隙隙隙隙组组组组成成成成了了了了一一一一个个个个帧帧帧帧(F F),16,16个个个个 帧帧帧帧组组组组成成成成一一一一个个个个复复复复帧帧帧帧(MFMF)。在在在在一一一一个个个个帧帧帧帧中中中中,TS0TS0主主主主要要要
5、要用用用用于于于于传传传传送送送送帧帧帧帧定定定定位位位位信信信信号号号号(FASFAS)、CRC-4CRC-4(循循循循环环环环冗冗冗冗余余余余校校校校验验验验)和和和和对对对对端端端端告告告告警警警警指指指指示示示示,TS16TS16主主主主要要要要传传传传送送送送随随随随路路路路信信信信令令令令(CASCAS)、复复复复帧帧帧帧定定定定位位位位信信信信号号号号和和和和复复复复帧帧帧帧对对对对端端端端告告告告警警警警指指指指示示示示,TS1TS1至至至至TS15TS15和和和和TS17TS17至至至至TS31TS31共共共共3030个个个个时时时时隙隙隙隙传传传传送送送送话话话话音音音音或
6、或或或数数数数据据据据 等等等等信信信信息息息息。我我我我们们们们称称称称TS1TS1至至至至TS15TS15和和和和TS17TS17至至至至TS31TS31为为为为“净净净净荷荷荷荷”,TS0TS0和和和和TS16TS16为为为为开开开开销销销销。如如如如果果果果采采采采用用用用带带带带30/3230/32系系系系统统统统的的的的帧帧帧帧结构如图:结构如图:结构如图:结构如图:外外公公共共信信道道信信令令(CCS),TS16就就失失去去了了传传送送信信令令的的用用途途,该该时时隙隙也也可可用用来来传传送送信信息息信信号号,这这时时帧帧结结构构的的净净荷荷为为TS1至至TS31,开销只有,开销
7、只有TS0了。了。E1共共分分32个个时时隙隙TS0-TS31。每每个个时时隙隙为为64K,其其中中TS0为为帧帧同同步步码码,Si,Sa4,Sa5,Sa6,Sa7,A比比特特占占用用,若若系系统统运运用用了了CRC校校验验,则则Si比比特特位位置置改改传传CRC校校验验码码。TS16为为信信令令时时隙隙,当当使使用用到到信信令令(共共路路信信令令或或随随路路信信令令)时时,该该时时隙隙用用来来传传输输信信令令,用用户户不不可可用用来来传传输输数数据据。所所以以2M的的PCM码码型有型有PCM30:PCM30用户可用时隙为用户可用时隙为30个个,TS1-TS15,TS17-TS31。TS16传
8、送信令,无传送信令,无CRC校验。校验。PCM31:PCM30用户可用时隙为用户可用时隙为31个个,TS1-TS15,TS16-TS31。TS16不传送信令,无不传送信令,无CRC校验。校验。PCM30C:PCM30用户可用时隙为用户可用时隙为30个个,TS1-TS15,TS17-TS31。TS16传送信令,有传送信令,有CRC校验。校验。PCM31C:PCM30用户可用时隙为用户可用时隙为31个个,TS1-TS15,TS16-TS31。TS16不传送信令,有不传送信令,有CRC校验。校验。这个帧结构如何用我们学习过的这个帧结构如何用我们学习过的Verilog HDL进行表示呢?进行表示呢?带
9、使能端的计数器带使能端的计数器以模1024为例:module count_n(clk,reset,en,c_out);input reset,clk,en;output 9:0 c_out;reg 9:0 c_out;always(posedge clk or negedge reset)begin if(!reset)c_out=10h000;else if(en)c_out=c_out+1;endendmodule+1DFFQDCLKclkresetc_outen把这个计数器如何用在这个帧结构上呢?把这个计数器如何用在这个帧结构上呢?1、首先,确定用几个计数器来表示这个复帧结构;、首先,确
10、定用几个计数器来表示这个复帧结构;2、电路在进行上电时进行异步复位;、电路在进行上电时进行异步复位;3、找到帧和复帧时属于电路的同步复位;、找到帧和复帧时属于电路的同步复位;4、确定计数器之间的关系。、确定计数器之间的关系。32个时隙计数器个时隙计数器module ts_32(clk,reset,en,clr,count_ts_32);input reset,clk,en,clr;output 4:0 count_ts_32;reg 4:0 count_ts_32;always(posedge clk or negedge reset)begin if(!reset)count_ts_32=5
11、h00;else if(clr)count_ts_32=5h01;else if(en)count_ts_32=count_ts_32+1;endendmodule每个时隙的每个时隙的8位计数器位计数器module bit_8(clk,reset,en,clr,count_bit_8);input reset,clk,en,clr;output 2:0 count_bit_8;reg 2:0 count_bit_8;always(posedge clk or negedge reset)begin if(!reset)count_bit_8=3h0;else if(clr)count_bit_
12、8=3h0;else if(en)count_bit_8=count_bit_8+1;endendmodule16个复帧计数器个复帧计数器module mf_16(clk,reset,en,clr,count_mf_16);input reset,clk,en,clr;output 3:0 count_mf_16;reg 3:0 count_mf_16;always(posedge clk or negedge reset)begin if(!reset)count_mf_16=4h0;else if(clr)count_mf_16=4h0;else if(en)count_mf_16=cou
13、nt_mf_16+1;endendmodule帧头检测电路帧头检测电路是对码字是对码字0011011进行检测。进行检测。在在ITU-T的相关标准中,对帧头检测的情的相关标准中,对帧头检测的情况进行了详细的规定。况进行了详细的规定。复帧帧头检测电路复帧帧头检测电路是对码字是对码字0000进行检测。进行检测。在在ITU-T的相关标准中,对帧头检测的情的相关标准中,对帧头检测的情况进行了详细的规定。况进行了详细的规定。首先要确定帧脉冲信号的位置首先要确定帧脉冲信号的位置首先要确定帧脉冲信号的位置首先要确定帧脉冲信号的位置 帧脉冲信号每隔帧脉冲信号每隔512个时钟出现一次,可以在个时钟出现一次,可以在
14、任意任意时刻时刻出现,为什么会是这样了?出现,为什么会是这样了?选择一个合适的时刻,作为帧脉冲出现的时刻。选择一个合适的时刻,作为帧脉冲出现的时刻。Top 层描述层描述module mf_time(renset,clk,f0,mf0,count_ts_32,count_bit_8,count_mf_16);input renset,clk,f0,mf0;output 4:0 count_ts_32;output 2:0 count_bit_8;output 4:0 count_mf_16;wire en1,en2,en3;ts_32 ts_32(.clk(clk),.reset(reset),
15、.en(en1),.clr(clr1),.count_ts_32(count_ts_32);bit_8 bit_8(.clk(clk),.reset(reset),.en(en2),.clr(clr2),.count_bit_8(count_bit_8);mf_16 mf_16(.clk(clk),.reset(reset),.en(en3),.clr(clr3),.count_mf_16(count_mf_16);assign en1=(count_bit_8=7)1:0;assign en2=1;assign en3=(count_ts_32=31&count_bit_8=8)1:0;assign clr1=f0;assign clr2=f0;assign clr3=mf0;endmodule