0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SFP+波长可调谐光模块双MCU嵌入式系统实现方案

电子设计 作者:工程师飞燕 2018-09-10 10:18 次阅读

本文基于ADuC7023a的硬件平台和Keil4的软件平台,设计了一种SFP+双MCU光收发模块嵌入式系统升级的方案,并具体实现了SFP+波长可调谐光模块双MCU系统的更新。这对双MCU的光模块的升级具有一定的实用价值,并对今后出现的多MCU嵌入式系统的升级具有一定的参考意义。

随着全球光通信的日益发展,光通信的发展已经取得了惊人的成就。Alcatel-Lucent在2007年光通信会议(OFC2007)上宣布他们成功将单根光纤传输数据率提高到25.6 Tbit/s,创造了一项新世界纪录。因此,如今的光通信已经不仅仅要解决大容量传输和宽带接入的问题,更关键的是实现光层的智能化和节点的光交换,从而建立起动态高效、扩展灵活、经济可靠的光网络,以满足信息传输的要求。

1 双MCU的嵌入式系统升级的整体设计

SFP+波长可调谐光模块主要由3个部分组成:光发射部分、光接收部分和控制部分,控制部分分别由MCU1和MCU2共同协作完成。本系统采用ADuC7023作为MCU控制模块,运行稳定可靠,实现了波长可调。其中,MCU1主要控制模块正常稳定发光,而MCU2主要用于实现波长切换。以下便设计了一种更新此嵌入式系统的升级方案,具体的整体框架如图1所示。

SFP+波长可调谐光模块双MCU嵌入式系统实现方案


图1 升级系统的整体架构

1)通信协议上位机:主要通过GUI(Graphical UserInterface)下发Hex文件,通过串口发送给下载板。

2)下载板:接收到串口发送的数据之后进行判断,如果是给MCU1下载程序则下载板将接收到的数据封装为满足AN806_I2C Download Protocol for ADulC70xxBCPZxxI Models下载协议的帧结构,并按照此协议的要求更新MCU1;如果是给MCU2下载程序,则下载板将收到的数据直接通过I2C(Inter—Integrated Circuit)转发给MCU1。

3)MCU1:MCU1作为光模块的主机,MCU2作为从机。当给MCU2下载程序时,MCU1将接收到的数据封装为满足AN806_I2C Download Protocol for ADulC70xxBCPZxxI Models下载协议的帧结构,并按照此协议的要求更新MCU2;否则,MCU1执行自身的程序,控制整个模块的正常运行。

2 双MCU嵌入式系统升级的实现

双MCU嵌入式系统升级的实现可分为以下几个部分:实现串口数据收集,实现数据的封装以及按照下载协议实现系统的更新。

2.1 串口数据收集实现

上位机(GUI)将Hex文件一行一行地发送给下载板,通过协议转换模块对数据封装后通过下载协议更新需要升级的系统。而串口每次只能发送一个ASCII码字符给下载板。下载板接收到数据后将每2个ASCII码合并为1个相应的十六进制数据,从而实现数据的收集。

2.2 数据封装的实现

数据的封装可根据具体的更新哪块MCU分别在下载板(更新MCU1)或MCU1(更新MCU2)中完成。由于数据封装前是Hex的帧结构,无法满足下载协议的要求,所以在更新系统之前必须对数据进行封装,使其满足协议的要求。下面将介绍具体的实现方式。

1)Hex文件的帧结构如图2所示。


图2 Hex文件的帧结构

(1)起始符:固定为“:”用于记录一帧数据的开始。

(2)数据字节数:后面的2个字符表明记录的长度。一般情况为0x10,表明这一帧中传送的有效数据位16 byte。

(3)地址位:4个字符表明调入的起始地址。

(4)数据类型:2个字符表明记录的类型。以下为具体的字符对应的不同的数据类型:

0:数据记录。

l:记录文件结束。

2:扩展地址记录。

3:开始段地址记录。

4:扩展线性地址记录。

5:开始线性地址记录。

(5)数据:表明有效的数据。

(6)校验和:最后的2位表明校验和检查,它加上前面所有的数据为0。

2)下载协议规定的数据帧结构如图3所示。

SFP+波长可调谐光模块双MCU嵌入式系统实现方案


图3发送数据的帧结构

(1)起始ID:0x07和0x0E是两个固定的有效值。

(2)数据字节数:表示数据帧中传输的数据,从Datal开始算起。最小值为5,最大值为255。

(3)数据1 CMD,如表1所示。

表1 命令功能

SFP+波长可调谐光模块双MCU嵌入式系统实现方案


(4)数据2一数据5(Address:h,u,m,1):该地址字段包含一个32位地址h,u,m,l,其中h中包含最高有效位(MSB),l中包含最低有效位(LSB)。

(5)数据x(x=6~255):用户代码是按字节下载的,数据字节字段最多为250个数据字节。数据必须是扩展Hex 16字节记录格式的数据串,而且在传输到加载器之前作为上面数据表格的一部分由主机重新编译。

(6)校验和:校验和的计算方法为所有数据的和取余。

3)帧结构封装的实现

协议转换模块将收到的每2个ASCII码转化为1个对应的十六进制,并存放于特定的缓存中。当协议转换模块收到回车换行后就会开始帧结构的封装工作。按照协议规定,为数据加入Start ID;帧结构中的No.of Data Bytes的值为Hex文件中数据的个数加5(其中主要加入了CMD Byte以及4 byte的地址);Datal则是命令Byte可根据协议要求写入适当的命令,在更新系统时应使用写命令W(0x57);Data2一Data5为Hex文件中指定的地址;Data x对应Hex文件中的数据部分;Checksum则为0x00减去从Bytel~Byte x 的所有数据的和。从而实现对数据的封装。

2.3 模块更新的实现

AN806一I2C Download Protocol是一种广泛使用的ADuC70xxBCPZxxI模块的下载协议。依照协议的具体规定设计和实现了双MCU模块的升级,具体的模块更新流程如图4所示。


图4模块更新流程

1)运行微转换器加载器

为了防止I2C意外下载,I2C下载模式进人前提是在复位器件串行下载保持低电平、同时Flash/EE存储器Oxl4地址单元的内容为0xFFFFFFFF。因此,用户代码必须有一个内置机制用来擦除第0页(Flash地址0x0到0x200)和复位器件。该机制允许进入下载模式对器件重新编译。

在理想情况下,为了能够在数据重编程时出现掉电故障或出现其他错误时重新进入下载模式,Flash地址单元Oxl4应该最后编程。

在基于MCU的嵌入式系统中,程序的存储区与数据的存储区是一致的,有时只是为了更新程序而又希望可以保留原有的数据,此时往往选择只擦除程序部分。因此,在执行擦除命令时要首先确定是否需要保留数据部分,避免误操作。

2)启动下载协议

一旦加载器进入下载模式,加载器从机器件地址为0x04,因此,每次向加载器发送数据,主机必须以字节0x04(I2c写地址)开始,每次从加载器读取命令应答请求以字节0x05(I2C读地址)开始。加载器的第一个数据包的数据必须为退格符(BS=0x08)以启动该协议。

在收到退格符后,加载器发送如下24 byte ID数据包:

15 byte=产品标示符

3 byte=硬件和固件的版本号

4 byte=保留

2 byte=换行和回车

3)加载器接收数据

为了防止在重新编程过程中出现的异常故障使得MCU无法再次进入下载模式,所以Flash地址单元0x14应该最后编程。从Hex文件的帧结构中可以发现0x14在第2行Hex中,也就是说第2行Hex文件应该在其他数据传完之后再写入。由于程序的起始点在第1行,所以Hex文件的第1行和第2行应该放在最后写入。协议转换器发送数据的具体软件流程如图5所示。

SFP+波长可调谐光模块双MCU嵌入式系统实现方案


图5 协议转换器发送数据的具体软件流程图

其中,若加载器为MCU1则协议转换器为下载板,即数据的封装在下载板中完成;若加载器为MCU2则协议转换器为MCU2,即数据的封装在MCU1中完成,此时下载板只起转发的作用。

4)加载器接收远程执行命令

一旦主机将所有的数据包发送到加载器,主机可以发送最后一个包以指示加载器开始执行代码。具体的软件流程如图6所示。

SFP+波长可调谐光模块双MCU嵌入式系统实现方案


图6协议转换器重启加载器的软件流程图

其中有2种不同的远程运行方式:软件复位(h,u,m,l=0x1)和跳转至用户代码(h,u,m,l=0x0)。一般情况下,会选择软件复位,因为软件复位可以重置所有外设。然而在串行接口永久接地和地址0x80014被清零的情况下,有必要采用一个跳转直接到用户代码。如果采用软件复位,则最后发送的数据包的帧结构如表2所示。

表2 软件复位的帧结构

SFP+波长可调谐光模块双MCU嵌入式系统实现方案


2.4 实验结果

图7是使用本设计方案升级SFP+双MCU嵌入式系统的测试结果,测试结果显示MCU2在更新之前的版本号为v101,升级之后的版本号为v102。这说明本设计方案是可行可靠的。

SFP+波长可调谐光模块双MCU嵌入式系统实现方案


图7测试结果

3 结束语

如今,大多数光通信依旧使用传统的基于固定波长光模块的光源,尤其是目前被广泛使用的10 Gbit/s光模块都使用的这种固定波长激光器,这对光模块的利用存在极大的局限性,而目前这种缺陷已经渐渐地显露出来。为了提高模块的利用率、降低网络建设的成本、减小管理的复杂性、提高网络的灵活性,SFP+波长可调谐的光模块应运而生。此可调谐光模块的实现是基于DBR可调谐半导体激光器实现的。它可以在整个C波段,100个通道上实现波长切换,从而提高了光网络的灵活性同时也降低了网络组建的成本、降低了光模块管理的复杂性。由于SFP+波长可调谐光模块功能的复杂性以及PCBA本身面积的局限性,出现了双MCU的系统,这样对于多MCU系统如何实现系统的升级更新是一个急需解决的问题。本文以AN806 I2C Download Protocol为基础,实现了SFP+波长可调谐光模块双MCU嵌入式系统的升级。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17173

    浏览量

    351617
  • 嵌入式
    +关注

    关注

    5086

    文章

    19142

    浏览量

    306016
  • SFP
    SFP
    +关注

    关注

    3

    文章

    134

    浏览量

    35346
  • 光模块
    +关注

    关注

    77

    文章

    1270

    浏览量

    59073
收藏 人收藏

    评论

    相关推荐

    模块 - SFPSFP+的区别

    的问题,所以关于模块的我就在这里一笔带过:模块(光收发一体模块):主要功能是实现光电/电光变
    发表于 03-22 14:38

    什么是SFP模块?有哪些分类?

    `现在市面上光模块的分装、种类有很多种,但是要深入了解的各种参数信息可不是一件简单的事情。就例如:SFP模块SFP+
    发表于 03-19 16:10

    SFP+模块有哪些?介绍三款常见10G SFP+模块

    中转移到线卡上,把线卡的密度从XFP的每块16个提高到24个,做到了真正的降低成本。SFP+模块用于10Gbps以太网和8.5Gbps光纤通道(FibreChannel)系统的最新可
    发表于 04-26 14:10

    百科:BIDI SFP模块和普通SFP模块的区别

    ,BIDI模块必须配对使用,通过调谐双工器以匹配发射器和接收器的期望波长实现数据的双向传输。BIDI
    发表于 05-31 14:54

    新手教程:万兆SFP+模块和光纤交换机最简单的连接方案

    两台交换机上的模块进行连接。(如下图)该连接方案是最有效的实现了两台交换机互连,在数据中心、综合布线、防火墙、SDH/SONET以及以太网传输广泛应用。10G]10G
    发表于 10-12 18:32

    怎样去设计一种SFP+MCU光收发模块嵌入式系统

    本文基于ADuC7023a的硬件平台和Keil4的软件平台,设计了一种SFP+MCU光收发模块嵌入式
    发表于 05-24 06:02

    SFP+模块

    SFP+万兆模块同属于SFP系列,比XFP模块更小,把用于时钟和数据恢复的电路从芯片中转移到线卡上,把线卡的密度从XFP的每块卡16个提高到至少24个,做到真正的降低成本。Gigac的
    发表于 12-08 17:33 335次下载

    SFPSFP+、XFP模块有什么不同

    本文首先阐述了SFP模块的概念与SFP和BIDI SFP连接方法,其次介绍了SFP+
    发表于 04-19 16:10 3.1w次阅读

    兼容思科CVR-X2-SFP10G转换模块支持哪些SFP+模块

    根据布线方案采用10G SFP+模块短距离10G SFP+ 850nm 300m LC DDM
    的头像 发表于 12-18 14:11 3233次阅读

    10GBase-SR,LR,LRM,ER,ZR分别代表哪个SFP+模块

    今天小编给大家介绍常见的10GBase-SR、10GBase-LRM、10GBase-LR、10GBase-ER和10GBase-ZR这五种以太网规范分别代表哪个SFP+模块?10G SFP
    的头像 发表于 07-11 16:02 3.8w次阅读

    详解16G SFP+模块分类及应用

    ,工作波长为1528.77~1563.86nm,通常和单模光纤一起使用时传输距离能达到10km。16G FC SFP+模块是存储区域网络中的理想光
    的头像 发表于 10-25 19:59 6290次阅读

    什么是10G CWDM SFP+万兆模块

    10G CWDM SFP+模块是一种万兆粗波分复用光模块, 最大速率高达11.3Gbps,采用可热插拔的SFP+封装、双工LC
    的头像 发表于 04-17 11:28 3852次阅读

    6G DWDM SFP+模块的特性及应用

    DWDM是密集波分复用技术,把不同波长信号复用进一根光纤内传送数据,无需消耗任何功率。DWDM模块是针对密集波分复用的
    的头像 发表于 06-29 09:01 2009次阅读
    6G DWDM <b class='flag-5'>SFP+</b><b class='flag-5'>光</b><b class='flag-5'>模块</b>的特性及应用

    SFP+高速线缆、10G SFP+电口模块SFP+模块的区别比较

    SFP+高速线缆、10G SFP+电口模块SFP+模块都是用于10G以太网传输的设备,它们在
    的头像 发表于 05-08 17:44 2646次阅读

    易天推出10G SFP+ 可调 DWDM模块:网络通信新升级

    随着网络技术的飞速发展,为了满足用户对高速数据传输日益增长的需求。易天研发团队在原来的基础上推出了全新升级的10G SFP+ 可调 DWDM模块
    的头像 发表于 01-03 17:36 510次阅读
    易天推出10G <b class='flag-5'>SFP+</b> <b class='flag-5'>可调</b> DWDM<b class='flag-5'>光</b><b class='flag-5'>模块</b>:网络通信新升级