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

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

3天内不再提示

FIFO中断通信逻辑介绍

科技绿洲 来源:中科昊芯 作者:中科昊芯 2022-05-16 09:53 次阅读

中科昊芯推出专题讲解SCI串口通信以来,第一期主要讲解SCI串口FIFO通信原理,第二期主要讲解SCI串口自动波特率,本期主要讲解FIFO中断通信逻辑。

HX2000系列SCI模块原理与中断逻辑如下,中断逻辑为:当SCITXBUF数据被传输到TXSHF寄存器时,将通过SCICTL[TXRDY]产生一个发送中断,使能SCICTL[TXINTENA]打开发送中断信号,将通过PIE响应CPU执行,使得CPU可以连续写数据到SCITXBUF,使得SCI模块可以向PC端连续发送数据。当SCI接收一个完整帧,并将RXSHF寄存器中的数据传输到SCIRXBUF寄存器中,将通过SCIRXST[RXRDY]产生一个接收中断,使能SCICTL[RXBKINTENA]打开接收中断信号,将通过PIE响应CPU执行,使得CPU读取PC端发送的数据帧。

poYBAGKBrkuAAcZ0AAEszP6LZCE026.png

由此设计SCI串口FIFO中断通信实例:采用SCI与串口CH340,连续发送数据,PC端接收发送的数据;通过串口调试助手,向CPU发送任意一组数据,CPU接收发送的数据。

基于以上分析,在CDK上开发SCI串口FIFO中断通信输出程序,代码包括:SCI GPIO外设引脚配置,FIFO功能配置,发送与接收中断程序,主程序调用执行。主要代码如下:

poYBAGKBrluAMB23AACXuyzWME0040.png

CDK上开发SCI串口FIFO中断通信程序,其编译结果为:

poYBAGKBrmeACK4IAAKFKUgLOr4694.png

编译通过后,就可以开始调试了,DSP端连续发送数据的调试结果如下:

pYYBAGKBrm6AV1d-AAKxnh5HnFc502.png

PC端发送数据的调试结果如下:

pYYBAGKBrnaAaSb9AAKi-QqRnno213.png

调试后,可通过串口调试助手查看发送与接收到的数据如下图:

poYBAGKBroCAHIs0AAO_RNBC514727.png

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

    关注

    544

    文章

    7681

    浏览量

    344332
  • 寄存器
    +关注

    关注

    30

    文章

    5027

    浏览量

    117710
  • 数据
    +关注

    关注

    8

    文章

    6511

    浏览量

    87589
  • 串口通信
    +关注

    关注

    32

    文章

    1577

    浏览量

    54860
收藏 人收藏

    评论

    相关推荐

    TC375上的I2C编写了EVAL_BDPS_DRIVER,RX FIFO下溢中断是怎么来的?

    请求。 但是,在最后一个脉冲串请求之后,我又收到了一个由 RX FIFO 下溢引起的错误中断。 为什么会这样? 我几乎可以肯定,在处理完最后一个脉冲串请求后,我没有读取 RXD 寄存器。 我还已经
    发表于 03-05 07:01

    如何清除SPI通信中的TX_FIFO和RX_FIFO

    你好, 如何清除 SPI通信中的 TX_FIFO 和 RX_FIFO?是否有任何 API 可以清除接收数据缓冲区。
    发表于 02-27 07:16

    将TC275的CAN_RX_FIFO例程移植到TC234上运行报错的原因?

    FIFO溢出中断。但是移植到TC234后,RX FIFO溢出会掉入如下error: 1,请问从什么手册上可以查询到这种error是由什么引起的?以及对该error的介绍? 2,请问
    发表于 02-02 07:35

    ADXL345设置FIFO中断,多字节读操作,读出的第一数据FIFO[0]和后边的数据有明显差别是怎么回事?

    ADXL345设置FIFO中断FIFO中断出现后,多字节读操作,读出的第一数据FIFO[0]和后边的数据有明显差别。
    发表于 12-27 07:39

    中断与硬中断介绍

    • 硬中断是由外部事件引起的因此具有随机性和突发性;硬中断是否可以嵌套的,是否有优先级(由硬件设计体系决定)。 • 软中断是执行中断指令产生的,无面外部施加
    的头像 发表于 11-07 17:02 381次阅读

    如何使用硬件FIFO来减少接收中断次数

    本文给介绍如何使用带FIFO的串口来减少接收中断次数,通过一种自定义通讯协议格式,给出帧打包方法;之后介绍一种特殊的串口数据发送方法,可在避免使用串口发送
    发表于 11-06 12:22 277次阅读
    如何使用硬件<b class='flag-5'>FIFO</b>来减少接收<b class='flag-5'>中断</b>次数

    单重中断与多重中断介绍

    单重中断与多重中断 •单重中断在CPU执行中断服务程序的过程中不能被打断。当有新的更高优先级的中断发生时,正在执行的
    的头像 发表于 10-30 16:46 1628次阅读
    单重<b class='flag-5'>中断</b>与多重<b class='flag-5'>中断</b><b class='flag-5'>介绍</b>

    同步FIFO和异步FIFO的区别 同步FIFO和异步FIFO各在什么情况下应用

    同步FIFO和异步FIFO的区别 同步FIFO和异步FIFO各在什么情况下应用? 1. 同步FIFO和异步
    的头像 发表于 10-18 15:23 1007次阅读

    瑞萨RA MCU串口通信空闲中断

    瑞萨RA MCU串口通信空闲中断
    的头像 发表于 09-26 16:59 564次阅读
    瑞萨RA MCU串口<b class='flag-5'>通信</b>空闲<b class='flag-5'>中断</b>

    SPI FIFO Mode范例里enable \"SPI_FIFO_TX_INT_MASK\"这项中断功能是什么意思?

    各位大大安安,我想请问在官方SPI FIFO Mode范例里,Tx 和 Rx都使用FIFO传输,其中enable \"SPI_FIFO_TX_INT_MASK\"这项中断功能主要
    发表于 08-31 11:03

    使用IP核创建单时钟FIFO

    被写入FIFO中,然后FPGA再以UART串口通信依次将数据发送出去。因为传感器采集数据的速度很快,比如当传感器使用SPI通信协议,以2M的SPI数据速率读取时,串口使用9600的波特率肯定跟不上,因此需要先将从传感器处采集的数
    的头像 发表于 07-23 11:47 392次阅读
    使用IP核创建单时钟<b class='flag-5'>FIFO</b>

    M482单片机只会上报FIFO中断,不会上报超时中断的原因?

    设置串口接收8字节FIFO中断RFITL并使能超时中断RXTOIEN,当一次只传输8个字节数据时,单片机只会上报FIFO中断,不会上报超时
    发表于 06-27 12:15

    FIFO的结构与深度计算介绍

    在IC设计中,模块与模块之间的通信设计中,多时钟的情况已经不可避免;数据在不同时钟域之间的传输很容易引起亚稳态;异步FIFO就是一种简单、快捷的解决方案。
    发表于 06-27 10:02 2372次阅读
    <b class='flag-5'>FIFO</b>的结构与深度计算<b class='flag-5'>介绍</b>

    FIFO设计—异步FIFO

    异步FIFO主要由五部分组成:写控制端、读控制端、FIFO Memory和两个时钟同步端
    发表于 05-26 16:17 1043次阅读
    <b class='flag-5'>FIFO</b>设计—异步<b class='flag-5'>FIFO</b>

    FIFO设计—同步FIFO

    FIFO是异步数据传输时常用的存储器,多bit数据异步传输时,无论是从快时钟域到慢时钟域,还是从慢时钟域到快时钟域,都可以使用FIFO处理。
    发表于 05-26 16:12 1060次阅读
    <b class='flag-5'>FIFO</b>设计—同步<b class='flag-5'>FIFO</b>