一種基于PCIe固態(tài)硬盤存儲(chǔ)系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)
摘要: 介紹了一種在智能繼電保護(hù)裝置中,基于PCIe總線技術(shù)實(shí)現(xiàn)大容量存儲(chǔ)系統(tǒng)設(shè)計(jì)方法。該方法選用飛思卡爾P2020處理器為硬件平臺(tái),88se9170做為PCIe轉(zhuǎn)SATA接口控制器,以固態(tài)硬盤為存儲(chǔ)介質(zhì),采用兼容性好的FAT文件系統(tǒng)管理數(shù)據(jù)存儲(chǔ)。該存儲(chǔ)系統(tǒng)具有高速、支持熱插拔、可脫機(jī)運(yùn)行等特點(diǎn)。經(jīng)EMC試驗(yàn)和具體智能變電站工程運(yùn)行驗(yàn)證,滿足智能繼電保護(hù)裝置對(duì)數(shù)據(jù)處理安全可靠的要求。
本文引用地址:http://butianyuan.cn/article/201603/288913.htm引言
新一代的智能電網(wǎng)繼電保護(hù)裝置軟硬件平臺(tái)研發(fā)設(shè)計(jì)中大都采用了多種類型的組件技術(shù),根據(jù)功能可分解為環(huán)境建模、推理決策、系統(tǒng)監(jiān)控、領(lǐng)域?qū)W習(xí)和領(lǐng)域知識(shí)庫(kù)等各類邏輯實(shí)現(xiàn)組件,組件與外部或組件間都有大量的數(shù)據(jù)傳遞和處理,這些關(guān)鍵數(shù)據(jù)不僅需要高速穩(wěn)定的存儲(chǔ)系統(tǒng)來(lái)存儲(chǔ),還要存儲(chǔ)系統(tǒng)能在惡劣電磁干擾環(huán)境下保證數(shù)據(jù)的正確完整性。針對(duì)這些要求,文中著重研究了在飛思卡爾P2020多核處理器下通過(guò)PCIe實(shí)現(xiàn)的嵌入式固態(tài)硬盤存儲(chǔ)技術(shù),就存儲(chǔ)系統(tǒng)的硬件設(shè)計(jì)和軟件驅(qū)動(dòng)設(shè)計(jì)等方面進(jìn)行了詳細(xì)的闡述,并通過(guò)EMC專業(yè)測(cè)試和具體智能變電站工程進(jìn)行了可靠性驗(yàn)證。
1 存儲(chǔ)系統(tǒng)架構(gòu)設(shè)計(jì)
根據(jù)存儲(chǔ)系統(tǒng)的設(shè)計(jì)需求,要求該系統(tǒng)具有大容量數(shù)據(jù)存儲(chǔ)、高速總線、熱插拔等特點(diǎn)。按照模塊化的設(shè)計(jì)思路,兼顧繼電保護(hù)裝置機(jī)箱插件式結(jié)構(gòu)的特點(diǎn),將存儲(chǔ)設(shè)備設(shè)計(jì)為獨(dú)立的插件模塊,通過(guò)機(jī)箱背板的高速PCIE擴(kuò)展總線與主控CPU模塊插件相連。其組成結(jié)構(gòu)如圖1所示。
2 存儲(chǔ)系統(tǒng)硬件設(shè)計(jì)
2.1 P2020處理器主控單元CPU模塊設(shè)計(jì)
CPU模塊采用飛思卡爾新推出的低功耗P2020多核微處理器, P2020處理器具有雙E500v2內(nèi)核,最高主頻可達(dá)到1.2GHz,集成了PCIe、SGMI、SD/MMC等接口。包含P2020處理器的主控CPU主要由復(fù)位電路、時(shí)鐘電路、時(shí)序邏輯控制電路、DDR內(nèi)存電路和接口模塊電路組成。為了節(jié)省硬件資源和降低功耗,P2020處理器外圍接口電路采用了復(fù)用SerDes(串行器解串器)設(shè)計(jì),通過(guò)處理器上電復(fù)位時(shí)初始化設(shè)備狀態(tài)寄存器,將P2020的四個(gè)SerDes通道靈活配置成PCIE、SGMII等接口。兩個(gè)E500內(nèi)核可根據(jù)具體的軟件設(shè)計(jì)非常方便地通過(guò)SerDes訪問(wèn)存儲(chǔ)設(shè)備。PCIe接口的數(shù)據(jù)收發(fā)差分線和時(shí)鐘線經(jīng)過(guò)CPU插件上的高速連接器擴(kuò)展到機(jī)箱背板。
2.2 固態(tài)硬盤存儲(chǔ)模塊設(shè)計(jì)
固態(tài)硬盤(SSD)是一種基于閃存的存儲(chǔ)技術(shù),具有能耗低、無(wú)機(jī)械活動(dòng)部件、讀寫速度快、抗震動(dòng)等優(yōu)點(diǎn)。該存儲(chǔ)模塊使用工業(yè)級(jí)固態(tài)硬盤(>=120G)作為存儲(chǔ)介質(zhì),解決了智能保護(hù)裝置采用Flash或SD卡存儲(chǔ)空間容量小、傳輸速率慢、不能脫機(jī)運(yùn)行的劣勢(shì)。
SATA控制器是固態(tài)硬盤控制的核心。系統(tǒng)選用Marvell 88SE9170作為SATA控制器,該芯片有兩個(gè)支持SATA 3.0規(guī)范的SATA端口,一個(gè)lane PCIe2.0接口。6路可設(shè)置方向的GPIO,用于操作固態(tài)硬盤的數(shù)據(jù)指示燈閃爍指示等功能。88SE9170是Marvell新推出的一款工業(yè)級(jí)PCIE轉(zhuǎn)SATA的控制芯片,兼容SATA3.0以下的SATA協(xié)議規(guī)范,支持SATA端口的FIS和COMMAND交換技術(shù),支持SATA常見(jiàn)的硬盤NCQ(全速命令隊(duì)列)、AHCI(高級(jí)主機(jī)控制器接口)接口模式等功能。
88SE9170自帶一個(gè)支持SPI接口的512KB固件FLASH芯片,芯片上可由寫片器寫入BIOS和引導(dǎo)碼,通過(guò)軟件運(yùn)行將FLASH內(nèi)容映射到內(nèi)存指定地址來(lái)加載或由88SE9170上電時(shí)自動(dòng)加載,完成88SE9170片內(nèi)寄存器的配置。另外一種方式不需要SPI flash,每次上電時(shí)由處理器通過(guò)PCIE接口對(duì)88SE9170進(jìn)行寄存器配置,配置參數(shù)掉電丟失。缺點(diǎn)是該存儲(chǔ)模塊不能脫離CPU模塊獨(dú)立運(yùn)行,通用性不好。
由88SE9170 SATA控制器通過(guò)SATA協(xié)議實(shí)現(xiàn)處理器和固態(tài)硬盤之間的數(shù)據(jù)傳輸和管理。數(shù)據(jù)傳輸速率可達(dá)2.5Gbps或5Gbps。模塊示意圖如圖2所示。
3 軟件和驅(qū)動(dòng)設(shè)計(jì)
嵌入式操作系統(tǒng)采用國(guó)外引進(jìn)的嵌入式實(shí)時(shí)操作系統(tǒng)Nucleus Plus。Nucleus Plus具有實(shí)時(shí)的、搶先的、多任務(wù)的內(nèi)核。95%的內(nèi)核代碼由C語(yǔ)言編寫,開(kāi)放性好,一些開(kāi)源的驅(qū)動(dòng)代碼和應(yīng)用代碼能很容易地添加到操作系統(tǒng)中。在嵌入式操作系統(tǒng)下運(yùn)行驅(qū)動(dòng)軟件可以分為三部分: P2020處理器PCIe設(shè)備初始化、88SE9170 SATA控制器驅(qū)動(dòng)初始化和文件系統(tǒng)實(shí)現(xiàn)。存儲(chǔ)系統(tǒng)的驅(qū)動(dòng)軟件框架結(jié)構(gòu)如圖3所示。
3.1 PCIe設(shè)備初始化
PCIe總線采用點(diǎn)對(duì)點(diǎn)的串行連接方式,每個(gè)PCIe設(shè)備都有獨(dú)立的數(shù)據(jù)傳輸通道,該通道對(duì)其他設(shè)備來(lái)說(shuō)是封閉的,可避免其他設(shè)備的干擾。能有效提高智能繼電保護(hù)裝置的產(chǎn)品可靠性。P2020處理器可提供3個(gè)工作在2.5/5 GHz頻率下的串行PCIe控制器接口。本設(shè)計(jì)中P2020處理器的PCIe控制器初始化參考了UBOOT開(kāi)源代碼的相關(guān)部分。在Nucleus 嵌入式操作系統(tǒng)啟動(dòng)時(shí), 根據(jù)硬件設(shè)計(jì),對(duì)應(yīng)設(shè)置P2020 處理器復(fù)用Serdes的配置。劃分PCIe控制器地址空間。初始化PCIe控制器的配置寄存器和中斷設(shè)置寄存器。PCIe控制器的初始化流程見(jiàn)圖4。
3.2 88SE9170 SATA控制器驅(qū)動(dòng)初始化
3.2.1 SATA控制器的PCIe設(shè)備注冊(cè)
P2020處理器通過(guò)設(shè)置為RC模式的PCIe 控制器掃描PCIe總線上的設(shè)備,通過(guò)配置空間讀取88SE9170的設(shè)備ID和廠商ID等屬性,向PCIe控制器硬件驅(qū)動(dòng)層注冊(cè)。注冊(cè)完成后,處理器即可通過(guò)PCIE總線,對(duì)88SE9170的SATA控制器進(jìn)行初始化配置和固態(tài)硬盤訪問(wèn)。
3.2.2 SATA控制器的工作模式選擇
88se9170 SATA控制器支持PCI-IDE模式和AHCI模式。IDE模式是為了兼容IDE硬盤。AHCI為SSD固態(tài)硬盤的首選模式。AHCI是由Inter指導(dǎo)下多家公司聯(lián)合研發(fā)的接口標(biāo)準(zhǔn)。AHCI在PCIe和串行SATA設(shè)備內(nèi)部邏輯間扮演標(biāo)準(zhǔn)接口的角色,通過(guò)PCI BAR5,實(shí)現(xiàn)原生的SATA功能,為設(shè)備制造商省去了單獨(dú)開(kāi)發(fā)接口的工作。C語(yǔ)言編寫的開(kāi)源AHCI接口驅(qū)動(dòng)能非常容易添加進(jìn)嵌入式Nucleus操作系統(tǒng)中。
3.2.3 SATA控制器AHCI接口初始化
在PCIE總線初始化完成后,可將AHCI的配置空間映射到BAR5寄存器指定的一段非緩存的內(nèi)存空間,通過(guò)內(nèi)存操作直接對(duì)AHCI的配置寄存器進(jìn)行初始化操作。AHCI標(biāo)準(zhǔn)指定了寄存器的偏移地址,偏移地址小于100h的為通用控制寄存器空間,大于100h的為SATA端口寄存器空間。88se9170 的HBA Capability 支持64位尋址、NCQ、端口復(fù)用等常見(jiàn)SATA控制器特性。SATA控制器初始化完成后,掃描SATA端口,建立物理連接,通過(guò)AHCI驅(qū)動(dòng)的讀寫函數(shù)完成對(duì)SATA接口固態(tài)硬盤的操作。AHCI初始化流程見(jiàn)圖5。
3.3 文件系統(tǒng)實(shí)現(xiàn)
現(xiàn)有智能繼電保護(hù)裝置為節(jié)省硬件資源,大都采用嵌入式環(huán)境下對(duì)FLASH存儲(chǔ)器支持較好的小巧精簡(jiǎn)的YAFFS或JFFS文件系統(tǒng)。這兩種文件系統(tǒng)在目前主流的桌面系統(tǒng)中都不能直接兼容,不利于移動(dòng)存儲(chǔ)設(shè)備的脫機(jī)運(yùn)行。為保證不同桌面系統(tǒng)下工具軟件對(duì)存儲(chǔ)設(shè)備能夠直接操作和讀寫,進(jìn)行數(shù)據(jù)分析,本設(shè)計(jì)選用了兼容性好的FAT文件系統(tǒng),來(lái)有效管理寫入固態(tài)硬盤內(nèi)的數(shù)據(jù)。
FAT文件系統(tǒng)整體上可以劃分為四個(gè)部分:保留區(qū)、 FAT 表區(qū)、數(shù)據(jù)區(qū)和剩余扇區(qū), 這四部分在存儲(chǔ)設(shè)備格式化時(shí)被創(chuàng)建,并且在數(shù)據(jù)存儲(chǔ)期間不可被更改。FAT文件系統(tǒng)是完全免費(fèi)開(kāi)源的,具有高效和代碼小的優(yōu)點(diǎn)。在P2020處理器上移植時(shí),根據(jù)處理器定義改動(dòng)FAT文件系統(tǒng)的數(shù)據(jù)類型和文件系統(tǒng)的配置頭文件ff.h,重新編寫DISK I/O層的驅(qū)動(dòng)函數(shù)。I/O函數(shù)主要有disk_initialize(),disk_read(),disk_status(),disk_write(),disk_ioctl(),get_fattime(),通過(guò)調(diào)用AHCI驅(qū)動(dòng)函數(shù),分別實(shí)現(xiàn)固態(tài)硬盤初始化、狀態(tài)獲取、讀寫、命令控制等功能。具體流程見(jiàn)圖6。
4 測(cè)試驗(yàn)證
4.1 固態(tài)硬盤數(shù)據(jù)讀寫測(cè)試
選用固態(tài)硬盤支持的三種SATA命令:IDENTIFY、WRITE DMA EXT和READ DMA EXT來(lái)測(cè)試固態(tài)硬盤數(shù)據(jù)讀寫數(shù)據(jù)的可靠性。
(1) IDENTIFY測(cè)試
利用NUCLEUS 操作系統(tǒng)的測(cè)試代碼,操作SATA控制器AHCI I/O接口函數(shù)ahci_device_data_io(u8 port, u8 *fis, int fis_len, u8 *buf,int buf_len, u8 is_write),下發(fā)IDENTIFY FIS命令,函數(shù)返回256字節(jié)buf數(shù)據(jù)區(qū)IDENTIFY命令響應(yīng)數(shù)據(jù),該數(shù)據(jù)根據(jù)硬盤生產(chǎn)廠商不同,數(shù)據(jù)內(nèi)容也有差別,主要內(nèi)容有制造廠商的名稱、產(chǎn)品序列號(hào)、硬盤大小、支持的功能等參數(shù)。與選用的固態(tài)硬盤廠商提供的數(shù)據(jù)手冊(cè)相關(guān)內(nèi)容逐項(xiàng)核對(duì)后,內(nèi)容一致,測(cè)試正常。
(2) 利用WRITE DMA EXT、READ DMA EXT命令循環(huán)測(cè)試讀寫固態(tài)硬盤數(shù)據(jù),對(duì)寫入和讀取相同硬盤扇區(qū)的數(shù)據(jù)進(jìn)行比較,判斷數(shù)據(jù)讀寫的正確性。部分相關(guān)測(cè)試代碼見(jiàn)如下:
u8 user_buffer_read [2048];
u8 user_buffer_write[2048];
int sata_ahci_sectortest_read_write(u8 ahci_port,u8 is_write,u64 lba_start,u16 block_count);
while(1)
{ …
count=4;
ata_ahci_sectortest_read_write(0,1,lba,count)//WRITE 2K 數(shù)據(jù)
ata_ahci_sectortest_read_write(0,0,lba,count)//READ 2K 數(shù)據(jù)
if(data_compare(&user_buffer_write,& user_buffer_read)!=0)
{ printf ("ahci: sata data error! Return!rn")
Break;}
lba=lba+4;
…
}
通過(guò)測(cè)試代碼可對(duì)固態(tài)硬盤數(shù)據(jù)區(qū)進(jìn)行全覆蓋測(cè)試,根據(jù)1000次測(cè)試輸出結(jié)果來(lái)看,數(shù)據(jù)讀寫正常。
隨后用大數(shù)據(jù)文件(>5G)的讀寫進(jìn)行測(cè)試,對(duì)讀寫時(shí)間進(jìn)行了統(tǒng)計(jì),計(jì)算下來(lái),可以達(dá)到240MB/S的讀取速度,180MB/S的寫入速度,滿足設(shè)計(jì)要求。
4.2 PCIE總線數(shù)據(jù)傳輸可靠性驗(yàn)證
智能繼電保護(hù)裝置為機(jī)箱插件式結(jié)構(gòu),本設(shè)計(jì)中固態(tài)硬盤插件和應(yīng)用P2020處理器的CPU插件由PCIE總線經(jīng)機(jī)箱PCB背板擴(kuò)展后連接。PCIE的信號(hào)完整性和EMC耐受能力,將影響系統(tǒng)的穩(wěn)定性和可靠性。為驗(yàn)證硬件設(shè)計(jì)的可靠性,對(duì)整裝置進(jìn)行了靜電放電抗擾度、快速瞬變脈沖群抗擾度、浪涌抗擾度、阻尼震蕩波等多項(xiàng)EMC試驗(yàn)。試驗(yàn)結(jié)果表明,PCIE總線物理連接可靠,存儲(chǔ)系統(tǒng)無(wú)數(shù)據(jù)丟失和出錯(cuò)現(xiàn)象。
4.3 具體智能變電站工程現(xiàn)場(chǎng)運(yùn)行驗(yàn)證
采用新一代智能變電站保護(hù)軟硬件平臺(tái)設(shè)計(jì)的繼電保護(hù)和通信裝置,在吉林500kV包家智能變電站、重慶500kV玉屏智能變電站等多個(gè)新建智能變電站掛網(wǎng)運(yùn)行,現(xiàn)場(chǎng)運(yùn)行狀況良好。
5 結(jié)束語(yǔ)
本文介紹的基于PCIe實(shí)現(xiàn)固態(tài)硬盤存儲(chǔ)系統(tǒng)的設(shè)計(jì)方案,采用了應(yīng)用范圍廣泛和成熟的PCIe總線技術(shù)和基于SATA的AHCI驅(qū)動(dòng)接口規(guī)范,有效提高了智能繼電保護(hù)裝置的數(shù)據(jù)存儲(chǔ)性能。大容量存儲(chǔ)系統(tǒng)的應(yīng)用使智能繼電保護(hù)裝置集成大數(shù)據(jù)錄波、PMU、在線監(jiān)測(cè)等功能成為可能,特別是為站域和廣域集中式軟件功能復(fù)雜數(shù)據(jù)容量大的保護(hù)裝置提供了硬件實(shí)現(xiàn)基礎(chǔ)。此外,在PCIe總線硬件設(shè)計(jì)環(huán)節(jié)中,如何設(shè)計(jì)才能提高總線的抗電磁干擾能力也是值得研究的地方。
參考文獻(xiàn):
[1]劉振亞. 智能電網(wǎng)技術(shù)[M]. 中國(guó)電力出版社,2010
[2]王齊. PCI Express 體系結(jié)構(gòu)導(dǎo)讀[M]. 北京機(jī)械工業(yè)出版社,2010
[3]Serial ATA International Organization. Serial ATA Revision 3.0[S],2009
[4]PCISIG. PCI Express Base Specification Revision 2.0[S],2009
[5]Serial ATA AHCI 1.3specification [Z],2008,6
[6]Freescale Semiconductor Corp. Qor IQ TM P2020 Integrated Pr-ocessor Reference Manual[M].America: Freescale Semicon-ductor,2009
[7]Freescale Semiconductor Corp. Power PCTM e500 Core Family Reference Manual[[M]. America: Freescale Semiconductor,2005
本文來(lái)源于中國(guó)科技期刊《電子產(chǎn)品世界》2016年第3期第64頁(yè),歡迎您寫論文時(shí)引用,并注明出處。
評(píng)論