0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

采用可编程逻辑器件实现三线制同步串行通信的应用设计

电子设计 来源:现代电子技术 作者:冯春阳,张遂南 2021-06-08 15:32 次阅读

航天工程领域中,星地通讯等远距离遥测遥控是嵌入式卫星数管计算机重要功能之一,利用三线制同步串行遥测遥控通道对指令和数据进行收发操作是通信链路的重要环节。

目前许多处理器芯片都已集成了同步串行接口,但基于三线制同步串行接口的处理器并不多。利用传统设计方法所实现的三线制同步通信硬件电路接口虽然能满足一般工程设计要求,但在“低成本、小体积、低功耗和灵活性”设计理念的推动下,传统设计显然弊大于利。采用可编程逻辑器件CPLDFPGA技术,对三线制同步串行通信接口电路进行结构设计与实现,可以大幅度减小系统体积,降低功耗,提高设计的灵活度。同时,还可以在其中增加其他逻辑功能模块,并能很方便地应用到相关的嵌入式系统中。

1 三线制同步串行通信机理

三线制同步串行通信时,发送端和接收端必须使用共同的时钟源才能保持它们之间的准确同步。为达到准确同步的目的,其中一个方法就是采用编码和解码的原理,即在发送端利用编码器把要发送的数据和发送时钟组合在一起,通过传输线发送到接收端,在接收端再用解码器从数据流中分离出接收时钟。常用的编码解码器有曼彻斯特编码解码及NRZ-L码。本文中收发信号采用的码型是NRZ-L码。

三线制同步串行通信主要包括三个信号:采样信号(也叫帧同步信号)、时钟信号和串行数据信号,其时序逻辑关系如图1所示。

从图1可看出,数据接收或发送时,首先帧同步信号先触发一个瞬时启动脉冲,之后保持低电平有效,时钟信号紧随其后,数据在时钟信号的上升沿保持稳定,并开始采样和传输,每个时钟周期收发一位字符数据,串行数据成批连续发送和接收。

2 三线制同步串行通信控制器接口结构设计

2.1 基于传统设计的硬件电路接口实现

在三线制同步串行通信控制器接口的传统硬件电路设计中,需使用多片元器件来实现其功能,包括:异步四位计数器、移位寄存器、8位D触发器、与门、与非门和反相器等主要功能器件,接口电路原理图在ProteI 99 SE中实现。

三线制同步串行通信控制器接收接口硬件电路如图2所示。

从图2中可看到,通过复位信号rst n、片选信号CS、门控信号strobe和读写信号RW等的不同组合,实现逻辑控制功能。通过异步四位计数器SN54HC161的计数功能,使得移位寄存器SN54HC164顺利进行数据的串/并转换,将8位并行数据通过8位D触发器SN54HC374锁存在内部总线上等待系统接收。在输出端,通过双D触发器SN54HC74产生中断信号int,通知系统内的微处理器进行数据接收操作。

三线制同步串行通信控制器发送接口硬件电路如图3所示。

从图3可知,系统时钟start-clk通过分频电路模块产生发送时钟原始信号code-clk,用于电路的时钟状态控制。系统内的微处理器将要发送的8位并行数据通过8位D触发器SN54HC377,将数据锁存在其Q端口等待发送,然后在异步四位计数器SN54HC161的计数功能控制下,移位寄存器SN54HC165进行数据的并/串转换操作。在输出端,通过双D触发器SN54HC74产生中断信号,然后开始通过单向总线驱动器SN54HC244进行帧同步信号、时钟信号及数据的发送操作。

2.2 基于CPLD/FPGA的接口结构设计

为解决传统硬件电路元器件多,功耗大,体积大等缺点,利用CPLD/FPGA技术,同时结合VHDL硬件描述语言设计三线制同步串行通信控制器接口已成为一种必然,结合三线制同步串行通信机理,设计出了基于CPLD/FPGA的三线制同步串行通信控制器接口内部结构,其功能结构如图4所示。

整个三线制同步串行通信控制器接口的内部结构主要由时钟分频模块、系统接口控制逻辑、数据接收模块、数据发送模块等四大模块构成。

时钟分频模块主要用于数据收/发模块产生同步时钟信号。系统接口控制逻辑主要用于各种逻辑功能信号的控制,同时还可以接收_中断仲裁逻辑模块产生的中断信号,控制数据的接收或者发送操作。数据接收模块是三线制同步串行通信控制器接口进行数据接收的核心部分,其模块结构如图5所示。

数据接收流程:在帧同步脉冲信号触发下,串行数据在时钟信号rclk上升沿到来时保持稳定,并通过rdata信号线进入数据接收模块。在该模块内部,串行数据经过串/并变换,接收FIFO作为数据缓冲器,将接收到的数据锁存在VHDL程序指定的两个地址寄存器中,一个地址单元存储数据的高八位,另外一个地址单元存储数据的低八位,当数据存满这两个地址单元后,接口向系统发出一个“接收缓存满”的接收中断标志int,系统微处理器响应后,数据被全部取出,并行数据被送往系统的数据总线上,重复进行相同操作,直至连续接收完所有数据,数据接收过程结束。

数据发送模块也是三线制同步串行通信接口进行数据发送的核心部分,其模块结构如图6所示。

数据发送流程:在sgate帧同步脉冲信号触发下,系统数据总线上的并行数据在时钟信号sclk上升沿到来时保持稳定,并通过数据发送模块开始数据发送。在模块内部,首先发送FIFO数据缓冲器,当并行数据存满该缓存单元后,数据发送模块向系统发出一个“发送缓存满”的发送中断标志int,系统微处理器响应后,并行数据从发送FIFO内读出,经过并/串变换成串行数据,最高位MSB最前,最低位LSB最后,并被送往发送数据信号线Sdata上,发送至外围设备接口,重复进行相同操作,直至发送完毕所有数据,数据发送过程结束。

3 结 语

本文在介绍了三线制同步串行通信机制基础上,首先对三线制同步串行通信接口进行了硬件电路设计,然后针对传统电路设计方式的不足,构建了基于CPLD/FPGA的三线制同步串行通信控制器接口结构,详述了各个功能模块及其工作原理,设计合理,并且满足了实际应用要求。目前,此接口结构模块已作为FPGA设计中的关键子模块被成功应用于某航天项目及其配套的硬件测试平台中。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1603

    文章

    21331

    浏览量

    593613
  • cpld
    +关注

    关注

    32

    文章

    1243

    浏览量

    168336
  • 嵌入式
    +关注

    关注

    4984

    文章

    18300

    浏览量

    288872
收藏 人收藏

    评论

    相关推荐

    Xilinx可编程逻辑器件的高级应用与设计技巧绝版教程

    本章小结第8章 Xilinx可编程逻辑器件设计技巧8.1 概述8.2 可编程逻辑器件的时钟设计8.3 同步设计与提高器件工作速度8.4 存储器设计8.5
    发表于 02-27 14:43

    可编程逻辑器件

    可编程逻辑器件到底是干什么用的呢,简单的说,就是通过重新写程序,重新注入到这个器件中达到实现其它的功能。最常见的当属电脑了。电脑本身除了加法,减法和简单的逻辑运算四种。比如要是想
    发表于 04-15 10:02

    可编程逻辑器件发展历史

    可编程逻辑器件(prog ramm able logic device,PLD)件的功能不是固定不变的,它可根据用户的需要而进行改变,即由编程的方法来确定器件逻辑功能。
    发表于 02-26 10:08

    可编程逻辑器件是如何发展的?

    可编程逻辑器件是如何发展的?
    发表于 04-29 06:23

    怎么采用可编程逻辑器件设计数字系统?

    本文以乘法器的设计为例,来说明采用可编程逻辑器件设计数字系统的方法。
    发表于 04-29 06:22

    PLD可编程逻辑器件

    PLD可编程逻辑器件 英文全称为:programmable logic device 即 PLD。PLD是做为一种通用集成电路产生的,他的逻辑功能按照用户对器件编程来确定。一般的PLD
    发表于 07-22 09:05

    可编程逻辑器件设计

    可编程逻辑器件设计 (264页,nlc格式)
    发表于 03-25 16:41 66次下载

    可编程逻辑器件基础及应用实验指导书

    可编程逻辑器件基础及应用实验指导书 《可编程逻辑器件基础及应用》是一门侧重掌握可编程逻辑器件的基本结构和原理的课程。重点是使学生掌握基于可编程
    发表于 03-24 14:22 29次下载

    什么是PLD(可编程逻辑器件)

    什么是PLD(可编程逻辑器件) PLD是可编程逻辑器件(Programable Logic Device)的简称,FPGA是现场可编程门阵列(Field Programable Gate Array)
    发表于 06-20 10:32 1.7w次阅读
    什么是PLD(<b class='flag-5'>可编程逻辑器件</b>)

    EDA技术与应用(可编程逻辑器件)

    7.1 可编程逻辑器件的基本原理 7.2 可编程逻辑器件的设计技术 7.3 可编程逻辑器件编程与配置
    发表于 05-23 10:46 142次下载
    EDA技术与应用(<b class='flag-5'>可编程逻辑器件</b>)

    可编程逻辑器件(书皮)

    可编程逻辑器件(书皮)
    发表于 07-10 14:34 0次下载

    可编程逻辑器件的分类有哪些

    可编程逻辑器件(PLD)是20世纪70年代发展起来的一种新型逻辑器件,是目前数字系统设计的主要硬件基础。根据可编程逻辑器件结构、集成度以及编程
    发表于 06-10 17:52 2.7w次阅读

    可编程逻辑器件EPLD是如何设计的

    可编程逻辑器件(Electrically Programmable Logic Device,EPLD)是指采用电信号的可擦可编程逻辑器件
    发表于 08-22 18:12 998次阅读

    可编程逻辑器件测试

    可编程逻辑器件 (Programmable Loeie Device,PLD)是一种用户编程实现某种逻辑功能的逻辑
    发表于 06-06 15:37 448次阅读
    <b class='flag-5'>可编程逻辑器件</b>测试

    可编程逻辑器件的特征及优势科普

    可编程逻辑器件是一种集成电路,具有可编程功能的特性。它们可以根据用户的需求进行编程,从而实现不同的逻辑功能。
    的头像 发表于 02-26 18:24 652次阅读