基于UARTIP核的SCI通讯方法.pdf

上传人:1520****312 文档编号:6062314 上传时间:2019-04-05 格式:PDF 页数:9 大小:512.33KB
返回 下载 相关 举报
摘要
申请专利号:

CN201710088385.5

申请日:

2017.02.17

公开号:

CN106933772A

公开日:

2017.07.07

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效 IPC(主分类):G06F 13/42申请日:20170217|||公开

IPC分类号:

G06F13/42; G06F9/44; G06F15/78

主分类号:

G06F13/42

申请人:

西安航空制动科技有限公司

发明人:

孙倩; 孙舟; 刘文亮; 谷鸣; 王红玲

地址:

710075 陕西省西安市高新区科技七路5号

优先权:

专利代理机构:

中国航空专利中心 11008

代理人:

杜永保

PDF下载: PDF下载
内容摘要

本发明提供一种基于UART??IP核的SCI通讯方法,UART??IP软核是能够支持FPGA等逻辑芯片的定制化IP,可以实现多个UART在FPGA中实现,并进行了时序优化,可以支持灵活的波特率配置和通信协议配置,内置有FIFO缓存,确保通信数据不被丢,可支持单个字节传输和数据模块传输两种传输方式,可支持SCI接口,与DSP直接进行通信而无需任何协议转换,留有足够的通信带宽,可支持多个IP核并行工作,并确保数据不丢失,确保整个通信的稳定和可靠。

权利要求书

1.基于UART IP核的SCI通讯方法,其特征在于:
UART IP核包含一个可编程的波特率发生器:它是给发送器和接收器提供发送数据和
接收数据的比特时钟;包括提供标准波特率和各种非标准波特率的比特时钟:标准波特率
作为通信双方进行异步串行通信;而非标准波特率作高速同步通信;它可以对系统时钟进
行2n分频(n最大为16),输出的频率Baudrate_clk=系统时钟/(波特率×16×除数);这样
通过设置除数的值;就可以得到期望的内部波特率;
发送FIFO和接收FIFO在UART中的作用是实现对收发数据的缓冲,减少串口和CPU的交
互时间,提高CPU和UART的传输效率;由于数据总线的读写时钟与UART的工作时钟不一样,
所以所设计的UART采用的是异步FlF0的方式;异步FIFO包括4个模块:写时钟域模块、读时
钟域模块、异步比较模块以及双端口RAM模块;其中读/写时钟域模块中包含了读/写指针和
空/满标志产生逻辑;异步比较模块是用来产生空/满判断信号;当读写指针在同一时刻指
向同一个内存位置时,FIFO处于空或满的状态;判断此时状态是空还是满,就要通过对读写
指针进行判断;
中断处理模块:发送数据时,防止数据丢失,以及和CPU交联数据过多,将多个SCI的中
断信号相与,减少了中断信号和控制芯片间的信号交联,当控制器接收到中断信号后,去查
对应FIFO中的满标志位,再去FIFO取数;从而防止数据丢失;
发送模块的逻辑是从发送FIF0中读取数据,将读到的并行数据转换成串行数据,并送
往外设;接受采用状态机来设计,一共有5个状态机,分别为:CHECK等待、CHECK开始、接收开
始、数据读取、中断CHECK。
2.如权利要求1所述的SCI通讯方法,其特征在于:,
CHECK等待:复位的时候状态机进入的状态;UART在没有数据的时候,其数据线一直保
持高位;当检测到数据线出现下降沿的时候,即CHECK开始状态;
CHECK开始:在CHECK等待状态时检测到数据线出现下降沿时进入CHECK开始状态,通过
CHECK开始状态确定这个下降沿是否由于毛刺引起;在该状态中对第一位数据进行采样并
且判断,如果得到的数据是起始位0的话,状态机会跳转到接收开始状态;如果发现是误判,
即判断出现毛刺,状态机会重新进入CHECK等待状态;
发送开始:完成起始位的发送后,就要发送由CPU传过来的有效数据;首先把数据存入
一个移位寄存器中,利用移位寄存器实现并行输入到串行输出的转换;当计数器显示数据
传输完毕后,状态机跳入数据读取状态;
数据读取:根据已传输的有效数据,获得数据并且在本状态传输出去;
中断CHECK:对停止位进行采样,并且判断停止位是否为1;若停止位不正确,那么数据
也不传入CPU。
3.如权利要求1所述的SCI通讯方法,其特征在于:,
接收逻辑在检测到起始位后开始接收数据,并将接收到的串行数据转换成并行数据,
然后将数据写入接收FIFO;发送器模块相对来说和接收器差不多,而且相对简单一些;一共
有5个状态机,分别为:等待、开始、接收开始、数据读取、中断CHECK;
等待:在没有得到CPU的发送信号的时候发送器一直处于等待状态,此刻一直保持发送
器的数据为高,当得到CPU发出的数据来临信号,跳转入CHECK开始状态;
开始:进入该状态,发送器会首先发送一个0,作为起始位;起始位传送完毕后进入下一
个状态;
接收开始:当状态机跳转到接收时的时候,每采样得到一位数据,就把接收到数据放到
事先准备好的移位寄存器中;当计数器提示数据已接收完,状态机会跳转入数据读取状态;
数据读取:根据已传输的有效数据,获得参数并且在本状态传输出去;
中断CHECK:输出停止位1标示这一帧数据传输结束。

说明书

基于UART IP核的SCI通讯方法

技术领域

本发明涉及一种基于UART IP核的SCI通讯方法。

背景技术

在许多工程系统应用中,UART(通用异步接收发送装置)以低成本、高可靠性等优
点被人们青睐。目前广泛使用的RS232异步串行接口,如8250、NS16450等专用集成芯片,虽
然使用简单,却有占用电路体积、引脚连接复杂等缺点。

文献“《基于TL16C752B的DSP通用异步串行接口设计》电子测量技术论文2009.7”
介绍了一种基于DSP和异步串行接口协议芯片TL16C752B之间的接口电路设计方法,虽应用
简单但其硬件电路复杂。

而当前通讯的发展趋势,对设计提出了系统集成,高可靠性的要求。为满足这些要
求,不仅要求采用数字化,而且要求采用集成化更高,模块化,可靠性更强的产品。

发明内容

发明目的是:

为了克服传统的SCI通讯芯片体积大占用管脚多等不足,本发明提供一种基于
UART IP核的SCI通讯技术。使用IP复用技术,将UART IP软核集成到FPGA芯片上,可增加系
统的可靠性,缩小PCB板体积;其次由IP核的特点,可使整个系统更加灵活,还可以根据需要
进行功能的升级、扩充和裁减,实现了SCI通讯的集成化和模块化,可作为一个独立的模块
集成到控制器中。

本发明解决其技术问题所采用的技术方案是:

在本设计中使用自顶向下的设计方法对UART进行分析设计。首先把该设计划分成
几个可操作的子模块,编制出相应的模型(RTL级)。然后再将每个子模块看成一个独立的单
元,组合在一起完成整个设计。UART IP核主要是包含接收器模块、发送器模块、波特率产生
模块、中断控制模块和FIFO模块组成五部分,见附图1。

UART IP核包含一个可编程的波特率发生器:它是给发送器和接收器提供发送数
据和接收数据的比特时钟;包括提供标准波特率和各种非标准波特率的比特时钟:标准波
特率作为通信双方进行异步串行通信。而非标准波特率作高速同步通信;它可以对系统时
钟进行2n分频(n最大为16),输出的频率Baudrate_clk=系统时钟/(波特率×16×除数);
这样通过设置除数的值。就可以得到期望的内部波特率;

发送FIFO和接收FIFO在UART中的作用是实现对收发数据的缓冲,减少串口和CPU
的交互时间,提高CPU和UART的传输效率。由于数据总线的读写时钟与UART的工作时钟不一
样,所以所设计的UART采用的是异步FlF0的方式。异步FIFO主要由4部分组成:写时钟域模
块、读时钟域模块、异步比较模块以及双端口RAM模块。其中读/写时钟域模块中包含了读/
写指针和空/满标志产生逻辑。异步比较模块是用来产生空/满判断信号。当读写指针在同
一时刻指向同一个内存位置时,FIFO处于空或满的状态。判断此时状态是空还是满,就要通
过对读写指针进行判断。

中断处理模块:发送数据时,防止数据丢失,以及和CPU交联数据过多,将多个SCI
的中断信号相与,减少了中断信号和控制芯片间的信号交联,当控制器接收到中断信号后,
去查对应FIFO中的满标志位,再去FIFO取数;从而防止数据丢失;

发送模块的逻辑是从发送FIF0中读取数据,将读到的并行数据转换成串行数据,
并送往外设。接受采用状态机来设计,一共有5个状态机,分别为:CHECK等待、CHECK开始、接
收开始、数据读取、中断CHECK;

CHECK等待:复位的时候状态机进入的状态;UART在没有数据的时候,其数据线一
直保持高位;当检测到数据线出现下降沿的时候,即CHECK开始状态;

CHECK开始:在CHECK等待状态时检测到数据线出现下降沿时进入CHECK开始状态,
通过CHECK开始状态确定这个下降沿是否由于毛刺引起;在该状态中对第一位数据进行采
样并且判断,如果得到的数据是起始位0的话,状态机会跳转到接收开始状态;如果发现是
误判,即判断出现毛刺,状态机会重新进入CHECK等待状态;

发送开始:完成起始位的发送后,就要发送由CPU传过来的有效数据;首先把数据
存入一个移位寄存器中,利用移位寄存器实现并行输入到串行输出的转换;当计数器显示
数据传输完毕后,状态机跳入数据读取状态;

数据读取:根据已传输的有效数据,获得数据并且在本状态传输出去;

中断CHECK:对停止位进行采样,并且判断停止位是否为1;若停止位不正确,那么
数据也不传入CPU;

接收逻辑在检测到起始位后开始接收数据,并将接收到的串行数据转换成并行数
据,然后将数据写入接收FIFO。发送器模块相对来说和接收器差不多,而且相对简单一些;
一共有5个状态机,分别为:等待、开始、接收开始、数据读取、中断CHECK;

等待:在没有得到CPU的发送信号的时候发送器一直处于等待状态,此刻一直保持
发送器的数据为高,当得到CPU发出的数据来临信号,跳转入CHECK开始状态;

开始:进入该状态,发送器会首先发送一个0,作为起始位;起始位传送完毕后进入
下一个状态;

接收开始:当状态机跳转到接收时的时候,每采样得到一位数据,就把接收到数据
放到事先准备好的移位寄存器中;当计数器提示数据已接收完,状态机会跳转入数据读取
状态;

数据读取:根据已传输的有效数据,获得参数并且在本状态传输出去;

中断CHECK:输出停止位1标示这一帧数据传输结束。本发明的有益效果是:

本发明把UART硬件电路转换为用硬件描述语言的软件编程的方法,减少了电路的
数量,提高了电路的可靠性,降低成本,提高的IP可复用性。实现了SCI通讯的集成化和模块
化,可作为一个独立的模块集成到控制器中。使用IP复用技术,将UART集成到FPGA芯片上,
可增加系统的可靠性,缩小PCB板体积;其次由IP核的特点,可使整个系统更加灵活,还可以
根据需要进行功能的升级、扩充和裁减。

支持多通道传输。本IP核在使用时,可根据系统配置需要同时调用多个IP核(最多
可扩展10个),目前没有芯片可达到,为使用多通道SCI传输提供了有效支撑,符合机载及星
载通信终端的小型化设计趋势。

IP核的通用性。可集成在FPGA和CPLD等逻辑芯片中,节约了PCB的面积,提高了系
统可靠性。更高性能:同步性能更好,接口可定制,通信模式可定制,传输更稳定。

附图说明

图1是本发明基于UART IP核的SCI通讯方法功能模块的划分框图。

图2是本发明基于UART IP核的SCI通讯技术fifo状态机。

图3是本发明基于UART IP核的SCI通讯技术接收状态机。

图4是本发明基于UART IP核的SCI通讯技术发送状态机。

具体实施方式

下面结合附图和具体实施方式对本发明作详细说明。

本发明基于UART IP核的SCI通讯技术选择以一个4个核的SCI IP为例说明。UART
核主要是包含接收器模块、发送器模块、波特率产生模块、中断控制逻辑模块和FIFO模块组
成五部分。参照附图1。

1波特率产生模块

根据UART通信协议,只有数据发送和接收,而没有时钟,所以需要通过波特率来统
一发送和接收的数据速率,包括提供标准波特率和各种非标准波特率的比特时钟:标准波
特率一般是作为通信双方进行异步串行通信.而非标准波特率一般是用作高速同步通信,

波特率发生器实际就是一个分频器,在本设计中采用了16分频的电路。给发送器
和接收器提供发送数据和接收数据的比特时钟。波特率计算公式如下:

Baudrate_clk=系统时钟/(波特率×16×除数)。这样通过设置除数的值.就可以
得到期望的内部波特率。

本实施案例中:系统时钟为50MHz,希望波特率为115200,则波特率时钟分频数为
50M/115200/16。

2中断模块

中断模块使能信号将多个SCI的中断信号相与,减少了中断信号和控制芯片间的
信号交联,当控制器接收到中断信号后,去查对应FIFO中的满标志位,再去FIFO取数。从而
防止数据丢失。

3异步FIFO

发送FIFO和接收FIFO在UART中的作用是实现对收发数据的缓冲,减少串口和CPU
的交互时间,提高CPU和UART的传输效率.由于数据总线的读写时钟与UART的工作时钟不一
样,所以所设计的UART采用的是异步FlF0的方式。

如附图2所示,异步FIFO主要由4部分组成:写时钟域模块、读时钟域模块、异步比
较模块以及双端口RAM模块.其中读/写时钟域模块中包含了读/写指针和空/满标志产生逻
辑。

异步比较模块是用来产生空/满判断信号.当读写指针在同一时刻指向同一个内
存位置时,FIFO处于空或满的状态.判断此时状态是空还是满,就要通过对读写指针进行判
断.

4发送模块

发送逻辑的主要功能是从发送FIF0中读取数据,将读到的并行数据转换成串行数
据,并送往外设.接受采用状态机来设计,一共有5个状态机,分别为:CHECK等待、CHECK开
始、接收开始、数据读取、中断CHECK,状态机工作机制见附图3。

CHECK等待:复位的时候状态机进入的状态。在UART中,有效数据的传输是异步于
接收时钟的,因此UART在没有数据的时候,其数据线一直保持高位。当检测到数据线出现下
降沿的时候,说明有数据开始传输,此刻进入下一状态,即CHECK开始状态。

CHECK开始:在CHECK等待状态时检测到数据线出现下降沿所以进入CHECK开始状
态,我们需要通过CHECK开始状态确定这个下降沿是否由于毛刺引起。在本状态中我们会对
第一位数据进行采样并且判断,如果得到的数据是起始位0的话,状态机会跳转到接收开始
状态。如果发现是误判,状态机会重新进入CHECK等待状态。

发送开始:完成起始位的发送后,就要发送由CPU传过来的有效数据;首先把数据
存入一个移位寄存器中,利用移位寄存器实现并行输入到串行输出的转换;当计数器显示
数据传输完毕后,状态机跳入数据读取状态;

数据读取:根据已传输的8位有效数据,获得数据并且在本状态传输出去。

中断CHECK:对停止位进行采样,并且判断停止位是否为1。若停止位不正确,那么
数据也不传入CPU。在本实施案例中停止位是1位,也可以是2位、1.5位。

5接收模块

接收逻辑在检测到起始位后开始接收数据,并将接收到的串行数据转换成并行数
据,然后将数据写入接收FIFO.发送器模块相对来说和接收器差不多,而且相对简单一些。
一共有5个状态机,分别为:等待、开始、接收开始、数据读取、中断CHECK,状态机工作机制见
附图4。

等待:在没有得到CPU的发送信号的时候发送器一直处于等待状态,此刻一直保持
发送器的数据为高,当得到CPU发出的数据来临信号,跳转入CHECK开始状态。

开始:进入该状态,发送器会首先发送一个0,作为起始位。起始位传送完毕后进入
下一个状态。

接收开始:完成起始位的发送后,就要发送由CPU传过来的有效数据。首先把数据
存入一个移位寄存器中,利用移位寄存器实现并行输入到串行输出的转换。8位数据传输时
有一个计数器,当计数器显示8位据传输完毕后,FSM跳入数据读取状态。

数据读取:根据已传输的8位有效数据,获得PARITY参数并且在本状态传输出去。

中断CHECK:输出停止位1标示这一帧数据传输结束。

本发明提供一种先进的基于UART IP核的SCI通讯技术,UART IP核是能够支持
FPGA等逻辑芯片的定制化IP,可以实现多个UART在FPGA中实现,并进行了时序优化,可以支
持灵活的波特率配置和通信协议配置,内置有FIFO缓存,确保通信数据不被丢,可支持单个
字节传输和数据模块传输两种传输方式,可支持SCI接口,与DSP直接进行通信而无需任何
协议转换,留有足够的通信带宽,可支持多个IP核并行工作,并确保数据不丢失,确保整个
通信的稳定和可靠。

基于UARTIP核的SCI通讯方法.pdf_第1页
第1页 / 共9页
基于UARTIP核的SCI通讯方法.pdf_第2页
第2页 / 共9页
基于UARTIP核的SCI通讯方法.pdf_第3页
第3页 / 共9页
点击查看更多>>
资源描述

《基于UARTIP核的SCI通讯方法.pdf》由会员分享,可在线阅读,更多相关《基于UARTIP核的SCI通讯方法.pdf(9页珍藏版)》请在专利查询网上搜索。

本发明提供一种基于UART?IP核的SCI通讯方法,UART?IP软核是能够支持FPGA等逻辑芯片的定制化IP,可以实现多个UART在FPGA中实现,并进行了时序优化,可以支持灵活的波特率配置和通信协议配置,内置有FIFO缓存,确保通信数据不被丢,可支持单个字节传输和数据模块传输两种传输方式,可支持SCI接口,与DSP直接进行通信而无需任何协议转换,留有足够的通信带宽,可支持多个IP核并行工作,并。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1