搜索
您的当前位置:首页正文

六种码型的PCM解码方法研究

来源:星星旅游
CHINASC}ENC ̄:_AND]ECHNOLOGYINFORMA1]ON Mar 20盯・中国科技信息2017年第6期 61万一200万◎ DOI,10 3969/j issn 1001—8972 2017 06 025 可实现度 可替代度 行业曲线 行业关联度 在航空测试领域,PCM作为数据传输和遥 ̄UB,g数据格式 被广泛使用。信息接收端需要解调器,对PCM进行解调,以 便i井i亏数据处理和数据记录。FPGA具有结构灵活,设计周期短, 可扩展性强,接口丰富等优点,在高速信号实时处理领域越来 clk cnt<--24’dO; else clk cnt<=clk cnt+1: _f(clk—cnt==pcm—bps 1—4) PCMD 1<=pcm din: 越重要。针对PCM数据与时钟之间关系的不同,PCM码型 共分为七种码型。七种码型数据与时钟关系如图1所示。 PCM六种码型描述如下: elseif(clk—cnt==pcm—bps l一3) PCMD 3<--pcm din: end 1)NRZ_t_: “1”对应高电平, “0”对应低电平。 2)NRZ-M:“1”对应时钟起始时刻数据有变化,“0” 对应时钟起始时刻数据无变化。 3)NRZ-S: “1”对应时钟起始时刻数据无变化, “0” 对应时钟起始时刻数据有变化。 依图1所示时序进行解码。 1)NRZ4-:在2/4T处的数据即为PCM码元,即 PCMD等于PCMD2; 程序为:if(clk cnt-=pcm— bps24) 4)Bi _t.:“1”对应时钟中间时刻数据由1变0,“0” 对应时钟中间B,C ̄U数据由0变1。 5)BI①-M:“1”对应时钟中间B,J ̄A数据有变换,“0” 对应时钟中间时刻数据无变换。 6)Bi中-S:“1”对应时钟中间BC ̄xU数据无变换,“0” 对应时钟中间时刻数据有变换。 PCM解析方法 PCM数据流是数据与EI-,J ̄ ̄同步进行串行传输,在解码 时需要先做码元解析。解出的码元通过比较法检测帧同步, 即通过移位寄存器搜索码流中帧同步头来实现帧同步。检测 到同步头之后通过串并转换将码流转换为数据字。以FPGA 为处理器对数据流进行处理,在进行程序设计时按图2进行 模块化设计,以数据流方向设计有码元解析,同步字检测, 帧同步检测,串并转换,数据缓存5个模块。 图1 PCM码定义 码元解析 借鉴多重相位技术。记时钟周期为T,在时钟周期起 始时刻,1/4T,2/4T,3/4T,采样四次数据,PCM采样  后的数据分别记为PCMD0,PCMD1,PCMD2,PCMD3。程序如下: begin … ~if f H CLK sig) 7l 图2 PCM解码器的系统结构 ◎61万一200万 中国科技信息2017年第6期cHINAsc旧j j (. f . MS——————-LSB N 一数据RAM fi——帧计数器(———————————m—)TI—字l——— —1r字2———— 厂_-—I…一字n【子帧同步1r—————一—]  图3 PCM帧格式 PCMD<=pcm din 2)NRZ-M: 在1/4T+1处 比较PCMD一3和PCMD1来 判断码元,PCMD3不等于 PCMDI则码元PCMD为1, 羹 else 图5数据缓存 接收1个 PcM数据字 否则PCMD为0。程序为:if(clK_ cnt==pcm bps1 4+1) 大 if(PCMD 1 1=PCMD 3) PCMD<=1’bl: else 图6 PCM功能仿真时序图 PCMD<=1’b0。 PCMD<=1’b1 3)NRZ-6:在1/4T+I处比 较PCMD一3和PCMD一1来判断 、帧同步检测 为了从PCM中恢复出征确定数据流,需要进行帧同步 登 一 I码元,PCMD一3等于PCMD一1 —|l赢 ] j则码元PCMD为1,否则PCMD 、 . ——检测。帧同步任务是将解调出的数据比特序列进行正确的分组。 PCM帧格式如图3有m个子帧,每个子帧由n个字且 每个子帧以帧计数器开始,以子帧同步结束。 如图4通过检测同步字确定子帧起始,比较同步字和帧 J }为0。程序为:  kbps1 if(cl4+1)图4 c n p c m— 计数器(0)即可搜索出一主帧的起始。检测到主帧起始之后, 每隔n个字判断移位寄存器中是否为同步字,比较帧计数器 是否等于帧数,从而确定接受的数据流是否正确完整。 if(PCMD 1 1=PCMD 3) PCMD<=1’b0: else 数据缓存 解析的数据为了便于后续处理,需要将数据字按照帧结 _PCMD<=1’b1 4)Bi -L:在3/4T+1处比较PCMD_I和PCMD3 来判断码元,PCMD1为1且PCMD-3为0则码元 构中flg JI1 ̄.序,依次放入缓存。数据存储采用乒乓操作,地址 译码模块产生与帧数和字数对应的1 6位地址, PCMD为1;PCMD1为0且PCMD一3为1则码元 a[1 4:0]<=word cnt+fame cnt word num: 数据在被处理的同时被写入双RAM,当一主帧数据处 PCMD为0。程序为: if(clk—cnt==pcmbps34+1) _If(PCMD 1&!PCMD 3) PCMD<=1’b1: else 理完毕,产生一个完成标志,同1 ̄-,J1,5高位地a[-16]取反。系 统检测到完成标志就将数据从RAM通过外部接口发出去。 同时继续接收下一帧PCM数据。 系统测试 ‘ PCMD<=1’b0。 通过modesim进行功能仿真。对系统配置,采用 5)Bi①-M:在3/4T+1处比较PCMDI和PCMD3 _NRZ—L编码,位速率2M,同步头FE6B2840,字长16, 一来判断码元,PCMD1不等于PCMD一3则码元PCMD 主帧有三个子帧,一帧有4个字。 表1仿真数据 0 1 2 为1;否则码元PCMD为0。程序为:if(clk_cnt==pcm_ bps3 4+1 1 1 4 7 2 5 8 3 6 9 FE6B FE6B FE6B 2840 2840 2840 if(PCMD 1 1-_pCMD 3) PCMD<:1’b1: else PCMD<=1’b0。 如图6所示,系统在处理数据时将有效的数据写入 RAM。 6)Bi中-S:在3/4T+1处比较PCMD_I和PCMD3 来判断码元,PCMD一1等于PCMD_3则码元PCMD为1: 否则码元PCMD为‘0。程序为: 结语 通过对PCM格式和常用码型进行研究,设计相应的解 码方法,可以实时对不同码型的数据流进行解析,解析后得 数据,经过同步检测后缓存一边后续处理。经调试系统工作 正常,可以实现多种码型PCM的解调功能,验证了解调方 法正确可靠。 if(clk—cnt==pcmbps34+1) _if(PCMD 1 1=PCMD 3) PCMD<:1’b0: 一72一 

因篇幅问题不能全部显示,请点此查看更多更全内容

Top