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