国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      交換機日志記錄模塊的制作方法

      文檔序號:12375679閱讀:565來源:國知局
      交換機日志記錄模塊的制作方法與工藝

      本發(fā)明是關(guān)于光通信領(lǐng)域,實時記錄交換機日志信息和網(wǎng)絡(luò)管理的交換機日志記錄模塊。



      背景技術(shù):

      日志系統(tǒng)是以太網(wǎng)交換機中不可或缺的一部分,它是系統(tǒng)軟件模塊的信息樞紐。日志系統(tǒng)為網(wǎng)絡(luò)管理員和開發(fā)人員監(jiān)控網(wǎng)絡(luò)運行情況和診斷網(wǎng)絡(luò)故障提供了強有力的支持。日志系統(tǒng)管理大多數(shù)的信息輸出,并且能夠進行細致的分類,從而能夠有效地進行信息篩選。在現(xiàn)有的交換機技術(shù)中,通常采用SYSLOG服務(wù)器的方式對日志文件進行記錄,SYSLOG是一種工業(yè)標準的協(xié)議,可用來記錄設(shè)備的日志。在UNIX系統(tǒng),路由器、交換機等網(wǎng)絡(luò)設(shè)備中,系統(tǒng)日志(System Log)記錄系統(tǒng)中任何時間發(fā)生的大小事件。管理者可以通過查看系統(tǒng)記錄,隨時掌握系統(tǒng)狀況。UNIX的系統(tǒng)日志是通過SYSLOGD這個進程記錄系統(tǒng)有關(guān)事件記錄,也可以記錄應(yīng)用程序運作事件。通過適當?shù)呐渲茫€可以實現(xiàn)運行SYSLOG協(xié)議的機器間通信,通過分析這些網(wǎng)絡(luò)行為日志,追蹤掌握與設(shè)備和網(wǎng)絡(luò)有關(guān)的狀況。一般情況下用戶可將日志分為兩個部分:短期的在線存儲和長期的離線存儲。將舊日志信息存儲在磁帶中,既能節(jié)約離線存儲的成本,還能長久保存以備未來分析。這樣需要在交換機中配置大容量存儲器來記錄日志信息,提高交換機的成本,而且有部分交換機內(nèi)并沒有配置存儲器而造成日志信息丟失,無法實時監(jiān)控交換機的運行狀態(tài)和安全事件。對于可網(wǎng)管交換機而言,目前通常采用3種管理方式:網(wǎng)絡(luò)瀏覽器管理、網(wǎng)絡(luò)管理軟件管理、UART串口管理。

      1.網(wǎng)絡(luò)瀏覽器管理:可網(wǎng)管交換機可通過web管理,但必須給交換機指定一個IP地址。在默認狀態(tài)下,交換機沒有IP地址,必須通過串口或其他方式指定一個IP地址之后,才能啟用這種管理方式。使用網(wǎng)絡(luò)瀏覽器管理交換機時,交換機相當于一臺Web服務(wù)器,只是網(wǎng)頁并不儲存在硬盤里面,而是在交換機的NVRAM里面,通過程序可以把NVRAM里面的Web程序升級。當管理員在瀏覽器中輸入交換機的IP地址時,交換機就像一臺服務(wù)器一樣把網(wǎng)頁傳遞給電腦,此時給你的感覺就像在訪問一個網(wǎng)站一樣。但是這種方式占用交換機的帶寬,是帶內(nèi)管理方式。

      2.軟件管理:可網(wǎng)管交換機均遵循簡單網(wǎng)絡(luò)管理協(xié)議SNMP協(xié)議,SNMP協(xié)議是一整套的符合國際標準的網(wǎng)絡(luò)設(shè)備管理規(guī)范。凡是遵循SNMP協(xié)議的設(shè)備,均可以通過網(wǎng)管軟件來管理。你只需要在一臺網(wǎng)管工作站上安裝一套SNMP網(wǎng)絡(luò)管理軟件,通過局域網(wǎng)就可以很方便地管理網(wǎng)絡(luò)上的交換機、路由器、服務(wù)器等,其也是帶內(nèi)管理方式。

      3.UART串口管理:可網(wǎng)管交換機附帶了一條串口電纜,供交換機管理使用。先把串口電纜的一端插在交換機的串口上,另一端插在普通PC機的串口上。然后接通交換機和電腦電源。在windows系統(tǒng)的PC機里都提供了“超級終端”程序。打開“超級終端”,在設(shè)定好連接參數(shù)后,就可以通過串口電纜與交換機交互,這種方式并不占用交換機的帶寬。是一種帶外管理方式。在這種管理方式下,交換機提供了一個菜單驅(qū)動的控制臺界面或命令行界面。你可以使用“Tab”鍵或箭頭鍵在菜單和子菜單里移動,按回車鍵執(zhí)行相應(yīng)的命令,或者使用專用的交換機管理命令集管理交換機。不同品牌的交換機命令集是不同的,甚至同一品牌的交換機,其命令也不同。使用菜單命令在操作上更加方便一些。采用網(wǎng)絡(luò)瀏覽器與網(wǎng)絡(luò)管理軟件管理交換機需要管理數(shù)據(jù)是通過公共使用的局域網(wǎng)傳遞的,可以實現(xiàn)遠程管理,但安全性不強。然而在采用UART串口管理方式時,數(shù)據(jù)只在交換機和管理用機之間傳遞,因此安全性很強。但是需要相關(guān)的人員到現(xiàn)場用電腦連接交換機來查看,從而增加導致人員費的增加和可維護性降低,并且由于串口電纜長度的限制,不能實現(xiàn)遠程管理。



      技術(shù)實現(xiàn)要素:

      本發(fā)明的目的是針對上述現(xiàn)有技術(shù)存在的不足之處,提供一種不占用交換機帶寬,能夠降低交換機配置成本,安全性強,更方便快捷,可實時存儲由交換機串口輸出的日志信息和可遠程采用UART串口對交換機進行管理的交換機日志記錄模塊。

      本發(fā)明的上述目的可以通過以下技術(shù)方案予以實現(xiàn):. 一種交換機日志記錄模塊,包括搭載MQX操作系統(tǒng)對UART串口、網(wǎng)口、兩線式串行總線I2C BUS進行控制與實時交互,采用cotex M4處理器系列的單片機作為主控制器的微控制單元MCU,其特征在于:交換機主從設(shè)備輸出的日志信息通過UART A與UART B這兩個輸入輸出串口進入到MCU,MCU接收到信息后通過安全數(shù)字記憶卡總線SD BUS將數(shù)據(jù)寫入到嵌入式多媒體存儲器eMMC中保存;在串口處理進程中日志記錄模塊設(shè)有每隔一定時間檢查串口數(shù)據(jù)是否發(fā)送完成的串口數(shù)據(jù)超時檢測子模塊,以及設(shè)置有IP地址命令、子網(wǎng)掩碼地址命令、串口的速率設(shè)置命令、遠程登錄協(xié)議telnet應(yīng)用程序的用戶名與登錄密碼命令、文件傳輸協(xié)議ftp應(yīng)用程序的用戶名與登錄密碼命令、判斷網(wǎng)絡(luò)故障的ping服務(wù)命令、遠程復位模塊命令、恢復出廠設(shè)置命令、遠程模塊升級命令和遠程交換機控制命令的命令傳輸子模塊,當交換機通過上述兩個串口發(fā)送數(shù)據(jù)到日志記錄模塊后,日志記錄子模塊接收到數(shù)據(jù)進入到日志記錄進程中,由主進程子模塊生成日志記錄進程、telnet服務(wù)器進程子模塊、FTP進程子模塊、I2C接收進程子模塊和I2C發(fā)送進程子模塊;遠端PC主機通過以連接telnet服務(wù)器進程子模塊發(fā)出遠程交換機管理命令后,在telnet服務(wù)器進程子模塊中接收到相應(yīng)的命令后生成遠程交換機管理進程子模塊;在主進程子模塊中安裝提供標準接口并管理閃存的嵌入式多媒體存儲器eMMC的設(shè)備驅(qū)動以及分區(qū)管理驅(qū)動,進而建立多媒體碼流格式MFS文件系統(tǒng),當MFS碼流文件系統(tǒng)初始化完成后檢查重要配置語句和記錄串口UART A與串口UART B的配置參數(shù)、FTP與telnet的用戶名與密碼信息的system.ini文件系統(tǒng)是否存在,如果不存在就新建system.ini文件,如果存在就跳過system.ini文件的初始化,初始化模塊利用存儲的IP地址參數(shù)的網(wǎng)絡(luò)配置、與外部信號接口的物理層以太網(wǎng)PHY芯片建立以太網(wǎng)通信,初始化FTP服務(wù)器進程訪問模塊中記錄的日志文件和system.ini文件與telnet服務(wù)器遠程控制模塊進程,初始化建立日志文件夾與文件,分別保存交換機主設(shè)備串口數(shù)據(jù)和從設(shè)備串口數(shù)據(jù);然后對串口日志記錄進程進行初始化,模塊上的主串口UART A與從串口UART B實時接收交換機的串口輸出的日志信息并記錄到模塊的存儲器eMMC中保存,當上面所有工作都完成后主進程子模塊主進程進入阻塞狀態(tài)。本發(fā)明相比于現(xiàn)有技術(shù)具有如下有益效果。

      不占用交換機帶寬強。本發(fā)明采用將交換機主從設(shè)備輸出的日志信息通過UART A與UART B這兩個輸入輸出串口進入到MCU,MCU接收到信息后通過SD BUS將數(shù)據(jù)寫入到eMMC存儲器中保存,可以將交換機串口輸出的日志信息記錄在模塊的存儲器中保存,不占用交換機帶寬。在遠端PC主機通過FTP服務(wù)器登錄到模塊,下載存儲器中記錄的日志信息便于查看與分析,可以通過網(wǎng)口轉(zhuǎn)串口的方式對網(wǎng)管交換機進行遠程串口管理與配置交換機。

      能夠降低交換機配置成本,安全性。本發(fā)明采用cotex M4系列的高性能單片機作為主控制器,搭載其開發(fā)的MQX操作系統(tǒng)對ftp、telnet、串口、網(wǎng)絡(luò)傳輸、文件系統(tǒng)等進程進行實時交互與管理工作,采用大容量eMMC存儲器對交換機的系統(tǒng)日志進行存儲,可實時存儲交換機串口輸出的日志信息。通過交換機串口輸出的日志信息進入到模塊中實時存儲,可彌補在交換機中配置大容量存儲器而造成的成本增加,也可彌補交換機中無存儲器而造成的日志信息丟失的情況。

      更方便快捷,可實時存儲由交換機串口輸出的日志信息。本發(fā)明采用的遠程UART串口對交換機管理,交換機的故障定位更方便,遠端PC主機通過ftp登錄到模塊即可將存儲的數(shù)據(jù)進行下載,可以實現(xiàn)檢測、排除交換機故障等功能。當交換機與模塊的網(wǎng)絡(luò)接通后,串口發(fā)送數(shù)據(jù)到模塊,模塊會自動接收發(fā)來的數(shù)據(jù)并將其實時寫入到eMMC存儲器中保存??杉皶r排除交換機故障,并且給管理管理人員和設(shè)備維護人員帶來極大的方面,不用到現(xiàn)場進行維護和故障定位通過遠程即可查找、排除故障。

      可遠程采用UART串口對交換機進行管理。本發(fā)明采用網(wǎng)口轉(zhuǎn)串口的方式可遠程采用UART串口對交換機進行管理,能夠彌補網(wǎng)管交換機中對串口管理方式中的UART串口電纜長度的限制,通過遠端PC主機登錄到模塊建立網(wǎng)口轉(zhuǎn)串口服務(wù)器建立通信連接,從而可實時接收交換機發(fā)出的信息和對交換機的管理,避免了不能實現(xiàn)遠程管理的不足。遠端PC機通過登錄模塊端口號為23的telnet服務(wù)器來設(shè)置模塊的IP地址、子網(wǎng)掩碼地址、串口的速率、telnet的用戶名與登錄密碼、ftp的用戶名與登錄密碼、ping服務(wù)、遠程復位模塊、恢復出廠設(shè)置、遠程模塊升級等功能。遠端PC主機可通過登錄模塊端口號為24的telnet服務(wù)器實現(xiàn)網(wǎng)口轉(zhuǎn)串口功能,可以實現(xiàn)遠程對交換機進行管理與控制。

      附圖說明

      圖1為本發(fā)明實時記錄交換機日志記錄模塊硬件的工作流程圖。

      圖2為本發(fā)明日志記錄模塊總體程序的工作流程圖。

      圖3為本發(fā)明主進程子模塊主進程的工作流程圖。

      圖4為本發(fā)明日志記錄模塊日志記錄進程的系統(tǒng)框圖。

      圖5為本發(fā)明日志記錄模塊日志記錄進程的詳細工作流程圖。

      圖6為本發(fā)明主進程子模塊FTP服務(wù)器進程的工作流程圖。

      圖7為本發(fā)明主進程子模塊Telnet服務(wù)器進程的工作流程圖。

      圖8為本發(fā)明主進程子模塊I2C發(fā)送、接收進程的工作流程圖。

      圖9為本發(fā)明主進程子模塊Telnet服務(wù)器進程子進程模塊的遠程交換機管理進程的工作流程圖。

      圖10為本發(fā)明主進程子模塊Telnet服務(wù)器進程遠程升級的結(jié)構(gòu)圖。

      圖11為本發(fā)明主進程子模塊Telnet服務(wù)器進程遠程升級校驗的工作流程圖。

      圖12為本發(fā)明主進程子模塊Telnet服務(wù)器進程遠程升級寫入校驗的工作流程圖。

      具體實施方式

      在圖1中,提出的一種能夠?qū)崟r記錄交換機日志的模塊,其采用標準的SFP電口封裝結(jié)構(gòu),網(wǎng)口一側(cè)通過金手指與交換機的任意以太網(wǎng)接口相連接,RJ45一側(cè)定義為UART串口通信方式,其與交換機的串口輸出相連接。實時記錄交換機日志模塊的內(nèi)部硬件,具有如下技術(shù)特征:日志記錄模塊可工作在三種模式下:1.日志記錄模式;2.模塊控制模式;3. 遠程交換機管理模式。日志記錄模式:當交換機通過串口發(fā)送數(shù)據(jù)到日志記錄模塊后,日志記錄模塊接收到數(shù)據(jù)進入到日志記錄進程中。在串口處理進程中設(shè)置串口數(shù)據(jù)超時檢測功能,每隔一定時間檢查串口數(shù)據(jù)是否發(fā)送完成,如果所定時的時間完成,則將數(shù)據(jù)寫入到存儲器中予以保存。在遠端可通過文件傳輸協(xié)議FTP登錄到模塊中,進入到多媒體碼流格式MFS文件系統(tǒng)的root根目錄下,下載文件到遠端PC主機進行查看。日志記錄模塊控制模式:在遠端通過遠程登錄協(xié)議telnet中的命令登錄到日志記錄模塊中,日志記錄模塊中有設(shè)置模塊的IP地址命令、子網(wǎng)掩碼地址命令、串口的速率設(shè)置命令、telnet的用戶名與登錄密碼命令、ftp的用戶名與登錄密碼命令、判斷網(wǎng)絡(luò)故障的ping服務(wù)命令、遠程復位模塊命令、恢復出廠設(shè)置命令、遠程模塊升級命令、遠程交換機控制命令等。利用日志記錄模塊控制模式可隨時檢測日志記錄模塊的運行狀態(tài),并且可隨時對日志記錄模塊進行控制。遠程交換機管理模式:在本模式下,串口輸出的數(shù)據(jù)將不會進入到日志記錄模塊中保存,而是將遠程PC主機發(fā)送的信息通過網(wǎng)絡(luò)發(fā)送到實際串口中來控制交換機,交換機發(fā)送的信息也可以回傳到PC主機上顯示以達到對交換機管理的目的。其中的微控制單元(Microcontroller Unit;MCU) ,又稱單片微型計算機(Single Chip Microcomputer )或者單片機,是把中央處理器(Central Process Unit;CPU)的頻率與規(guī)格做適當縮減,并將內(nèi)存(memory)、計數(shù)器(Timer)、USB、A/D轉(zhuǎn)換、UART、PLCDMA等周邊接口,甚至LCD驅(qū)動電路都整合在單一芯片上,形成芯片級的計算機,為不同的應(yīng)用場合做不同組合控制。微控制單元MCU部分采用freescalecotex M4系列的高性能單片機作為主控制器,搭載其開發(fā)的MQX操作系統(tǒng)對UART串口、網(wǎng)口、兩線式串行總線I2C BUS進行控制與實時交互,是整個方案的核心。UART AUART B是串口的輸入輸出部分,交換機主從設(shè)備輸出的日志信息通過這兩個串口進入到MCU,MCU接收到信息后通過安全數(shù)字記憶卡總線SD BUS將數(shù)據(jù)寫入到嵌入式多媒體存儲器eMMC中保存。freescalecotex M4系列的單片機只支持RMII接口,100M PHYMCU到網(wǎng)口的橋梁,其支持RMII接口。普通交換機上通常采用SGMII接口,通過10/100/1000M PHYRMII接口轉(zhuǎn)換為SGMII接口再與交換機相連接。遠端可通過網(wǎng)口登錄模塊的FTP,然后下載eMMC存儲器中記錄的日志信息。日志記錄模塊內(nèi)部閃存flash存儲模塊的產(chǎn)品名稱、產(chǎn)品序列號、IP地址、MASK地址、GETWAY地址、MAC地址等信息,交換機可通過I2C BUS訪問0xA0地址來實時讀取這些信息。10/100/1000M PHYI2C從機地址為0xAC,交換機可通過I2C BUS配置它,并建立物理層通信。

      在圖2日志記錄模塊的總體程序流程中,由主進程子模塊生成日志記錄進程、FTP進程、telnet服務(wù)器進程、I2C接收進程、I2C發(fā)送進程,在telnet服務(wù)器進程中接收到相應(yīng)的命令后生成遠程交換機管理進程。

      在圖3所示的主進程子模塊主進程中,主進程子模塊上電進行系統(tǒng)和硬件初始化工作。

      第一步主進程子模塊發(fā)送在位信號給交換機,主進程子模塊將在位信號引腳設(shè)置為低電平5S后設(shè)置為高電平,交換機實時檢查在位信息是否變低,當交換機收到在位信號為低電平后啟動其I2C進程每20S訪問模塊從機地址為0xa0中的信息,以識別主進程子模塊的型號。

      第二步主進程子模塊安裝eMMC存儲器的設(shè)備驅(qū)動以及分區(qū)管理驅(qū)動,進而建立MFS文件系統(tǒng)。當MFS文件系統(tǒng)初始化完成后檢查system.ini文件系統(tǒng)是否存在,如果不存在就新建system.ini文件,如果存在就跳過system.ini文件的初始化。system.ini文件系統(tǒng)中記錄串口A與串口B的配置參數(shù),FTPtelnet的用戶名與密碼等信息。

      第三步主進程子模塊初始化I2C的發(fā)送與接收進程,當此進程初始化成功后交換機就可實時訪問模塊,以識別模塊型號,讀取主進程子模塊中存儲的IP地址、MAC地址、Mask地址等信息,為交換機與主進程子模塊的以太網(wǎng)連接做準備。

      第四步利用主進程子模塊中存儲的IP地址等參數(shù)初始化模塊的網(wǎng)絡(luò)配置、外部信號接口的物理層以太網(wǎng)PHY芯片寄存器配置等,建立以太網(wǎng)通信。

      第五步主進程子模塊初始化FTP服務(wù)器與telnet服務(wù)器進程,交換機可通過FTP服務(wù)器進程訪問模塊中記錄的日志文件和system.ini文件,這是主進程子模塊實現(xiàn)遠程查看和記錄的主要功能之一。telnet服務(wù)器進程主要作用是遠程控制模塊,以及查看模塊的工作狀態(tài)與配置模塊等功能。

      第六步主進程子模塊初始化建立日志文件夾與文件,在ROOT跟目錄下安排兩個文件夾分別是文件夾A、文件夾B,分別保存主設(shè)備串口數(shù)據(jù)和從設(shè)備串口數(shù)據(jù)。在A、B文件夾下還分別安排了兩個子文件夾,其中文件夾A中的兩個子文件夾名為A_1、A_2,文件夾B中的兩個子文件名為B_1、B_2。每個子文件夾中的數(shù)據(jù)容量為1G。在每個子文件中安排存儲數(shù)據(jù)的文件最大容量為20M,最多可生成10000個文件,每一個文件的標號從0~9999。當子文件夾A_1中數(shù)據(jù)容量達到1G后,數(shù)據(jù)轉(zhuǎn)入到子文件夾A_2中保存。當A_2文件夾中數(shù)據(jù)容量也達到1G后,可將文件夾A_1中所記錄的數(shù)據(jù)全部清除,然后在其文件夾中建立新的文件,依次循環(huán)。B文件夾的文件操作與A文件的文件操作方式相同。當?shù)谝粋€文件中的數(shù)據(jù)達到20M時,程序自動生成一個新文件,接著上次沒有寫完的數(shù)據(jù)繼續(xù)寫入到新的文件中保存,以此類推。需要說明的是在每次模塊重新上電或復位后,需檢查文件夾是否存在,如果存在就不重復建立,而對于日志文件,每次模塊重新上電或復位后應(yīng)新建立一個文件,這樣做的目的是方便查看交換機異常掉電后所記錄的數(shù)據(jù)。

      第七步對串口進程(日志記錄進程)進行初始化,主進程子模塊上的主從串口實時接收交換機的串口輸出的日志信息并記錄到模塊的eMMC存儲器中,以方便交換機通過FTP來查看。當上面所有工作都完成后,主進程進入阻塞狀態(tài)。

      在圖5所示的日志記錄子模塊的日志記錄進程的串口進程流程中,日志記錄子模塊中的串口UART A、串口UART B接在交換機的主從串口輸出端子上,當交換機發(fā)送串口數(shù)據(jù)后,日志記錄子模塊進入到串口進程中。在串口進程中,當收到數(shù)據(jù)后,將數(shù)據(jù)實時寫入到存儲器中保存。模塊每次通過定時器來判斷日志信息是否有時間間隙,當收到前一幀數(shù)據(jù)后,30秒之內(nèi)沒有收到數(shù)據(jù)時,模塊將已接收到的數(shù)據(jù)寫入存儲器保存。如果模塊始終沒有收到數(shù)據(jù)則串口進程進入掛起狀態(tài),直到有數(shù)據(jù)到來時才喚醒。

      第一步日志記錄子模塊首先應(yīng)讀取system.ini文件中關(guān)于串口的設(shè)置參數(shù)并配置模塊上的兩個串口,包括波特率、校驗位數(shù)、數(shù)據(jù)位數(shù)、停止位數(shù)等數(shù)據(jù)。

      第二步日志記錄子模塊讀取system.ini文件中記錄的文件名編號和要寫入的文件夾編號,日志記錄子模塊出廠設(shè)置默認串口A的文件編號為1,文件夾編號為A_1,串口B的文件編號為1,文件夾編號為A_2。第一步與第二步是串口進程的初始化階段。

      第三步日志記錄子模塊實時檢測串口A與串口B是否接收到數(shù)據(jù),如果接收到數(shù)據(jù)后,日志記錄子模塊將串口A與串口B中讀取到數(shù)據(jù)分別保存在定義大小為4K的緩存區(qū)bufferAbufferB中。

      第四步日志記錄子模塊分別檢查緩存區(qū)bufferAbufferB的數(shù)據(jù)容量是否已達到4K,如果沒有達到就繼續(xù)從串口中接收數(shù)據(jù)并保存于緩存區(qū)中,如果在30S定時時間到,串口接收到的數(shù)據(jù)仍然沒有達到4K,日志記錄子模塊則將數(shù)據(jù)通過緩存區(qū)寫入到文件中記錄,以保持文件的完整性和實時性,當數(shù)據(jù)量達到4K后進入到第五步。

      第五步日志記錄子模塊判斷串口A中子文件夾A_1的容量是否等于1G,如果子文件夾A_1中的文件總量小于1G,日志記錄子模塊則利用第二步所讀取的system.ini文件中記錄的文件名序號作為當前文件名創(chuàng)建文件并以可讀可寫的方式打開,需要說明的是文件夾中所記錄的每個文件容量為20M,文件夾容量為1G,則最多可以記錄50個文件,并且文件夾的容量不會超過1G。

      第六步日志記錄子模塊獲取當前要寫入文件的大小并判斷文件的大小是否等于20M,如果當前文件容量等于20M,說明當前文件已寫滿,需要新建立一個文件將數(shù)據(jù)寫入到新文件中,并且更新system.ini文件中的文件名序號為新建文件的序號,同時應(yīng)更新A_1的總?cè)萘?。如果當前文件容量大小?/b>0說明是新建立的文件,日志記錄子模塊則將串口接收到的數(shù)據(jù)直接寫入到此文件中,寫入完成后將此文件編號記錄到system.ini文件中同時更新A_1文件夾的總?cè)萘?。如果當前文件長度小于20M,則需要計算當前文件剩余長度與串口接收到的數(shù)據(jù)長度的差值。如果當前文件剩余長度等于串口接收到的數(shù)據(jù)長度,日志記錄子模塊則將串口數(shù)據(jù)直接寫入到文件中,如果小于串口接收到的數(shù)據(jù)長度,則需要分段寫。首先日志記錄子模塊將串口接收到的數(shù)據(jù)長度分為兩部分,其中一部分寫入當前文件,當當前文件達到20M時,另外新建一個文件,日志記錄子模塊將剩余部分的數(shù)據(jù)寫入到新建文件中,并且更新system.ini文件中的文件名序號為新建文件的序號,同時應(yīng)更新A_1的總?cè)萘?。在第五步中,日志記錄子模塊判斷串口A中子文件夾A_1的容量總量如果等于1G,則說明A_1文件夾的容量已滿,需要將轉(zhuǎn)存文件到A_2文件夾中。此時先判斷文件編號是否已到最大數(shù)值10000,如果已是最大值則將文件編號重新設(shè)置為1,并從編號1開始計數(shù)。無論A_2文件夾下是否有數(shù)據(jù)都先刪除,然后創(chuàng)建新的文件。同樣文件編號與文件夾編號A_2應(yīng)記錄到system.ini文件中以便下次對文件和文件夾的訪問。A_2文件夾中的操作方式與A_1的方式相同,只是當A_2文件夾的容量已滿的情況下需要刪除A_1文件夾中的數(shù)據(jù)而已。同樣串口B的操作方式相同,只不過其存放的文件夾為B_1B_2。第六步對串口進程延時50ms已方便操作系統(tǒng)進行進程切換。上述過程完成后程序進入到第三步繼續(xù)檢測串口是否接收到數(shù)據(jù),以此循環(huán)。

      在圖6所示的主進程子模塊的FTP服務(wù)器進程中,主進程子模塊在主進程中生成FTP服務(wù)器進程,FTP可在任何時候由遠端PC主機對模塊進行連接。FTP服務(wù)器進程分為主進程和子進程,主進程主要作用是給PC機提供并發(fā)服務(wù),允許多個遠端PC主機對模塊連接并獲取MFS文件,而子進程的主要作用是對FTP下的命令進行解析。通常PC機關(guān)閉FTP服務(wù)器時,只是通過“quit”命令退出子進程,而主進程不會退出,主進程一直處于運行狀態(tài)已方便下次PC機對模塊的連接。FTP服務(wù)器進程的建立、運行步驟如下:

      第一步主進程子模塊創(chuàng)建套接字,設(shè)置FTP服務(wù)器的端口號為21。

      第二步設(shè)置FTP緩存區(qū)的大小、設(shè)置超時時間。

      第三步綁定套接字。

      第四步對套接字進行監(jiān)聽。

      第五步開始接收連接,一旦連接成功后就獲取eMMC存儲器中存儲的文件,當所有文件都獲取完成后進入到第六步。

      第六步建立子進程,對FTP命令進行解析。此時如果PC機要訪問存儲文件則需要要輸入模塊FTP的用戶名和密碼登錄命令進行解析,用戶名與密碼記錄在system.ini文件中,只要FTP的命令解析正確并且用戶名與密碼與system.ini文件中記錄的相一致則PC機就可以訪問主進程子模塊的中文件。FTP的用戶和密碼在telnet服務(wù)器中通過命令“ftppwd”來修改和設(shè)置。日志信息下載也是通過FTP子命令進行。

      第七步檢測FTP是否在1分鐘內(nèi)沒有進行任何操作,如果有操作,繼續(xù)進行命令解析,如果沒有操作進行退出FTP子進程并釋放子進程的內(nèi)存空間。

      第八步當主進程子模塊的FTP服務(wù)器收到主機發(fā)送的“quit”命令后,FTP子進程退出并釋放子進程的內(nèi)存空間。

      在圖7所示的主進程子模塊的Telnet服務(wù)器進程中,遠端主機可通過網(wǎng)絡(luò)登錄模塊的telnet服務(wù)器,實現(xiàn)對交換機日志記錄模塊的控制。模塊內(nèi)設(shè)置登錄名和密碼,主機登錄時,模塊比對登錄名和密碼。登錄成功后,如果1分鐘不做任何處理,telnet作超時處理來斷開連接。通過telnet功能,主機可控制交換機日志記錄模塊的一些功能,如:設(shè)置模塊的IP地址命令、子網(wǎng)掩碼地址命令、串口的速率設(shè)置命令、telnet的用戶名與登錄密碼命令、ftp的用戶名與登錄密碼命令、ping服務(wù)命令、遠程復位模塊命令、恢復出廠設(shè)置命令、遠程模塊升級命令、遠程交換機控制命令等。主進程子模塊在主進程中生成Telnet服務(wù)器進程,Telnet可在任何時候由PC機對主進程子模塊進行連接。Telnet服務(wù)器進程分為主進程和子進程,主進程主要作用是給PC機提供并發(fā)服務(wù),允許多個PC機對主進程子模塊連接,而子進程的主要作用是對Telnet下的命令進行解析。通常PC機關(guān)閉Telnet服務(wù)器時,通過“exit”命令退出子進程,而主進程不會退出,主進程一直處于運行狀態(tài)已方便下次PC機對模塊的連接。Telnet服務(wù)器進程的建立、運行步驟如下:

      第一步主進程子模塊創(chuàng)建套接字,設(shè)置Telnet服務(wù)器的端口號為23。

      第二步設(shè)置Telnet緩存區(qū)的大小、設(shè)置超時時間。

      第三步綁定套接字。

      第四步對套接字進行監(jiān)聽。

      第五步開始接收連接,一旦連接成功后就獲取eMMC中存儲的文件,這里主要獲取system.ini文件。

      第六步建立Telnet子進程,此子進程主要是對Telnet命令進行解析。此時如果遠端PC主機要訪問存儲文件則需要要輸入主進程子模塊Telnet的用戶名和密碼登錄,用戶名與密碼記錄在system.ini文件中,只要Telnet的命令解析正確并且用戶名與密碼與system.ini文件中記錄的相一致則PC機就可以訪問主進程子模塊的中文件。Telnet的用戶和密碼在telnet服務(wù)器中通過命令“tnetpwd”來修改和設(shè)置。

      第七步檢測Telnet服務(wù)器是否在1分鐘內(nèi)沒有進行任何操作,如果有操作,繼續(xù)進行命令解析,如果沒有操作進行退出FTP子進程并釋放子進程的內(nèi)存空間。

      第八步當模塊的FTP服務(wù)器收到主機發(fā)送的“exit”命令后,Telnet子進程退出并釋放子進程的內(nèi)存空間。在Telnet命令中設(shè)計了10條命令:

      reset”命令:遠程復位模塊。

      terminal”命令:遠程配置模塊上的串口UART A、串口UART B的參數(shù)。命令格式為:

      terminal [baudrate <baudrate>] [databits <databits>] [parity <parity>] [stopbits <stopbits>] [flowcontrol <flowcontrol>]

      ipconfig”命令:遠程設(shè)置、修改IP地址、netmask地址、getway地址。命令格式為:ipconfig [<A.B.C.D>] [netmask<A.B.C.D>] [gateway <A.B.C.D>]

      ping”命令:遠程通過模塊向PC機發(fā)送ICMP包,檢查網(wǎng)絡(luò)聯(lián)通狀態(tài)。命令格式為:ping<A.B.C.D> [size <1..1472>] [delay <1..3600>] [number <0..65535>]

      restore”命令:遠程對模塊恢復出廠設(shè)置,對eMMC存儲器進行格式化,重新建立system.ini文件,并且對串口參數(shù)、FTP、telnet用戶名、密碼,文件目錄編號、文件名編號設(shè)置為初始值。

      ftppwd”命令:修改ftp服務(wù)器的用戶名和密碼,并設(shè)置登錄等級。命令格式為:

      ftppwd<username><password><log grade>

      tnetpwd”命令:修改telnet服務(wù)器的用戶名和密碼,并設(shè)置登錄等級。命令格式為:tnetpwd<username><password><log grade>

      control”命令:遠程交換機管理,實現(xiàn)網(wǎng)絡(luò)轉(zhuǎn)串口功能,用于遠程串口登錄、控制交換機。命令格式為:control<serial port>

      upgrade”命令:遠程模塊應(yīng)用程序升級。

      versions”命令:查看當前軟件的版本號。

      exit”命令:退出telnet子進程。

      在圖8所示主進程子模塊的I2C接收、發(fā)送進程,在接收進程中,主進程子模塊I2C從機收到主機發(fā)送的從機地址0xa0,然后根據(jù)I2C協(xié)議陸續(xù)收到存儲地址與數(shù)據(jù),主進程子模塊每收到一個數(shù)據(jù)后將其存儲在單片機的flash中。Flash存儲下表中的信息,其中IP地址、netmask地址、getway地址與MAC地址為自定義的內(nèi)容,其余內(nèi)容與SFF84720xa0地址定義的內(nèi)容相一致以方便交換機對主進程子模塊的識別。

      在圖9所示主進程子模塊的遠程交換機管理進程中,由遠端PC主機通過以連接telnet服務(wù)器端口號為23的進程子模塊發(fā)出“control”遠端交換機管理命令后生成,其主要實現(xiàn)網(wǎng)絡(luò)轉(zhuǎn)串口的功能。當輸入命令成功后,串口日志記錄進程阻塞,串口輸入的數(shù)據(jù)不進入到日志記錄進程而是將其轉(zhuǎn)換為網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)?/b>PC機中。網(wǎng)絡(luò)轉(zhuǎn)串口的實現(xiàn)仍然采用telnet服務(wù)器,但是此時端口號設(shè)置為24,以避免與控制模塊的telnet服務(wù)器相沖突。遠程交換機管理進程分為主進程和子進程,主進程子模塊主進程主要作用是給PC機提供連接服務(wù),而主進程子模塊子進程的主要作用是實現(xiàn)網(wǎng)絡(luò)轉(zhuǎn)串口的功能。通常遠端PC機關(guān)閉Telnet服務(wù)器時,直接退出子進程,而主進程子模塊主進程不會退出,主進程子模塊主進程一直處于運行狀態(tài)已方便下次PC機對模塊的連接。遠程交換機管理進程的Telnet服務(wù)器進程的建立、運行步驟如下:

      第一步主進程子模塊創(chuàng)建套接字,設(shè)置Telnet服務(wù)器的端口號為24。

      第二步設(shè)置Telnet緩存區(qū)的大小、設(shè)置超時時間。

      第三步綁定套接字。

      第四步對套接字進行監(jiān)聽。

      第五步開始接收連接。

      第六步主進程子模塊建立Telnet子進程,重新通過system.ini文件中保存的串口參數(shù)設(shè)置串口,對應(yīng)的串口號由端口23telnet服務(wù)器輸入命令“control + serial port”以確定打開的串口號。

      第七步主進程子模塊循環(huán)檢查串口、網(wǎng)口是否有數(shù)據(jù)輸入,當接收到數(shù)據(jù)后就將其進行轉(zhuǎn)換。當PC機關(guān)閉遠程交換機管理進程的telnet子進程后,主進程子模塊子進程退出同時釋放內(nèi)存空間。

      第八步,重新啟動日志記錄進程。

      10圖所示的主進程子模塊在整個閃存flash memory區(qū)域劃分中,主進程子模塊安排地址0x00000000-0x000BFFF為遠程升級的bootloader的代碼區(qū)域,這個區(qū)域受到保護,任何情況下都不被修改、擦出。安排0x0000C000-0x00007E7FFF為模塊的應(yīng)用程序區(qū)域,這個區(qū)域就是模塊程序的具體實現(xiàn)部分,可通過遠程升級程序修改。安排0x0007E800-0x00007EFF存儲模塊的版本號信息,可通過主進程子模塊遠程升級程序修改,用telnet服務(wù)器中的“versions”命令查看升級是否成功,當前版本信息等情況。安排0x0007F000-0x0007F7FF為主進程子模塊EEPROM 0xa0地址中的信息,此地址中的存儲的是模塊的類型、IP地址、netmask地址、MAC地址等重要信息,所以此地址中的內(nèi)容受到保護,只能通過I2C或者telnet服務(wù)器中的命令修改。安排0x0007F800-0x0007FFFFbootloader與系統(tǒng)參數(shù)信息,此地址中的數(shù)據(jù)同樣受到保護。在執(zhí)行遠程升級時,只對0x0000C000-0x00007EFFF進行擦出與修改。

      在圖11所示的主進程子模塊遠程升級校驗流程中。由遠端PC主機通過以連接telnet服務(wù)器端口號為23的進程子模塊發(fā)出“upgrade”后運行。首先通過主進程子模塊FTP將編譯好的升級文件“module.srec”存放在MFS文件系統(tǒng)的ROOT跟目錄下,在telnet中輸入命令“upgrade”后,主進程子模塊程序自動打開“module.srec”文件,當文件打開不成功說明MFS文件系統(tǒng)的ROOT根目錄下無“module.srec”文件,程序返回不執(zhí)行。當文件打開成功就開始讀取“module.srec”文件中的數(shù)據(jù),如果讀取的數(shù)據(jù)沒有到文件尾部,主進程子模塊則判斷讀取的512字節(jié)數(shù)據(jù)是否成功,讀取不成功就刪除“module.srec”文件然后返回,讀取成功后主進程子模塊將.srec文件轉(zhuǎn)換為.bin文件并進行數(shù)據(jù)校驗。校驗不成功說明“module.srec”文件中有錯誤不能用于升級,必須刪除“module.srec”文件然后返回。校驗成功后將地址指針加512字節(jié)指向下一個位置,直到“module.srec”文件中的所有數(shù)據(jù)都讀取、校驗、寫入完成后就復位單片機。

      在圖12所示的主進程子模塊的遠程升級程序流程中,主進程子模塊按照圖11的流程執(zhí)行完成后主進程子模塊復位,主進程子模塊程序從閃存flash memory地址為0x00000000地址開始取址,進入到遠程升級bootloader程序運行。首先主進程子模塊初始化MFS文件系統(tǒng),當文件系統(tǒng)初始化完成后打開MFS文件系統(tǒng)中ROOT根目錄下的“module.srec”文件,當文件打開不成功說明MFS文件系統(tǒng)的根ROOT根目錄下無“module.srec”文件,主進程子模塊程序跳轉(zhuǎn)到0x0000C000地址處執(zhí)行應(yīng)用程序。當文件打開成功就開始讀取“module.srec”文件中的數(shù)據(jù),如果讀取的數(shù)據(jù)沒有到文件尾部,主進程子模塊則判斷讀取的512字節(jié)數(shù)據(jù)是否成功,讀取不成功先關(guān)閉“module.srec”文件并將其刪除,然后程序跳轉(zhuǎn)到0x0000C000地址處執(zhí)行應(yīng)用程序。讀取成功后主進程子模塊將.srec文件轉(zhuǎn)換為.bin文件并進行數(shù)據(jù)校驗。校驗不成功說明“module.srec”文件中有錯誤不能用于升級,必須刪除“module.srec”文件然后,主進程子模塊程序跳轉(zhuǎn)到0x0000C000地址處執(zhí)行應(yīng)用程序。校驗成功后主進程子模塊從0x0000C000地址處的應(yīng)用程序按512字節(jié)擦除,主進程子模塊將轉(zhuǎn)換為.bin的數(shù)據(jù)寫入到擦除的區(qū)域中,隨后地址指針加512字節(jié)指向下一個位置,直到“module.srec”文件中的所有數(shù)據(jù)都校驗正確并寫入flash后,關(guān)閉“module.srec”文件并將其刪除以避免主進程子模塊重新上電或復位后又讀取到“module.srec”文件,重復執(zhí)行上面的流程,隨后程序跳轉(zhuǎn)到應(yīng)用程序處開始運行。

      當前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1