新闻中心

EEPW首页>手机与无线通信>设计应用> 基于FPGA+DSP的多串口数据通信的实现

基于FPGA+DSP的多串口数据通信的实现

作者: 时间:2011-03-23 来源:网络 收藏

  由于用户控制指令(包括信号处理板配置参数、输出数据类型控制等)与差分修正数据的数据长度和数据持续性有很大区别,在常规数据传输方式之外对每个增设数据块传输模式。数据块传输模式可用于持续性大量数据的输入,采用每个对两块RAM进行乒乓读写操作的来方案。是否采用数据块传输模式由的控制寄存器中的第14位(P_flag)决定。对于非数据块输入模式中缓存大小需要根据常规数据最大长度来设定,过小会导致部分数据丢失。当有数据需要输出时,由向NIOS II CPU的RAM写入各UART输出控制寄存器的设定值,并通过GPIO向其发出中断信号。可在NIOS II CPU的main函数中设置一个循环检测是否有由输入的中断信号,若有再检测各UART的输出控制寄存器。输出流程图如图4所示。

串口数据输出流程

图4 串口数据输出流程

  图4中SET_EN用于设置个串口的输入模式(是否乒乓输入及乒乓输入时缓存的大小)和串口使能等操作,输入控制寄存器的默认值在系统初始化时由写入。

  当数据输入时,NIOS II CPU检测到来自串口的中断请求,进入对应的中断响应程序。首先对数据传输模式进行判断,P_flag默认值为0,表示非数据块输入模式。该模式下输入的数据有特定的结尾标志符组合,一旦检测到结束标志则发送已缓存的数据并完成状态清零以便下次接收;P_flag为1则为连续数据块输入,当Half_BAM0或Half_RAM1其中一块写满时即向DSP发出中断信号,DSP即进入中断服务程序读取数据。程序流程图如图5所示。

程序流程图

图5 程序流程图

  3 结束语

  采用Altera芯片上的NIOS II CPU控制串口的优点是充分使用硬件资源,可以减轻DSP芯片的计算量。测试表明,NIOS II CPU工作频率为20.46 MHz,串口波特率设置为115 200,数据位为8 bit,各串口可以同时正常输入输出。多串口可以同时输入输出数据,由指令可以灵活配置传输模式,以适应不同数据传输类型的需求。

  本文解决了单串口传输不能满足GPS高精度接收机对多种数据同时输入输出的要求,了GPS定位结果、RTK差分数据与外界的实时交换以及用户控制命令的输入。本方案的优点是通过增加各串口的输入/输出控制寄存器,使DSP芯片可以仅以两个GPIO资源原本需要3个串口输入/输出功能相对应的6个中断操作;采用NIOS II CPU进行多串口控制可以减少硬件调试时间,节约片内资源。不足之处是未实现串口波特率、数据位等实时配置。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭