基于UART IP核的SCI通讯方法技术

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

【技术实现步骤摘要】
基于UARTIP核的SCI通讯方法
本专利技术涉及一种基于UARTIP核的SCI通讯方法。
技术介绍
在许多工程系统应用中,UART(通用异步接收发送装置)以低成本、高可靠性等优点被人们青睐。目前广泛使用的RS232异步串行接口,如8250、NS16450等专用集成芯片,虽然使用简单,却有占用电路体积、引脚连接复杂等缺点。文献“《基于TL16C752B的DSP通用异步串行接口设计》电子测量技术论文2009.7”介绍了一种基于DSP和异步串行接口协议芯片TL16C752B之间的接口电路设计方法,虽应用简单但其硬件电路复杂。而当前通讯的发展趋势,对设计提出了系统集成,高可靠性的要求。为满足这些要求,不仅要求采用数字化,而且要求采用集成化更高,模块化,可靠性更强的产品。
技术实现思路
专利技术目的是:为了克服传统的SCI通讯芯片体积大占用管脚多等不足,本专利技术提供一种基于UARTIP核的SCI通讯技术。使用IP复用技术,将UARTIP软核集成到FPGA芯片上,可增加系统的可靠性,缩小PCB板体积;其次由IP核的特点,可使整个系统更加灵活,还可以根据需要进行功能的升级、扩充和裁减,实现了SCI通讯的集成化和模块化,可作为一个独立的模块集成到控制器中。本专利技术解决其技术问题所采用的技术方案是:在本设计中使用自顶向下的设计方法对UART进行分析设计。首先把该设计划分成几个可操作的子模块,编制出相应的模型(RTL级)。然后再将每个子模块看成一个独立的单元,组合在一起完成整个设计。UARTIP核主要是包含接收器模块、发送器模块、波特率产生模块、中断控制模块和FIFO模块组成五部分,见附图1。UARTIP核包含一个可编程的波特率发生器:它是给发送器和接收器提供发送数据和接收数据的比特时钟;包括提供标准波特率和各种非标准波特率的比特时钟:标准波特率作为通信双方进行异步串行通信。而非标准波特率作高速同步通信;它可以对系统时钟进行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是本专利技术基于UARTIP核的SCI通讯方法功能模块的划分框图。图2是本专利技术基于UARTIP核的SCI通讯技术fifo状态机。图3是本专利技术基于UARTIP核的SCI通讯技术接收状态机。图4是本专利技术基于UARTIP核的SCI通讯技术发送状态机。具体实施方式下面结合附图和具体实施方式对本专利技术作详细说明。本专利技术基于UARTIP核的SCI通讯技术选择以一个4个核的SCIIP为例说明。UART核主要是包含接收器模块、发送器模块、波特率产生模块、中断控制逻辑模块和FIFO模块组成五部分。参照附图1。1波特率产生模块根据UART通信协议,只有数据发送和接收,而没有时钟,所以需要通过波特率来统一发送和接收的数据速率,包括提供标准波特率和各种非标准波特率的比特时钟:标准波特率一般是作为通信双方进行异步串行通信.而非标准波特率一般是用作高速同步通信,波特率发生器实际就是一个分频器,在本设计中采用了16分频的电路。给发送器和接收器提供发送数据和接收数据的比特时钟。波特率计算公式如下:Baudrate_clk=系统时钟/(波特率×16×除数)。这样通过设置除数的值.就可以得到期望的内部波特率。本本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201710088385.html" title="基于UART IP核的SCI通讯方法原文来自X技术">基于UART IP核的SCI通讯方法</a>

【技术保护点】
基于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。...

【技术特征摘要】
1.基于UARTIP核的SCI通讯方法,其特征在于:UARTIP核包含一个可编程的波特率发生器:它是给发送器和接收器提供发送数据和接收数据的比特时钟;包括提供标准波特率和各种非标准波特率的比特时钟:标准波特率作为通信双方进行异步串行通信;而非标准波特率作高速同步通信;它可以对系统时钟进行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在没有数据的时候,其...

【专利技术属性】
技术研发人员:孙倩孙舟刘文亮谷鸣王红玲
申请(专利权)人:西安航空制动科技有限公司
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1