当前位置:首页 > 消费电子 > 消费电子
[导读]本文基于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所示。

 

 

图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所示。

 

 

图3发送数据的帧结构

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

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

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

表1 命令功能

 

 

(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)和复位器件。该机制允许进入下载模式对器件重新编译。[!--empirenews.page--]

在理想情况下,为了能够在数据重编程时出现掉电故障或出现其他错误时重新进入下载模式,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所示。

 

 

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

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

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

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

 

 

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

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

表2 软件复位的帧结构

 

 

2.4 实验结果

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

 

 

图7测试结果

3 结束语

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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

慕尼黑2024年5月9日 /美通社/ -- TÜV南德意志集团(以下简称"TÜV南德")持续保障安全、可靠及可持续发展。作为全球化的服务提供商,TÜV南德2023年全年营收达约31亿欧元,首次突破30亿欧元大关,同比增长...

关键字: BSP 可持续发展 数字化 人工智能

ST于近期发布了“STM32WBA”无线MCU、“STM32U0”超低功耗入门级MCU、“STM32H7R/S”高性能MCU和“STM32MP2”四大重磅新品,还透露将会在今年推出18nm的STM32新品。

关键字: STM32 MCU NPU AI 超低功耗

凭借深度学习技术和SmartBid产品,百度国际MediaGo获得美国商业奖认可 旧金山2024年5月6日 /美通社/ -- 第22届美国商业奖(American Business Award®)近日发布获奖名...

关键字: MEDIA GO SMART BSP

2024年5月7日 – 专注于引入新品的全球半导体和电子元器件授权代理商贸泽电子 (Mouser Electronics) 即日起开售Microchip Technology的PIC32CZ CA MCU。PIC32CZ...

关键字: MCU 工业网关 处理器

【2024年4月29日, 德国慕尼黑讯】嵌入式安全被认为是物联网(IoT)应用部署的一个重要属性。英飞凌科技股份公司(FSE代码:IFX / OTCQX代码:IFNNY)近日宣布,其新型PSOC™ Edge E8x MC...

关键字: 微控制器 MCU 物联网

上海2024年4月17日 /美通社/ -- 在2024 F1中国站即将拉开帷幕之际,高端全合成润滑油品牌美孚1号今日举办了品牌50周年庆祝活动。三届F1年度车手总冠军马克斯•维斯塔潘也亲临现场,共同庆祝这一里程...

关键字: BSP 汽车制造 行业标准 产品系列

北京2024年4月17日 /美通社/ -- 2024年4月13日,由北京康盟慈善基金会主办的"县域诊疗,规范同行"——肿瘤诊疗学术巡讲项目首站在广州隆重召开。本次会议邀请全国多位肺癌领域专家和县域同道...

关键字: AI技术 医疗服务 BSP 互联网

海口2024年4月16日 /美通社/ -- 4月14日,在中法建交60周年之际,科学护肤先锋品牌Galenic法国科兰黎受邀入驻第四届中国国际消费品博览会(以下简称"消博会")法国馆。Galenic法...

关键字: NI IC BSP ACTIVE

【2024年4月24日,德国慕尼黑讯】英飞凌科技股份公司(FSE代码:IFX / OTCQX代码:IFNNY)发布全新PSOC™ Edge微控制器(MCU)系列的详细信息,该系列产品的设计针对机器学习(ML)应用进行了优...

关键字: 物联网 机器学习 MCU

微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是一种针对特定应用的控制处理而设计的微处理器芯片,其工作频率(在1M...

关键字: MCU 芯片 半导体
关闭
关闭