本發(fā)明涉及peci總線領(lǐng)域,尤其涉及一種支持crc8校驗(yàn)的peci總線主從機(jī)驗(yàn)證系統(tǒng)及驗(yàn)證方法。
背景技術(shù):
peci(platformenvironmentcontrolinterface)是由intel提出的新一代數(shù)字接口,是處于處理器與系統(tǒng)穩(wěn)定性監(jiān)控設(shè)備之間的專用單線型總線。在服務(wù)器領(lǐng)域中應(yīng)用于bmc與處理器之間,用于讀取cpu溫度及讀寫相關(guān)設(shè)備信息。peci總線的傳輸基于協(xié)議的特定命令,命令的格式分為地址,寫長(zhǎng)度,讀長(zhǎng)度,寫數(shù)據(jù),fcs,讀數(shù)據(jù)。如何在peci總線實(shí)現(xiàn)crc8校驗(yàn)實(shí)現(xiàn)在peci總線上進(jìn)行冗余校驗(yàn)算法是當(dāng)前丞待解決的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
為了克服上述現(xiàn)有技術(shù)中的不足,本發(fā)明提供一種支持crc8校驗(yàn)的peci總線主從機(jī)驗(yàn)證系統(tǒng),包括:采樣計(jì)數(shù)器,移位寄存器,主機(jī),crc8校驗(yàn)生成器,與主機(jī)通過(guò)peci總線連接的從機(jī);
采樣計(jì)數(shù)器通過(guò)移位寄存器與主機(jī)連接,crc8校驗(yàn)生成器與主機(jī)連接;
采樣計(jì)數(shù)器用于采樣數(shù)據(jù)值,通過(guò)時(shí)鐘對(duì)總線上的高低電平進(jìn)行計(jì)數(shù),根據(jù)高低電平計(jì)數(shù)大小確定數(shù)據(jù)“0”或“1”;
移位寄存器包括:輸入的移位和輸出的移位,輸入移位用于存儲(chǔ)主機(jī)寫的數(shù)據(jù);輸出移位用于存儲(chǔ)從從機(jī)讀的數(shù)據(jù);
主機(jī)用于根據(jù)peci總線的命令執(zhí)行相應(yīng)的狀態(tài)以及控制crc8校驗(yàn)生成器的使能;
crc8校驗(yàn)生成器用于根據(jù)crc8冗余校驗(yàn)算法,將主機(jī)傳輸?shù)臄?shù)據(jù)計(jì)算成校驗(yàn)碼,為主機(jī)提供8位循環(huán)冗余校驗(yàn),根據(jù)peci協(xié)議,由主機(jī)控制crc8校驗(yàn)生成器的使能,在主機(jī)寫數(shù)據(jù)階段依次將要計(jì)算的數(shù)據(jù)寫入crc8校驗(yàn)生成器并計(jì)算結(jié)果后返回總線,在主機(jī)讀數(shù)據(jù)階段,將主機(jī)預(yù)讀出的數(shù)據(jù)依次寫入crc8校驗(yàn)生成器并計(jì)算結(jié)果返回總線。
優(yōu)選地,采樣計(jì)數(shù)器還用于當(dāng)主機(jī)寫數(shù)據(jù)過(guò)程時(shí),在總線傳輸每1bit時(shí),通過(guò)從機(jī)時(shí)鐘的每一拍對(duì)總線的高電平進(jìn)行采樣后計(jì)數(shù),與協(xié)商的周期進(jìn)行比較后獲取這一bit的值為“0”還是“1”;當(dāng)主機(jī)讀數(shù)據(jù)過(guò)程時(shí),從機(jī)的數(shù)據(jù)“0”或“1”通過(guò)計(jì)數(shù)操作后將總線的電平拉低或拉高,達(dá)到數(shù)據(jù)的讀出。
優(yōu)選地,移位寄存器還用于在總線的每個(gè)下降沿移位,當(dāng)主機(jī)寫數(shù)據(jù)過(guò)程時(shí),將采樣計(jì)數(shù)器判斷出的數(shù)據(jù)“0”或“1”存儲(chǔ)用于后續(xù)使用;當(dāng)主機(jī)讀數(shù)據(jù)過(guò)程時(shí),從機(jī)要發(fā)送的數(shù)據(jù)通過(guò)移位操作移入采樣計(jì)數(shù)器。
優(yōu)選地,主機(jī)還用于根據(jù)peci協(xié)議創(chuàng)建了多個(gè)狀態(tài),支持peci命令:
主機(jī)執(zhí)行相應(yīng)的狀態(tài)包括:地址獲取比較、讀寫數(shù)據(jù)長(zhǎng)度、寫數(shù)據(jù)、寫fcs、讀數(shù)據(jù)、讀fcs。
優(yōu)選地,主機(jī)還包括:寫寄存器和讀寄存器;主機(jī)還分別通過(guò)寫寄存器和讀寄存器與crc8校驗(yàn)生成器連接;
寫寄存器用于存儲(chǔ)主機(jī)的寫數(shù)據(jù);讀寄存器用于存儲(chǔ)從從機(jī)讀出的數(shù)據(jù)。
一種支持crc8校驗(yàn)的peci總線主從機(jī)驗(yàn)證方法,方法包括:
系統(tǒng)的初始狀態(tài)為空閑狀態(tài),當(dāng)檢測(cè)到peci總線的電平為高時(shí),在總線的下降沿進(jìn)入地址協(xié)商階段;
地址協(xié)商階段:移位8bit的地址與從機(jī)的地址進(jìn)行比較,移位8bit的地址與從機(jī)的地址一致,則存儲(chǔ)從機(jī)的地址,并打開crc8使能,進(jìn)行crc8計(jì)算,之后進(jìn)入數(shù)據(jù)周期設(shè)定狀態(tài)階段,并關(guān)掉crc8使能;不一致則系統(tǒng)進(jìn)入空閑狀態(tài);
數(shù)據(jù)周期設(shè)定狀態(tài)階段:數(shù)據(jù)傳輸周期設(shè)定為一個(gè)peci周期,之后進(jìn)入寫數(shù)據(jù)長(zhǎng)度狀態(tài)階段;
寫數(shù)據(jù)長(zhǎng)度狀態(tài)階段:將移位8bit的寫數(shù)據(jù)長(zhǎng)度存入寫寄存器保存,并打開crc8使能進(jìn)行crc8計(jì)算,之后進(jìn)入讀數(shù)據(jù)長(zhǎng)度狀態(tài)階段,并關(guān)掉使能;
讀數(shù)據(jù)長(zhǎng)度狀態(tài)階段:將寫寄存器的移位8bit讀數(shù)據(jù)長(zhǎng)度保存至讀寄存器,打開crc8使能計(jì)算,進(jìn)行讀數(shù)據(jù)長(zhǎng)度的數(shù)據(jù)長(zhǎng)度比較,若讀數(shù)據(jù)長(zhǎng)度達(dá)到預(yù)設(shè)值,則進(jìn)入寫fcs狀態(tài)階段,否則再回到寫數(shù)據(jù)長(zhǎng)度狀態(tài)階段,直至讀數(shù)據(jù)長(zhǎng)度達(dá)到預(yù)設(shè)值;
寫fcs狀態(tài)狀態(tài)階段:判斷寫寄存器是否為“0”,若是則依次將計(jì)算出的8bitcrc8校驗(yàn)碼,通過(guò)移位寄存器及采樣計(jì)數(shù)器移入總線,之后系統(tǒng)進(jìn)入空閑狀態(tài),否則將計(jì)算出的8bit校驗(yàn)碼移入總線后進(jìn)入讀數(shù)據(jù)狀態(tài)階段;
讀數(shù)據(jù)狀態(tài)階段:將從機(jī)8bit數(shù)據(jù)通過(guò)移位寄存器及采樣計(jì)數(shù)器移入總線并打開crc8使能計(jì)算,判斷讀數(shù)據(jù)長(zhǎng)度是否達(dá)到要求,當(dāng)讀數(shù)據(jù)長(zhǎng)度達(dá)到要求后,進(jìn)入讀fcs狀態(tài)階段,否則重復(fù)上述操作;
讀fcs狀態(tài)階段:將計(jì)算出的8bitcrc8校驗(yàn)碼通過(guò)移位寄存器及采樣計(jì)數(shù)器移入總線,完成后系統(tǒng)進(jìn)入空閑狀態(tài)。
優(yōu)選地,讀數(shù)據(jù)狀態(tài)階段還包括:若讀數(shù)據(jù)長(zhǎng)度未達(dá)到預(yù)設(shè)值,將移位8bit的數(shù)據(jù)移入寫寄存器中并打開crc8使能計(jì)算,判斷寫數(shù)據(jù)長(zhǎng)度是否達(dá)到預(yù)設(shè)值,當(dāng)達(dá)到寫數(shù)據(jù)長(zhǎng)度達(dá)到預(yù)設(shè)值后,進(jìn)入寫fcs狀態(tài)階段,否則繼續(xù)寫數(shù)據(jù)直到達(dá)到預(yù)設(shè)值。
從以上技術(shù)方案可以看出,本發(fā)明具有以下優(yōu)點(diǎn):
主機(jī)的主流程根據(jù)peci協(xié)議創(chuàng)建,其中一些判斷依據(jù)不同的命令進(jìn)行狀態(tài)變化。本發(fā)明提出的支持crc8校驗(yàn)的peci總線主從機(jī)驗(yàn)證系統(tǒng)及驗(yàn)證方法,內(nèi)建crc8冗余校驗(yàn)程序,crc8校驗(yàn)生成器獨(dú)立設(shè)置,在仿真驗(yàn)證peci總線功能時(shí)不需手動(dòng)修改,直接掛接總線上即可進(jìn)行驗(yàn)證工作,操作簡(jiǎn)單便捷。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明的技術(shù)方案,下面將對(duì)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為支持crc8校驗(yàn)的peci總線主從機(jī)驗(yàn)證系統(tǒng)示意圖;
圖2為支持crc8校驗(yàn)的peci總線主從機(jī)驗(yàn)證系統(tǒng)實(shí)施例示意圖;
圖3為支持crc8校驗(yàn)的peci總線主從機(jī)驗(yàn)證方法流程圖。
具體實(shí)施方式
為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點(diǎn)能夠更加的明顯和易懂,下面將運(yùn)用具體的實(shí)施例及附圖,對(duì)本發(fā)明保護(hù)的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,下面所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而非全部的實(shí)施例?;诒緦@械膶?shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本專利保護(hù)的范圍。
本實(shí)施例提供一種支持crc8校驗(yàn)的peci總線主從機(jī)驗(yàn)證系統(tǒng),如圖1所示,包括:采樣計(jì)數(shù)器1,移位寄存器2,主機(jī)3,crc8校驗(yàn)生成器4,與主機(jī)3通過(guò)peci總線連接的從機(jī)5;
采樣計(jì)數(shù)器1通過(guò)移位寄存器2與主機(jī)3連接,crc8校驗(yàn)生成器4與主機(jī)連接;
采樣計(jì)數(shù)器1用于采樣數(shù)據(jù)值,通過(guò)時(shí)鐘對(duì)總線上的高低電平進(jìn)行計(jì)數(shù),根據(jù)高低電平計(jì)數(shù)大小確定數(shù)據(jù)“0”或“1”;移位寄存器2包括:輸入的移位和輸出的移位,輸入移位用于存儲(chǔ)主機(jī)寫的數(shù)據(jù);輸出移位用于存儲(chǔ)從從機(jī)讀的數(shù)據(jù);主機(jī)3用于根據(jù)peci總線的命令執(zhí)行相應(yīng)的狀態(tài)以及控制crc8校驗(yàn)生成器4的使能;
crc8校驗(yàn)生成器4用于根據(jù)crc8冗余校驗(yàn)算法,將主機(jī)3傳輸?shù)臄?shù)據(jù)計(jì)算成校驗(yàn)碼,為主機(jī)提供8位循環(huán)冗余校驗(yàn),根據(jù)peci協(xié)議,由主機(jī)控制crc8校驗(yàn)生成器的使能,在主機(jī)寫數(shù)據(jù)階段依次將要計(jì)算的數(shù)據(jù)寫入crc8校驗(yàn)生成器并計(jì)算結(jié)果后返回總線,在主機(jī)讀數(shù)據(jù)階段,將主機(jī)預(yù)讀出的數(shù)據(jù)依次寫入crc8校驗(yàn)生成器并計(jì)算結(jié)果返回總線。
peci協(xié)議中,當(dāng)主從設(shè)備協(xié)商好地址及數(shù)據(jù)周期后,地址和數(shù)據(jù)值按照此周期進(jìn)行傳輸。1bit的數(shù)據(jù)通過(guò)總線上高低電平的比例進(jìn)行區(qū)分,數(shù)據(jù)“0”表現(xiàn)為“1/4高電平+3/4低電平”,數(shù)據(jù)“1”表現(xiàn)為“3/4高電平+1/4低電平”。從機(jī)模型通過(guò)特殊的接口邏輯連接到單線型的peci總線上,通過(guò)peci總線接收數(shù)據(jù)以及發(fā)送數(shù)據(jù)。
本實(shí)施例中,采樣計(jì)數(shù)器1還用于當(dāng)主機(jī)3寫數(shù)據(jù)過(guò)程時(shí),在總線傳輸每1bit時(shí),通過(guò)從機(jī)時(shí)鐘的每一拍對(duì)總線的高電平進(jìn)行采樣后計(jì)數(shù),與協(xié)商的周期進(jìn)行比較后獲取這一bit的值為“0”還是“1”;當(dāng)主機(jī)3讀數(shù)據(jù)過(guò)程時(shí),從機(jī)的數(shù)據(jù)“0”或“1”通過(guò)計(jì)數(shù)操作后將總線的電平拉低或拉高,達(dá)到數(shù)據(jù)的讀出。
移位寄存器2還用于在總線的每個(gè)下降沿移位,當(dāng)主機(jī)3寫數(shù)據(jù)過(guò)程時(shí),將采樣計(jì)數(shù)器判斷出的數(shù)據(jù)“0”或“1”存儲(chǔ)用于后續(xù)使用;當(dāng)主機(jī)讀數(shù)據(jù)過(guò)程時(shí),從機(jī)要發(fā)送的數(shù)據(jù)通過(guò)移位操作移入采樣計(jì)數(shù)器。
主機(jī)3還用于根據(jù)peci協(xié)議創(chuàng)建了多個(gè)狀態(tài),支持peci命令:主機(jī)3執(zhí)行相應(yīng)的狀態(tài)包括:地址獲取比較、讀寫數(shù)據(jù)長(zhǎng)度、寫數(shù)據(jù)、寫fcs、讀數(shù)據(jù)、讀fcs。
主機(jī)3還包括:寫寄存器和讀寄存器;如圖2所示,主機(jī)3還分別通過(guò)寫寄存器和讀寄存器與crc8校驗(yàn)生成器連接。寫寄存器用于存儲(chǔ)主機(jī)的寫數(shù)據(jù);讀寄存器用于存儲(chǔ)從從機(jī)讀出的數(shù)據(jù)。
本發(fā)明還提供一種支持crc8校驗(yàn)的peci總線主從機(jī)驗(yàn)證方法,如圖3所示,方法包括:
s1:系統(tǒng)的初始狀態(tài)為空閑狀態(tài),當(dāng)檢測(cè)到peci總線的電平為高時(shí),在總線的下降沿進(jìn)入地址協(xié)商階段;
s2:地址協(xié)商階段:移位8bit的地址與從機(jī)的地址進(jìn)行比較,移位8bit的地址與從機(jī)的地址一致,則存儲(chǔ)從機(jī)的地址,并打開crc8使能,進(jìn)行crc8計(jì)算,之后進(jìn)入數(shù)據(jù)周期設(shè)定狀態(tài)階段,并關(guān)掉crc8使能;不一致則系統(tǒng)進(jìn)入空閑狀態(tài);
s3:數(shù)據(jù)周期設(shè)定狀態(tài)階段:數(shù)據(jù)傳輸周期設(shè)定為一個(gè)peci周期,之后進(jìn)入寫數(shù)據(jù)長(zhǎng)度狀態(tài)階段;
s4:寫數(shù)據(jù)長(zhǎng)度狀態(tài)階段:將移位8bit的寫數(shù)據(jù)長(zhǎng)度存入寫寄存器保存,并打開crc8使能進(jìn)行crc8計(jì)算,之后進(jìn)入讀數(shù)據(jù)長(zhǎng)度狀態(tài)階段,并關(guān)掉使能;
s5:讀數(shù)據(jù)長(zhǎng)度狀態(tài)階段:將寫寄存器的移位8bit讀數(shù)據(jù)長(zhǎng)度保存至讀寄存器,打開crc8使能計(jì)算,進(jìn)行讀數(shù)據(jù)長(zhǎng)度的數(shù)據(jù)長(zhǎng)度比較,若讀數(shù)據(jù)長(zhǎng)度達(dá)到預(yù)設(shè)值,則進(jìn)入寫fcs狀態(tài)階段,否則再回到寫數(shù)據(jù)長(zhǎng)度狀態(tài)階段,直至讀數(shù)據(jù)長(zhǎng)度達(dá)到預(yù)設(shè)值;
s6:寫fcs狀態(tài)狀態(tài)階段:判斷寫寄存器是否為“0”,若是則依次將計(jì)算出的8bitcrc8校驗(yàn)碼,通過(guò)移位寄存器及采樣計(jì)數(shù)器移入總線,之后系統(tǒng)進(jìn)入空閑狀態(tài),否則將計(jì)算出的8bit校驗(yàn)碼移入總線后進(jìn)入讀數(shù)據(jù)狀態(tài)階段;
s7:讀數(shù)據(jù)狀態(tài)階段:將從機(jī)8bit數(shù)據(jù)通過(guò)移位寄存器及采樣計(jì)數(shù)器移入總線并打開crc8使能計(jì)算,判斷讀數(shù)據(jù)長(zhǎng)度是否達(dá)到要求,當(dāng)讀數(shù)據(jù)長(zhǎng)度達(dá)到要求后,進(jìn)入讀fcs狀態(tài)階段,否則重復(fù)上述操作;
s8:讀fcs狀態(tài)階段:將計(jì)算出的8bitcrc8校驗(yàn)碼通過(guò)移位寄存器及采樣計(jì)數(shù)器移入總線,完成后系統(tǒng)進(jìn)入空閑狀態(tài)。
其中,讀數(shù)據(jù)狀態(tài)階段還包括:若讀數(shù)據(jù)長(zhǎng)度未達(dá)到預(yù)設(shè)值,將移位8bit的數(shù)據(jù)移入寫寄存器中并打開crc8使能計(jì)算,判斷寫數(shù)據(jù)長(zhǎng)度是否達(dá)到預(yù)設(shè)值,當(dāng)達(dá)到寫數(shù)據(jù)長(zhǎng)度達(dá)到預(yù)設(shè)值后,進(jìn)入寫fcs狀態(tài)階段,否則繼續(xù)寫數(shù)據(jù)直到達(dá)到預(yù)設(shè)值。
主機(jī)的主流程根據(jù)peci協(xié)議創(chuàng)建,其中一些判斷依據(jù)不同的命令進(jìn)行狀態(tài)變化。本發(fā)明提出的支持crc8校驗(yàn)的peci總線主從機(jī)驗(yàn)證系統(tǒng)及驗(yàn)證方法,內(nèi)建crc8冗余校驗(yàn)程序,crc8校驗(yàn)生成器獨(dú)立設(shè)置,在仿真驗(yàn)證peci總線功能時(shí)不需手動(dòng)修改,直接掛接總線上即可進(jìn)行驗(yàn)證工作,操作簡(jiǎn)單便捷。經(jīng)測(cè)試可以準(zhǔn)確實(shí)現(xiàn)最新peci3.0協(xié)議支持的ping(),getdib(),gettemp(),rdpkgconfig()等全部命令的驗(yàn)證。
本發(fā)明提出的系統(tǒng)支持crc8校驗(yàn)的peci總線驗(yàn)證,本發(fā)明的顯著特征是內(nèi)建了crc8冗余校驗(yàn)結(jié)構(gòu),計(jì)算fcs并根據(jù)狀態(tài)機(jī)特定狀態(tài)返回,結(jié)構(gòu)清晰,能夠準(zhǔn)確完備的驗(yàn)證peci協(xié)議支持的所有命令。peci總線是連接監(jiān)控設(shè)備與處理器的專用單線型總線,peci只有一條線,根據(jù)約定的速率傳輸協(xié)議的一些命令。
在一些實(shí)施例中,所述設(shè)備中的一個(gè)或多個(gè)設(shè)備的部分或所有功能或處理由計(jì)算機(jī)程序?qū)崿F(xiàn)或支持,計(jì)算機(jī)程序由計(jì)算機(jī)可讀程序代碼形成并且被包括在計(jì)算機(jī)可讀介質(zhì)中。短語(yǔ)“計(jì)算機(jī)可讀程序代碼”包括任何類型的計(jì)算機(jī)代碼,包括源代碼、目標(biāo)代碼和可執(zhí)行代碼。短語(yǔ)“計(jì)算機(jī)可讀介質(zhì)”包括能夠被計(jì)算機(jī)訪問(wèn)的任何類型的介質(zhì),諸如只讀存儲(chǔ)器(rom)、隨機(jī)存取存儲(chǔ)器(ram)、硬盤驅(qū)動(dòng)器、光盤(cd)、數(shù)字視頻盤(dvd)、或任何其他類型的存儲(chǔ)器。
本說(shuō)明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參考即可。
本發(fā)明的說(shuō)明書和權(quán)利要求書及上述附圖中的術(shù)語(yǔ)“第一”、“第二”、“第三”“第四”等(如果存在)是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤4送?,術(shù)語(yǔ)“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含。
對(duì)所公開的實(shí)施例的上述說(shuō)明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來(lái)說(shuō)將是顯而易見(jiàn)的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。