本發(fā)明涉及板間通訊技術(shù)領域,尤其涉及一種與無中央處理器單板通訊的方法及通訊設備。
背景技術(shù):
在通訊設備中,一塊主控板與多塊接入單板一起實現(xiàn)通訊業(yè)務功能。接入單板目前普遍使用的是有CPU單板,普通有CPU的接入單板的控制程序獨立運行在單板內(nèi)部,主控板僅需要將控制指令發(fā)送至有CPU單板,就可以相對簡單地實現(xiàn)對單板的控制。
隨著通訊設備業(yè)務發(fā)展的需要,無CPU單板應運而生。無CPU單板的最大特點是:沒有CPU、內(nèi)存、FPGA(Field-Programmable Gate Array,現(xiàn)場可編程邏輯門陣列)芯片等,大大降低了接入單板的硬件成本。但是,由于無CPU單板沒有CPU處理器,主控板無法與無CPU單板進行有效通訊。
技術(shù)實現(xiàn)要素:
本發(fā)明的主要目的在于提供一種與無中央處理器單板通訊的方法及通訊設備,旨在解決現(xiàn)有無CPU單板無法與主控板進行有效通訊的技術(shù)問題。
為實現(xiàn)上述目的,本發(fā)明提供的一種與無中央處理器CPU單板通訊的方法,所述與無CPU單板通訊的方法包括:
當無CPU單板上電后,所述無CPU單板將包含其單板信息的上報報文發(fā)送至主控板;
所述主控板為每個與其連接且處于上電狀態(tài)的無CPU單板分配一個單板代理進程;
所述主控板通過單板代理進程向?qū)臒oCPU單板發(fā)送控制報文,以控制對應的無CPU單板進行讀處理或?qū)懱幚怼?/p>
優(yōu)選地,所述上報報文和控制報文為添加預設虛擬局域網(wǎng)VLAN標識的以太網(wǎng)報文。
優(yōu)選地,所述控制報文包括寫操作報文和讀操作報文,
所述主控板通過單板代理進程向?qū)臒oCPU單板發(fā)送控制報文,以控制對應的所述無CPU單板進行讀處理或?qū)懱幚淼牟襟E包括:
當所述主控板通過單板代理進程對所述無CPU單板進行寫操作時,將包含所述寫操作對應配置值和配置地址的寫操作報文發(fā)送至所述無CPU單板;
所述無CPU單板從接收到的所述寫操作報文中解析出配置值和匹配地址,并將該配置值配置到所述配置地址對應的芯片寄存器中;
當所述主控板的單板代理進程對所述無CPU單板進行讀操作時,將包含所述讀操作對應的芯片寄存器地址的讀操作報文發(fā)送至所述無CPU單板;
所述無CPU單板從接收到的所述讀操作報文中解析出芯片寄存器地址,并將所述芯片寄存器地址對應的目的信息封裝成結(jié)果報文發(fā)送至所述主控板;
所述主控板的單板代理進程接收所述無CPU單板發(fā)送的結(jié)果報文,其中,所述結(jié)果報文為添加預設虛擬局域網(wǎng)VLAN標識的以太網(wǎng)報文。
優(yōu)選地,所述無CPU單板從接收到的所述讀操作報文中解析出芯片寄存器地址,并將所述芯片寄存器地址對應的目的信息封裝成結(jié)果報文發(fā)送至所述主控板的步驟包括:
若當前沒有接收到其它讀操作報文且無正在封裝的結(jié)果報文,則所述無CPU單板接收所述主控板發(fā)送的所述讀操作報文;
所述無CPU單板從接收到的所述讀操作報文中解析出芯片寄存器地址,并將所述芯片寄存器地址對應的目的信息封裝成結(jié)果報文發(fā)送至所述主控板。
優(yōu)選地,所述主控板的單板代理進程接收所述無CPU單板發(fā)送的結(jié)果報文的步驟包括:
所述主控板的單板代理進程判斷所述無CPU單板發(fā)送的結(jié)果報文是否就緒;
當所述無CPU單板發(fā)送的結(jié)果報文就緒時,所述主控板的單板代理進程接收所述無CPU單板發(fā)送的結(jié)果報文。
優(yōu)選地,所述讀操作報文和結(jié)果報文中包含類型字段,
所述主控板的單板代理進程接收所述無CPU單板發(fā)送的結(jié)果報文的步驟 之后還包括:
所述主控板的單板代理進程根據(jù)接收的結(jié)果報文中的類型字段,確定該結(jié)果報文的結(jié)果類型。
為實現(xiàn)上述目的,本發(fā)明還提供一種通訊設備,所述通訊設備包括無CPU單板和主控板,
所述主控板包括:
進程分配模塊,用于為每個與其連接且處于上電狀態(tài)的無CPU單板分配一個單板代理進程;
單板代理進程模塊,用于向單板代理進程對應的無CPU單板發(fā)送控制報文,以控制對應的無CPU單板進行讀處理或?qū)懱幚恚?/p>
所述無CPU單板包括:
報文上報模塊,用于當無CPU單板上電后,將包含該無CPU單板的單板信息的上報報文發(fā)送至主控板;
報文通訊模塊,用于接收所述主控板發(fā)送的控制報文,并根據(jù)接收的控制報文進行讀處理或?qū)懱幚怼?/p>
優(yōu)選地,所述上報報文和控制報文為添加預設虛擬局域網(wǎng)VLAN標識的以太網(wǎng)報文。
優(yōu)選地,所述控制報文包括寫操作報文和讀操作報文,
所述單板代理進程模塊包括第一寫單元、第一讀單元和結(jié)果處理單元,
所述第一寫單元,用于當所述主控板通過單板代理進程對所述無CPU單板進行寫操作時,將包含所述寫操作對應配置值和配置地址的寫操作報文發(fā)送至所述無CPU單板;
所述第一讀單元,用于當所述主控板的單板代理進程對所述無CPU單板進行讀操作時,將包含所述讀操作對應的芯片寄存器地址的讀操作報文發(fā)送至所述無CPU單板;
結(jié)果處理單元,用于接收所述無CPU單板發(fā)送的結(jié)果報文,其中,所述結(jié)果報文為添加預設虛擬局域網(wǎng)VLAN標識的以太網(wǎng)報文
所述報文通訊模塊包括第二寫單元和第二讀單元,
所述第二寫單元,用于從接收到的所述寫操作報文中解析出配置值和匹 配地址,并將該配置值配置到所述配置地址對應的芯片寄存器中;
所述第二讀單元,用于從接收到的所述讀操作報文中解析出芯片寄存器地址,并將所述芯片寄存器地址對應的目的信息封裝成結(jié)果報文發(fā)送至所述主控板。
優(yōu)選地,所述第二讀單元還用于:
在當前沒有接收到其它讀操作報文且無正在封裝的結(jié)果報文時,接收所述主控板發(fā)送的所述讀操作報文;
從接收到的所述讀操作報文中解析出芯片寄存器地址,并將所述芯片寄存器地址對應的目的信息封裝成結(jié)果報文發(fā)送至所述主控板。
優(yōu)選地,所述結(jié)果處理單元還用于:
判斷所述無CPU單板發(fā)送的結(jié)果報文是否就緒;
當所述無CPU單板發(fā)送的結(jié)果報文就緒時,接收所述無CPU單板發(fā)送的結(jié)果報文。
優(yōu)選地,所述讀操作報文和結(jié)果報文中包含類型字段,
所述單板代理進程模塊還包括:
類型處理單元,用于根據(jù)接收的結(jié)果報文中的類型字段,確定該結(jié)果報文的結(jié)果類型。
本發(fā)明通過主控板為每個與其連接且處于上電狀態(tài)的無CPU單板分配一個單板代理進程,然后主控板根據(jù)需求通過單板代理進程向?qū)臒oCPU單板發(fā)送控制報文,以控制對應的無CPU單板進行讀處理或?qū)懱幚?,從而實現(xiàn)無CPU單板與主控板之間的通訊。
附圖說明
圖1為本發(fā)明無CPU單板和主控板內(nèi)部結(jié)構(gòu)和控制關系示意圖;
圖2為本發(fā)明與無中央處理器接入單板通訊的方法第一實施例的流程示意圖;
圖3為多線程同時讀操作互斥訪問的控制示意圖;
圖4為本發(fā)明通訊設備第一實施例的功能模塊示意圖。
本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。
具體實施方式
應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
為了更好地理解本發(fā)明的技術(shù)方案,在此對本發(fā)明無CPU單板和主控板的硬件結(jié)構(gòu)進行簡要介紹,參照圖1和表1,在硬件上,無CPU單板上沒有設置CPU最小系統(tǒng),也沒有設置FPGA芯片,無CPU單板的CPLD(Complex Programmable Logic Device,復雜可編程邏輯器件)芯片與背板(支撐無CPU單板和主控板之間的相互連接、并為所支撐的無CPU單板和主控板提供電源的電路板)的兩路用于板間通訊的以太網(wǎng)鏈路直接連接,無CPU單板的CPLD芯片在出廠時就已經(jīng)燒錄完畢;在軟件上,無CPU單板無需運行軟件程序和FPGA程序,使用CPLD程序與主控板的軟件程序配合實現(xiàn)接入單板的所有功能。主控板上為每個無CPU單板啟用一個單板代理進程,該進程實現(xiàn)有CPU接入單板的大部分功能,對接入單板進行讀寫操作,由單板代理進程和接入單板的CPLD芯片配合完成,具體過程描述如下:
1)主控板上的單板代理進程通過專用以太網(wǎng)報文格式的以太網(wǎng)報文,通知無CPU單板應該讀寫的器件、偏移地址。備用主控板上的單板代理程序,也同樣在運行,只是不進行無CPU單板配置查詢操作,也不進行與無CPU單板的專用以太網(wǎng)報文收發(fā)。機架圖、告警性能等信息是通過主控板的軟件系統(tǒng)同步到備用主控板上。
2)無CPU單板的CPLD芯片解析主控板的單板代理程序發(fā)過來的專用以太網(wǎng)報文,匹配目標MAC地址后,按照專業(yè)以太網(wǎng)報文中預先定義的讀寫操作類型和操作地址,轉(zhuǎn)換成芯片專有接口如I2C進行操作。
3)無CPU單板的CPLD芯片在上電后,主動定期往主控板上報包含單板類型的專用以太網(wǎng)報文。無CPU單板的CPLD芯片根據(jù)配置主控板的請求,配置芯片器件寄存器和遠程升級;根據(jù)主控板的請求,查詢本單板的各種告警性能,通過專用以太網(wǎng)報文,發(fā)送給主控板。
由于無CPU單板通訊報文為該單板的CPLD芯片處理,單板收發(fā)報文沒 有CPU靈活,因此其報文格式為特定格式。為了能區(qū)分是普通S口報文還是無CPU單板通訊報文,需要對無CPU單板通訊報文打上特定VLAN(即上述專用以太網(wǎng)報文)。無CPU單板通訊報文采用特定的短報文格式,無法與S口報文格式保持一致。
該報文由單板CPLD和主控CPU的單板代理進程處理:
(1)無CPU單板的報文封裝/解封裝在CPLD芯片內(nèi)完成
(2)主控板的單板代理程序直接調(diào)用底層以太網(wǎng)口驅(qū)動進行報文封裝和收發(fā)包,主控板CPU需要改造以太網(wǎng)口驅(qū)動收包處理,添加VLAN。接收時需要識別VLAN,將特定VLAN的報文投遞到單板代理進程。
表1
本發(fā)明提供一種與無中央處理器單板通訊的方法,在本發(fā)明與無中央處理器單板通訊的方法的第一實施例中,參照圖2,該與無中央處理器單板通訊的方法包括:
步驟S10,當無CPU單板上電后,無CPU單板將包含其單板信息的上報 報文發(fā)送至主控板;
單板信息包括單板類型、單板位置、單板工作狀態(tài)等數(shù)據(jù),當無CPU單板上電后,該無CPU單板的CPLD芯片主動向主控板上報包含該無CPU單板信息的上報報文,以使主控板能夠及時更新與其連接的無CPU單板狀態(tài),從而無CPU單板的CPLD芯片根據(jù)主控板的請求,配置芯片器件寄存器和遠程升級、根據(jù)主控板的請求,查詢本板的各種告警性能,并通過上報報文(該上報報文為添加了預設VLAN標識的以太網(wǎng)報文)發(fā)送至主控板,使無CPU單板和主控板之間的通訊更為及時、有效。
步驟S20,主控板為每個與其連接且處于上電狀態(tài)的無CPU單板分配一個單板代理進程;
硬件上,無CPU單板上沒有CPU最小系統(tǒng),也沒有FPGA(Field Programmable Gate Array,現(xiàn)場可編程門陣列,),在無CPU單板上無須運行軟件程序和FPGA程序,使用CPLD芯片中的CPLD程序與主控板的單板代理進程配合實現(xiàn)接入單板的所有功能。所以主控板為每個與其連接且處于上電狀態(tài)的無CPU單板啟用和分配一個單板代理進程,該單板代理進程能夠?qū)崿F(xiàn)有CPU接入單板的大部分功能,接入單板驅(qū)動、讀寫接入單板寄存器等功能則由單板代理進程和無CPU單板CPLD芯片配合實現(xiàn)。
步驟S30,主控板通過單板代理進程向?qū)臒oCPU單板發(fā)送控制報文,以控制對應的無CPU單板進行讀處理或?qū)懱幚怼?/p>
控制報文包括寫操作報文和讀操作報文,主控板通過單板代理進程向?qū)臒oCPU單板發(fā)送控制報文,以控制對應的無CPU單板進行讀處理或?qū)懱幚?,即主控板借用單板代理進程替代了接入單板的CPU,從而通過無CPU單板和主控板之間的報文交互,主控板根據(jù)實際需求通過單板代理進程向無CPU單板發(fā)送控制報文,以控制對應的無CPU單板進行讀處理或?qū)懱幚?,即實現(xiàn)了主控板與無CPU單板之間的通訊。
優(yōu)選地,上報報文和控制報文為添加預設虛擬局域網(wǎng)VLAN標識的以太網(wǎng)報文。由于無CPU單板接收的控制報文為單板CPLD芯片處理,無CPU單板收發(fā)報文沒有CPU靈活,因此其報文格式為特定格式。為了能區(qū)分是普通S口報文還是無CPU單板的通訊報文(即控制報文),需要對無CPU單板通訊報文打上特定VLAN。無CPU單板通訊報文采用特定的短報文格式,無 法與S口報文格式保持一致。是與S口報文不同的短報文格式。
在本實施例中,通過主控板為每個與其連接且處于上電狀態(tài)的無CPU單板分配一個單板代理進程,然后主控板根據(jù)需求通過單板代理進程向?qū)臒oCPU單板發(fā)送控制報文,以控制對應的無CPU單板進行讀處理或?qū)懱幚?,從而實現(xiàn)無CPU單板與主控板之間的通訊。
進一步地,在本發(fā)明與無CPU單板通訊的方法第一實施例的基礎上,提出與無CPU單板通訊的方法第二實施例,在第二實施例中,控制報文包括寫操作報文和讀操作報文,步驟S30包括:
步驟S31,當主控板通過單板代理進程對無CPU單板進行寫操作時,將包含寫操作對應配置值和配置地址的寫操作報文發(fā)送至無CPU單板;
在主控板需要與無CPU單板進行通訊時(即主控板需要對無CPU單板進行讀操作或?qū)懖僮鲿r),判斷主控板的單板代理程序?qū)oCPU單板進行操作的操作類型(操作類型包括讀操作和寫操作),從而確定主控板的單板代理進程向無CPU單板發(fā)送控制報文的類型,即所發(fā)送的控制報文為寫操作報文還是讀操作報文。
在主控板通過單板代理進程對無CPU單板進行寫操作時,單板代理進程將包含寫操作對應配置值和配置地址的寫操作報文(該報文為添加了VLAN標識的以太網(wǎng)報文)發(fā)送至無CPU單板。其中,寫操作是按照要求將正確的配置值配置到無CPU單板的芯片寄存器中,相對比較簡單,只要按照添加了VLAN標識的以太網(wǎng)報文格式(如表1所示)將目的MAC(Media Access Control,介質(zhì)訪問控制層)地址、VLAN(Virtual Local Area Network,虛擬局域網(wǎng))、單板目標地址、操作碼等填寫正確,通過在主控板運行的單板代理進程將該添加了VLAN標識的以太網(wǎng)報文發(fā)送背板上的以太網(wǎng)端口,然后背板會將該添加了VLAN標識的以太網(wǎng)報文轉(zhuǎn)發(fā)至無CPU單板的CPLD芯片,由該CPLD芯片解析報文,并將報文中的配置值配置到無CPU單板上的物理層、光模塊等芯片。
步驟S32,無CPU單板從接收到的寫操作報文中解析出配置值和匹配地址,并將該配置值配置到配置地址對應的芯片寄存器中;
參照圖1,與普通的有CPU單板一樣,主控板的單板代理進程也要對PHY (物理層)芯片、時鐘芯片、溫度傳感器、光模塊(如SFP(Small Form Pluggable,小型可插拔)光模塊)、恢復時鐘設置等進行初始化配置。只是所有的初始化操作都要經(jīng)過適配層,再轉(zhuǎn)換成對應的以太網(wǎng)報文,在以太網(wǎng)報文的凈荷中攜帶該操作的芯片和地址。單板代理進程將這些命令轉(zhuǎn)換成對接入單板不同器件的槽位號、器件號、寫地址、寫數(shù)據(jù)、寫操作碼。單板代理進程將同一次寫操作的相關信息發(fā)給適配層進行以太網(wǎng)封裝適配,將槽位號轉(zhuǎn)換成不同的目的MAC地址,VLAN,器件號、寫地址、寫數(shù)據(jù)、操作碼都封裝到以太網(wǎng)凈荷中。最后以太網(wǎng)報文通過主控板的L2交換芯片發(fā)送到對應的無CPU單板上,無CPU單板CPLD解析報文并執(zhí)行相應的器件寫處理。
單板代理程序,接收主控板內(nèi)部S口發(fā)過來的內(nèi)部S口命令,可以設置PHY的端口模式、1588的模式、恢復時鐘等等。單板代理程序?qū)⒚钷D(zhuǎn)換成對應單板的內(nèi)部以太網(wǎng)包,發(fā)送給對應單板,處理與初始化過程的一樣。
步驟S33,當主控板通過單板代理進程對無CPU單板進行讀操作時,將包含讀操作對應的芯片寄存器地址的讀操作報文發(fā)送至無CPU單板;
在主控板的單板代理進程對無CPU單板進行讀操作時,即主控板的單板代理進程需要查詢無CPU單板的芯片寄存器的值,將包含讀操作對應的芯片寄存器地址的讀操作報文發(fā)送至無CPU單板,具體包括兩個步驟,第一步:主控板上的單板代理進程發(fā)送讀操作報文至無CPU單板以查詢無CPU單板芯片寄存器和其地址;第二步:無CPU單板的CPLD芯片構(gòu)建查詢的結(jié)果報文回送給主控板的單板代理進程。對于第二步,主控板的單板代理進程需要啟用一個線程去接收無CPU單板發(fā)送過來的結(jié)果報文,并且第一步的發(fā)送讀操作報文操作與第二步的接收結(jié)果報文操作是分別在兩個線程里進行的。
步驟S34,無CPU單板從接收到的讀操作報文中解析出芯片寄存器地址,并將芯片寄存器地址對應的目的信息封裝成結(jié)果報文發(fā)送至主控板;
無CPU單板從接收到的讀操作報文中解析出芯片寄存器地址,獲取無CPU單板芯片寄存器地址對應處的目的信息,將獲取的目的信息封裝成添加了VLAN標識的以太網(wǎng)報文格式的結(jié)果報文,并將該結(jié)果報文及時發(fā)送至主控板。
步驟S35,主控板的單板代理進程接收無CPU單板發(fā)送的結(jié)果報文,其中,結(jié)果報文為添加預設虛擬局域網(wǎng)VLAN標識的以太網(wǎng)報文。
主控板的單板代理進程在接收到無CPU單板回發(fā)的結(jié)果報文時,以供后續(xù)分類、解析或其它處理,從而完成主控板對無CPU單板的讀操作。
在本實施例中,通過在主控板需要與無CPU單板進行通訊時,通過單板代理進程向?qū)臒oCPU單板發(fā)送控制報文,以控制對應的無CPU單板進行讀處理或?qū)懱幚恚划斨骺匕宓膯伟宕磉M程對無CPU單板進行寫操作時,將寫操作報文發(fā)送至無CPU單板,以供無CPU單板解析寫操作報文并將配置值配置到配置地址對應的芯片寄存器中;當主控板的單板代理進程對無CPU單板進行讀操作時,將讀操作報文發(fā)送至無CPU單板,以供無CPU單板根據(jù)解析后的讀操作報文回發(fā)結(jié)果報文,從而通過主控板與無CPU單板之間的報文交互,主控板根據(jù)實際需求向無CPU單板發(fā)送讀操作報文或?qū)懖僮鲌笪?,無CPU單板僅解析和封裝報文,不對報文進行邏輯分析和處理,從而實現(xiàn)了主控板對無CPU單板的讀操作和寫操作,即實現(xiàn)了主控板與無CPU單板的通訊。
進一步地,基于本發(fā)明無中央處理器單板通訊的方法的第二實施例,提出與無中央處理器單板通訊的方法的第三實施例,在第三實施例中,步驟S34包括:
步驟S341,若當前沒有接收到其它讀操作報文且無正在封裝的結(jié)果報文,則無CPU單板接收主控板發(fā)送的讀操作報文;
步驟S342,無CPU單板從接收到的讀操作報文中解析出芯片寄存器地址,并將芯片寄存器地址對應的目的信息封裝成結(jié)果報文發(fā)送至主控板。
參照圖3,主控板啟用一個單板代理進程對應與一個無CPU單板進行通訊,并且單板代理進程啟用一個線程負責向無CPU單板發(fā)送讀操作報文、一個線程負責接收無CPU單板的CPLD芯片發(fā)送的結(jié)果報文,當無CPU單板的CPLD芯片同時接收到多個線程發(fā)送過來的讀操作報文時,檢測當前時刻該無CPU單板是否已經(jīng)接收了讀操作報文且還在對該讀操作報文進行處理(即正在封裝接收的讀操作報文對應的結(jié)果報文),若當前時刻該無CPU單板有正在封裝的結(jié)果報文,則不接收主控板發(fā)送的讀操作報文;若當前時刻該無CPU單板沒有正在封裝的結(jié)果報文,則繼續(xù)判斷當前時刻該無CPU單板是否同時接收到多個線程發(fā)送的讀操作報文,若有多個線程發(fā)送讀操作報文,則根據(jù)預設規(guī)則(例如按照讀操作報文的達到時間、報文長度等決定讀操作 報文的優(yōu)先級)選出并解析一個讀操作報文。然后根據(jù)解析出的芯片寄存器地址查找到對應的目的信息,并將目的信息封裝呈結(jié)果報文發(fā)送至主控板(發(fā)送解析的讀操作報文的主控板)。
在本實施例中,在多個主控板線程同時向無CPU單板發(fā)送讀操作報文時,每次只允許接收并處理一個線程發(fā)送的讀操作報文,即無CPU單板對讀操作報文的接收采用互斥原則,避免一次接收并處理多個讀操作報文,從而避免了因多個讀操作報文處解析和處理耗費時間和處理流程不相同,而造成讀操作報文對應結(jié)果報文輸出混亂的問題,從而較好地保證了主控板接收結(jié)果報文的準確性。
進一步地,基于本發(fā)明無中央處理器單板通訊的方法的第二實施例,提出與無中央處理器單板通訊的方法的第四實施例,在第四實施例中,步驟S35包括:
步驟S351,主控板的單板代理進程判斷無CPU單板發(fā)送的結(jié)果報文是否就緒;
步驟S352,當無CPU單板發(fā)送的結(jié)果報文就緒時,主控板的單板代理進程接收無CPU單板發(fā)送的結(jié)果報文。
由于主控板的單板代理進程向無CPU單板發(fā)送讀操作報文后,該無CPU單板的CPLD回復結(jié)果報文給主控板的單板代理進程需要一定時間,如果主控板在接收到回復的結(jié)果報文之前就去獲取緩存中結(jié)果報文的值就不是所需的,所以這里需要一個延時保護處理。通過主控板的單板代理進程先判斷無CPU單板發(fā)送的結(jié)果報文是否就緒,即通過單板代理進程的專門用于接收結(jié)果報文的線程在接收到讀操作報文對應的結(jié)果報文時,對該結(jié)果報文打上就緒標記(該標記用于表示結(jié)果報文準備就緒),當主控板的單板代理進程中用于發(fā)送讀操作報文的線程檢測到結(jié)果報文上的就緒標記時,即當無CPU單板發(fā)送的結(jié)果報文就緒時,主控板的單板代理進程接收無CPU單板發(fā)送的結(jié)果報文;若當前時刻主控板的單板代理進程中用于發(fā)送讀操作報文的線程未檢測到結(jié)果報文上的就緒標記,則等待預設等待時長(例如5ms),繼續(xù)檢測到結(jié)果報文上的就緒標記,如此循環(huán),直至主控板的單板代理進程中用于發(fā)送讀操作報文的線程未檢測到結(jié)果報文上的就緒標記或者經(jīng)過預設次數(shù)(例如 20次)的循環(huán)檢測后提示通訊異常。
在本實施例中,通過主控板的單板代理進程判斷無CPU單板發(fā)送的結(jié)果報文是否就緒,當無CPU單板發(fā)送的結(jié)果報文就緒時,主控板的單板代理進程接收無CPU單板發(fā)送的結(jié)果報文,防止主控板未接收到結(jié)果報文或接收不正確的結(jié)果報文就繼續(xù)執(zhí)行后續(xù)步驟,提高了主控板與無CPU單板通訊的準確性。
進一步地,基于本發(fā)明無中央處理器單板通訊的方法的第二實施例,提出與無中央處理器單板通訊的方法的第五實施例,在第五實施例中,步驟S35之后還包括:
步驟S36,主控板的單板代理進程根據(jù)接收的結(jié)果報文中的類型字段,確定該結(jié)果報文的結(jié)果類型。
例如,由于查詢PHY寄存器與查詢CPLD寄存器的字節(jié)數(shù)不同,接收結(jié)果報文后的處理也不同,這時就需要對結(jié)果報文進行分類處理,通過在讀操作報文中添加類型字段,無CPU單板解析讀操作報文后繼續(xù)保持其中的類型字段,并將該類型字段一起封裝至結(jié)果報文(即結(jié)果報文中也包含對應讀操作報文的類型字段)中,主控板的單板代理進程根據(jù)接收到的結(jié)果報文中的類型字段,確定結(jié)果報文的結(jié)果類型,然后對不同結(jié)構(gòu)類型的結(jié)果報文進行批量、集中處理。其中,類型字段可以為以太網(wǎng)報文里的IVH字段,這個字段在發(fā)送讀操作報文時填入,無CPU單板的CPLD芯片回復結(jié)果報文里會自動帶上填入的IVH字段值,這樣就可以區(qū)分不同的結(jié)果類型。
在本實施例中,通過在讀操作報文中添加類型字段,從而在對應結(jié)果報文中也添加類型字段,主控板的單板代理進程可以根據(jù)就結(jié)果報文的類型字段對該結(jié)果報文進行分類,然后對同一類的結(jié)果報文進行批量集中處理,提高了結(jié)果報文的處理速度,使使主控板與無CPU單板之間的通訊更加高效。
本發(fā)明還提供一種通訊設備,在本發(fā)明通訊設備的第一實施例中,參照圖4,通訊設備包括無CPU單板10(通訊設備可以包括多個無CPU單板,本實施例以一個無CPU單板為例)和主控板20,
主控板20包括:
進程分配模塊21,用于為每個與其連接且處于上電狀態(tài)的無CPU單板分配一個單板代理進程;
硬件上,無CPU單板上沒有CPU最小系統(tǒng),也沒有FPGA(Field Programmable Gate Array,現(xiàn)場可編程門陣列,),在無CPU單板上無須運行軟件程序和FPGA程序,使用CPLD芯片中的CPLD程序與主控板的單板代理進程配合實現(xiàn)接入單板的所有功能。所以主控板的進程分配模塊21為每個與其連接且處于上電狀態(tài)的無CPU單板啟用和分配一個單板代理進程,該單板代理進程能夠?qū)崿F(xiàn)有CPU接入單板的大部分功能,接入單板驅(qū)動、讀寫接入單板寄存器等功能則由單板代理進程和無CPU單板CPLD芯片配合實現(xiàn)。
單板代理進程模塊22,用于向單板代理進程對應的無CPU單板發(fā)送控制報文,以控制對應的無CPU單板進行讀處理或?qū)懱幚恚?/p>
控制報文包括寫操作報文和讀操作報文,主控板通過單板代理進程模塊22控制單板代理進程向?qū)臒oCPU單板發(fā)送控制報文,以控制對應的無CPU單板進行讀處理或?qū)懱幚恚粗骺匕褰栌脝伟宕磉M程替代了接入單板的CPU,從而通過無CPU單板和主控板之間的報文交互,主控板根據(jù)實際需求通過單板代理進程向無CPU單板發(fā)送控制報文,以控制對應的無CPU單板進行讀處理或?qū)懱幚?,即實現(xiàn)了主控板與無CPU單板之間的通訊。
無CPU單板10包括:
報文上報模塊11,用于當無CPU單板上電后,將包含該無CPU單板的單板信息的上報報文發(fā)送至主控板;
單板信息包括單板類型、單板位置、單板工作狀態(tài)等數(shù)據(jù),當無CPU單板上電后,該無CPU單板的報文上報模塊11通過CPLD芯片主動向主控板上報包含該無CPU單板信息的上報報文,以使主控板能夠及時更新與其連接的無CPU單板狀態(tài),從而無CPU單板的CPLD芯片根據(jù)主控板的請求,配置芯片器件寄存器和遠程升級、根據(jù)主控板的請求,查詢本板的各種告警性能,并通過上報報文(該上報報文為添加了預設VLAN標識的以太網(wǎng)報文)發(fā)送至主控板,使無CPU單板和主控板之間的通訊更為及時、有效。
報文通訊模塊12,用于接收主控板發(fā)送的控制報文,并根據(jù)接收的控制報文進行讀處理或?qū)懱幚怼?/p>
優(yōu)選地,上報報文和控制報文為添加預設虛擬局域網(wǎng)VLAN標識的以太 網(wǎng)報文。由于無CPU單板接收的控制報文為單板CPLD芯片處理,無CPU單板收發(fā)報文沒有CPU靈活,因此其報文格式為特定格式。為了能區(qū)分是普通S口報文還是無CPU單板的通訊報文(即控制報文),需要對無CPU單板通訊報文打上特定VLAN。無CPU單板通訊報文采用特定的短報文格式,無法與S口報文格式保持一致。是與S口報文不同的短報文格式。
在本實施例中,通過主控板20的進程分配模塊21為每個與其連接且處于上電狀態(tài)的無CPU單板10分配一個單板代理進程,然后主控板20的單板代理進程模塊22根據(jù)需求通過單板代理進程向?qū)臒oCPU單板發(fā)送控制報文,以控制對應的無CPU單板10進行讀處理或?qū)懱幚?,從而實現(xiàn)無CPU單板10與主控板20之間的通訊。
進一步地,在本發(fā)明通訊設備第一實施例的基礎上,提出通訊設備第二實施例,在第二實施例中,控制報文包括寫操作報文和讀操作報文,
單板代理進程模塊22包括第一寫單元221、第一讀單元222和結(jié)果處理單元223,
第一寫單元221,用于當主控板通過單板代理進程對無CPU單板進行寫操作時,將包含寫操作對應配置值和配置地址的寫操作報文發(fā)送至無CPU單板;
在主控板需要與無CPU單板進行通訊時(即主控板需要對無CPU單板進行讀操作或?qū)懖僮鲿r),判斷主控板的單板代理程序?qū)oCPU單板進行操作的操作類型(操作類型包括讀操作和寫操作),從而確定主控板的單板代理進程向無CPU單板發(fā)送控制報文的類型,即所發(fā)送的控制報文為寫操作報文還是讀操作報文。
在主控板通過單板代理進程對無CPU單板進行寫操作時,第一寫單元221控制單板代理進程將包含寫操作對應配置值和配置地址的寫操作報文(該報文為添加了VLAN標識的以太網(wǎng)報文)發(fā)送至無CPU單板。其中,寫操作是按照要求將正確的配置值配置到無CPU單板的芯片寄存器中,相對比較簡單,只要按照添加了VLAN標識的以太網(wǎng)報文格式(如表1所示)將目的MAC(Media Access Control,介質(zhì)訪問控制層)地址、VLAN(Virtual Local Area Network,虛擬局域網(wǎng))、單板目標地址、操作碼等填寫正確,通過在主控板 運行的單板代理進程將該添加了VLAN標識的以太網(wǎng)報文發(fā)送背板上的以太網(wǎng)端口,然后背板會將該添加了VLAN標識的以太網(wǎng)報文轉(zhuǎn)發(fā)至無CPU單板的CPLD芯片,由該CPLD芯片解析報文,并將報文中的配置值配置到無CPU單板上的物理層、光模塊等芯片。
第一讀單元222,用于當主控板通過單板代理進程對無CPU單板進行讀操作時,將包含讀操作對應的芯片寄存器地址的讀操作報文發(fā)送至無CPU單板;
在主控板的單板代理進程對無CPU單板進行讀操作時,即主控板的單板代理進程需要查詢無CPU單板的芯片寄存器的值,第一讀單元222將包含讀操作對應的芯片寄存器地址的讀操作報文發(fā)送至無CPU單板,具體包括兩個步驟,第一步:主控板上的第一讀單元222控制單板代理進程發(fā)送讀操作報文至無CPU單板以查詢無CPU單板芯片寄存器和其地址;第二步:無CPU單板的CPLD芯片構(gòu)建查詢的結(jié)果報文回送給主控板的單板代理進程。對于第二步,主控板的單板代理進程需要啟用一個線程去接收無CPU單板發(fā)送過來的結(jié)果報文,并且第一步的發(fā)送讀操作報文操作與第二步的接收結(jié)果報文操作是分別在兩個線程里進行的。
結(jié)果處理單元223,用于接收無CPU單板發(fā)送的結(jié)果報文,其中,結(jié)果報文為添加預設虛擬局域網(wǎng)VLAN標識的以太網(wǎng)報文;
主控板的結(jié)果處理單元223控制單板代理進程在接收到無CPU單板回發(fā)的結(jié)果報文時,以供后續(xù)分類、解析或其它處理,從而完成主控板對無CPU單板的讀操作。
報文通訊模塊12包括第二寫單元121和第二讀單元122,
第二寫單元121,用于從接收到的寫操作報文中解析出配置值和匹配地址,并將該配置值配置到配置地址對應的芯片寄存器中;
參照圖1,與普通的有CPU單板一樣,主控板的單板代理進程也要對PHY(物理層)芯片、時鐘芯片、溫度傳感器、光模塊(如SFP(Small Form Pluggable,小型可插拔)光模塊)、恢復時鐘設置等進行初始化配置。只是所有的初始化操作都要經(jīng)過適配層,再轉(zhuǎn)換成對應的以太網(wǎng)報文,在以太網(wǎng)報文的凈荷中攜帶該操作的芯片和地址。第二寫單元121控制單板代理進程將這些命令轉(zhuǎn)換成對接入單板不同器件的槽位號、器件號、寫地址、寫數(shù)據(jù)、 寫操作碼。第二寫單元121控制單板代理進程將同一次寫操作的相關信息發(fā)給適配層進行以太網(wǎng)封裝適配,將槽位號轉(zhuǎn)換成不同的目的MAC地址,VLAN,器件號、寫地址、寫數(shù)據(jù)、操作碼都封裝到以太網(wǎng)凈荷中。最后以太網(wǎng)報文通過主控板的L2交換芯片發(fā)送到對應的無CPU單板上,無CPU單板CPLD解析報文并執(zhí)行相應的器件寫處理。
單板代理程序,接收主控板內(nèi)部S口發(fā)過來的內(nèi)部S口命令,可以設置PHY的端口模式、1588的模式、恢復時鐘等等。單板代理程序?qū)⒚钷D(zhuǎn)換成對應單板的內(nèi)部以太網(wǎng)包,發(fā)送給對應單板,處理與初始化過程的一樣。
第二讀單元122,用于從接收到的讀操作報文中解析出芯片寄存器地址,并將芯片寄存器地址對應的目的信息封裝成結(jié)果報文發(fā)送至主控板。
無CPU單板的第二讀單元122從接收到的讀操作報文中解析出芯片寄存器地址,獲取無CPU單板芯片寄存器地址對應處的目的信息,將獲取的目的信息封裝成添加了VLAN標識的以太網(wǎng)報文格式的結(jié)果報文,并將該結(jié)果報文及時發(fā)送至主控板。
在本實施例中,通過在主控板需要與無CPU單板進行通訊時,通過單板代理進程模塊22向?qū)臒oCPU單板發(fā)送控制報文,以控制對應的無CPU單板進行讀處理或?qū)懱幚恚划斨骺匕宓膯伟宕磉M程對無CPU單板進行寫操作時,第一寫單元221將寫操作報文發(fā)送至無CPU單板,以供無CPU單板的第二寫單元121解析寫操作報文并將配置值配置到配置地址對應的芯片寄存器中;當主控板的單板代理進程對無CPU單板進行讀操作時,第一讀單元222將讀操作報文發(fā)送至無CPU單板,以供無CPU單板的第二讀單元122根據(jù)解析后的讀操作報文回發(fā)結(jié)果報文,從而通過主控板與無CPU單板之間的報文交互,主控板根據(jù)實際需求向無CPU單板發(fā)送讀操作報文或?qū)懖僮鲌笪?,無CPU單板僅解析和封裝報文,不對報文進行邏輯分析和處理,從而實現(xiàn)了主控板對無CPU單板的讀操作和寫操作,即實現(xiàn)了主控板與無CPU單板的通訊。
進一步地,基于本發(fā)明通訊設備的第二實施例,提出通訊設備的第三實施例,在第三實施例中,第二讀單元122還用于:
在當前沒有接收到其它讀操作報文且無正在封裝的結(jié)果報文時,接收主控板發(fā)送的讀操作報文;
從接收到的讀操作報文中解析出芯片寄存器地址,并將芯片寄存器地址對應的目的信息封裝成結(jié)果報文發(fā)送至主控板。
參照圖3,主控板啟用一個單板代理進程對應與一個無CPU單板進行通訊,并且單板代理進程啟用一個線程負責向無CPU單板發(fā)送讀操作報文、一個線程負責接收無CPU單板的CPLD芯片發(fā)送的結(jié)果報文,當無CPU單板的CPLD芯片同時接收到多個線程發(fā)送過來的讀操作報文時,檢測當前時刻該無CPU單板是否已經(jīng)接收了讀操作報文且還在對該讀操作報文進行處理(即正在封裝接收的讀操作報文對應的結(jié)果報文),若當前時刻該無CPU單板有正在封裝的結(jié)果報文,則第二讀單元122不接收主控板發(fā)送的讀操作報文;若當前時刻該無CPU單板沒有正在封裝的結(jié)果報文,則第二讀單元122繼續(xù)判斷當前時刻該無CPU單板是否同時接收到多個線程發(fā)送的讀操作報文,若有多個線程發(fā)送讀操作報文,則第二讀單元122根據(jù)預設規(guī)則(例如按照讀操作報文的達到時間、報文長度等決定讀操作報文的優(yōu)先級)選出并解析一個讀操作報文。然后第二讀單元122根據(jù)解析出的芯片寄存器地址查找到對應的目的信息,并將目的信息封裝呈結(jié)果報文發(fā)送至主控板(發(fā)送解析的讀操作報文的主控板)。
在本實施例中,在多個主控板線程同時向無CPU單板發(fā)送讀操作報文時,每次只允許接收并處理一個線程發(fā)送的讀操作報文,即無CPU單板對讀操作報文的接收采用互斥原則,避免一次接收并處理多個讀操作報文,從而避免了因多個讀操作報文處解析和處理耗費時間和處理流程不相同,而造成讀操作報文對應結(jié)果報文輸出混亂的問題,從而較好地保證了主控板接收結(jié)果報文的準確性。
進一步地,基于本發(fā)明通訊設備的第二實施例,提出通訊設備的第四實施例,在第四實施例中,結(jié)果處理單元223還用于:
判斷無CPU單板發(fā)送的結(jié)果報文是否就緒;
當無CPU單板發(fā)送的結(jié)果報文就緒時,接收無CPU單板發(fā)送的結(jié)果報文。
由于主控板的單板代理進程向無CPU單板發(fā)送讀操作報文后,該無CPU單板的CPLD回復結(jié)果報文給主控板的單板代理進程需要一定時間,如果主控板在接收到回復的結(jié)果報文之前就去獲取緩存中結(jié)果報文的值就不是所需 的,所以這里需要一個延時保護處理。通過主控板的結(jié)果處理單元223先判斷無CPU單板發(fā)送的結(jié)果報文是否就緒,即通過單板代理進程的專門用于接收結(jié)果報文的線程(結(jié)果處理單元223控制該線程)在接收到讀操作報文對應的結(jié)果報文時,對該結(jié)果報文打上就緒標記(該標記用于表示結(jié)果報文準備就緒),當主控板的單板代理進程中用于發(fā)送讀操作報文的線程(第一讀單元222控制該線程)檢測到結(jié)果報文上的就緒標記時,即當無CPU單板發(fā)送的結(jié)果報文就緒時,主控板的結(jié)果處理單元223接收無CPU單板發(fā)送的結(jié)果報文;若當前時刻主控板的單板代理進程中用于發(fā)送讀操作報文的線程未檢測到結(jié)果報文上的就緒標記,則結(jié)果處理單元223等待預設等待時長(例如5ms),繼續(xù)檢測到結(jié)果報文上的就緒標記,如此循環(huán),直至主控板的單板代理進程中用于發(fā)送讀操作報文的線程未檢測到結(jié)果報文上的就緒標記或者經(jīng)過預設次數(shù)(例如20次)的循環(huán)檢測后提示通訊異常。
在本實施例中,通過主控板的結(jié)果處理單元223判斷無CPU單板發(fā)送的結(jié)果報文是否就緒,當無CPU單板發(fā)送的結(jié)果報文就緒時,主控板的結(jié)果處理單元223接收無CPU單板發(fā)送的結(jié)果報文,防止主控板未接收到結(jié)果報文或接收不正確的結(jié)果報文就繼續(xù)執(zhí)行后續(xù)步驟,提高了主控板與無CPU單板通訊的準確性。
進一步地,基于本發(fā)明通訊設備的第二實施例,提出與通訊設備的第五實施例,在第五實施例中,讀操作報文和結(jié)果報文中包含類型字段,
單板代理進程模塊22還包括:
類型處理單元224,用于根據(jù)接收的結(jié)果報文中的類型字段,確定該結(jié)果報文的結(jié)果類型。
例如,由于查詢PHY寄存器與查詢CPLD寄存器的字節(jié)數(shù)不同,接收結(jié)果報文后的處理也不同,這時就需要對結(jié)果報文進行分類處理,通過在讀操作報文中添加類型字段,無CPU單板解析讀操作報文后繼續(xù)保持其中的類型字段,并將該類型字段一起封裝至結(jié)果報文(即結(jié)果報文中也包含對應讀操作報文的類型字段)中,主控板的類型處理單元224根據(jù)接收到的結(jié)果報文中的類型字段,確定結(jié)果報文的結(jié)果類型,然后對不同結(jié)構(gòu)類型的結(jié)果報文進行批量、集中處理。其中,類型字段可以為以太網(wǎng)報文里的IVH字段,這 個字段在發(fā)送讀操作報文時填入,無CPU單板的CPLD芯片回復結(jié)果報文里會自動帶上填入的IVH字段值,這樣就可以區(qū)分不同的結(jié)果類型。
在本實施例中,通過在讀操作報文中添加類型字段,從而在對應結(jié)果報文中也添加類型字段,主控板的類型處理單元224可以根據(jù)就結(jié)果報文的類型字段對該結(jié)果報文進行分類,然后對同一類的結(jié)果報文進行批量集中處理,提高了結(jié)果報文的處理速度,使使主控板與無CPU單板之間的通訊更加高效。
通過以上的實施方式的描述,本領域的技術(shù)人員可以清楚地了解到上述實施例方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,服務器,空調(diào)器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例的方法。
以上僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關的技術(shù)領域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。