專利名稱:節(jié)點b單板軟件下載及升級方法
技術(shù)領(lǐng)域:
本發(fā)明涉及寬帶碼分多址系統(tǒng)(WCDMA,Wideband Code DivisionMultiple Access),尤其涉及寬帶碼分多址系統(tǒng)中Node B(節(jié)點B)內(nèi)實現(xiàn)單板軟件下載升級的處理方法。
背景技術(shù):
隨著移動通訊系統(tǒng)的在社會各個領(lǐng)域中應(yīng)用范圍的日益擴大,人們對于移動通訊系統(tǒng)的要求也越來越高,從早期的模擬通訊技術(shù),發(fā)展到現(xiàn)在的承載話音信號的數(shù)字通訊技術(shù),繼而朝著數(shù)據(jù)業(yè)務(wù)的第三代移動通訊系統(tǒng)發(fā)展。WCDMA系統(tǒng)分成兩個部分網(wǎng)絡(luò)部分和無線接入部分。無線接入部分由多個無線網(wǎng)絡(luò)子系統(tǒng)(RNS,RatioNetwork System)組成,每個RNS包括1個無線網(wǎng)絡(luò)控制器(RNC,Ratio Network Controller)和一個或多個Node B,Node B通過Iub接口與RNC相連,上報RNC提供的系統(tǒng)信息廣播,執(zhí)行由RNC下發(fā)的接入控制,移動性管理,無線資源管理和控制命令,通過Uu接口與UE(User Equipment)連接完成無線鏈路傳輸功能。Node B做為一個電信設(shè)備,在地理分布上比較分散且對其脫網(wǎng)時間有嚴格要求,這就需要其具有可靠有效的遠程軟件下載與升級功能。在NODE B系統(tǒng)中,一般采用諸如摩托羅拉850、8260等系列中央處理器來運行嵌入式實時操作系統(tǒng),在對于這些嵌入式實時操作系統(tǒng)而言,由于系統(tǒng)升級、軟件維護等原因,經(jīng)常會面臨軟件版本存儲、升級的問題。目前常用的方法是把單板軟件放在單板的存貯設(shè)備(如FLASH)中,然后由BOOT ROM(Read-only Memory)引導(dǎo)運行。由于上述方法需要固定的存貯設(shè)備,不僅增加了系統(tǒng)的硬件成本,而且由于每個單板都保存了升級軟件,從而增加了單板對軟件版本的管理成本,也增加了軟件復(fù)雜度。
發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有技術(shù)中存在的系統(tǒng)硬件成本高、軟件版本管理復(fù)雜的缺點,以期提供一種能夠有效避免增加系統(tǒng)硬件成本、簡化軟件復(fù)雜度的節(jié)點B單板軟件下載及升級方法。
為實現(xiàn)上述目的,本發(fā)明提供了一種節(jié)點B單板軟件下載及升級方法,其特征在于,包括以下步驟節(jié)點B單板軟件下載流程(1)外圍單板上電,ROM中的程序啟動,對硬件初始化,然后執(zhí)行ROM里的軟件下載程序;(2)下載進程向BMC(主控單板,NODE B Main Control),發(fā)出軟件下載請求,BMC收到請求消息后,根據(jù)消息來源判斷需要下載的軟件類型,并查詢數(shù)據(jù)庫,獲得要下載的軟件的具體信息發(fā)送給單板;(3)單板接收到BMC的回應(yīng)消息后,根據(jù)BMC返回的信息與BMC建立相關(guān)的文件傳輸鏈路,將軟件下載到一臨時內(nèi)存,并對下載下來的軟件進行校驗;(4)校驗成功后,將程序指針跳轉(zhuǎn)到存放下載軟件的內(nèi)存地址開始運行正式軟件。
節(jié)點B單板軟件升級流程
(1)后臺系統(tǒng)把要下載的軟件拷貝到指定目錄,并讀出該文件的軟件類型及版本號;(2)向BMC發(fā)出軟件下載消息,BMC收到消息后與后臺建立文件傳輸鏈路把文件下載下來;(3)BMC查詢數(shù)據(jù)庫并進行版本比較,如果數(shù)據(jù)庫中不存在該文件軟件類型的版本信息,則插入一條新的版本信息;如果存在則比較版本,如果版本相同就改變數(shù)據(jù)庫中的下載時間,如果版本不同則把當前版本存為最新版本并刪除原版本信息;(4)BMC向后臺返回軟件下載成功消息;后臺接收到成功下載消息后,由用戶激活下載版本,然后后臺向BMC發(fā)出激活消息;(5)BMC收到激活消息后,查詢數(shù)據(jù)庫,根據(jù)軟件類型更新數(shù)據(jù)中的相關(guān)版本信息,把要激活的版本做為當前版本;(6)BMC向所有符合軟件類型的單板發(fā)出復(fù)位消息;(7)單板收到復(fù)位消息后,重新啟動。
本發(fā)明所述方法將單板軟件的分布式貯存方式改為對單板軟件的集中管理,由于NODE B系統(tǒng)內(nèi)單板間一般具有足夠的帶寬,板間的軟件版本傳遞時間可以縮短到10幾秒甚至幾秒,這樣就為采用集中式的軟件版本管理提供了一種可能性。采用本發(fā)明所述管理辦法,外圍單板的升級處理流程簡單,且在單板上無需永久存貯設(shè)備,節(jié)約了成本,可以很方便簡單的實現(xiàn)NODE B軟件遠程下載及升級。
圖1是本發(fā)明所述節(jié)點B單板軟件下載消息交互圖。
圖2是本發(fā)明所述節(jié)點B單板軟件升級消息交互圖。
圖3是VxWorks嵌入式操作系統(tǒng)內(nèi)存分配圖。
圖4是ROM啟動軟件與正式軟件的的內(nèi)存分配示意圖。
圖5是ROM程序與正式軟件在RAM中的加載示意圖。
圖6是單板軟件下載流程圖。
圖7是BMC對后激活命令的處理流程圖。
圖8是后臺向BMC下載升級軟件流程圖。
具體實施例方式
下面結(jié)合具體實施方式
對本發(fā)明作進一步描述根據(jù)NodeB系統(tǒng)的設(shè)計,系統(tǒng)內(nèi)的外圍單板的正式運行軟件都存放在主控單板BMC的CF卡中,外圍單板通過特定的協(xié)議與BMC通訊,將各軟件下載到各自的內(nèi)存中,并將其啟動。本發(fā)明則提出了一種從BMC下載軟件并引導(dǎo)啟動及遠程升級的處理方案。由于NodeB的單板通常采用嵌入式操作系統(tǒng),并通過BOOT ROM啟動,所以可以將整個軟件分為兩個部分ROM啟動系統(tǒng)和系統(tǒng)正式運行。其中ROM啟動軟件的功能是引導(dǎo)單板啟動并下載正式軟件到指定內(nèi)存,而正式運行軟件才是整個單板正常工作時運行的軟件。
當ROM上電后,ROM中的程序向BMC申請單板軟件下載,BMC根據(jù)申請者的信息決定要下載的軟件,通過單板與BMC的文件傳輸協(xié)議將軟件下載到單板的RAM中,然后根據(jù)具體操作系統(tǒng)的特點,運行下載下來的軟件。BMC板的CF卡上存貯了所有外圍單板所需要的當前運行軟件及備份軟件,并將相關(guān)信息記錄在數(shù)據(jù)庫里。當外圍單板上電后,外圍單板BOOT ROM里的軟件向BMC申請軟件下載,BMC根據(jù)申請者的信息查詢數(shù)據(jù)庫,得到需要下載的軟件具體信息并發(fā)送給申請者。然后,通過BMC與外圍單板之間的文件傳輸協(xié)議把軟件下載到外圍單板的內(nèi)存里。
當軟件需要升級的時候,遠程控制終端通知BMC,BMC回應(yīng)后通過指定的文件傳輸協(xié)議把軟件從遠程控制終端下載到CF上,然后在數(shù)據(jù)庫中增加相關(guān)的記錄并將其標志為備份,下載成功后BMC通知遠程控制終端。用戶可以通過遠程控制終端激活升級的軟件,BMC接受到激活命令后把數(shù)據(jù)庫中的相關(guān)軟件的標志為由備份改為運行,把原先運行狀態(tài)的軟件改為備份狀態(tài),然后BMC給外圍單板發(fā)出復(fù)位消息。單板接收到復(fù)位消息后會重新啟動,BOOT ROM上電后向BMC申請軟件下載,BMC查詢數(shù)據(jù)庫把標志為運行的軟件下載到單板上去。
下面通過一個實例對本發(fā)明做進一步描述在本發(fā)明所述實例中,用戶通過后臺軟件把BBP(Node B Base-band Processing,基帶處理板)單板軟件下載BMC的CF卡上,然后由BBP板再從BMC下載到內(nèi)存中去并啟動執(zhí)行。在實例中,單板所用的操作系統(tǒng)是VxWorks,單板與BMC采用TCP/IP(Transfer Control Protocol,傳輸控制協(xié)議/Intemet Protocol,網(wǎng)際協(xié)議)協(xié)議,文件傳輸采用FTP(FileTransfer Protocol,文件傳送協(xié)議)協(xié)議。實際上,雖然實施例采用上述系統(tǒng)和協(xié)議,在其他類型的系統(tǒng)和協(xié)議中,本發(fā)明所述方法仍然適用。
圖3是VxWorks操作系統(tǒng)的內(nèi)存分配圖,在VxWorks中,系統(tǒng)上電后,處理器開始執(zhí)行romInit(),該程序禁止中斷,將啟動類型(冷/熱)壓棧,做相應(yīng)的硬件初始化后跳轉(zhuǎn)到romStart()。在romStart()中,系統(tǒng)加載ROM中的映像到RAM中去,如果ROM中的VxWorks映像是壓縮版本,則系統(tǒng)把ROM中的程序段與數(shù)據(jù)段挎貝并解壓到RAM中,定位在RAM_HIGH_ADRS,然后跳轉(zhuǎn)到該地址在RAM中執(zhí)行ROM剩余的程序。由于整個軟件可以分為ROM啟動軟件和正式運行兩個部分。ROM啟動軟件是壓縮的ROM程序形式(vxWorksromCompress),正式運行軟件則是以二進制文件形式存在。圖3中的RAM_LOW_ADRS是VxWorks默認的BIN文件執(zhí)行入口,因此在生成BIN文件的正式運行軟件中的RAM_LOW_ADRS必須與BOOT程序中存放下載下來的正式軟件的地址一致。
為了避免存放下載下來的正式軟件的內(nèi)存與存放ROM軟件的內(nèi)存沖突,本發(fā)明將ROM中的啟動軟件與正式軟件的內(nèi)存分配修改為圖4所示。在圖4中,ROM啟動軟件的BOOTStartAddr是存放下載下來的正式軟件的內(nèi)存地址,它在物理上等于正式軟件中的RAM_LOW_ADRS。同樣,ROM啟動軟件中的RAM_LOW_ADRS等于正式軟件中的RAM_HIGH_ADRS。這樣,在ROM啟動軟件把正式軟件下載到BOOTStartAddr后,跳轉(zhuǎn)到該地址執(zhí)行正式軟件時即重新定義RAM_LOW_ADRS和RAM_HIGH_ADRS,相當于直接跳轉(zhuǎn)到RAM_LOW_ADRS,從而可以正常運行正式軟件。ROM中的程序和正式軟件在RAM中的加載如圖5所示。
下面結(jié)合實施例詳細介紹整個實例流程。
節(jié)點B單板軟件下載的流程圖如圖6所示,消息交互圖如圖1所示。節(jié)點B單板軟件升級流程的消息交互圖如圖2所示,后臺向BMC下載升級軟件的流程圖如圖8所示,其中BMC對后臺的激活命令處理如圖7所示。
首先用戶在后臺操作維護工具中啟用軟件版本管理功能,后臺通過向BMC發(fā)送軟件下載請求消息,把軟件下載所需的信息軟件類型,軟件版本號和FTP信息都發(fā)送到軟件版本管理進程。軟件版本管理進程接收到軟件下載請求消息后,則通過接收到的FTP參數(shù),向FTP SERVER建立連接,進行軟件下載,下載成功后,向后臺發(fā)送軟件下載成功消息,如果下載失敗,則發(fā)送軟件下載失敗消息。
BMC的軟件版本管理進程通過讀下載下來的BBP軟件的文件頭,讀出軟件類型及版本號,然后查詢“軟件版本管理表”如果數(shù)據(jù)庫中不存在該軟件的版本信息,則將下載的軟件版本做為當前版本,更新數(shù)據(jù)庫;如果數(shù)據(jù)庫存在該軟件的版本信息,則比較數(shù)據(jù)庫的版本與下載軟件的版本,如果相同則存為當前版本并覆蓋原來的當前版本軟件,并更新數(shù)據(jù)庫中的版本下載時間;如果版本不相同,則將下載下來的版本做為備份版本,如果已經(jīng)存在務(wù)份版本則將其刪除,并修改數(shù)據(jù)庫。最后,向BMC返回下載成功消息。
用戶通過后臺軟件激活下載的BBP軟件,軟件配置進程分解所接收的請求消息的消息體;并根據(jù)消息體內(nèi)容,查詢軟件配置表;判斷軟件配置表中是否存在相應(yīng)記錄;如果記錄存在,則修改其軟件版本號和配置時間;如果記錄不存在,則插入新紀錄;查詢軟件版本管理表;判斷軟件版本管理表中存在的軟件版本數(shù);如果軟件版本管理表存在的軟件版本數(shù)為2,則修改當前版本為備份版本;修改要激活的版本為當前版本;向所有運行該軟件的單板發(fā)送復(fù)位消息;向后臺發(fā)送軟件激活成功消息。
BBP板在重新啟動后,BOOT被啟動,將在ROM中的程序下載到RAM的高端地址后運行。該程序首先與BMC建立TCP/IP鏈路,成功后向BMC發(fā)出軟件下載請求。BMC收到請求后根據(jù)PID判斷出申請者是BBP板,查詢數(shù)據(jù)庫得到BBP板軟件所在的位置,大小及名稱,并將這些信息與FTP服務(wù)器的IP,用戶名與密碼一起發(fā)送到BBP板(如果BMC上沒BBP板的軟件,則在軟件大小中填零)。BBP板收到BMC的返回消息后,利用這些信息首先判斷要下載的軟件大小,如果大小為零,則認為下載失敗,BBP板系統(tǒng)重啟;否則在內(nèi)存中開辟出一段相關(guān)大小的臨時內(nèi)存。并與BMC建立FTP鏈路,開始下載軟件到臨時內(nèi)存。下載完畢后,軟件下載模塊將下載下來的軟件解壓到指定的低端地址(BOOTStartAddr)。解壓完成后進行CRC(Cyclic Redundancy Check,循環(huán)冗余校驗)校驗,確認無誤后關(guān)閉輔助時鐘中斷,Reset串口,將MSR(Machine Status Register)寄存器置0,最后跳轉(zhuǎn)到RAM_LOW_ADRS,軟件正式運行。
根據(jù)以上敘述,可以把整個單板軟件下載流程描述如下1、單板上電,ROM中的程序啟動,首先初始化寄存器,然后將ROM中的代碼段與數(shù)據(jù)段挎貝并解壓到RAM中去,并定位到RAM_HIGH_ADRS開始在RAM中執(zhí)行ROM中的剩余代碼;2、系統(tǒng)完成硬件設(shè)備初始化、核心庫初始化及內(nèi)核初始化后,安裝設(shè)備驅(qū)動,連接時鐘中斷,最后啟動下載進程;3、下載進程向BMC發(fā)出軟件下載請求,BMC收到請求消息后,根據(jù)消息來源判斷要下載的軟件類型,并查詢數(shù)據(jù)庫,獲得要下載的軟件的版本、文件名、存放路徑,將這些信息與相關(guān)FTP信息發(fā)送給單板;4、單板接收到BMC的回應(yīng)消息后,根據(jù)BMC返回的信息與BMC建立FTP鏈路,將軟件下載到一臨時內(nèi)存,將其解壓到BOOTStartAddr并進行CRC校驗;5、CRC校驗成功后,將程序指針跳轉(zhuǎn)到BOOTStartAddr開始運行正式軟件。
單板軟件下載的流程圖如圖6所示。
軟件升級的流程如下所述1、后臺軟件把要下載的軟件挎貝到指定目錄,并讀出該文件的軟件類型及版本號;2、向BMC發(fā)出軟件下載消息,BMC收到消息后與后臺建立FTP鏈路把文件下載下來;3、BMC查詢數(shù)據(jù)庫進行版本比較,如果數(shù)據(jù)庫中不存在該文件軟件類型的版本信息則插入一條新的版本信息,如果存在,則比較版本,如果版本相同就改變數(shù)據(jù)庫中的下載時間,如果版本不同則把當前版本存為最新版本并刪除最老的版本信息;4、BMC向后臺返回軟件下載成功消息。后臺接收到成功下載消息后,用戶激活下載版本,后臺向BMC發(fā)出激活消息;5、BMC收到激活消息后,查詢數(shù)據(jù)庫,根據(jù)軟件類型更新數(shù)據(jù)中的相關(guān)版本信息,把要激活的版本做為當前版本;6、BMC向所有符合軟件類型的單板發(fā)出復(fù)位消息;7、單板收到復(fù)位消息后,重新啟動。
其中,后臺向BMC下載軟件的流程圖如圖8所示。BMC處理后臺激活命令的流程如圖7所示。
權(quán)利要求
1.一種節(jié)點B單板軟件下載及升級方法,其特征在于,包括以下步驟節(jié)點B單板軟件下載流程(1)外圍單板上電,ROM中的程序啟動,對硬件初始化,然后執(zhí)行ROM里的軟件下載程序;(2)下載進程向主控單板發(fā)出軟件下載請求,主控單板收到請求消息后,根據(jù)消息來源判斷需要下載的軟件類型,并查詢數(shù)據(jù)庫,獲得要下載的軟件的具體信息發(fā)送給單板;(3)單板接收到主控單板的回應(yīng)消息后,根據(jù)主控單板返回的信息與主控單板建立相關(guān)的文件傳輸鏈路,將軟件下載到臨時內(nèi)存,并對下載下來的軟件進行校驗;(4)校驗成功后,將程序指針跳轉(zhuǎn)到存放下載軟件的內(nèi)存地址開始運行正式軟件;節(jié)點B單板軟件升級流程(1)后臺系統(tǒng)把要下載的軟件拷貝到指定目錄,并讀出該文件的軟件類型及版本號;(2)向主控單板發(fā)出軟件下載消息,主控單板收到消息后與后臺建立文件傳輸鏈路把文件下載下來;(3)主控單板查詢數(shù)據(jù)庫并進行版本比較,如果數(shù)據(jù)庫中不存在該文件軟件類型的版本信息,則插入一條新的版本信息;如果存在則比較版本,如果版本相同就改變數(shù)據(jù)庫中的下載時間,如果版本不同則把當前版本存為最新版本并刪除原版本信息;(4)主控單板向后臺返回軟件下載成功消息;后臺接收到成功下載消息后,由用戶激活下載版本,然后后臺向主控單板發(fā)出激活消息;(5)主控單板收到激活消息后,查詢數(shù)據(jù)庫,根據(jù)軟件類型更新數(shù)據(jù)中的相關(guān)版本信息,把要激活的版本做為當前版本;(6)主控單板向所有符合軟件類型的單板發(fā)出復(fù)位消息;(7)單板收到復(fù)位消息后,重新啟動。
2.根據(jù)權(quán)利要求1所述的節(jié)點B單板軟件下載及升級方法,其特征在于,單板所用的操作系統(tǒng)是VxWorks系統(tǒng)、單板與主控單板采用TCP/IP協(xié)議、文件傳輸采用文件傳送協(xié)議。
3.根據(jù)權(quán)利要求1所述的節(jié)點B單板軟件下載及升級方法,其特征在于,軟件下載所需的信息包括軟件類型、軟件版本號和文件傳送協(xié)議信息。
全文摘要
本發(fā)明提供了一種節(jié)點B單板軟件下載及升級方法,其中節(jié)點B單板軟件下載流程包括1.系統(tǒng)初始化,執(zhí)行ROM里的軟件下載程序;2.下載進程向BMC,發(fā)出軟件下載請求,BMC獲得要下載的軟件的具體信息發(fā)送給單板;3.單板接收到BMC的回應(yīng)消息后,將軟件下載到一臨時內(nèi)存,并對下載下來的軟件進行校驗;4.校驗成功后,將程序指針跳轉(zhuǎn)到存放下載軟件的內(nèi)存地址開始運行正式軟件。本發(fā)明能夠克服現(xiàn)有技術(shù)中存在的系統(tǒng)硬件成本高、軟件版本管理復(fù)雜的缺點。采用本發(fā)明所述管理辦法,外圍單板的升級處理流程簡單,且在單板上無需永久存貯設(shè)備,節(jié)約了成本,可以很方便簡單的實現(xiàn)NODE B軟件遠程下載及升級。
文檔編號H04L12/24GK1543107SQ200310103988
公開日2004年11月3日 申請日期2003年11月4日 優(yōu)先權(quán)日2003年11月4日
發(fā)明者陳勇, 陳鵬, 勇 陳 申請人:中興通訊股份有限公司