隨著電子產品對大容量存儲的要求,硬盤的使用也越來越廣。安防領域的DVR需要把數據寫入到硬盤中,數據安全領域需要擦除和修復硬盤的數據,這些場合都要對硬盤進行訪問。
硬盤是一種典型的IDE設備,對硬盤的訪問涉及到IDE設備的控制?,F有的方案是用CPU通過PIO控制的方式訪問IDE設備占用的資源比較多,速度比較慢。本文主要介紹采用高可靠性、低成本的Actel FPGA來實現IDE設備控制的接口,為大家提供一種IDE設備讀寫控制的實現方案。結合Actel FPGA單芯片、上電即行、低成本、低功耗、高安全性和高可靠性的優點,可以應用在各種不同需求的場合。
1 概述
(1)功能概述
·與外部Mcu接口采用Intel 8080接口,簡單易用;
·MCU與FPGA通信的帶寬,讀:22MB/s,寫:22MB/s;
·MCu接口可以根據用戶的需要靈活的修改,如增加數據線位寬:
·可以更改設計方便的擴展多路IDE接口(SATA~口需要另加一顆轉換芯片),每個接口可以掛兩個mE設備;
·數據傳輸支持P100-P104和UDMA0-UDMA5,高傳輸速度達IOOMB/s:
·支持硬盤的48bits地址操作模式,支持137GB以上硬盤:
·支持MCU訪問IDE設備的任意寄存器:
·支持Mcu讀寫IDE設備的任意扇區的數據:
·支持IDE設備的數據高速填充(相當于完全格式化),填充速度6SMB/s:
·提供基于Lpczxx系列的例程c函數,減少項目開發時間;
·采用Actel Flash構架FPGA,高可靠性,低功耗,高安全性:
·FPGA的可編程性使得功能設計非常靈活,可以根據用戶需求定制特殊功能:
·真正完美的單芯片、低成本、低功耗解決方案:
·ActelFpGA的Plasllock和AES雙重加密,保護您的設計:
·Actel FPGA的固件錯誤免疫使得系統可以工作于較惡劣的環境中,可靠性極高。
(2)系統框圖

圖1是基于Actel FPGA的IDE控制器的結構圖。該IDE控制器按照模塊化的設計方法,由MCu接口、寄存器管理、寄存器譯碼、寫入FIFO、讀出FIFO、PIO控制和LIDMA控制等模塊構成。其中,MCU接口模塊把外部的MCU總線轉換為內部的總線協議;寄存器管理管理內部的寄存器;寄存器譯碼模塊把相關的寄存器值譯碼成內部一些控制參數:寫入FIFO模塊用來在寫入的時候用作緩沖區;讀出FIFO用來在讀出數據的時候用作緩沖區:PIO控制模塊用來控制PIO類型的數據傳輸:UDMA控制模塊用來控制uDMA類型的數據傳輸。
IDE控制器的外部接口主要是與MCU的接口和與IDE設備的接口。MCU的接口用來連接系統中的主控MCU,以構成一個完整的系統;IDE設備接口是標準的IDE接口,用來連接IDE設備,一個接口可以最多連接兩個IDE設備。

2 各功能模塊介紹
(1)MCU接口模塊
MCu接口模塊需要將外部的MCU的總線轉換為FPGA內部的總線。這樣內部就可以方便的擴展模塊。MCU的總線時序的寫和讀如圖2和圖3所示,寫數據是把總線上的數據寫入對應地址的寄存器中,讀數據是將對應地址的寄存器讀出。
(2)寄存器管理模塊
寄存器的管理用來管理內部的寄存器,所有控制寄存器都通過這個模塊管理和分配地址。這樣在增加或減少寄存器的時候就比較的方便和簡單。
寄存器管理模塊的功能框圖如圖4所示。FPGA通過內部的總線傳遞過來地址和數據相關的信號。然后通過寄存器管理橫塊轉換執行的信號傳遞到相關的執行部件,如果是傳遞一個數據,就把數據送入到相關的部件;內部FPGA執行的結果或待輸出的數據需要通過寄存器管理模塊傳遞到FPGA內部總線上,然后在通過MCU接口模塊傳遞給外部的MCU。由于寄存器管理的功能比較的多,圖中只是示意性的給出了幾個信號傳遞的路徑。
(3)寄存器譯碼模塊
寄存器譯碼模塊是把相關的寄存器值譯碼成相關的控制參數,例如PIO在不同模式下的時間參數是不同的,需要把PIO模式寄存器的值譯碼成對應的時間參數值。
(4)讀寫FlFO模塊
讀寫EIFO是在數據傳輸的時候對硬盤進行DMA讀寫的時候用到。數據寫入的總線先寫入到PIFO中,然后再由FIFO寫入到IDE設備中;數據的讀出總是先讀出到FIFO中,然后再被MCU接收。
(5)PIO控制模塊
PIO控制模塊是控制數據以PIO方式傳輸的一個模塊,通過訪問IDE設備的控制寄存器來完成。IDE設備的傳輸方式有兩種,一種是PIO,一種是UDMAo PIO方式可以用來訪問IDE設備的寄存器,也可以用來傳輸數據,傳輸數據是通過訪問數據寄存器來實現的。伴隨IDE設備的不斷發展,PIO模式經歷TPIO mode 0-PIO mode 4幾種模式。PIO傳輸在各模式下的傳輸的速度如表l所示。
PIO模式在傳輸數據時受限于傳輸速率低下和極高的CPU占有率,這種數據傳輸模式很快就被淘汰,取而代之的是DMA傳輸模式。

(6)UDMA控制模塊
uDMA控制模塊是控制數據以uDMA方式傳輸的一個模塊。UDMA傳輸在標準協議中為Ultra DMA,是IDE設備兩種DMA傳輸方式的一種,另外一種為MultiwordDMA。uDMA傳輸方式是一種高速的數據傳輸方式,只能用來傳輸數據,不能用來訪問IDE設備的寄存器。UDMA傳輸為了提高傳輸速度,采用雙邊沿的方式實現,其速度在UDMA5模式下能夠達到100MByte/s。在高速傳輸下為了提高數據的穩定性,每次數據傳輸完畢都進行一次CRC的校驗。CRC的校驗是在UDMA傳輸中控制器和從設備根據傳輸的數據各生成一個CKC值,在傳輸結束的時候比較這兩個值是否相等,如果相等,則傳輸正確。UDMA在IDE設備不斷發展的過程中經歷了UDMA mode 0-UDMA mode 5,主要是增加傳輸的速度。UDMA各模式下的傳輸的速度如表2所示。

3 市場應用
IDE控制器可以用來控制大容量的硬盤。也可以用來控制工業上常用的CF卡。對于SATA接口類型的硬盤來說,只需要增加一顆接口芯片即可。硬盤的控制可以用到DvR系統、數據修復和復制系統和工業CF卡存儲系統中。如圖4所示就是一種便攜式的硬盤復制修復儀器。
4 小結
本文主要介紹了基于Actel FPGA的IDE設備控制器的功能和應用。敬請關注周立功公司的網站www.zlgmcu.com以獲得更多的信息。我們有著一個接近30人的FPGA團隊提供強有力的售后服務和技術支持,解決用戶在產品使用和研發過程中遇到的困難。若有更多的需求可以與我們聯系,我們將會竭誠為您服務,并請關注下期的FPGA專題技術講座。
