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

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

3天内不再提示

使用FPGA器件实现SCI通信接口电路的连接设计

电子设计 来源:郭婷 作者:电子设计 2019-04-19 08:38 次阅读

随着超大规模集成电路(Very Large Scale Integration VLSI)工艺技术的发展,芯片的规模越来越大,集成规模以摩尔定律增长。现场可编程逻辑器件(FPGA)由于兼具可编程逻辑器件的现场可编程的灵活性,以及门阵列器件集成度高的优点,在数字系统设计被广泛采用。同时,ASIC技术的不断完善以及功能强大的EDA软件开发平台的出现,使得FPGA器件在现代数字系统设计和微电子技术应用中起着越来越重要的作用。近几年来,Xilinx等公司推出了内部嵌入存储器、微处理器的FPGA器件,使得这种器件的应用更显其优越性;但在某些应用场合如数据采集时,需要将采集到的数据传送给PC机,然后由PC机进行数据处理,这时就要借助单片机来完成。因此,有必要在FPGA器件中设计一种通信接口电路,以使设计的应用系统具备通信功能。由于SCI通信接口电路具有结构相对简单、易于实现等特点,因此本文以SCI接口电路为例介绍基于FPGA器件实现的接口电路IP核的设计。

SCI接口电路结构

SCI接口端口映射

SCI的端口映射如图1所示,共有20个端口,各端口的功能为:

使用FPGA器件实现SCI通信接口电路的连接设计

SCI接口结构框图

为SCI接口内部结构框图如图2所示,主要包括以下单元:

使用FPGA器件实现SCI通信接口电路的连接设计

发送器(TX)及其控制与状态寄存器。发送数据缓冲寄存器(TXBUF0…7)包含SCI接口要发送的数据;发送移位寄存器(TXSHF);发送状态寄存器位(TXRDY、TXEMPT);发送控制寄存器位(TINTENA、TXENA)。

接收器(RX)及其控制与状态寄存器。接收数据缓冲寄存器(RXBUF0…7)包含SCI接口从SCIRXD接收到的数据;接收移位寄存器(RXSHF);接收状态寄存器位(RXRDY);接收控制寄存器位(RINTENA、RXENA)。

可编程波特率发生器。由波特率高byte寄存器和波特率低byte寄存器组成,可得到64k种不同的位传输速率。当系统时钟为10MHZ时,其位传输速率为19.07~625.0kb/s。寄存器地址译码器。寄存器地址译码器负责对ADDR0…ADDR2进行译码,确保能读/写SCI中相应的寄存器。其与RD和WR配合完成对SCI内部各寄存器的读/写操作。

工作原理

数据传输格式

为简化设计,SCI以固定的串行数据格式传送数据,采用NRZ帧格式对数据进行编码,一个数据由1bit起始位、8bit数据位和一个停止bit共10bit组成。为确保采样到的数据位可靠,选取每位数据包含8个SCICLK周期。

波特率的产生

SCI内部的串行时钟(SCICLK)由系统时钟SCLK与波特率寄存器共同决定。通过16bit波特率选择寄存器,可以为内部串行时钟提供64k种不同的传输速率,其计算公式为:

Baud=SCLK/[(BRR+1)*8]其中BRR为16bit波特率选择寄存器的值。

SCI异步通信

如前所述,在异步通信模式下一帧数据包含一个起始bit、8个数据bit、一个停止bit。每个数据位占用8个SCICLK周期。

接收数据时序

接收器在收到有效的起始位后开始操作,有效的起始位由连续的0电平组成,长度为4个连续的内部SCICLK周期。对于起始位后的各位,接收器通过对该位的中间进行3次采样来决定位值,采用在第4、第5、第6个SCICLK周期,位值取决于多数采样点的值。数据从SCIRXD进入RXSHF,移位进入RXBUF寄存器,并产生中断请求,RXDRDY置1,表示已经接收到新字符]。接收一帧数据的时序如图3所示。

使用FPGA器件实现SCI通信接口电路的连接设计

发送数据时序

发送器与接收器工作原理基本相同,在TXDRDY为低时,向发送数据缓冲寄存器写入一个数据后启动发送;然后数据进入TXSHF,同时TXDRDY为高,表示TXBUF可以写入新值,并产生一个中断请求。数据发送时序如图4所示。

使用FPGA器件实现SCI通信接口电路的连接设计

VerilogHDL实现

状态机嵌套模型

由于SCI接口牵涉到复杂的状态机描述,需要采用有限状态机的嵌套,形成树状的控制逻辑。这一点和所提倡的层次化、结构化的自顶向下的设计方法相吻合。图5是一种简单的状态机嵌套模型。

使用FPGA器件实现SCI通信接口电路的连接设计

采样一位数据的状态机

使用FPGA器件实现SCI通信接口电路的连接设计

使用FPGA器件实现SCI通信接口电路的连接设计

接收数据起始位检测状态机

使用FPGA器件实现SCI通信接口电路的连接设计

仿真结果

使用FPGA器件实现SCI通信接口电路的连接设计

由图7仿真波形可知,采样一位数据的状态机在数据位的第4、5、6个内部sclk时钟进行。位值由多数采样的值决定,图中rxd在第4、5、6图7采样一位数据的仿真波形个sclk时的值为1,故dok在第8个sclk时钟输出1,表示此次采样的一位数据为1。

使用FPGA器件实现SCI通信接口电路的连接设计

图7采样一位数据的仿真波形

结论

SCI接口电路由VerilogHDL语言描述,可读性好,便于修改与测试,可方便地嵌入到用户的FPGA系统。利用Xilinx公司的Spartan ⅡFPGAXC2S100成功地实现了FPGA与PC机的串行通信。如在此基础上增加其它的控制寄存器,则可设计出功能更为完善的SCI接口电路。


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

    关注

    1626

    文章

    21669

    浏览量

    601866
  • 存储器
    +关注

    关注

    38

    文章

    7452

    浏览量

    163607
  • 通信
    +关注

    关注

    18

    文章

    5971

    浏览量

    135860
收藏 人收藏

    评论

    相关推荐

    一文解读SCI通信的相关内容

    SCI:串行通信接口,串行通信技术的一种总称;
    的头像 发表于 11-08 10:34 5202次阅读
    一文解读<b class='flag-5'>SCI</b><b class='flag-5'>通信</b>的相关内容

    串行通信接口SCI)

    串行通信接口SCI)内部有一个串行通信(SCI)接口模块,来
    发表于 09-16 12:44

    怎么使用FPGA实现SPI总线的通信接口

    受到限制。因此,我们采用ALTERA公司的FPGA器件设计SPI总线的通信接口,该总线接口具有高速、配置灵活等优点,大大地缩短了系统的开发周
    发表于 08-09 08:14

    FPGA SERDES接口电路怎么实现

      串行接口常用于芯片至芯片和电路板至电路板之间的数据传输。随着系统带宽不断增加至多吉比特范围,并行接口已经被高速串行链接,或SERDES (串化器/ 解串器)所取代。起初, SERD
    发表于 10-23 07:16

    通过FPGA实现温控电路接口及其与DSP通信接口的设计

    ,数字控制信号经过 DA转换后输出模拟控制电压到后端控制电路实现对七路温度的闭环控制。 4.FPGA与外围电路之间的通信
    发表于 08-19 09:29

    请问怎样去设计SCI接口电路IP核?

    SCI接口电路为例,介绍基于FPGA器件接口电路
    发表于 04-28 06:10

    设计SCI串口通信程序

    SCI 是全双工异步串行通信接口,主要用于 MCU 与其他计算机或设备之间的通信,几个独立的 MCU也能通过 SCI
    发表于 12-07 10:26

    通过SCI实现串行通信

    SCI 是全双工异步串行通信接口,主要用于 MCU 与其他计算机或设备之间的通信,几个独立的 MCU也能通过 SCI
    发表于 12-07 12:48

    如何实现Simulink与DSP 28335之间的SCI通信

    3、实验结果简述实现Simulink与DSP 28335之间的SCI通信实现数据实时交互,可通过Simulink对28335进行收发数据。两个Simulink文件:① 自动代码生成文
    发表于 01-11 06:37

    SCI接口电路

    SCI接口电路 SCI接口电路使用的芯片是
    发表于 04-30 20:35 3929次阅读
    <b class='flag-5'>SCI</b><b class='flag-5'>接口</b><b class='flag-5'>电路</b>

    基于FPGA通信接口模块设计与实现

    本文设计一个通信接口模块,通过光纤接口与中心机连接实现对前端受控模块的远程控制和状态监测。
    发表于 09-03 15:59 5247次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>通信</b><b class='flag-5'>接口</b>模块设计与<b class='flag-5'>实现</b>

    高速SPI和SCI接口

    高速SPI和SCI接口
    发表于 10-20 10:29 10次下载
    高速SPI和<b class='flag-5'>SCI</b><b class='flag-5'>接口</b>

    第10章:串行通信接口模块(SCI)PPT下载

    第10章:串行通信接口模块(SCI)PPT下载
    发表于 10-08 11:59 16次下载

    SCI中断接收

    SCI 是全双工异步串行通信接口,主要用于 MCU 与其他计算机或设备之间的通信,几个独立的 MCU也能通过 SCI
    发表于 11-24 17:21 12次下载
    <b class='flag-5'>SCI</b>中断接收

    SCI中断发送

    SCI 是全双工异步串行通信接口,主要用于 MCU 与其他计算机或设备之间的通信,几个独立的 MCU也能通过 SCI
    发表于 11-24 17:36 3次下载
    <b class='flag-5'>SCI</b>中断发送