本發明涉及光通信
技術領域:
,具體的說,是一種100gcfp主備映象文件升級與切換方法。
背景技術:
:隨100g光網絡逐步成熟,以100gcfp為主的100g光模塊需求越來越大,針對不同運營商和客戶的不同需求,對100gcfp光模塊穩定性,可靠性和可維護性提出了更高要求。這就要求100gcfp具有遠程升級和主備映象文件切換功能,特別是主備映象文件的切換功能,cfp映象文件是firmware的運行文件,包括一主映象文件和一備份映象文件,可以根據客戶需求選擇不同映象文件運行。現有的cfp光模塊遠程升級時,只可以升級備分映象文件,不支持主備映象文件切換。現有的cfp光模塊多數不支持遠程升級,只有主映像文件,不支持主備映像文件切換。根據最新的msa多源協議《cfpmsamisv2p2r06a》要求,cfp應該支持遠程升級和主備映象文件切換,但傳統的cfp不支持該應用,因此傳功的cfp的遠程升級和主備映象文件切換受到了限制。技術實現要素:本發明的目的在于提供一種100gcfp主備映象文件升級與切換的方法,用于解決現有技術中的100gcfp只能升級備份映象文件、不支持主備映像文件切換的問題。為了達到上述目的,本發明通過下述技術方案實現:一種100gcfp主備映象文件的升級與切換方法,包括步驟:1)在cfp的微處理器內部flash中劃分出flash0與flash1,所述flash0與flash1物理地址中劃分出用于存放主備映象文件和標志位的區域;2)cfp的微處理器復位后,根據微處理器硬件管腳p2.3電平狀態和所述標志位的邏輯判斷,定義cfp的工作模式,即cfp選擇運行的映象文件;3)cfp的微處理器發出升級命令時,當下載新版本的imagea至flash0時,flash1的imageb版本保持不變;4)flash0下載結束時,修改flash0的標志位key1,key2和crc0,(注:標志位的進一步細化為key1,key2和crc0在權利要求2中進行體現)cfp的微處理器復位,根據flasho與flash1中標志位的邏輯判斷,選擇cfp的工作模式;5)復位后的微處理器通過標志位判斷升級是否成功,升級不成功,cfp的微處理器發出切換命令,加載運行flash1中的imageb;升級成功,cfp的微處理器發出運行命令,加載運行flash0中新版本的imagea。在微處理器的flash內部劃分出flash0與flash1,存放主映象文件和備份映象文件,并且在flash0與flash1的物理地址中映射出標志位,用于記錄和檢查映象文件升級的狀態。根據flash0與flash1中的標志位的邏輯比較和判斷,由微處理器選擇cfp的工作模式,即使在升級映象文件的過程中,仍然不會影響到cfp運行舊版本的映象文件。flash0中存放的映象文件為imagea,flash1中的存放映象文件為imageb,imagea與imageb的版本可能相同,也可以不同。升級flash0中的映象文件時,只對flash0中的標志位進行修改,flash1中的標志位保持不變。映象文件下載完成后,cfp的微處理器復位,修改flash0中的標志位。復位完成后,由微處理器根據flash0與flash1中的標志位判斷升級是否成功,若升級成功,則運行flash0中的新版本的imagea,若升級不成功,則運行flash1中的imageb。同樣的方法,升級flash1中的映象文件時,將新版本的映象文件下載至flash1,下載開始時,只對flash1中的標志位進行修改,flash0中的標志位保持不變。映象文件下載完成后,cfp的微處理器復位,復位完成后,由微處理器根據flash0與flash1中的標志位判斷升級是否成功,若升級成功,則運行flash1中的新版本的imageb,若升級不成功,則運行flash0中的imagea。因此,100gcfp既可以升級備份映象文件又可以升級主映象文件,利用flash中標志位的簡單算法實現cfp主備映象文件切換,即使在升級的過程中出錯,仍然不會影響cfp的正常運行。進一步的優選,所述步驟1)中的flash0的標志位設置為key1、key2和crc0,flash1的標志位設置為key1’、key2’和crc1,所述crc0為flash0校驗標志,所述crc1為flash1校驗標志,crc0和crc1負責升級的映像文件的校驗,所述key1和key1’用于管理升級次數,所述key2和key2’用于管理試驗運行,所述標志位的初值均設置為0xffffffff。設置標志位key1、key2、key1’和key2’并根據標志位的數值進行邏輯判斷,決定cfp跳轉的工作模式。設置相同的初值,是為了通過標志位的改變,反應映象文件升級與切換運行的程度。設置標志位crc0,crc1,根據crc的數值判斷映像文件下載的正確是否。進一步的優選,所述步驟4)中,開始下載新版本的imagea到flash0時,key1的數值由0xffffffff修改為1,key2的數值仍然為0xffffffff,cfp的微處理器復位后,key2的數值由0xffffffff修改為0。key1為1,表示開始下載映象文件到flash0,key2為0xffffffff即-1時,表示映象文件的下載尚未完成。微處理器復位后,key2為0表示映象文件下載完成。進一步的優選,所述步驟4)中cfp的工作模式包括:mode1:調試模式;mode2:下載模式;mode3:flash0正常運行imagea;mode4:flash0試驗運行imagea,即運行imagea,并檢查新imageb;mode5:flash1正常運行imageb;mode6:flash1試驗運行imageb,即運行imageb,并檢查新imagea;微處理器硬件管腳p2.3為高電平,選擇mode1;當flash0,flash1均無有效代碼時,選擇mode2;所述根據flasho與flash1中標志位的邏輯判斷,選擇cfp的工作模式是指:key1>key1’且key2=0,選擇mode3;key1’>key1且key2’≠0,選擇mode4;key1’>key1且key2’=0,選擇mode5;key1>key1’且key2≠0,選擇mode6。mode1:調試模式是指cfp光模塊在進行光通信的之前通過微處理器對組件進行調試,mode2:下載模式,是指調試成功后,cfp光模塊初次將映像文件存儲于flash中的flash0與flash1中,即flash0與flash1中存儲的映象文件是相同的。進一步的優選,所述步驟1)中的flash0與flash1存放的映象文件互為主備映象文件。升級flash0中的映象文件時,cfp可以運行flash1中的映象文件,升級flash1中的映象文件時,cfp可以運行flash0中的映象文件。進一步的優選,所述微處理器采用芯片aducm320。該器件為精密模擬微控制器,包括mdio接口,可運行在最高至4mhz頻率下。兩個閃存模塊同時分別執行程序和進行寫入/擦除操作功能,使得aducm320非常適合10g、40g和100g光學應用。本發明與現有技術相比,具有以下優點及有益效果:(1)本發明直接利用微處理器內部flash物理映射空間構造出主備映象文件和標志位,利用標志位邏輯判斷跳轉到cfp的工作模式下實現主備映象文件的升級與切換,簡單方便,不需要增加硬件成本。附圖說明圖1為本發明的流程圖;圖2為本發明中flash0與flash1的示意圖。具體實施方式首先,在對本發明的具體實施例詳細說明之前,對本發明中涉及的專業術語給予解釋說明:映象文件:也叫映像文件、鏡像文件,取自翻譯的外文“image”;100gcfp:100gb/s的光通信模塊,基于標準化的密集波分光通信模塊,cfp是一種可以支持熱插拔的模塊。下面結合實施例對本發明作進一步地詳細說明,但本發明的實施方式不限于此。實施例1:結合附圖1和圖2所示,一種100gcfp主備映象文件的升級與切換方法,包括步驟:1)在cfp的微處理器內部flash中劃分出flash0與flash1,所述flash0與flash1物理地址中劃分出用于存放主備映象文件和標志位的區域;2)cfp的微處理器復位后,根據微處理器硬件管腳p2.3電平狀態和所述標志位的邏輯判斷,定義cfp的工作模式,即cfp選擇運行的映象文件;3)cfp的微處理器發出升級命令時,當下載新版本的imagea至flash0時,flash1的imageb版本保持不變;4)flash0下載結束時,修改flash0的標志位key1,key2和crc0,(注:標志位的進一步細化為key1,key2和crc0在權利要求2中進行體現)cfp的微處理器復位,根據flasho與flash1中標志位的邏輯判斷,選擇cfp的工作模式;5)復位后的微處理器通過標志位判斷升級是否成功,升級不成功,cfp的微處理器發出切換命令,加載運行flash1中的imageb;升級成功,cfp的微處理器發出運行命令,加載運行flash0中新版本的imagea。工作原理:在微處理器的flash內部劃分出flash0與flash1,存放主映象文件和備份映象文件,并且在flash0與flash1的物理地址中映射出標志位,用于記錄映象文件升級的狀態。根據flash0與flash1中的標志位的邏輯比較和判斷,由微處理器選擇cfp的工作模式,即使在升級映象文件的過程中,仍然不會影響到cfp運行舊版本的映象文件。flash0中存放的映象文件為imagea,flash1中存放的映象文件為imageb,imagea與imageb的版本可能相同,也可以不同。升級flash0中的映象文件時,只對flash0中的標志位進行修改,flash1中的標志位保持不變。映象文件下載完成后,cfp的微處理器復位,修改flash0中的標志位。復位完成后,由微處理器根據flash0與flash1中的標志位判斷升級是否成功,若升級成功,則運行flash0中的新版本的imagea,若升級不成功,則運行flash1中的imageb。同樣的方法,升級flash1中的映象文件時,將新版本的映象文件下載至flash1,下載開始時,只對flash1中的標志位進行修改,flash0中的標志位保持不變。映象文件下載完成后,cfp的微處理器復位,修改flash1中的標志位。復位完成后,由微處理器根據flash0與flash1中的標志位判斷升級是否成功,若升級成功,則運行flash1中的新版本的imageb,若升級不成功,則運行flash0中的imagea。因此,100gcfp既可以升級備份映象文件又可以升級主映象文件,利用flash中標志位的簡單算法實現cfp主備映象文件切換,即使在升級的過程中出錯,仍然不會影響cfp的正常運行。值得說明的是,微處理器主備映象文件切換命令如表一。類型命令備注0nooperation無操作1downloadstart開始下載2downloadcompleted下載完成3runimagea運行映象文件a4runimageb運行映象文件b5abortimagedownload放棄已下載的映象文件6copyimageatob復制映象文件a到b7copyimagebtoa復制映象文件b到a8commitimagea提交映象文件a9commitimageb提交映象文件b表一微處理器主備映象文件切換命令實施例2:在實施例1的基礎上,結合附圖1和圖2所示,所述步驟1)中的flash0的標志位設置為key1、key2和crc0,flash1的標志位設置為key1’、key2’和crc1,所述crc0為flash0校驗標志,所述crc1為flash1校驗標志,crc0和crc1負責升級的映像文件的校驗,所述key1和key1’用于管理升級次數,所述key2和key2’用于管理試驗運行,所述標志位的初值均設置為0xffffffff。進一步的優選,所述步驟4)中,開始下載新版本的imagea到flash0時,key1的數值由0xffffffff修改為1,key2的數值仍然為0xffffffff,cfp的微處理器復位后,key2的數值由0xffffffff修改為0。進一步的優選,所述步驟4)中cfp的工作模式包括:mode1:調試模式;mode2:下載模式;mode3:flash0正常運行imagea;mode4:flash0試驗運行imagea,即運行imagea,并檢查新imageb;mode5:flash1正常運行imageb;mode6:flash1試驗運行imageb,即運行imageb,并檢查新imagea;微處理器硬件管腳p2.3為高電平,選擇mode1;當flash0,flash1均無有效代碼時,選擇mode2;所述根據flasho與flash1中標志位的邏輯判斷,選擇cfp的工作模式是指:key1>key1’且key2=0,選擇mode3;key1’>key1且key2’≠0,選擇mode4;key1’>key1且key2’=0,選擇mode5;key1>key1’且key2≠0,選擇mode6。進一步的優選,所述步驟1)中的flash0與flash1存放的映象文件互為主備映象文件。工作原理:mode1:調試模式是指cfp光模塊在進行光通信的之前通過微處理器對組件進行調試;mode2:下載模式,是指調試成功后,cfp光模塊初次將映像文件存儲于flash中的flash0與flash1中,即此時主備映象文件文件是相同的。為實現主備映象文件切換,將微處理器內部flash劃分為兩個區域flash0和flash1,flash0物理地址為:0x00000000-0x0001ffff,其中,映象文件a即imagea的物理地址為0x00000000-0x0001dfe0,標志位key1的物理地址為0x0001dfe0,標志位key2的物理地址為0x001dfe8,crc0的物理地址為0x0001dfec。nvr數據區的物理地址為0x0001e000-0x0001ffff;flash1的物理地址為:0x00020000-0x0003ffff,其中,映象文件b即imageb的物理地址為0x00020000-0x0003dfe0,標志位key1’的物理地址為0x0003dfe0,標志key2’的物理地址為0x0003dfe8,crc1的物理地址為0x0003dfec,0x0003e000-0x0003ffff為nvr數據區。結合表二對cfp主備映象文件的升級與切換的過程給予詳細說明:表二標志位數值表cfp光模塊初始化時,flash中的標志位key1、key2、key1’和key2’均賦予初值0xffffffff,當第1次升級flash0中的映象文件a時,flash0的標志key1由0xffffffff修改為1,由于此時flash1的標志位key1’保持不變,仍然為0xffffffff,即key1’=-1,此時key1大于key1’,下載未完成時,key2仍然為0xffffffff,即key2≠0,此時cfp的工作模式為mode6,flash1試運行imageb,即運行imageb,檢查新的imagea。當下載完成時,微處理器復位,修改key2=0,即此時的活動映象文件為imagea。因此cfp的工作模式跳轉至mode3,即flash0正常運行imagea模式。當第2次升級映象文件時,如果是下載imageb至flash1,flash的key1’修改為2,但key2’仍為0xffffffff,由于key1=1,此時key1’>key1,cfp的工作模式為mode4:flash0試驗運行imagea,即flash0運行imagea,并檢查新imageb。當下載imageb完成之后,微處理器復位,修改key2’=0,進入工作模式mode5,flash1正常運行imageb。同理,可得到每次升級后cfp的工作模式。當主備映象文件不同時,可以直接修改標志位的值,利用標志位的邏輯判斷實現主備映象文件的切換。值得說明的是,表二中第二行的數據表示下載imagea至flash0的過程中各標志位的數值,第三行的數據表示成功下載imagea至flash0后標志位的數值。實施例3:在以上實施例的基礎上,結合附圖1和圖2所示,所述微處理器采用芯片aducm320。該器件為精密模擬微控制器,包括mdio接口,可運行在最高至4mhz頻率下。兩個閃存模塊同時分別執行程序和進行寫入/擦除操作功能,使得aducm320非常適合10g、40g和100g光學應用。以上所述,僅是本發明的較佳實施例,并非對本發明做任何形式上的限制,凡是依據本發明的技術實質對以上實施例所作的任何簡單修改、等同變化,均落入本發明的保護范圍之內。當前第1頁12