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