新闻中心

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

基于NIOS II的多串口数据通信的实现

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


值得说明的是,ts_clk输入时钟20.46 MHz即为CPU的时钟频率,波特率为115 200 bps,可由该时钟分频得到。DSP6713的EMIF为输入输出双向32位,在本设计中部分仅使用低16位,使用三态门来控制数据流向。三态门输入输出的使能信号是dsp给出的ce空间使能信号ce_6713。
输入数据先由CPU写入每个串口的输入缓存,当满足条件时由out_pio管脚向dsp发出中断,用以告知其可以读取相应串口的数据了,缓存的数据由dspread0传递至三态门tri_16.dsp读取时三态门为dsp输入方向,dsp的EMIF数据线evm_D随即出现数据,配合EMIF地址线evm_A即可完成串口输入数据向dsp传递;当dsp有数据要经串口输出时,数据由dsp的EMIF数据线evm_D输入,dsp通过in_pio向CPU发出中断信号,请求发送数据。详细的发送接收流程见下文。

2 软件设计
NIOS II CPU的控制代码部分分为主函数和各种中断响应函数。在主函数里完成寄存器初始化、各串口数据输出的任务。串口的中断响应函数则主要完成数据的输入任务。
为了便于FPGA和DSP之间的控制信息交换,每个串口设有地址固定的长度各为32位(4字节)的输入和输出两个控制寄存器。通过对各标志位的读写操作即可系统对各串口的控制。串口的输入控制寄存器定义见表2,输出控制寄存器与之类似。


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



评论


相关推荐

技术专区

关闭