用CPLD控制曼彻斯特编解码器
时间:09-05
来源:互联网
点击:
的类型:如果接收的是命令,便输出高并保持16个DSC周期;如果接收的是数据,就继续保持低电平。TD变高,并在SDO输出NRZ数据期间一直为高。SDO输出一个字后,开始检验奇偶位。如果曼彻斯特码和奇偶位都正确,VW信号输出高,此时解码器开始寻找新的同步头,开始下一个接收周期。接收到新的有效的同步头和两个曼彻斯特码位后,VW信号被复位;否则,在持续大约20个DSC周期后,VW信号变低。
2.2.3HD-6409发送时序
HD-6409发送时序如图3所示。
(1)引脚定义 SD/CDS:串行NRZ码数据输入。CTS:清除准备发送信号。ECLK:编码时钟。BZO、BOO:曼彻斯特编码数据输出。
(2)编码时序过程 CTS信号高无效,低有效。在CTS信号的下降沿,引脚BZO和BOO开始发送同步序列(8个曼码“0”组成)。同步序列后就是命令同步脉冲(由1.5位高电平和1.5位低电平组成)。在输出命令同步脉冲时,NRZ数据在ECLK的下降沿通过SD/CDS引脚输入,这些数据编码后在命令同步序列后持续输出。这些码字没有奇偶校验和字结构。编码数据块的长度由CTS决定。
2.2.4 VHDL源程序
控制器的VHDL源文件如下(程序较长,附核心部分):
process(controlcs)beginif(controlcsventandcontrolcs=1)thencontrol_data<=databus;endif;endprocess;
ee08<=resetandcontrol_data(0);lclk595<=nottd08;sclk595<=td08anddsc08;lclk597<=control_data(3)andqq_out;sclk597<=(not(esc08andsd08))and(noteclk09);tdd08<=not(td08);cdss08<=not(cds08);cts09<=control_data(1);load<=(ee_bitor(not(control_data(1))))andqq_out;dr08<=control_data(2);ss08<=control_data(4);mr08<=control_data(5);
信号说明如下:control_data——8位控制寄存器;controlcs——控制寄存器片选信号,低有效;mr08——hd-6408的主复位信号,高有效;dr08——hd-6408的编码器复位信号,高有效;ee08——hd-6408的使能信号,高有效;ss08——编码同步头选择;cts09——hd-6409的使能信号,低有效;lclk595——串并转换器的载入数据信号;sclk595——串并转换器的时钟信号;lclk597——并串转换器的载入数据信号;sclk597——并串转换器的时钟信号;load——16位计数器载入初值信号;qq_out——16位边界指示器;tdd08——触发中断信号。
3 仿真与实现
本系统采用Xilinx公司生产的XC95144芯片,使用XilinxFoudation3.1i软件进行开发。所用VHDL程序通过时序仿真和下载后,观察波形并进行实际验证,可以正确地接收和发送曼彻斯特码,符合设计要求。
4 结论
本系统时序配合严格,运行可靠,易于修改;可以根据需要,灵活地加入各种各样的使用曼彻斯特码通信的系统中。
2.2.3HD-6409发送时序
HD-6409发送时序如图3所示。
图3 HD-6409发送时序图
(1)引脚定义 SD/CDS:串行NRZ码数据输入。CTS:清除准备发送信号。ECLK:编码时钟。BZO、BOO:曼彻斯特编码数据输出。
(2)编码时序过程 CTS信号高无效,低有效。在CTS信号的下降沿,引脚BZO和BOO开始发送同步序列(8个曼码“0”组成)。同步序列后就是命令同步脉冲(由1.5位高电平和1.5位低电平组成)。在输出命令同步脉冲时,NRZ数据在ECLK的下降沿通过SD/CDS引脚输入,这些数据编码后在命令同步序列后持续输出。这些码字没有奇偶校验和字结构。编码数据块的长度由CTS决定。
2.2.4 VHDL源程序
控制器的VHDL源文件如下(程序较长,附核心部分):
process(controlcs)beginif(controlcsventandcontrolcs=1)thencontrol_data<=databus;endif;endprocess;
ee08<=resetandcontrol_data(0);lclk595<=nottd08;sclk595<=td08anddsc08;lclk597<=control_data(3)andqq_out;sclk597<=(not(esc08andsd08))and(noteclk09);tdd08<=not(td08);cdss08<=not(cds08);cts09<=control_data(1);load<=(ee_bitor(not(control_data(1))))andqq_out;dr08<=control_data(2);ss08<=control_data(4);mr08<=control_data(5);
信号说明如下:control_data——8位控制寄存器;controlcs——控制寄存器片选信号,低有效;mr08——hd-6408的主复位信号,高有效;dr08——hd-6408的编码器复位信号,高有效;ee08——hd-6408的使能信号,高有效;ss08——编码同步头选择;cts09——hd-6409的使能信号,低有效;lclk595——串并转换器的载入数据信号;sclk595——串并转换器的时钟信号;lclk597——并串转换器的载入数据信号;sclk597——并串转换器的时钟信号;load——16位计数器载入初值信号;qq_out——16位边界指示器;tdd08——触发中断信号。
3 仿真与实现
本系统采用Xilinx公司生产的XC95144芯片,使用XilinxFoudation3.1i软件进行开发。所用VHDL程序通过时序仿真和下载后,观察波形并进行实际验证,可以正确地接收和发送曼彻斯特码,符合设计要求。
4 结论
本系统时序配合严格,运行可靠,易于修改;可以根据需要,灵活地加入各种各样的使用曼彻斯特码通信的系统中。
解码器 单片机 电路 CPLD 仿真 PCB Xilinx Intersil 编码器 VHDL 相关文章:
- Virtex-5推动超宽带通信和测距的发展(01-06)
- 用FPGA实现音频采样率的转换(02-07)
- 在嵌入式设计中降低CPLD的功耗(04-30)
- spartan6套件试用心得报告--001(05-10)
- 采用FPGA协处理器实现算法加速(07-14)
- 基于 FPGA 的 MPEG-4 编解码器(07-18)