《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 利用FPGA和DSP直接控制硬盤實現存儲控制的方法
利用FPGA和DSP直接控制硬盤實現存儲控制的方法
摘要: 數據存儲是數據采集過程中的一個重要環節,目前大部分數據存儲系統都是用內置工控機的方法完成數據保存任務,這種方法系統功耗大,硬件成本高,不適用于具有內記功能要求的系統。本系統采用FPGA和DSP直接控制硬盤進行數據存儲,并采用一片FIFO 作為數據緩存,設計思路比較新穎,硬件結構簡單,成本低,直接控制硬盤的方法可將系統功耗降至最低,具有自動內記功能,能及時存儲采集到的數據。本系統已經應用于某信號采集設備中,實踐證明可滿足使用要求,能夠滿足80Khz數據采樣率系統的存盤要求。
關鍵詞: FPGA DSP 硬盤 FIFO
Abstract:
Key words :

       1 引言

  數據存儲是數據采集過程中的一個重要環節,目前大部分數據存儲系統都是用內置工控機的方法完成數據保存任務,這種方法系統功耗大,硬件成本高,不適用于具有內記功能要求的系統。本系統采用FPGADSP直接控制硬盤進行數據存儲,并采用一片FIFO 作為數據緩存,設計思路比較新穎,硬件結構簡單,成本低,直接控制硬盤的方法可將系統功耗降至最低,具有自動內記功能,能及時存儲采集到的數據。本系統已經應用于某信號采集設備中,實踐證明可滿足使用要求,能夠滿足80Khz數據采樣率系統的存盤要求。

  2 系統實現方案

  本設計采用FPGA和DSP直接控制硬盤[1][2],并采用一片FIFO作為數據緩存,系統采用DSP完成文件管理工作,利用FPGA實現DSP與硬盤的接口。具體框圖如圖1所示。

  圖1 方案實現框圖

  首先由采集控制板FPGA將FIFO復位,需要儲存數據時數據流直接將數據寫入FIFO,當存儲控制板FPGA查詢到FIFO的狀態為非空時就輸出BIO信號通知DSP啟動存盤程序。DSP先訪問硬盤確定所需參數,如下一個文件應使用的文件名,保存文件的邏輯扇區號等。然后DSP向硬盤發出存盤命令,當硬盤響應控制命令后,DSP通知FPGA可以向硬盤傳輸數據。存盤時FPGA從FIFO中讀出數據并將數據打包,由8bit變為16bit,并寫入硬盤數據寄存器。當存滿40M時,DSP通知采集控制系統已寫滿一個文件,采集控制系統將FIFO復位完成一次存盤操作。

  3 存儲控制程序流程

  程序啟動后,首先將硬盤Device register中的SRST置1使硬盤復位,在硬盤復位后讀取MBR0和BPB0,在FAT中找到Special Sector并檢查是否有標志位0x55FF,如果沒有則說明硬盤是第1次被使用,如果有則從中讀取參數準備傳輸數據。

  (1) 為了在每次啟動程序后能迅速查找到應使用的文件名、下一個空簇的位置、正在使用的磁盤等參數,將硬盤第3簇中第1扇區標志為Special Sector,用于儲存這些參數。

  (2)每個磁盤被劃分出200M空間為保留區,當發現磁盤空間不足200M時即顯示磁盤已滿,不在用當前磁盤存儲數據而是使用下一個磁盤。

  (3)每個磁盤第2簇為目錄區,因使用短文件名無子目錄,所以當每簇為16扇區時目錄區共可儲存256個文件名。

  (4)數據文件大小固定為40M。

  如果硬盤是第一次被使用,則主機順次讀取MBR0、BPB0、MBR1、BPB1直到查詢到最后一個硬盤分區,并將相關參數如每個分區的大小、分區的邏輯地址、每個分區數據空間起始段的邏輯地址、FAT表邏輯地址等信息寫入Special Sector,并做一個文件的目錄(32字節)將第一個文件命名為“000.dat”。

  當FAT中第三簇被標志為壞簇時,表明已經在硬盤上劃分Special Sector并已存入硬盤參數。主機從Special Sector中讀取下一個可用空簇,并計算這一簇在FAT中的位置并將FAT讀入C54的RAM中,讀取Special Sector中的文件名及相關參數并將其寫入目錄區。然后查詢BIO,當BIO為低電平時開始傳輸數據(參見儲存板接口),傳輸數據時FPGA啟動元件 trans_data,由主機發出XF作為啟動信號。FPGA從FIFO中每讀出2Bytes向硬盤寫一次,連續寫256次,即向硬盤傳輸512字節數據。主機每發出一個XF下降沿FPGA就從FIFO中讀取512字節數據并存入硬盤。

  傳輸40M數據結束后,主機將根據傳輸的扇區數填寫FAT表,判斷硬盤空間是否小于200M、已儲存的文件數是否大于256,如果為真則再次存儲數據時將使用下一個磁盤分區。

  4 硬盤操作控制流程

  我們一般習慣稱硬盤接口為IDE接口[3],對硬盤的操作如讀寫扇區,發送命令等都是通過讀寫寄存器來完成的,每向硬盤發送一組命令后都要讀取狀態寄存器中的信息,通過狀態寄存器的值來判斷硬盤是否已經執行完所發送的命令。

  4.1 硬盤啟動操作

  硬盤加電后應先將硬盤復位,硬盤復位方式有三種,本設計采用的是將SRST置1,當SRST被置1后硬盤立即復位,這時應至少等待2ms才讀取Status register。如果Status register的值為80h,則表明硬盤已完成復位。硬盤啟動流程見圖2。

  圖2 硬盤啟動程序流程圖

  圖3 扇區讀寫操作程序流程圖

  4.2 扇區讀寫操作

  首先應向硬盤發送命令參數,將要讀寫的扇區數目寫入Sector count register,將扇區的邏輯地址寫入LBA High register、LBA Mid register和LBA Low register,將要接收命令的設備號寫入Device register。流程見圖3。

  LBA=(柱面編號×磁頭數+磁頭編號)×扇區數+扇區編號-1

  將命令READ SECTOR或WRITE SECTOR寫入Command register后,在400ns內Status register的值并不可靠,所以需等待400ns才能讀取Status register,這段等待時間可以通過讀取Alternate Status register和Error register度過,讀取的數值應被丟棄。當狀態寄存器的值為58h時,表示硬盤已經可以從Data register接收或傳輸數據。

  4.3 DMA操作流程

  DMA操作與I/O操作相似,流程見圖4,首先應向硬盤發送命令參數,將要讀寫的扇區數目寫入 Sector count register,將扇區的邏輯地址寫入LBA High register、LBA Mid register和LBA Low register,將要接收命令的設備號寫入Device register。將命令READ DMA或 WRITE DMA寫入Command register后,在400ns內Status register的值并不可靠,所以需等待400ns才能讀取Status register,這段等待時間可以通過讀取Alternate Status register和Error register度過,讀取的數值應被丟棄。當狀態寄存器值為58h時主機應給出DMA初始化時序開始傳輸數據。

  圖4  DMA操作流程圖

  5 設計中的重點

  5.1 采樣率問題

  數據采集及存儲系統一般都有采樣率要求,采樣率一般要求大于50K,才能滿足快速實時采集數據的要求。本系統中速度較慢的環節是硬盤存儲環節,硬盤接口設計存盤速度為7.8Mbyte/S,顯然采集速率與存盤速率并不匹配,解決的措施為采用一片 FIFO作為數據緩沖區。由于對硬盤操作過程中,需不斷查詢其狀態,而硬盤狀態改變時間又不確定,所以要選用存儲深度較大的FIFO作為緩存,IDT公司的72V2101滿足設計要求[5]。工作時數據直接將數據寫入FIFO,FPGA查詢FIFO的狀態,為非空時,協調DSP訪問硬盤,進行存儲操作,這樣采用FIFO作為緩存的方案解決了速率匹配問題[4],當采樣率為80k時,數據流為5Mbyte/S,本系統設計存盤速度為7.8Mbyte/S,可以滿足80K以內數據采樣率系統的存盤要求。

  5.2 硬盤存儲地址問題

  硬盤中數據如何存儲是本設計中另一個重點問題,主要考慮文件存儲的地址及文件目錄情況。本設計中硬盤文件的存儲采用FAT32文件系統,引導扇區記錄了文件分配表的地址、個數、大小、簇的大小等信息。文件邏輯地址=數據段起始地址+(簇號— RootClus)×SecPerClus;數據段起始地址=BPB地址+RsvdSecCn+FATSz32×NumFATs。)文件目錄設計采用短文件名,每個文件名和相關信息占用32字節,每個磁盤第2簇為目錄區,因使用短文件名無子目錄,所以當每簇為16扇區時目錄區共可儲存256個文件名。

  6 結束語

  本系統數據存儲量較大,較傳統使用工控機進行數據存儲功耗較低,適合于工作環境局限、系統要求具有自動內記功能的工況下。本系統已經應用于某信號采集設備中,實踐證明可滿足使用要求,系統工作穩定,沒有數據溢出現象。當然本系統還有一定不足,如不能存儲任意長度數據文件,只能存儲40M長度文件,還需進一步完善。

 

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 深爱激情五月婷婷 | 精品久久久久久亚洲精品 | 日韩精品卡1卡二卡3卡四卡 | 日韩在线观看高清 | 免费观看黄色一级片 | 欧美一级高清免费a | 一级特黄aa毛片免费观看 | 美女视频ww8888网网 | 午夜h| 日韩欧美亚洲另类 | 欧美日韩在线一区 | 男女性色大片免费网站 | 青春草国产 | 黄色片一级免费 | 国产女女互摸互慰在线观看 | 男人把女人下部桶爽的视频 | 成人永久福利在线观看不卡 | 一区视频在线播放 | 极品美女aⅴ高清在线观看 极品美女丝袜被的网站 | 老色批影院 | 日韩精品麻豆 | 阿v精品一区二区三区 | 黄色小视频免费观看 | 日韩在线成人 | 亚洲一区欧美二区 | 老司机69精品成免费视频 | 欧美一级视 | 2021精品国夜夜天天拍拍 | 激情网五月天 | 欧美激情在线播放一区二区 | 日韩免费大片 | 日韩免费视频网站 | 青青草国产一区二区三区 | 国产一区二区三区在线 | 亚洲天堂ww | 免费国产怡红院在线观看 | 一区二区三区国产 | 日b在线 | 小毛片在线观看 | 日韩视频网 | 国产91网|