本技術(shù)涉及計(jì)算機(jī),更具體地說(shuō),涉及一種串口通信方法、裝置、服務(wù)器、電子設(shè)備和存儲(chǔ)介質(zhì)。
背景技術(shù):
1、當(dāng)前服務(wù)器行業(yè)正處在高速發(fā)展的階段,在服務(wù)器系統(tǒng)啟動(dòng)過(guò)程中,通過(guò)串口可以輸出引導(dǎo)加載程序的日志信息,幫助管理員監(jiān)控系統(tǒng)啟動(dòng)狀態(tài),診斷啟動(dòng)問(wèn)題。此外,服務(wù)器在運(yùn)行過(guò)程中遇到故障時(shí),uart(universal?asynchronous?receiver/transmitter,通用異步接收/發(fā)送器)串口也能輸出錯(cuò)誤信息,便于進(jìn)行故障排查和系統(tǒng)調(diào)試。
2、在相關(guān)技術(shù)中,處理器通過(guò)espi(enhanced?serial?peripheral?interface,增強(qiáng)型串行外設(shè)接口)向bmc(baseboard?management?controller,基本管理控制器)發(fā)送需要傳輸?shù)臄?shù)據(jù),bmc再將數(shù)據(jù)轉(zhuǎn)換為串口信息,將串口信息發(fā)送至cpld(complexprogrammable?logic?device,復(fù)雜可編程邏輯器件),cpld將串口信息通過(guò)外部串口發(fā)送至外部設(shè)備??梢?jiàn),服務(wù)器內(nèi)部通過(guò)espi、uart兩種格式轉(zhuǎn)換,數(shù)據(jù)可能出現(xiàn)解析錯(cuò)誤,當(dāng)bmc出現(xiàn)異常時(shí),服務(wù)器的串口通信將中斷,處理器無(wú)法與外部設(shè)備建立通信。
3、因此,如何提高服務(wù)器串口通信的準(zhǔn)確性和可靠性是本領(lǐng)域技術(shù)人員需要解決的技術(shù)問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)的目的在于提供一種串口通信方法、裝置、服務(wù)器、電子設(shè)備和存儲(chǔ)介質(zhì),提高了服務(wù)器串口通信的準(zhǔn)確性和可靠性。
2、為實(shí)現(xiàn)上述目的,本技術(shù)提供了一種串口通信方法,應(yīng)用于服務(wù)器中的復(fù)雜可編程邏輯器件,所述服務(wù)器包括處理器、復(fù)雜可編程邏輯器件、基板管理控制器和外部串口,所述處理器通過(guò)第一uart接口連接所述復(fù)雜可編程邏輯器件;
3、所述方法包括:
4、從所述處理器接收包含第一目標(biāo)數(shù)據(jù)的第一串口信號(hào),從所述基板管理控制器接收包含所述第一目標(biāo)數(shù)據(jù)的第二串口信號(hào);
5、對(duì)比所述第一串口信號(hào)與所述第二串口信號(hào)是否一致;
6、若一致,則將所述第一串口信號(hào)或所述第二串口信號(hào)通過(guò)所述外部串口發(fā)送至外部設(shè)備;
7、若不一致,則為所述第一串口信號(hào)添加第一標(biāo)記,為所述第二串口信號(hào)添加第二標(biāo)記,并將添加了所述第一標(biāo)記的第一串口信號(hào)和添加了所述第二標(biāo)記的第二串口信號(hào)通過(guò)所述外部串口發(fā)送至所述外部設(shè)備;其中,所述第一標(biāo)記用于標(biāo)記所述第一串口信號(hào)來(lái)源于所述處理器,所述第二標(biāo)記用于標(biāo)記所述第二串口信號(hào)來(lái)源于所述基板管理控制器。
8、其中,從所述處理器接收包含第一目標(biāo)數(shù)據(jù)的第一串口信號(hào),從所述基板管理控制器接收包含所述第一目標(biāo)數(shù)據(jù)的第二串口信號(hào)之前,還包括:
9、確定當(dāng)前串口模式;
10、若所述當(dāng)前串口模式為自適應(yīng)模式,則執(zhí)行從所述處理器接收包含第一目標(biāo)數(shù)據(jù)的第一串口信號(hào),從所述基板管理控制器接收包含所述第一目標(biāo)數(shù)據(jù)的第二串口信號(hào)的步驟。
11、其中,確定當(dāng)前串口模式,包括:
12、根據(jù)跳線帽的設(shè)置確定當(dāng)前串口模式;
13、若根據(jù)跳線帽的設(shè)置確定的當(dāng)前串口模式為自適應(yīng)模式,則接收所述基板管理控制器發(fā)送的串口模式修改命令,并根據(jù)所述串口模式修改命令重新確定當(dāng)前串口模式。
14、其中,若所述當(dāng)前串口模式為自適應(yīng)模式,則所述方法還包括:
15、檢測(cè)所述基板管理控制器是否正常;
16、若是,則執(zhí)行從所述處理器接收包含第一目標(biāo)數(shù)據(jù)的第一串口信號(hào),從所述基板管理控制器接收包含所述第一目標(biāo)數(shù)據(jù)的第二串口信號(hào)的步驟;
17、若否,則切換為處理器模式,以從所述處理器接收包含所述第一目標(biāo)數(shù)據(jù)的第一串口信號(hào),將所述第一串口信號(hào)通過(guò)所述外部串口發(fā)送至所述外部設(shè)備。
18、其中,所述處理器通過(guò)總線連接所述基板管理控制器,所述基板管理控制器通過(guò)第二uart接口連接所述復(fù)雜可編程邏輯器件,所述復(fù)雜可編程邏輯器件連接所述外部串口,所述服務(wù)器通過(guò)所述外部串口連接外部設(shè)備;
19、所述確定當(dāng)前串口模式之后,還包括:
20、若所述當(dāng)前串口模式為處理器模式,則通過(guò)所述第一uart接口從所述處理器接收包含所述第一目標(biāo)數(shù)據(jù)的第一串口信號(hào),將所述第一串口信號(hào)通過(guò)所述外部串口發(fā)送至所述外部設(shè)備;
21、若所述當(dāng)前串口模式為基板管理控制器模式,則通過(guò)所述第二uart接口從所述為基板管理控制器接收包含所述第一目標(biāo)數(shù)據(jù)的第二串口信號(hào),將所述第二串口信號(hào)通過(guò)所述外部串口發(fā)送至所述外部設(shè)備;其中,所述處理器通過(guò)總線向所述基板管理控制器發(fā)送包含所述第一目標(biāo)數(shù)據(jù)的第一總線信號(hào),所述基板管理控制器將所述第一總線信號(hào)轉(zhuǎn)換為所述第二串口信號(hào),并發(fā)送至所述復(fù)雜可編程邏輯器件;
22、相應(yīng)的,若所述當(dāng)前串口模式為自適應(yīng)模式,則從所述處理器接收包含第一目標(biāo)數(shù)據(jù)的第一串口信號(hào),從所述基板管理控制器接收包含所述第一目標(biāo)數(shù)據(jù)的第二串口信號(hào),包括:
23、通過(guò)所述第一uart接口從所述處理器接收所述第一串口信號(hào),通過(guò)所述第二uart接口從所述為基板管理控制器接收所述第二串口信號(hào);其中,所述處理器通過(guò)總線向所述基板管理控制器發(fā)送包含所述第一目標(biāo)數(shù)據(jù)的第一總線信號(hào),所述基板管理控制器將所述第一總線信號(hào)轉(zhuǎn)換為所述第二串口信號(hào),并發(fā)送至所述復(fù)雜可編程邏輯器件。
24、其中,還包括:
25、通過(guò)所述外部串口接收所述外部設(shè)備發(fā)送的包含第二目標(biāo)數(shù)據(jù)的第三串口信號(hào);
26、將所述第三串口信號(hào)通過(guò)第二uart接口發(fā)送至所述基板管理控制器,以便所述基板管理控制器將所述第三串口信號(hào)轉(zhuǎn)換為第二總線信號(hào),并發(fā)送至所述處理器;
27、將所述第三串口信號(hào)通過(guò)所述第一uart接口發(fā)送至所述處理器;其中,所述處理器根據(jù)預(yù)設(shè)配置信息在所述第二總線信號(hào)和第三串口信號(hào)中選擇接收的第二目標(biāo)數(shù)據(jù)。
28、為實(shí)現(xiàn)上述目的,本技術(shù)提供了一種串口通信裝置,應(yīng)用于服務(wù)器中的復(fù)雜可編程邏輯器件,所述服務(wù)器包括處理器、復(fù)雜可編程邏輯器件、基板管理控制器和外部串口,所述處理器通過(guò)第一uart接口連接所述復(fù)雜可編程邏輯器件;
29、所述裝置包括:
30、第一接收模塊,用于從所述處理器接收包含第一目標(biāo)數(shù)據(jù)的第一串口信號(hào),從所述基板管理控制器接收包含所述第一目標(biāo)數(shù)據(jù)的第二串口信號(hào);
31、對(duì)比模塊,用于對(duì)比所述第一串口信號(hào)與所述第二串口信號(hào)是否一致;若一致,則啟動(dòng)第一發(fā)送模塊的工作流程;若不一致,則啟動(dòng)第二發(fā)送模塊的工作流程;
32、所述第一發(fā)送模塊,用于將所述第一串口信號(hào)或所述第二串口信號(hào)通過(guò)所述外部串口發(fā)送至外部設(shè)備;
33、所述第二發(fā)送模塊,用于為所述第一串口信號(hào)添加第一標(biāo)記,為所述第二串口信號(hào)添加第二標(biāo)記,并將添加了所述第一標(biāo)記的第一串口信號(hào)和添加了所述第二標(biāo)記的第二串口信號(hào)通過(guò)所述外部串口發(fā)送至所述外部設(shè)備;其中,所述第一標(biāo)記用于標(biāo)記所述第一串口信號(hào)來(lái)源于所述處理器,所述第二標(biāo)記用于標(biāo)記所述第二串口信號(hào)來(lái)源于所述基板管理控制器。
34、為實(shí)現(xiàn)上述目的,本技術(shù)提供了一種服務(wù)器,包括處理器、復(fù)雜可編程邏輯器件、基板管理控制器和外部串口,所述處理器通過(guò)第一uart接口連接所述復(fù)雜可編程邏輯器件,所述處理器通過(guò)espi總線連接所述基板管理控制器,所述基板管理控制器通過(guò)第二uart接口連接所述復(fù)雜可編程邏輯器件,所述復(fù)雜可編程邏輯器件連接所述外部串口,所述服務(wù)器通過(guò)所述外部串口連接外部設(shè)備;
35、所述處理器,用于向所述復(fù)雜可編程邏輯器件發(fā)送包含第一目標(biāo)數(shù)據(jù)的第一串口信號(hào)、向所述基板管理控制器發(fā)送包含所述第一目標(biāo)數(shù)據(jù)的第一總線信號(hào);
36、所述基板管理控制器,用于將所述第一總線信號(hào)轉(zhuǎn)換為第二串口信號(hào),并發(fā)送至所述復(fù)雜可編程邏輯器件;
37、所述復(fù)雜可編程邏輯器件,用于對(duì)比所述第一串口信號(hào)與所述第二串口信號(hào)是否一致;若一致,則將所述第一串口信號(hào)或所述第二串口信號(hào)通過(guò)所述外部串口發(fā)送至所述外部設(shè)備;若不一致,則為所述第一串口信號(hào)添加第一標(biāo)記,為所述第二串口信號(hào)添加第二標(biāo)記,并將添加了所述第一標(biāo)記的第一串口信號(hào)和添加了所述第二標(biāo)記的第二串口信號(hào)通過(guò)所述外部串口發(fā)送至所述外部設(shè)備;其中,所述第一標(biāo)記用于標(biāo)記所述第一串口信號(hào)來(lái)源于所述處理器,所述第二標(biāo)記用于標(biāo)記所述第二串口信號(hào)來(lái)源于所述基板管理控制器。
38、為實(shí)現(xiàn)上述目的,本技術(shù)提供了一種電子設(shè)備,包括:
39、存儲(chǔ)器,用于存儲(chǔ)計(jì)算機(jī)程序;
40、處理器,用于執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)如上述串口通信方法的步驟。
41、為實(shí)現(xiàn)上述目的,本技術(shù)提供了一種非易失性存儲(chǔ)介質(zhì),所述非易失性存儲(chǔ)介質(zhì)上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上述串口通信方法的步驟。
42、本技術(shù)提供的串口通信方法,將處理器直接輸出的第一串口信號(hào),以及基板管理控制器從處理器解析的第二串口信號(hào)均傳輸至復(fù)雜可編程邏輯器件,復(fù)雜可編程邏輯器件通過(guò)冗余及對(duì)比機(jī)制確保傳輸至外部設(shè)備的數(shù)據(jù)的正確性。由此可見(jiàn),在本技術(shù)中,處理器可以通過(guò)第一串口信號(hào)直接將第一目標(biāo)數(shù)據(jù)傳輸至復(fù)雜可編程邏輯器件,無(wú)需espi、uart兩種格式轉(zhuǎn)換,基板管理控制器異常時(shí)處理器也可以向外部設(shè)備傳輸數(shù)據(jù),提高了服務(wù)器串口通信的準(zhǔn)確性和可靠性。本技術(shù)還公開(kāi)了一種串口通信裝置及一種電子設(shè)備、一種非易失性存儲(chǔ)介質(zhì)和一種計(jì)算機(jī)程序產(chǎn)品,同樣能實(shí)現(xiàn)上述技術(shù)效果。
43、應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性的,并不能限制本技術(shù)。