相关服务

  • 《现代电子技术》2006年第17期摘录:何威等:一种快速!!旦垒笪退让

如发现有乱码, 请直接从这里浏览原文
正文摘录:

何威等:一种快速!!旦垒笪退让墨!旦鱼垒塞堡FIFO,发送FIFO,接收逻辑以及发送逻辑等模块。其结构图如图1所示(图中的同步模块省略)。IrDA支持SIR,MIR以及FIR三种方式的接收发送(半双工)。图1IrDA的结构图APB接口模块是IrDA与APB的接口模块·包含了IrDA的所有控制寄存器和状态寄存器的入El。系统通过APB总线向控制模块进行IrDA功能的配置,使IrDA工作在相应的模式下;系统可以通过读取IrDA的状态寄存器或中断模块的输出中断信号来获得IrDA当前所处的状态。波特率产生模块,是通过控制寄存器cr—txgen和cr一,。ge。的值将参考时钟IrDA进行分频的,从而产生相应的时钟使能信号,控制接收发送的工作。3.1发送FIF()的设计本设计中的FIF()都是异步FIFO,发送FIFO的写时钟信号是APB总线的时钟信号pclk,读时钟信号是IrDA的参考时钟Irda.clk。按照发送FIFO的功能又可以将其分为3个主要模块:写控制模块,读控制模块以及双口RAM。为了使产生的发送FIF()状态能很好地表示发送FIFO的实际水平,将在写模块中产生的FIFO状态写入状态寄存器中.而读控制模块中产生的FIFO空标识位来控制发送逻辑。若发送FIF()状态为满时,控制模块不能向FIFO中写数据;若读控制模块FIF()空标识位为高时,发送逻辑不能向FIF()读取数据。在产生FIFO读写地址的时候,当读写数据使能有效时.先将地址加1.然后将所得的地址锁存,即此时产生的地址是下一次读写数据的地址。在判断发送FIF()的状态时,采用的是二进制比较:将读模块产生的格雷码的读地址同步后,再转化成二进制数,和写模块产生的数据作差,所得的结果与0以及设置的FIFO流水线作比较,从而获得FIFO的状态。其写控制的实现电路如图2所示。读控制与写控制类似,这样由发送FIFO的读写控制和RAM就构成丁发送FIFO(如图3所示)。接收FIFO的设计与发送FIFO类似。3.2发送模块设计发送模块是将控制模块接收的数据按照相应的格式进行帧包装编码后串行输出。发送模块可以以SIR,MIR以及FIR三种方式发送,通过控制模块的IrDA工作模式的信号来选择。每种工作方式均由一个有限状态机控制,下面以FIR发送方式为例说明。FIR的发送控制状态机如图4所示。L叶沁.—弗—百卜Lwa曲p。,1—r√lk坠_JⅢnawM山“。嘶txfirof-woeen—btetf+I~}+叵莒,。。。’。。衅-蔷筇廿Ⅲ¨州㈨】”…“。竺一j-lcMrlk一一…图2发送FIFO的写控制模块电路图图3发送FIFO的构成图4FIR发送状态迁移图(1)WAIT状态:当IrDA复位时,状态机自动跳到WAIT状态;若发送方式选择为FIR的时候,FIR的状态由WAIT状态跳到IDI。E;在IDI。E状态下,若发送FIFO中有数据,则IrDA进入FIR的SEND—PA状态,在SENDPA状态下,发送逻辑向外部发送帧数据PA标识位数据;当PA标识位的数据发邀完毕后进入SEND—STA状态,开始进入开始标识位数据的发送;若在IDI—E状态下,控制寄存器的值不是选择FIR方式发送,则FIR的状态跳到WAIT状态,否则进行FIR的数据发送。(2)SENDDATA状态:当开始标识符数据发送完毕后。FIR的状态由SEND—STA状态跳到SEND—DA—TA状态。在SENDDATA状态中.发送逻辑将从发送FIF()中读取的数据串行传输到编码逻辑以及CRC校验逻辑进行编码和生成CRC校验码;直到所发送的帧数据结束,进入SEND—CRC状态,将生成的CRC校验码传输到编码逻辑.在编码逻辑中将得到的数据(有效数据以及CRC校验码)进行4PPM方式编码。传输完CRC校验码

阅读此文(图):   在线翻阅