欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于fpga的sata控制器的制作方法

文檔序號(hào):6575192閱讀:679來(lái)源:國(guó)知局
專利名稱:基于fpga的sata控制器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及滿足串行高級(jí)技術(shù)附件規(guī)格(Serial Advanced Technology Attachhient, SATA) 的控制器的實(shí)現(xiàn),采用大規(guī)?,F(xiàn)場(chǎng)可編程門陣列(Field Programable Gate Array, FPGA)作 為實(shí)現(xiàn)平臺(tái),實(shí)現(xiàn)SATA接口標(biāo)準(zhǔn),管理和控制符合SATA接口設(shè)備的數(shù)據(jù)傳入和傳出。
背景技術(shù)
在計(jì)算機(jī)系統(tǒng)中,存儲(chǔ)設(shè)備都是通過(guò)各種接口與計(jì)算機(jī)相連接,其中,高級(jí)技術(shù)附件規(guī) 格(Advanced Technology Attachment, ATA)接口是最常見(jiàn)的接口之一。ATA主要是指硬盤驅(qū) 動(dòng)器與計(jì)算機(jī)的連接規(guī)范,可以使用戶方便地在PC機(jī)上連接硬盤等存儲(chǔ)設(shè)備,曾是我們最 常用的硬盤接口規(guī)范。ATA標(biāo)準(zhǔn)從1994年至今共經(jīng)歷了 7代標(biāo)準(zhǔn),2002年最新的ATA-7標(biāo) 準(zhǔn)中ATA的最大數(shù)據(jù)傳輸速度為133MB./s.。,在ATA,接口發(fā)展到100MB/s的時(shí)候,.這種并行接 口的電纜屬性、連接器和信號(hào)協(xié)議都表現(xiàn)出了很大的技術(shù)瓶頸,而在技術(shù)上突破這些瓶頸存 在相當(dāng)大的難度。新型接口標(biāo)準(zhǔn)的產(chǎn)生也就在所難免。
串行高級(jí)技術(shù)附件規(guī)格(Serial Advanced Technology Attachment, SATA),是指串行 ATA接口規(guī)范,它是一種完全不同于并行ATA的新型接口類型,因采用串行方式傳輸數(shù)據(jù)而 知名。SATA是由DELL、 IBM、 Int'el、 Maxtor、 Quantum, Seagate等公司合作開發(fā)用于取代 并行ATA接口的技術(shù)。
SATA協(xié)議借鑒了 IS0/0SI和TCP/IP模型的組織方式和對(duì)象、服務(wù)、層次封裝等概念, 采用層次化的描述方法,從下向上分別為物理層、鏈路層、傳輸層和應(yīng)用層四層。SATA采用 幀作為基本傳輸單元,支持最大長(zhǎng)度達(dá)8192字節(jié)的幀傳輸。SATA采用高速串行總線技術(shù), 點(diǎn)到點(diǎn)的連接方式使連接設(shè)備獨(dú)享帶寬,降低了共享仲裁和配置的復(fù)雜性,改善了可擴(kuò)展性 和并發(fā)操作能力。SATA具有高帶寬、拓?fù)湟讛U(kuò)展、數(shù)據(jù)完整性、可靠性、存儲(chǔ)容量大、支持 熱拔插等特點(diǎn)。
現(xiàn)代計(jì)算機(jī)系統(tǒng)中最常用的接口之一就是SATA。與ATA相比,SATA引腳數(shù)大大減少, 數(shù)據(jù)帶寬更大。第一代SATA接口的數(shù)據(jù)傳輸率為150MB/s,第二代SATA接口的數(shù)據(jù)傳輸率 高達(dá)300MB/s,整整比第一代的速度提高了一倍,己經(jīng)頒布的第三代SATA實(shí)現(xiàn)600MB/s的傳 輸率。
SATA的出現(xiàn)是為了取代PATA,其與PATA相比,具有以下幾方面優(yōu)勢(shì)
1、在速度上,目前常用的第二代SATA接口的數(shù)據(jù)傳輸率高達(dá)300MB/s,遠(yuǎn)高于PATA接口的數(shù)據(jù)傳輸率。
2、 在傳輸方式上,SATA硬盤是采用點(diǎn)對(duì)點(diǎn)傳輸協(xié)議,使用7芯的數(shù)據(jù)線,通過(guò)低壓差 分信號(hào)進(jìn)行數(shù)據(jù)傳輸,通過(guò)將時(shí)鐘信號(hào)嵌入數(shù)據(jù)中發(fā)送等技術(shù),增強(qiáng)信號(hào)的抗干擾能力,從 而實(shí)現(xiàn)高速率的數(shù)據(jù)傳輸。
3、 SATA的循環(huán)冗余校驗(yàn)(Cyclical Redundancy Check, CRC)技術(shù)讓數(shù)據(jù)傳輸也更為安 全。由于SATA對(duì)傳輸?shù)闹噶詈蛿?shù)據(jù)都進(jìn)行了 CRC校驗(yàn),從而具備更強(qiáng)的糾錯(cuò)能力,提高了 數(shù)據(jù)傳輸?shù)目煽啃浴?br> 4、 原生命令隊(duì)列指令集(Native Command Queuing, NCQ)是SATA硬盤的一項(xiàng)重要新特 征,采用第一方DMA對(duì)硬盤命令隊(duì)列進(jìn)行優(yōu)化,NCQ能有效提高硬盤讀寫效率和性能。
5、 SATA還具有更輕薄、更靈活的的接線、支持熱插拔、功耗更低、安裝簡(jiǎn)便性、有利 用減少機(jī)箱內(nèi)部連線和散熱、與PATA軟件兼容等優(yōu)點(diǎn)。
為了克服基于專用集成電路的SATA控制裝置通用性差,靈活性低,升級(jí)困難的不足, 同時(shí)為了降低功耗,減少PCB(Printed Circuit Board)面積,實(shí)現(xiàn)設(shè)備小型化,本發(fā)明提供 —種基于FPGA的SATA控制器。該控制器實(shí)現(xiàn)對(duì)SATA硬盤及滿足SATA協(xié)議設(shè)備的控制,并 且性能高,具有很強(qiáng)通用性和靈活性,方便升級(jí)。本發(fā)明有利于擺脫對(duì)國(guó)外核心控制芯片的 依賴。

發(fā)明內(nèi)容
基于FPGA的SATA控制器包括循環(huán)冗余校驗(yàn)?zāi)K1214,擾碼/解擾碼模塊1215,幀生 成模塊1211,幀發(fā)送模塊1212,幀接收模塊1213,寄存器組128,用戶接口模塊11和126, 帶外信號(hào)控制模塊122,接口傳輸率選擇模塊123,復(fù)位模塊124,千兆位級(jí)收發(fā)器127, LED 指示模塊125。
循環(huán)冗余校驗(yàn)?zāi)K1214,在發(fā)送幀時(shí),用于計(jì)算該幀的第一循環(huán)冗余校驗(yàn)值,該值由 幀生成模塊1211置于數(shù)據(jù)的最后作為幀的內(nèi)容;接收幀時(shí),用于計(jì)算經(jīng)過(guò)解擾碼后該幀所 有數(shù)據(jù)(包括接收到的第一循環(huán)冗余校驗(yàn)值)的第二循環(huán)冗余校驗(yàn)值,如果計(jì)算得到的第二循 環(huán)冗余校驗(yàn)值不等于0,則說(shuō)明數(shù)據(jù)在傳輸過(guò)程中出現(xiàn)了錯(cuò)誤,由幀接收模塊1213給出幀接 收錯(cuò)誤信息,如果計(jì)算得到的第二循環(huán)冗余校驗(yàn)值等于0,則說(shuō)明數(shù)據(jù)在傳輸過(guò)程中沒(méi)有出 現(xiàn)錯(cuò)誤,由幀接收模塊1213給出幀接收正確信息。
擾碼/解擾碼模塊1215,在發(fā)送幀時(shí),將發(fā)送的原始數(shù)據(jù)及原始數(shù)據(jù)的第一循環(huán)冗余校
驗(yàn)值與擾碼模塊1215的第一輸出值進(jìn)行異或計(jì)算得到對(duì)應(yīng)的擾碼值;接收幀時(shí),將經(jīng)過(guò)延
時(shí)模塊1219的接收幀與解擾碼模塊1215的第二輸出值進(jìn)行異或計(jì)算得到接收幀的數(shù)據(jù)。
幀生成模塊1211,完成幀的封裝,將發(fā)送數(shù)據(jù)緩沖區(qū)1216讀出來(lái)的原始數(shù)據(jù)分為兩路,一路原始數(shù)據(jù)直接送入循環(huán)冗余校驗(yàn)?zāi)K1214計(jì)算第一循環(huán)冗余校驗(yàn)值,計(jì)算得到的第一 循環(huán)冗余校驗(yàn)值通過(guò)2選1選擇器置于原始數(shù)據(jù)的最后作為幀的內(nèi)容,計(jì)算得到的第一循環(huán) 冗余校驗(yàn)值與擾碼/解擾碼模塊(1215)的第一輸出值進(jìn)行異或計(jì)算得到第一循環(huán)冗余校驗(yàn)值 對(duì)應(yīng)的擾碼值,另一路原始數(shù)據(jù)經(jīng)過(guò)延時(shí)模塊1219后與擾碼模塊1215的第一輸出值進(jìn)行異 或計(jì)算得到原始數(shù)據(jù)對(duì)應(yīng)的擾碼值,并添加幀頭和幀尾封裝成幀(幀的結(jié)構(gòu)圖^J圖IO所示), 最后將封裝好的幀寫入幀發(fā)送緩沖區(qū)1218。
幀發(fā)送模塊1212,按照SATA協(xié)議的時(shí)序和控制要求控制幀的發(fā)送、暫停、結(jié)束。
幀接收模塊1213,完成幀的解析,將經(jīng)過(guò)延時(shí)模塊1219的接收幀與解擾碼模塊1215的 第二輸出值進(jìn)行異或計(jì)算得到接收幀的數(shù)據(jù),再將所有數(shù)據(jù)送入循環(huán)冗余校驗(yàn)?zāi)K1214計(jì) 算第二循環(huán)冗余校驗(yàn)值,同時(shí)將數(shù)據(jù)寫入到接收數(shù)據(jù)緩沖區(qū)1217;如果循環(huán)冗余校驗(yàn)?zāi)K 1214計(jì)算得到的第二循環(huán)冗余校驗(yàn)值等于0,則輸出幀接收正確信息,如果循環(huán)冗余校驗(yàn)?zāi)?塊1214計(jì)算得到的第二循環(huán)冗余校驗(yàn)值不等于0,則輸出幀接收錯(cuò)誤信息。
寄存器組128由32個(gè)32比特的寄存器組成,用來(lái)存放SATA控制器1的控制信息和狀 態(tài)信息,該寄存器組是地址映射的,是軟件可讀出可寫入的。
用戶接口模塊11和126,包括PLB和NPI(Native Port Interface)接口, PLB接口實(shí)現(xiàn) 嵌入式處理器2和SATA控制器1之間控制信息和狀態(tài)信息的交換;NPI接口來(lái)實(shí)現(xiàn)第二片片 外存儲(chǔ)芯片DDR2 6和SATA控制器1之間數(shù)據(jù)的交換。
帶外信號(hào)控制模塊122,用于控制硬盤上電過(guò)程和硬盤硬件復(fù)位過(guò)程,從而建立SATA控 制器1和SATA硬盤A之間的通信鏈接。
接口傳輸率選擇模塊123,用于自動(dòng)選擇硬盤的接口傳輸率。
復(fù)位模塊124,負(fù)責(zé)產(chǎn)生各個(gè)子模塊的復(fù)位信號(hào),該模塊包括控制千兆位級(jí)收發(fā)器127 同步及復(fù)位的發(fā)送同步控制模塊和接收同步控制模塊。發(fā)送同步控制模塊和接收同步控制模 塊(由tx—sync—control, vhd和rx—sync—control, vhd實(shí)現(xiàn))分別控制千兆位級(jí)收發(fā)器127時(shí) 鐘相位同步以及復(fù)位信號(hào)。
千兆位級(jí)收發(fā)器127完成SATA協(xié)議的物理層,主要功能包括8B/10B編碼/解碼,串并/
并串轉(zhuǎn)換,逗點(diǎn)檢測(cè),時(shí)鐘修正,預(yù)側(cè)重和線性均衡等。 LED指示模塊125用來(lái)指示硬盤工作狀態(tài)。
方案所述的循環(huán)冗余校驗(yàn)?zāi)K1214為32位并行CRC-32循環(huán)冗余校驗(yàn)?zāi)K, 一個(gè)工作 時(shí)鐘輸出一個(gè)32位的循環(huán)冗余校驗(yàn)值。該模塊具有同步復(fù)位、異步復(fù)位和輸入數(shù)據(jù)有效使 能功能,當(dāng)同步復(fù)位或異步復(fù)位信號(hào)有效時(shí),輸出值全是0;當(dāng)并行輸入的32位數(shù)據(jù)有效時(shí), 經(jīng)過(guò)兩個(gè)工作時(shí)鐘延時(shí)后就輸出對(duì)應(yīng)的32位循環(huán)冗余校驗(yàn)值。該模塊的循環(huán)冗余校驗(yàn)碼成多項(xiàng)式是 ' b、XJ 一"T十T + T+ T+ T+ T+ T+ TT +
/V A A /V A A /V ^/V
/V /V >/V A
CRC32校驗(yàn)產(chǎn)生器的初始值是0x52325032。
方案所述的擾碼/解擾碼模塊1215為32位并行模塊, 一個(gè)工作時(shí)鐘輸出一個(gè)32位的擾 碼值。該模塊具有同步復(fù)位和工作使能功能,當(dāng)同步復(fù)位有效時(shí),輸出值全是0;當(dāng)工作使 能信號(hào)有效時(shí),經(jīng)過(guò)一個(gè)工作時(shí)鐘延時(shí)后就輸出一個(gè)32位的擾碼。該模塊的生成多項(xiàng)式是
G(幻=x16 + x15 + X13 + X4 " 該模塊的初始值是0xF0F6。
方案所述的帶外信號(hào)控制模塊122和接口傳輸率選擇模塊123,通過(guò)動(dòng)態(tài)配置端口對(duì)千 兆位級(jí)收發(fā)器127模塊的時(shí)鐘頻率進(jìn)行動(dòng)態(tài)調(diào)整,能夠自動(dòng)識(shí)別硬盤的接口傳輸率,完成硬 盤的上電過(guò)程或硬件復(fù)位過(guò)程,并同SATA控制器1建立通信鏈接。
電源和低功耗管理功能,控制器1中設(shè)計(jì)有一個(gè)看門狗,當(dāng)看門狗檢測(cè)到一個(gè)比較長(zhǎng)的 時(shí)間不發(fā)送數(shù)據(jù)時(shí)或者上層應(yīng)用軟件要求進(jìn)入低功耗模式時(shí),控制器1就會(huì)向SATA硬盤A 發(fā)送命令,使其進(jìn)入低功耗模式,同時(shí)設(shè)置千兆位級(jí)收發(fā)器127的低功耗使能端口,使千兆 位級(jí)收發(fā)器127進(jìn)入低功耗模式,禁止千兆位級(jí)收發(fā)器發(fā)送數(shù)據(jù),從而降低功耗;當(dāng)硬盤A
有數(shù)據(jù)要發(fā)送時(shí)或者上層應(yīng)用軟件要求退出低功耗模式時(shí),控制器1會(huì)重新設(shè)置千兆位級(jí)收 發(fā)器127的低功耗使能端口,并和其連接的SATA硬盤A重新建立通信鏈接,使通信雙方都
回到正常工作模式。
方案所述的用戶接口模塊11和126,包括PLB和NPI接口。其中,PLB接口實(shí)現(xiàn)嵌入式
處理器PPC440 2和SATA控制器1之間控制信息和狀態(tài)信息的交換。嵌入式處理器PPC440 2
通過(guò)PLB總線訪問(wèn)寄存器組128中的Error—reg, Command, Status, Device_Control,
Alt—status, Device, Sector—Count, Features, LBA_Low, LBA_Mid, LBA—High等一共32
個(gè)寄存器。NPI接口實(shí)現(xiàn)第二片片外存儲(chǔ)芯片DDR2 6和SATA控制器1之間數(shù)據(jù)的交換。從
第二片片外存儲(chǔ)芯片DDR2 6中讀數(shù)據(jù)時(shí),NPI接口控制模塊126按照NPI接口協(xié)議將訪問(wèn)
地址、數(shù)據(jù)長(zhǎng)度和控制信號(hào)給多端口存儲(chǔ)控制器5,在NPI接口控制模塊126和多端口存儲(chǔ)
控制器5的共同控制下,幾個(gè)時(shí)鐘周期后第二片片外存儲(chǔ)芯片DDR2 6中的數(shù)據(jù)就經(jīng)過(guò)NPI
接口寫入發(fā)送數(shù)據(jù)緩沖區(qū)1216中;向第二片片外存儲(chǔ)芯片DDR2 6中寫數(shù)據(jù)時(shí),NPI接口控
制模塊126按照NPI接口協(xié)議將訪問(wèn)地址、數(shù)據(jù)長(zhǎng)度和控制信號(hào)給多端口存儲(chǔ)控制器5,然
后在NPI接口控制模塊126的控制下,接收數(shù)據(jù)緩沖區(qū)1217中的數(shù)據(jù)經(jīng)過(guò)NPI接口傳到多端口存儲(chǔ)控制器5,多端口存儲(chǔ)控制器5就會(huì)將數(shù)據(jù)存入第二片片外存儲(chǔ)芯片DDR2 6中的 指定位置。
方案所述的LED指示模塊125控制四個(gè)LED,指示硬盤工作狀態(tài)LED—0燈亮,表明主 機(jī)已經(jīng)識(shí)別到硬盤,通信鏈接己經(jīng)建立,可以開始傳輸數(shù)據(jù),當(dāng)硬盤被移除時(shí)該燈熄滅;LED_1 燈亮表明連接的硬盤的接口傳輸率是3.0Gbps, LED_1燈熄滅表明連接的硬盤的接口傳輸率 是1. 5Gbps;發(fā)送數(shù)據(jù)過(guò)程中LED_2燈亮,數(shù)據(jù)發(fā)送完畢后該燈熄滅;接收數(shù)據(jù)過(guò)程中LED—3 燈亮,數(shù)據(jù)接收完畢后該燈熄滅。
如圖4所示,本發(fā)明的方案中,控制器l中幀的封裝、發(fā)送、解析分別由獨(dú)立的控制模 塊控制;幀生成模塊1211完成幀的封裝,幀發(fā)送模塊1212控制幀的發(fā)送、暫停、結(jié)束,幀 接收模塊1213完成幀的解析。這樣的模塊化設(shè)計(jì)可以減小單個(gè)模塊的規(guī)模和調(diào)試難度,還 有利于提高系統(tǒng)的工作頻率和并行性。
如圖4所示,本發(fā)明的方案中,控制器中使用三個(gè)緩沖區(qū)發(fā)送數(shù)據(jù)緩沖區(qū)1216、幀發(fā) 送緩沖區(qū)1218和接收數(shù)據(jù)緩沖區(qū)1217。發(fā)送數(shù)據(jù)緩沖區(qū)1216存放的是原始數(shù)據(jù),幀發(fā)送緩 沖區(qū)1218存放的是封裝好的、待發(fā)送的幀,接收數(shù)據(jù)緩沖區(qū)1217存放的是接收到的經(jīng)過(guò)解 擾碼后的數(shù)據(jù)。發(fā)送數(shù)據(jù)緩沖區(qū)1216可以使不連續(xù)的發(fā)送數(shù)據(jù)形成一定長(zhǎng)度的持續(xù)數(shù)據(jù)流, 便于幀生成模塊1211完成幀的封裝。幀發(fā)送模塊1212通過(guò)控制幀發(fā)送緩沖區(qū)1218的讀使 能信號(hào)即可及時(shí)控制幀的發(fā)送、暫停、結(jié)束,控制簡(jiǎn)單,響應(yīng)延遲時(shí)間短。此外,幀發(fā)送緩 沖區(qū)1218在發(fā)送幀的同時(shí)發(fā)送數(shù)據(jù)緩沖區(qū)1216可以接收數(shù)據(jù),并行操作提高了數(shù)據(jù)的傳輸 效率和性能。
本發(fā)明能夠獲得的技術(shù)效果為
1: 一片F(xiàn)PGA就可以實(shí)現(xiàn)SATA協(xié)議的所有功能,減少了PCB面積,提高了可靠性,使 設(shè)備更加小型化。
2:該控制器既可以作為主設(shè)備控制器又可以作為從設(shè)備控制器,既支持第一代SATA接 口標(biāo)準(zhǔn)(接口傳輸率是1. 5Gbps)又支持第二代SATA接口標(biāo)準(zhǔn)(接口傳輸率是3. 0Gbps),而且 可以自動(dòng)識(shí)別連接的設(shè)備是符合第一代SATA接口標(biāo)準(zhǔn)還是第二代SATA接口標(biāo)準(zhǔn),并選擇相 應(yīng)的接口傳輸率與其建立通信鏈接。圖1是控制器1支持的傳輸幀類型。
3:在FPGA中實(shí)現(xiàn)SATA控制器,通用性好,易升級(jí),易移植,性能高。采用模塊化和層 次化的設(shè)計(jì)使得控制器可以移植到不同廠商生產(chǎn)的FPGA上或者一片F(xiàn)PGA中實(shí)現(xiàn)多個(gè)SATA 控制器。
4:支持熱拔插和電源、低功耗管理。
圖6和圖7分別是該控制器連接不同型號(hào)SATA硬盤的持續(xù)順序讀寫性能圖,硬盤的接口傳輸率都是3. 0Gbps。需要說(shuō)明的是不要理解為該控制器的持續(xù)數(shù)據(jù)傳輸率最高不能夠超 過(guò)120MB/s,因?yàn)閳D2實(shí)例中實(shí)驗(yàn)數(shù)據(jù)的測(cè)得受到SATA硬盤持續(xù)讀寫速率的限制,而非來(lái)自 控制器本身。從圖6和圖7的數(shù)據(jù)上來(lái)看,該控制器在對(duì)單個(gè)SATA硬盤的持續(xù)順序讀控制 上,分別達(dá)到了硬盤持續(xù)讀速率極限值的65.1%, 97.2%, 81.7%;對(duì)單個(gè)SATA硬盤的持續(xù)順 序?qū)懣刂粕希?分別達(dá)到了硬盤持續(xù)寫速率極限值的64.7%, 72.1%, 81.1%。圖9是該控制器 在XC5VFX130T-2FF1738中資源占用情況,從圖9可以看出在XC5VFX130T-2FF1738中實(shí)現(xiàn)一 個(gè)SATA控制器PLB2SATAIP只占用4%左右的可編程邏輯資源,所以在該片F(xiàn)PGA中就可以6 到20個(gè)同樣的SATA控制器,同時(shí)與SATA硬盤或者滿足SATA協(xié)議的設(shè)備進(jìn)行通信。


圖1是控制器支持的傳輸幀類型;
圖2是基于FPGA的SATA控制器的一個(gè)實(shí)例結(jié)構(gòu)圖3是SATA控制器PLB2SATAIP的結(jié)構(gòu)圖4是SATA—CONTROL子模塊的結(jié)構(gòu)圖5是SATA控制器PLB2SATAIP的硬件描述語(yǔ)言實(shí)現(xiàn)模塊的層次圖; 圖6是控制器采用DMA方式持續(xù)順序讀不同型號(hào)硬盤的平均帶寬曲線圖; 圖7是控制器采用DMA方式持續(xù)順序?qū)懖煌吞?hào)硬盤的平均帶寬曲線圖; 圖8是先向硬盤寫數(shù)據(jù)然后讀數(shù)據(jù)的程序流程圖9是XC5VFX130T-2FF1738中實(shí)現(xiàn)控制器PLB2SATAIP的資源占用情況一覽表;
圖10是幀的結(jié)構(gòu)圖。
附圖標(biāo)記說(shuō)明如下
1— - PLB2SATAIP,
2— 嵌入式處理器PPC440,
3— PPC440MC_DDR2控制器,
4— -第一片片外存儲(chǔ)芯片DDR2,
5— 多端口存儲(chǔ)控制器,
6— 第二片片外存儲(chǔ)芯片DDR2,
7— 網(wǎng)口控制器,
8— 串口控制器,
9— -通用端口控制器, A-- SATA硬盤, 12—UERJDGIC模塊,11— PLB—IPIF模塊,
121— SATA—CONTROL模塊,
122— -帶外信號(hào)控制模塊,
123— 接口傳輸率選擇模塊,
124— 復(fù)位模塊,
125— LED指示模塊,
126— NPI接口控制模塊,
127— 千兆位級(jí)收發(fā)器,
128— 寄存器組,
1211- -幀生成模塊,
1212- -幀發(fā)送模塊,
1213- 幀接收模塊,
1214- -循環(huán)冗余校驗(yàn)?zāi)K,
1215- -擾碼/解擾碼模塊,
1216- -發(fā)送數(shù)據(jù)緩沖區(qū),
1217- 接收數(shù)據(jù)緩沖區(qū),
1218- 幀發(fā)送緩沖區(qū),
1219- 延時(shí)模塊。
具體實(shí)施例方式
本發(fā)明中,SATA協(xié)議的應(yīng)用層由嵌入式處理器PPC440 2來(lái)實(shí)現(xiàn),主要完成硬盤的參數(shù) 配置和讀寫操作命令。SATA協(xié)議的傳輸層和鏈路層由SATAJX)NTR0L模塊121來(lái)完成,該模 塊是通過(guò)硬件描述語(yǔ)言設(shè)計(jì)在FPGA中生產(chǎn)相應(yīng)的電路來(lái)實(shí)現(xiàn),參見(jiàn)圖3-5。該模塊完成幀的 封裝,幀的發(fā)送、暫停、結(jié)束控制,幀的解析和校驗(yàn)。SATA協(xié)議的物理層由千兆位級(jí)收發(fā)器 127、帶外信號(hào)控制模塊122和接口傳輸率選擇模塊123實(shí)現(xiàn)。千兆位級(jí)收發(fā)器127的主要 功能包括8B/10B編碼/解碼,串并/并串轉(zhuǎn)換,逗點(diǎn)檢測(cè),時(shí)鐘修正,預(yù)側(cè)重和線性均衡等。 帶外信號(hào)控制模塊122和接口傳輸率選擇模塊123能夠自動(dòng)識(shí)別硬盤的接口傳輸率,完成硬 盤的上電過(guò)程或硬件復(fù)位過(guò)程,并同SATA控制器1建立通信鏈接。
參照?qǐng)D5可知PLB2SATAIP分為四個(gè)模塊plbv46—slave—single, vhd, soft_reset. vhd,
intermpt—corvtrol. vhd, user—logic, vhd. user—logic, vhd子模塊包括NPI—control. vhd,
led. vhd , mgt—userclk—source, vhd , tx—sync—control, vhd , rx—sync—control, vhd ,
oob—control, v, interface—rate—sel. v, sata. vhd , registers, vhd, sata一control. vhd幾個(gè)部分。sata. vhd還包括sata—tile, vhd模塊。sata_control. vhd又包括如下幾個(gè)子模 塊 frame—send_fifo. vhd ,receive—data_fifo. vhd ,send—data一fifo. vhd , frame一send一contro1. vhd ■ , frame一gen一control. vhd , frame—rvd一control. vhd , crc一module. vhd, scramble, vhd。
plbv46一sl.ave—single. vhd,soft—reset, vhd,interrupt—control, vhd,'.-"'sata. vhd', sata—tile, vhd五個(gè)模塊都是X化INX公司提供給用戶使'用的模塊, plbv46—slave—single, vhd主要實(shí)現(xiàn)PLB2SATAIP 1的PLB總線接口協(xié)議,soft—reset, vhd 實(shí)現(xiàn)PLB2SATAIP 1的軟件復(fù)位功能,internet—control, vhd負(fù)責(zé)PLB2SATAIP 1的中斷控 制。sata. vhd和sata—tile, vhd就是經(jīng)過(guò)配置了的千兆位級(jí)收發(fā)器127,主要功能包括8B/10B 編碼/解碼,串并/并串轉(zhuǎn)換,逗點(diǎn)檢測(cè),時(shí)鐘修正,預(yù)側(cè)重和線性均衡等。其余模塊是本發(fā)
明作者設(shè)計(jì)、編寫的。
結(jié)合圖2-5對(duì)本發(fā)明做進(jìn)一步的描述
向硬盤A寫數(shù)據(jù)時(shí),NPI接口控制模塊126按照NPI接口協(xié)議將訪問(wèn)地址,數(shù)據(jù)長(zhǎng)度和 控制信號(hào)給多端口存儲(chǔ)控制器5,在NPI控制模塊126和多端口存儲(chǔ)控制器5的共同控制下, 幾個(gè)時(shí)鐘周期后第二片片外DDR2 6中的原始數(shù)據(jù)就經(jīng)過(guò)NPI接口寫入發(fā)送數(shù)據(jù)緩沖區(qū)1216 中。發(fā)送數(shù)據(jù)緩沖區(qū)1216中數(shù)據(jù)聚集到一定數(shù)量時(shí),幀生成模塊1211就讀出發(fā)送數(shù)據(jù)緩沖 區(qū)1216的原始數(shù)據(jù),讀出的原始數(shù)據(jù)分為兩路, 一路送給循環(huán)冗余校驗(yàn)?zāi)K1214計(jì)算第一 循環(huán)冗余校驗(yàn)值,計(jì)算得到的第一循環(huán)冗余校驗(yàn)值通過(guò)2選1選擇器置于數(shù)據(jù)的最后作為幀 的內(nèi)容,計(jì)算得到的第一循環(huán)冗余校驗(yàn)值與擾碼/解擾碼模塊(1215)的第一輸出值進(jìn)行異或 計(jì)算得到第一循環(huán)冗余校驗(yàn)值對(duì)應(yīng)的擾碼值,另一路原始數(shù)據(jù)經(jīng)過(guò)延時(shí)模塊1219后與擾碼 模塊1215的第一輸出值進(jìn)行異或計(jì)算得到原始數(shù)據(jù)對(duì)應(yīng)的擾碼值,幀頭和幀尾在讀數(shù)據(jù)的 時(shí)候分別寫入了幀發(fā)送緩沖區(qū)1218。幀發(fā)送緩沖區(qū)1218中存放的是一個(gè)完整的、待發(fā)送的 幀順結(jié)構(gòu)如圖IO所示)。當(dāng)幀發(fā)送緩沖區(qū)1218中數(shù)據(jù)聚集到一定數(shù)量時(shí),幀發(fā)送模塊1212 就發(fā)送請(qǐng)求原語(yǔ),然后按照SATA協(xié)議的時(shí)序控制要求控制幀發(fā)送緩沖區(qū)1218的讀使能,從 而控制幀的發(fā)送、暫停和結(jié)束。幀發(fā)送緩沖區(qū)1218讀出的并行數(shù)據(jù)送入千兆位級(jí)收發(fā)器127, 經(jīng)過(guò)8B/10B編碼,并串轉(zhuǎn)換等處理后變成低壓差分信號(hào),該低壓差分信號(hào)通過(guò)TX一N和TX—P 端口送到SATA電纜上;
從硬盤A讀數(shù)據(jù)時(shí),SATA電纜上的低壓差分信號(hào)通過(guò)RX—N和RX一P端口進(jìn)入千兆位級(jí)收
發(fā)器127,經(jīng)過(guò)串并轉(zhuǎn)換,8B/10B解碼,逗點(diǎn)檢測(cè)等處理后變成并行數(shù)據(jù)并送入幀接收模塊
1213處理。幀接收模塊1213先將經(jīng)過(guò)延時(shí)模塊1219的接收幀與解擾碼模塊1215的第二輸
出值進(jìn)行異或計(jì)算得到接收幀的數(shù)據(jù),再將所有數(shù)據(jù)送入循環(huán)冗余校驗(yàn)?zāi)K1214計(jì)算第二循環(huán)冗余校驗(yàn)值,同時(shí)將數(shù)據(jù)寫入接收數(shù)據(jù)緩沖區(qū)1217;如果循環(huán)冗余校驗(yàn)?zāi)i 1214計(jì)算 得到的第二循環(huán)冗余校驗(yàn)值等于0,則表示該幀在傳輸過(guò)程中沒(méi)有發(fā)生錯(cuò)誤,幀接收模塊1213 就輸出幀接收正確信息;如果計(jì)算得到的第二循環(huán)冗余校驗(yàn)值不等于O,則表示該幀在傳輸 過(guò)程中發(fā)生了錯(cuò)誤,幀接收模塊1213就輸出幀接收錯(cuò)誤信息。等接收數(shù)據(jù)緩沖區(qū)1217中數(shù) 據(jù)聚集到一定數(shù)量時(shí),NPI接口控制模塊126按照NPI接口協(xié)議將訪問(wèn)地址、數(shù)據(jù)長(zhǎng)度和控 制信號(hào)給多端口存儲(chǔ)控制器5,在NPI控制模塊126的控制下,接收數(shù)據(jù)緩沖區(qū)1217中的數(shù) 據(jù)就經(jīng)過(guò)NPI接口傳入多端口存儲(chǔ)控制器5,多端口存儲(chǔ)控制器5就會(huì)將數(shù)據(jù)存入第二片片 外DDR2 6中的指定位置。
本實(shí)施案例的FPGA平臺(tái)采用XILINX公司的XC5VFX130T-2FF1738芯片,嵌入式處理器 選用其內(nèi)嵌的硬核PPC440 2, 1. 01A版本。PPC440 2通過(guò)MC接口與IP核PPC440MC—DDR2 3 相連,IP核PPC440MC—DDR2 3是第一片片外存儲(chǔ)芯片DDR2 4的控制器。第一片片外存儲(chǔ)芯 片型號(hào)是WD2RE512X809-667D,用于存放系統(tǒng)的軟件代碼。PPC440 2通過(guò)PLB接口 (4. 6版本) 與多端口存儲(chǔ)控制器5相連,多端口存儲(chǔ)控制器5是第二片片外存儲(chǔ)芯片DDR2 6的控制器。 第二片片外存儲(chǔ)芯片型號(hào)也是WD2RE512X809-667D,用于存放數(shù)據(jù)。SATA控制器PLB2SATAIP 1也連接在PLB總線上,PPC440 2通過(guò)PLB總線就可以訪問(wèn)PLB2SATAIP 1的寄存器組。PPC440 2與外部設(shè)備(如圖3中的串口、網(wǎng)等口)都是通過(guò)PLB連接。PPC440 2通過(guò)訪問(wèn)SATA控制 器1的32個(gè)寄存器完成對(duì)SATA硬盤的參數(shù)配置和讀寫命令控制。
LED顯示模塊125控制四個(gè)LED,指示硬盤工作狀態(tài)LED—O燈亮,表明主機(jī)己經(jīng)識(shí)別到 硬盤,通信鏈接已經(jīng)建立,可以開始傳輸數(shù)據(jù),當(dāng)硬盤被移除時(shí)該燈熄滅;LEDJ燈亮表明 連接的硬盤的接口傳輸率是3.0Gbps, LED—1燈熄滅表明連接的硬盤的接口傳輸率是 1.5Gbps;發(fā)送數(shù)據(jù)過(guò)程中LED—2燈亮,數(shù)據(jù)發(fā)送完畢后該燈熄滅;接收數(shù)據(jù)過(guò)程中LED_3
燈亮,數(shù)據(jù)接收完畢后該燈熄滅。
按照?qǐng)D2所示搭建硬件平臺(tái),將產(chǎn)生的比特流下載到XC5VFX130T-2FF1738芯片中產(chǎn)生 相應(yīng)的硬件電路,圖9是控制器1下載到XC5VFX130T-2FF1738芯片中資源占用情況,然后 將編寫好的SATA控制器的驅(qū)動(dòng)程序和測(cè)試代碼下載到第一片DDR2 4中,使用CHIPSCOPE 和硬件描述語(yǔ)言編寫的測(cè)試邏輯來(lái)觀察、分析數(shù)據(jù)的正誤,使用編寫的軟件測(cè)試并計(jì)算持續(xù) 讀、寫的數(shù)據(jù)帶寬,軟件流程圖如圖8所示。持續(xù)讀、寫帶寬等于總的讀、寫數(shù)據(jù)量除以總 的讀、寫時(shí)間??偟臅r(shí)間是通過(guò)對(duì)固定頻率的時(shí)鐘計(jì)數(shù)換算得到的,總的數(shù)據(jù)量是通過(guò)對(duì)發(fā) 送幀計(jì)數(shù)換算得到的,圖6,圖7分別是控制器對(duì)不同型號(hào)硬盤進(jìn)行持續(xù)順序讀和寫的平均 帶寬。
權(quán)利要求
1、基于FPGA的SATA控制器,特征在于該控制器包括循環(huán)冗余校驗(yàn)?zāi)K(1214)在發(fā)送幀時(shí),用于計(jì)算該幀的第一循環(huán)冗余校驗(yàn)值,該第一循環(huán)冗余校驗(yàn)值由幀生成模塊(1211)置于數(shù)據(jù)最后作為幀的內(nèi)容;接收幀時(shí),用于計(jì)算經(jīng)過(guò)解擾碼后該幀所有數(shù)據(jù)的第二循環(huán)冗余校驗(yàn)值,如果計(jì)算得到的第二循環(huán)冗余校驗(yàn)值不等于0,則說(shuō)明數(shù)據(jù)在傳輸過(guò)程中出現(xiàn)了錯(cuò)誤,由幀接收模塊(1213)給出幀接收錯(cuò)誤信息,如果第二循環(huán)冗余校驗(yàn)值等于0,則說(shuō)明數(shù)據(jù)在傳輸過(guò)程中沒(méi)有出現(xiàn)錯(cuò)誤,由幀接收模塊(1213)給出幀接收正確信息;擾碼/解擾碼模塊(1215)在發(fā)送幀時(shí),用于對(duì)發(fā)送的原始數(shù)據(jù)及原始數(shù)據(jù)的第一循環(huán)冗余校驗(yàn)值進(jìn)行擾碼計(jì)算;接收幀時(shí),用于對(duì)接收幀進(jìn)行解擾碼計(jì)算,解出原始數(shù)據(jù)及原始數(shù)據(jù)的第一循環(huán)冗余校驗(yàn)值;幀生成模塊(1211)完成幀的封裝,將發(fā)送數(shù)據(jù)緩沖區(qū)(1216)讀出來(lái)的原始數(shù)據(jù)分為兩路,一路原始數(shù)據(jù)直接送入循環(huán)冗余校驗(yàn)?zāi)K(1214)計(jì)算第一循環(huán)冗余校驗(yàn)值,計(jì)算得到的第一循環(huán)冗余校驗(yàn)值通過(guò)2選1選擇器置于原始數(shù)據(jù)的最后作為幀的內(nèi)容,計(jì)算得到的第一循環(huán)冗余校驗(yàn)值與擾碼/解擾碼模塊(1215)的第一輸出值進(jìn)行異或計(jì)算得到第一循環(huán)冗余校驗(yàn)值對(duì)應(yīng)的擾碼值,另一路原始數(shù)據(jù)經(jīng)過(guò)延時(shí)模塊(1219)后與擾碼/解擾碼模塊(1215)的第一輸出值進(jìn)行異或計(jì)算得到原始數(shù)據(jù)對(duì)應(yīng)的擾碼值,并添加幀頭和幀尾封裝成幀,最后將封裝好的幀寫入幀發(fā)送緩沖區(qū)(1218);幀發(fā)送模塊(1212)按照SATA協(xié)議的時(shí)序和控制要求控制幀的發(fā)送、暫停、結(jié)束;幀接收模塊(1213)完成幀的解析,將經(jīng)過(guò)延時(shí)模塊(1219)的接收幀與擾碼/解擾碼模塊(1215)的第二輸出值進(jìn)行異或計(jì)算得到接收幀的數(shù)據(jù),再將所有數(shù)據(jù)送入循環(huán)冗余校驗(yàn)?zāi)K(1214)計(jì)算第二循環(huán)冗余校驗(yàn)值,同時(shí)將數(shù)據(jù)寫入接收數(shù)據(jù)緩沖區(qū)(1217),如果循環(huán)冗余校驗(yàn)?zāi)K(1214)計(jì)算得到的第二循環(huán)冗余校驗(yàn)值等于0,則輸出幀接收正確信息,如果循環(huán)冗余校驗(yàn)?zāi)K(1214)計(jì)算得到的第二循環(huán)冗余校驗(yàn)值不等于0,則輸出幀接收錯(cuò)誤信息;寄存器組(128)用于存放SATA控制器(1)的控制信息和狀態(tài)信息,該寄存器組是軟件可讀出可寫入的;用戶接口模塊(11,126)包括PLB和NPI接口,PLB接口實(shí)現(xiàn)嵌入式處理器(2)和SATA控制器(1)之間控制信息和狀態(tài)信息的交換,NPI接口來(lái)實(shí)現(xiàn)第二片片外存儲(chǔ)芯片DDR2(6)和SATA控制器(1)之間數(shù)據(jù)的交換;帶外信號(hào)控制模塊(122)用于控制硬盤上電過(guò)程和硬件復(fù)位過(guò)程,從而建立SATA控制器(1)和SATA硬盤(A)之間的通信鏈接;接口傳輸率選擇模塊(123)用于自動(dòng)選擇硬盤的接口傳輸率;復(fù)位模塊(124),負(fù)責(zé)產(chǎn)生各個(gè)子模塊的復(fù)位信號(hào),該模塊包括控制千兆位級(jí)收發(fā)器(127)同步及復(fù)位的發(fā)送同步控制模塊和接收同步控制模塊;千兆位級(jí)收發(fā)器(127)完成SATA協(xié)議的物理層,主要功能包括8B/10B編碼/解碼,串并/并串轉(zhuǎn)換,逗點(diǎn)檢測(cè),時(shí)鐘修正,預(yù)側(cè)重和線性均衡;LED指示模塊(125)用于指示硬盤工作狀態(tài)。
2、 如權(quán)利要求l所述的基于FPGA的SATA控制器(l),特征在于所述的循環(huán)冗余校驗(yàn)?zāi)K(1214)為32位并行CRC-32循環(huán)冗余校驗(yàn)?zāi)K,輸出也是32位;該模塊具有同步復(fù)位、異步復(fù)位和輸入數(shù)據(jù)有效使能控制功能;該模塊的CRC校驗(yàn)碼生成多項(xiàng)式是-<formula>formula see original document page 3</formula>CRC-32校驗(yàn)產(chǎn)生器的初始值是0x52325032。
3、 如權(quán)利要求1所述的基于FPGA的SATA控制器(l),特征在于:所述的擾碼/解擾碼模塊(1215)為32位并行模塊,輸出也是32位;該模塊具有同步復(fù)位和工作使能控制功能;該模塊的生成多項(xiàng)式是<formula>formula see original document page 3</formula>該模塊的初始值是0xF0F6。
4、 如權(quán)利要求l所述的基于FPGA的SATA控制器(l),特征在于所述的帶外信號(hào)控制模塊(122)和接口傳輸率選擇模塊(123)通過(guò)動(dòng)態(tài)配置端口對(duì)千兆位級(jí)收發(fā)器(127)的時(shí)鐘頻率進(jìn)行動(dòng)態(tài)調(diào)整,能夠自動(dòng)識(shí)別硬盤的接口傳輸率,完成硬盤的上電過(guò)程或硬盤硬件復(fù)位,并和SATA控制器(1)建立通信鏈接。
5、 如權(quán)利要求l所述的基于FPGA助SATA控制器(l),特征在于控制器(l)通過(guò)電源管理能夠降低功耗;控制器(l)中設(shè)計(jì)有一個(gè)看門狗,當(dāng)看門狗檢測(cè)到一個(gè)比較長(zhǎng)的時(shí)間沒(méi)有發(fā)送數(shù)據(jù)時(shí)或者上層應(yīng)用軟件要求進(jìn)入低功耗模式時(shí),SATA控制器(l)就會(huì)向SATA硬盤(A)發(fā)送命令,使其進(jìn)入低功耗模式,同時(shí)設(shè)置千兆位級(jí)收發(fā)器(127)的低功耗使能端口,使千兆位級(jí)收發(fā)器(127)進(jìn)入低功耗模式,禁止千兆位級(jí)收發(fā)器(127)發(fā)送數(shù)據(jù),從而降低功耗;當(dāng)硬盤(A)有數(shù)據(jù)要發(fā)送時(shí)或者上層應(yīng)用軟件要求退出低功耗模式時(shí),控制器(1)會(huì)重新設(shè)置千兆位級(jí)收發(fā)器(127)的低功耗使能端口,并和其連接的SATA硬盤(A)重新建立通信鏈接,使通信雙方都回到正常工作模式。
6、 如權(quán)利要求1所述的基于FPGA的SATA控制器(l),特征在于:寄存器組(128)由32個(gè)32比特的寄存器組成,用來(lái)存放SATA控制器(1)的控制信息和狀態(tài)信息,該寄存器組是地址映射的,是軟件可讀出可寫入的。
7、 如權(quán)利要求l所述的基于FPGA的SATA控制器(l),特征在于LED指示模塊(125)控制四個(gè)LED,指示硬盤工作狀態(tài)LEDJ)燈亮,表明主機(jī)已經(jīng)識(shí)別到硬盤,通信鏈接己經(jīng)建立,可以開始傳輸數(shù)據(jù),當(dāng)硬盤被移除時(shí)該燈熄滅;LED—l燈亮表明連接的硬盤的接口傳輸率是3.0Gbps, LED_1燈熄滅表明連接的硬盤的接口傳輸率是L5Gbps;發(fā)送數(shù)據(jù)過(guò)程中LED—2燈亮,數(shù)據(jù)發(fā)送完畢后該燈熄滅;接收數(shù)據(jù)過(guò)程中LED一3燈亮,數(shù)據(jù)接收完畢后該燈熄滅。
8、 如權(quán)利要求l所述的基于FPGA的SATA控制器(l),特征在于控制器中幀的封裝、發(fā)送、解析分別由獨(dú)立的控制模塊控制;幀生成模塊(1211)完成幀的封裝,幀發(fā)送模塊(1212)控制幀的發(fā)送、暫停、結(jié)束,幀接收模塊(1213)完成幀的解析。
9、 如權(quán)利要求l所述的基于FPGA的SATA控制器(l),特征在于控制器中使用三個(gè)緩沖區(qū)發(fā)送數(shù)據(jù)緩沖區(qū)(1216)、幀發(fā)送緩沖區(qū)(1218)和接收數(shù)據(jù)緩沖區(qū)(1217);發(fā)送數(shù)據(jù)緩沖區(qū)(1216)存放的是原始數(shù)據(jù),幀發(fā)送緩沖區(qū)(1218)存放的是封裝好的、待發(fā)送的幀,接收數(shù)據(jù)緩沖區(qū)(1217)存放的是接收到的經(jīng)過(guò)解擾碼后的數(shù)據(jù)。
全文摘要
一種基于FPGA的SATA控制器包括循環(huán)冗余校驗(yàn)?zāi)K對(duì)數(shù)據(jù)進(jìn)行循環(huán)冗余校驗(yàn)計(jì)算;擾碼/解擾碼模塊用于對(duì)數(shù)據(jù)進(jìn)行擾碼/解擾碼計(jì)算;幀生成模塊完成幀的封裝;幀發(fā)送模塊控制幀的發(fā)送、暫停、結(jié)束;幀接收模塊完成幀的解析;寄存器組用來(lái)存放控制器的控制、狀態(tài)信息;用戶接口模塊分別通過(guò)PLB和NPI接口實(shí)現(xiàn)處理器和控制器、存儲(chǔ)器和控制器之間的信息和數(shù)據(jù)交換;帶外信號(hào)控制模塊用于控制硬盤上電和硬件復(fù)位過(guò)程,建立控制器和硬盤之間的通信鏈接;接口傳輸率選擇模塊用于自動(dòng)選擇硬盤的接口傳輸率;復(fù)位模塊產(chǎn)生各子模塊的復(fù)位信號(hào);千兆位級(jí)收發(fā)器主要完成8B/10B編解碼,串并轉(zhuǎn)換,時(shí)鐘修正等;LED指示模塊用于指示硬盤工作狀態(tài)。
文檔編號(hào)G06F3/06GK101599004SQ20091008925
公開日2009年12月9日 申請(qǐng)日期2009年7月10日 優(yōu)先權(quán)日2009年7月10日
發(fā)明者威 吳, 吳欽章, 蘇海冰, 帥 郭 申請(qǐng)人:中國(guó)科學(xué)院光電技術(shù)研究所
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
兴山县| 仁寿县| 平南县| 泰宁县| 准格尔旗| 太和县| 开远市| 长沙市| 栾城县| 巨野县| 淮阳县| 邵阳县| 长寿区| 庆阳市| 伊春市| 金平| 柳州市| 茶陵县| 华宁县| 内江市| 新河县| 五河县| 辉县市| 龙游县| 宜昌市| 贵溪市| 华容县| 儋州市| 安多县| 宜兰县| 聂荣县| 昂仁县| 集安市| 江孜县| 福清市| 台南市| 壶关县| 东乌| 定安县| 武陟县| 光泽县|