论异步串行通信接口的IP核设计论文

时间:2023-05-03 22:24:50 论文范文 我要投稿
  • 相关推荐

论异步串行通信接口的IP核设计论文

  异步串行通信接口的IP核设计

论异步串行通信接口的IP核设计论文

  摘要:异步串行通信接口(SCI)因其结构简洁、使用方便,因而在各类MCU、DSP和MPU芯片设计中获得广泛的应用。本文给出一种以状态机为控制核心、以数据流为执行中心的异步串行通信接口IP核结构设计的通用方法。此方法已在笔者所设计的DSP芯片中得到验证。

  关键词:SCI IP核设计 状态机 数据流

  引言

  目前,基于传统IC芯片的微电子应用系统设计技术正在转向基于知识产权(IP,Intellectual Property)核的片上系统(SoC,System on Chip)技术发展。另外,IC设计在国内的发展很快,各种规模的IC设计中心和公司不断出现。因此,IP核的设计已开始逐渐成为国内微电子系统设计的一项支撑技术。从应用功能角度划分IP核有两大类:微处理器IP核(如8位8051核、32位ARM核等)和各种接口IP核(如LCD控制器、各种串行总线接口IP核等)。本文以异步串行通信接口(SCI,Serial Communication Interface)接口IP核结构设计为例,说明SCI、UART、SPI、USB等接口IP核的设计方法。

  SCI的通信方式采用标准NRZ格式来进行外设间的异步数字通信。因其结构简法,通常嵌入到DSP、MCU和MPU或外设控制芯片内部,作为芯片的一个接口功能模块。SCI通常由三个功能单元构成:波特率脉冲产生单元、发送单元和接收单元。其结构如图1所示。在SCI数据收发中,数据帧的数据格式要比地址帧的数据格式复杂得多。在不同的通信方式下,数据帧的格式是不同 的。为此在发送器和接收器中各引入了与数据帧格式相对应的状态机来实现数据流的控制。本文所介绍的就是基于这种设计思想的一种通用设计方法。

  1 SCI数据发送单元

  数据发送单元主要功能是完成数据的并/串转换及发送,同时产生发送标志位。其结构如图2所示,字符发送状态机如图3所示。下面简要介绍发送单元各功能模块及其状态转换。

  (1)TXD时钟八分频器

  对基于波特率时钟进行八分频,并输出两个基本脉冲—TXD_CLK_WORK(用于计数、移位等)和TXD_CLK_END(用于标志位的生成和数据流输出)。

  (2)TXD状态寄存器

  通过此状态寄存器设置通信控制寄存器2的两个控制位—TXEMPTY和TXRDY位,以表示数据写入SCI_TXBUF和启动发送过程。

  (3)发送字符计数器

  当字符状态机的输出状态为允许字符计数时,其开始对发送的字符计数。当计数器值等于编程的字符数时,输出TX_CHAP_REACH信号作为字符状态机激励,使之进入非字符输出状态。

  (4)发送空闲线计数器

  当字符状态机进入发送空闲线数据状态时,开始工作。当计数到一定值时,输出信号TX_IDLECOUT_REACH作为字符状态机激励,使之进入非空闲线数据计数状态。

  (5)发送数据流的形成

  在TXBUF2SHIFT的高电平脉冲作用下,在SCI_TXBUF中待发送数据,经过选择器选择指定位数的数据送入SCI_TXSHIFT低位,不足的高位清“0”。与此同时,TXWAKE数据也送到WUT寄存器,在地址位模式情况下,由ADDR_IDLE控制在WUT中形成地址位;并由SCI_TXSHIFT数据位、地址位和奇偶方式位三者逻辑或形成奇偶校验位。

  (6)当前发送字符状态机

  在启动、控制位、计数器溢出等激励作用下,实现发送字符状态的输出和转换。发送字符状态机的激励有:TXEMPTY(为“0”时启动TXD发送)、ADDR_IDLE(地址/空闲线模式选择位)、PARENA(奇偶校验使能位)、STOPBIT(选择1或2个停止位)、WUT(发送空闲位数据允许位)、TX_CHARCOUT_REACH(发送字符数目已够位)、TX_IDLECOUT_REACH(发送空闲数目已够位)。发送字符状态机(见图3)的状态有:1为帧停止位(1位),3为帧第1停止位(2位),5为帧第2停止位(2位),8位帧起始位,9为待机状态,A为帧数据位,B为空闲线模式起始位,C为帧地址位,E为帧奇偶校验位,F为空闲线模式停止位,D为空闲线模式计数0~7。

  2 SCI数据接收单元

  数据接收单元的功能是完成串行数据接收及接收标志位的生成。其结构如图4所示,接收起始位检测和接收字符状态机如图5、图6所示。

  接收单元各功能模块及状态转换说明如下。

  (1)RXD时钟八分频器

  对波特率时钟进行八分频,并保持其与所接收串行数据流的字符同步。其输出两个时钟脉冲:RXD_CLK_WORK,用于计数、移位等;RXD_CLK_END,为数据流各种方式的停止位前一个字节时间段内提供脉冲。

  图4 SCI数字接收单元

  (2)起始位检测模块

  是一种三位四状态机。其激励有两个:RXD_1_VALUE—接收的串行数据流激励;RXD_END_CHK—一次接收完毕的脉冲激励。其状态有如下几种(见图5):0(待机状态)、1(空状态)、2(空状态)、3(发现“1”到“0”的跳变状态)、4(输出时钟同步信号)、5(字符接收过程中输出RXD_CLK_AYN和RXD_START_DRV)。

  (3)字符检测模块

  主要功能是接收数据流。其在采样时钟驱动下数据流通过三个寄存器,随后在RXD_CLK_WORK脉冲作用下,三个寄存器的数据通过表决电路,把数据送到接收数据缓冲器RXD_VALUE中,为把数据送到移位寄存器RX_SHIFT做准备。

  (4)当前接收字符状态机

  用来标识当前所接收的数据是哪一种字符,以及在下一个RXD_CLK_WORK字符周期将转换到哪一种状态,并且根据当前接收字符的状态,驱动其它部件进行合适的操作。其激励有:RXD_START_DRV(RXD起始位有效激励)、RX_CHAR_REACH(RXD字符接收数目已够)、CCR3_ADDR_IDLE(地址/空闲线模式选择)、CCR5_PARENA(奇偶校验使能)。其状态(见图6)有:0(待机状态)、1(帧数据位)、2(帧起始位)、3(帧地址位)、4(帧奇偶校验位)、5(空状态)、6(帧停止位)。

  (5)接收字符计数器

  当接收字符状态机处于帧数据位阶段时,其开始计数;当与可编程的数据相同时,输出RX_CHAR_REACH给接收字符状态机。

  (6)接收空闲线计数器

  当处于待机状态时,开始计数器,当计数到一定时,输出一个脉冲,将RXSP1_RXWAKE置位为1;在下一个字符即将接收、读取SCI_RXBUF寄存器或SCI复位的情况下,RXST1_RXWAKE被复位为0。

  (7)接收数据移位寄存器(SCI_RXSHIFT)

  根据接收字符状态机的状态接收与检测的串行数据流,将所接收的正确数据送入SCI_RXBUF并置相应的标志,否则置出错标志。

【论异步串行通信接口的IP核设计论文】相关文章:

异步串行通信接口的IP核设计05-01

多通道俄制军用串行总线FPGA的IP核设计04-27

多路异步串行通信系统在光纤陀螺组合中的设计与实现05-01

异步串行接口与以太网服务器的连接05-01

C语言实现串行通信接口程序05-01

一种多协议串行通信接口的设计方法05-01

移动通信ip节点技术论文05-02

一种用于单片机的红外串行通信接口05-01

IP网络存储·什么是网络接口04-26

基于ARM平台的MAC协议IP核设计05-01