您当前的位置:五五电子网电子知识通信技术光通信采用片上系统技术设计FC协议芯片的方案 正文
采用片上系统技术设计FC协议芯片的方案

采用片上系统技术设计FC协议芯片的方案

点击数:7829 次   录入时间:03-04 11:37:01   整理:http://www.55dianzi.com   光通信

    (2)接收缓冲区 RXBUF。该缓冲区采用循环队列的方式,由模块RXF-CTL顺序写入数据,数据的存储顺序如图3所示的FC-2帧格式。在完成1帧数据接收后,模块 RXF-CTL要在寄存器中表明当前帧在RXBUF中的接收起始地址(RXOFFSET)和接收到的个数(RXCOUNT)。CPU读取寄存器 RXCOUNT后,该寄存器自动清零。上述使用规则是整个系统进行SoC设计的要点。

    工作过程

    数据的发送过程发送:

    (1)CMD_RESET。模块TXF-CTL复位,进入空闲态。

    (2)CMD_TEST:由CPU直接控制数据的发送,模块TXF-CTL进入空闲态。

    (3)CMD_START_TX1:在空闲态并且CMD_TEST和CMD_START_TX2都无效时,进入按帧发送数据的状态,模块TXF-CTL发出SENDING信号。模块TXF- CTL先向FC发送通道的TX-FIFO发送有序集码lDLE(K28.5D21.4D21.5D21.5);根据SOF码型寄存器发送相应的SOF;然后从TXBUF的帧头区取数据依次发送;以后,如果数据从TXBUF取,则根据寄存器发送起始地址(TXOFFSET)和发送个数(TXCOUNT)从 TXBUF中取出对应的数据发送;发送完有效数据后,再根据EOF码型寄存器发送相应的EOF;最后再发一个有序集码 IDLE(K28.5D21.4D21.5D21.5)。一帧数据发完后,将SENDING信号清零,CMD_START_TX1清零,发中断信号 INTTXi,然后回到空闲态。发送过程只有CMD_RESET可以中断。

    (4)如果数据来在ULP-FIFO,则读发送个数(TXCOUNT),从ULP-FIFO中取数发送,若发送个数(TXCOUNT)大于FC-2帧规定的长度,则按2112字节的长度分多帧发送,每帧完毕,自动修改帧头中的帧记数值,并且自动选择相应的SOF和EOF定界符;若发送的过程中ULP-FIFO空,则自动结束这一帧的发送,并启动超时定时器,等待ULP-FIFO中的数据。当发送个数(TXCOUNT)规定的数据发完后,或者超时,则将SENDING信号清零,CMD_START_TX1 清零,发中断信号INTTXi,然后回到空闲态。发送过程只有CMD_RESET可以中断。

    (5)CMD_START_TX2:在空闲态当CMD_START_TX2有效时,模块TXF-CTL按有序

    集码寄存器和有序集码参数寄存器的定义发送有序集码。

    数据的接收过程

    数据的接收有两种方式:由CPU直接控制;由RXF-CTL按FC-2帧格式接收数据。CPU可通过FC-2帧收发控制器的寄存器向模块RXF-CTL发命令来控制数据发送:

    (1)CMD_RESET。模块TXF-CTL复位,进入空闲态。

    (2)CMD_TEST:由CPU直接控制数据的接收。

    (3)CMD_START_RXi:在空闲态并且CMD_TEST无效时,进入按帧接收数据的状态。模块RXF-CTL从FCSET-A的RX-FIFO中收到有序集码SOF后,发出 RECEIVE信号,表示已经开始1帧数据的接收。模块RXF-CTL将收到的数据依次写入循环缓冲区RXBUF。再收到任一个有序集码后,1帧数据接收结束,将RECEIVE信号清零。更新寄存器接收起始地址(RXOFFSET)和接收到的个数(RXCOUNT)。如果接收到的CRC码无效或者最后一个有序集码不是EOF,则将接收有错(RXERR)置‘1’,否则发出INTRXi中断信号,表示收到1帧正确的数据。继续下一帧的数据的接收。在1帧数据接收的过程中,只有CMD_RESET可以中断;如果尚未开始接收1帧数据,则CMD_TEST可使其回到空闲态。CPU读寄存器RXOFFSET、 RXERR和RXCOUNT可知道接收到的数据存放的地址和个数以及数据帧是否有效。

    另外CMD_START_Rxi还用来控制FC接收通道中的RX-FIFO控制器。CMD_START_Rx1控制FC接收通道按FC-2帧接收数据存入RX-FIFO;CMD_START_Rx2控制 FC接收通道接收所有数据(除了连续的IDLE有序集码之外)存入RXFIFO。

    内置CPU的配置及ULP的设计

    内置CPU通过嵌入的软件完成FC-2层的序列和交换的协议,同时实现ULP与上层的通讯。

    CPU外设的配置

    CPU配置的外设和总线接口定义如下:

    (1)两个RS232串行口。

    (2)看门狗定时器:WATCHDOG-TIMER。

    (3)两个FC-2层通讯用的定时器:FCTIMER1,FC-TIMER2。

    (4)接收两路FC-2帧收发控制器中断的PIO:INTFRAME-PIO。两个接受来自RX-FIFO的有序集译码的PIO:ORDERSET- PIO1,ORDERSETPIO2。两个内总线接口,用于操作两路FC-2帧收发控制器。可根据操作功能需要,对FC-2帧收发控制器的各寄存器进行定义。

    (5)四个独立的连接收发数据缓冲区的内总线接口。

    (6)三条独立的存储器总线接口:双口RAM、程序存储器和数据存储器。

    (7)与ULP交换数据的ULP-RXFIFO接口。

    (8)与ULP握手的ULP-PIO接口。

   



www.55dianzi.com

    ULP的数据通道

    如图4所示,FC芯片对ULP提供了两种数据通道:双口RAM和FIFO。双口RAM通道:可根据ULP的需要划分成若干分区,ULP可通过PCI接口对它存取数据。FC芯片的内置CPU从双口RAM中读数据,放到TXBUF中,然后启动“帧发送模块”打包发送;接收数据时,CPU从RXBUF中读取数据,存到双口RAM的相应的数据分区中,通知ULP来取数据。这种数据通道对需要确认,出错要重传的消息比较有效。

    FIFO通道:ULP将数据通过PCI接口写到ULP-TXFIFO中,CPU设定“帧发送模块”从ULP-TXFIFO中取数据,“帧发送模块”在数据打包时,从ULP- TXFIFO中取数据;接收数据时,CPU从RXBUF中读取数据,存到ULP-RXFIFO。这种数据通道对视频数据等实时性要求高的消息比较有效。

    FC芯片嵌入软件的基本操作函数

    FC 芯片的嵌入软件要完成FC-2层的交换、序列、帧收发、差错控制、流量控制等功能。它们需要调用的基本操作函数如表3所列。这些基本操作函数是与硬件平台相关的函数,在平台上所作的其他函数将与硬件平台无关。这样,有利于软硬件协同开发,互相隔离错误。这是SOC设计的又一个重要原则。

    结论

    目前,高端的FPGA中已内嵌了适应高速传输的收发器、锁相环和大量的存储器,本文讨论的FC协议芯片可以在这类FPGA上实现原型样机。光纤通道以其传输速度高、兼容性好等特点在未来的航空电子统一网络中将得到广泛的应用,本文讨论的FC协议芯片将为这一应用奠定物质基础。本文以FC协议芯片的设计为例,介绍了基于SoC设计的思考重点和SoC设计的基本原则,它将有助于在航电系统的设计中推广使用SoC技术。



上一页  [1] [2] 


本文关键字:技术  光通信通信技术 - 光通信

《采用片上系统技术设计FC协议芯片的方案》相关文章>>>