新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于FPGA实现的SCI接口电路IP核的设计

基于FPGA实现的SCI接口电路IP核的设计

作者: 时间:2010-09-07 来源:网络 收藏

  工作原理

  数据传输格式

  为简化设计,SCI以固定的串行数据格式传送数据,采用NRZ帧格式对数据进行编码,一个数据由1bit起始位、8bit数据位和一个停止bit共10bit组成。为确保采样到的数据位可靠,选取每位数据包含8个SCICLK周期。

  波特率的产生      

  SCI内部的串行时钟(SCICLK)由系统时钟SCLK与波特率寄存器共同决定。通过16bit波特率选择寄存器,可以为内部串行时钟提供64k种不同的传输速率,其计算公式为:

  Baud=SCLK/[(BRR+1)*8]其中BRR为16bit波特率选择寄存器的值。

  SCI异步通信

  如前所述,在异步通信模式下一帧数据包含一个起始bit、8个数据bit、一个停止bit。每个数据位占用8个SCICLK周期。

  接收数据时序

  接收器在收到有效的起始位后开始操作,有效的起始位由连续的0电平组成,长度为4个连续的内部SCICLK周期。对于起始位后的各位,接收器通过对该位的中间进行3次采样来决定位值,采用在第4、第5、第6个SCICLK周期,位值取决于多数采样点的值。数据从SCIRXD进入RXSHF,移位进入RXBUF寄存器,并产生中断请求,RXDRDY置1,表示已经接收到新字符]。接收一帧数据的时序如图3所示。

接收一帧数据时序

图3 接收一帧数据时序

  发送数据时序

  发送器与接收器工作原理基本相同,在TXDRDY为低时,向发送数据缓冲寄存器写入一个数据后启动发送;然后数据进入TXSHF,同时TXDRDY为高,表示TXBUF可以写入新值,并产生一个中断请求。数据发送时序如图4所示。

发送一帧数据时序

图4 发送一帧数据时序

  VerilogHDL实现

  状态机嵌套模型

  由于SCI接口牵涉到复杂的状态机描述,需要采用有限状态机的嵌套,形成树状的控制逻辑。这一点和所提倡的层次化、结构化的自顶向下的设计方法相吻合[3]。图5是一种简单的状态机嵌套模型。

状态机嵌套模型

图5 状态机嵌套模型



评论


相关推荐

技术专区

关闭