DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 87|回复: 0
打印 上一主题 下一主题

VHDL实现PCM码解调程序模块设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-17 14:58:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1 引言  脉冲编码调制(Pulse Code Modulation,简称PCM)是一种概念简单、理论完善的编码系统,其最大特征是把连续的输入信号变换成在时间和振幅上都是离散量,然后再变换为代码传输。信息为数字信号,在远距离再生中继传输中不积累噪声,从而提高了通信系统的有效性、可靠性和保密性。利用现场可编程门阵列(FPGA)和VHDL 语言实现了PCM码的解调,这样在不改变硬件电路的情况下,能够适应PCM码传输速率和帧结构变化,从而正确解调数据。2 硬件电路设计  图1给出基于FPGA的硬件电路。其中,图1(a)为FPGA配置模块;图1(b)为信号收发模块及PCM码接收模块。

  该系统设计中FPGA选取Xilinx公司的Spartan系列XC2S50器件。该器件有4种工作模式,分别为主串模式、从串模式、边界扫描和从并模式。将M0,M1,M2接地,使其工作在主串模式下。FPGA由存储在片内RAM中的程序设置其工作状态,工作时需要编程设置片内的RAM。用户可根据不同的配置模式,采用相应的编程方式。上电时,FPGA将EPROM中的数据写入片内编程RAM,配置完成后,FPGA进人工作状态。掉电后,FPGA内部逻辑消失,恢复成白片。因此,FPGA能够反复使用且无需专用的编程器,采用通用EPROM,PROM编程器即可实现。当需要修改FPGA功能时,只需换一片EPROM。同一FPGA根据不同的编程数据能够产生不同的电路功能。该系统在发送方接收到请求信号后则开始发送数据。PCM码解调模块在移位脉冲同步下接收数据,并将串行数据转换为并行数据存人FIFO中。每接收到一次请求脉冲发送一帧数据,每帧数据以146FH为结束标志字,EB90为子帧同步字,当PCM码解调模块检测到帧尾后停止解调,并停止向FIFO写人数据。PCM码解调模块由硬件描述语言编写并集成于FPGA中。3 PCM码解调程序模块???????????????

  图2给出PCM码帧格式。其中N为子帧中的字数,最大值为1 024;Z为一帧所含子帧个数,最大值为256。子帧同步字字长为16~32 bit,字长度为4~16 bit。在遥测系统中,依照PCM码帧格式,将所要测控的参数放在格栅中自定义位,同时定义子帧同步字和字长。当发送请求信号,同步接收一帧数据,即使一帧数据接收错误,也不影响下一帧数据解调的正确性,进一步减小误码率。检测子帧同步字时,先找到一个子帧同步字后,每隔N个字节判断移位数据是否为子帧同步字,对每一个子帧都进行判断,即使第一次误判,或当PCM发送中断后再重发,也不会影响后续正确解调数据。可根据子帧同步字、帧尾标志字和请求信号的顺序由该解调数据模块进行自我纠正,从而大大降低了误码率。图3为PCM码解调程序模块图。3.1 移位脉冲产生程序

  系统设计要求移位脉冲频率为80 kHz,对时钟脉冲进行40分频。移位脉冲产生程序仿真图如图4所示。其中,bitt为位同步移位脉冲。
                          
                       
                          
                               

3.2 字节同步信号产生程序

  设b为一个标志位,当b为‘1’时,表示检测到请求信号的上升沿且尚未结束一帧传输,该进程的byte为字节同步信号,用来标志一个字节接收完毕。字节同步信号产生程序仿真图如图5所示。

3.3 并行数据输出及帧尾检测程序

  并行数据在字节同步信号byte的上升沿输出,outdata为并行数据输出端,同时将并行数据赋值给帧尾标志tail的低8位,将tail的低8位给其高8位,当tail的值为146F时,即表示一帧结束。并行数据输出及帧尾检测程序仿真图见图6。

4 调试结果  所发送数据是以00H为起始递增的一串数据,该数据字长200,结尾以146F为标记。调试过程中,南示波器观察波形,可以看到请求信号的频率及脉宽、移位脉冲的频率均符合要求,解调出的并行数据与数据源的数据相吻合。图7和图8分别给出移位脉冲电压up波形和输出最低位电压ud波形。

5 结语  基于FPGA的PCM码解调电路VHDL程序模块设计,可使电路在发出请求脉冲后,在移位脉冲的作用下,同步接收PCM数据,并输出8位并行数据,在帧尾处结束解调。通过仿真及最终电路调试验证了该系统设计能够实现PCM码解调系统功能。
                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-16 08:39 , 耗时 0.091870 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表