基于PCI9054總線控制器的數(shù)據(jù)接收和存儲系統(tǒng)
前言
目前衛(wèi)星技術已廣泛應用于國民生產(chǎn)的各個方面。通訊衛(wèi)星,氣象衛(wèi)星以及遙感衛(wèi)星,科學探測衛(wèi)星等與人們的生活密切相關。衛(wèi)星所收集的大量數(shù)據(jù)資料能否及時準確地下傳、接收和存儲是衛(wèi)星技術的一個重要方面。其傳送過程如圖1所示。
從衛(wèi)星上高速下傳的數(shù)據(jù)由地面衛(wèi)星接收站轉發(fā)為基帶信號,通過光纜傳送至數(shù)據(jù)中心,速度可達上百兆波特率,要求系統(tǒng)正確接收,經(jīng)過同步和預處理,然后存入計算機系統(tǒng),供數(shù)據(jù)中心使用。其特點是:數(shù)據(jù)下傳速度高,數(shù)據(jù)量大,持續(xù)時間長,并且要求具有差錯控制功能。而本文介紹了為了滿足此要求而設計的數(shù)據(jù)接收和存儲系統(tǒng).
系統(tǒng)設計
數(shù)據(jù)接收和存儲系統(tǒng)主要包括數(shù)據(jù)接收和預處理,數(shù)據(jù)傳送,數(shù)據(jù)存儲等部分。本文主要介紹CPLD,PCI總線結構,總線控制器PCI9054。其系統(tǒng)組成如圖2所示。
基帶串行信號由復雜可編程邏輯器件(CPLD)進行串并轉換,變?yōu)?位數(shù)據(jù)信號后根據(jù)編碼方式找到同步幀,并進行預處理,然后傳到先入先出存儲器FIFO, 在邏輯控制下將數(shù)據(jù)送入PCI總線控制器PCI9054,由9054采用DMA突發(fā)方式傳輸至內(nèi)存,再存儲到RAID磁盤陣列。
采用復雜可編程邏輯器件(CPLD)可大大減少復雜的控制,通過VHDL語言即可靈活設置控制邏輯。而且隨著超大規(guī)模集成電路的發(fā)展,可編程邏輯器件的發(fā)展非常迅速,現(xiàn)已達到數(shù)十萬門,速度<1ns(管腳之間)。由于高速電路設計中的干擾問題非常嚴重,因此要盡可能地減少線路設計,所以采用CPLD不僅可滿足系統(tǒng)要求的復雜的邏輯關系,而且可大大減少布線干擾,調(diào)試和更改也非常方便,是今后邏輯控制的發(fā)展方向。在本系統(tǒng)中,CPLD不僅實現(xiàn)串并轉換和同步的功能,同時還用以實現(xiàn)數(shù)據(jù)進入FIFO以及由FIFO傳入PCI9054的傳輸控制邏輯,中斷邏輯以及主機對數(shù)據(jù)傳輸通道的前端控制。
在總線結構上,由于數(shù)據(jù)傳輸速度高,以往的ISA總線不能滿足要求(ISA總線最大傳輸速度5MB/S),必須采用更快的PCI總線結構。PCI總線協(xié)議是Intel公司1992年提出的,為滿足高速數(shù)據(jù)輸入/輸出要求而設計的一種低成本,高性能的局部總線協(xié)議。它是一種獨立于處理器的總線結構,具有32位或64位的復用的數(shù)據(jù)地址總線,總線上的設備可以以系統(tǒng)總線的速度在相互之間進行數(shù)據(jù)傳輸,或直接訪問系統(tǒng)內(nèi)存,可以達到132MB/s的數(shù)據(jù)傳輸速率(64位則性能加倍)。采用PCI接口的設備必須滿足PCI接口規(guī)范V2.2標準。
PCI 總線結構具有非常明顯的優(yōu)點,但其總線規(guī)范十分復雜,要求非常嚴格的時序關系,接口的設計難度較大。因此,為了減少PCI總線在實際應用中的復雜性,許多公司設計出了專門針對PCI總線接口的控制芯片。PCI9054就是其中比較先進的一種。PCI9054是PLX公司推出的一種33M, 32位PCI接口控制器,可同時支持3.3V和5V兩種信號環(huán)境,并且具有電源管理功能。其結構框圖如圖3所示。
它提供了三種物理總線接口:PCI總線接口,LOCAL總線接口,及串行EPROM接口。
LOCAL總線的數(shù)據(jù)寬度為32位,時鐘頻率可達到50MHZ, 并且支持數(shù)據(jù)預取功能。 9054的LOCAL總線與PCI總線之間數(shù)據(jù)傳輸有三種方式:主模式(Direct Master),從模式(Direct Slave),DMA方式。其內(nèi)部具有兩個DMA數(shù)據(jù)通道,雙向數(shù)據(jù)通路上各有6個FIFO進行數(shù)據(jù)緩沖,可同時進行高速的數(shù)據(jù)接收和發(fā)送。8個32位Maibox寄存器可為雙向數(shù)據(jù)通路提供消息傳送。9054還有2個32位Doorbell寄存器,用來在PCI和Local總線上產(chǎn)生中斷。
用戶通過設置其內(nèi)部寄存器,即可完成各種控制功能。9054內(nèi)部寄存器的配置信息可以寫在一片串行EPROM中,在加電時9054自動加載串行EPROM配置信息,并由PCIBIOS通過PCI總線對配置寄存器讀寫。9054可方便地與各種存儲設備相連接,在本設計中,它與FIFO及EPROM的設計接口如圖4所示。在本系統(tǒng)中,數(shù)據(jù)傳輸是單方向的,因此只設計PCI9504從FIFO中讀數(shù)據(jù)的情況,只用到與讀FIFO有關的信號,如REN,RCLK等。其中的CPLD邏輯關系如下:
REN平時為高電平(無效電平),當ADS#為低(有效),BLAST為高(無效),LW/R為低(有效)時,表明9054開始了一個有效的讀數(shù)據(jù)周期,CPLD產(chǎn)生一個低電平信號REN(有效電平)給FIFO,同時作為Ready信號返回給9054,通知9054設備已準備就緒。此信號持續(xù)到ADS#為高(無效)且BLAST為低(有效)時,表明9054已經(jīng)開始最后一個周期,此時REN信號再次變高電平(無效)。
OE信號與REN信號可同樣設置,在讀信號允許的同時使能FIFO芯片。
本設計中采用了PCI9054的DMA工作方式,在此方式下,9054作為PCI總線的主設備,同時也是Local總線的控制者,通過設置其DMA控制器內(nèi)部的寄存器即可實現(xiàn)兩總線之間的數(shù)據(jù)傳送。表1顯示了與DMA傳輸相關的寄存器在PCI總線上的地址分配:
PCI9054的DMA傳輸過程可由以下幾個步驟實現(xiàn):
1.設置方式寄存器:設置DMA通道的傳輸方式,寄存器DMAMODE0或者DMAMODE1的位9:0-表示塊傳輸,1-表示散/聚傳輸;
2.設置PCI地址寄存器:設置PCI總線側的地址空間。
3.設置LOCAL地址寄存器:設置LOCAL總線側的地址空間。
4.設置傳輸計數(shù)寄存器:以字節(jié)位單位設置傳輸數(shù)據(jù)量。
5.設置描述寄存器:設置DMA傳輸?shù)姆较?;在?聚方式下,位0表示傳輸參數(shù)的加載地址,0-PCI地址,1-Local地址; 位1表示傳輸鏈結束,0-未結束,1-結束;位2設置當前塊傳輸結束后中斷;位3指示DMA的傳輸方向,0-從PCI總線到Local總線,1-從Local總線到PCI總線;高28位[31:4]表示傳輸參數(shù)表的地址指針。
6.設置命令/狀態(tài)寄存器:啟動或停止DMA操作,并讀此寄存器返回DMA狀態(tài) 。
通過PCI9054的DMA傳輸方式,高速數(shù)據(jù)可以較容易地實現(xiàn)從PCI接口板上傳入計算機,不必考慮PCI總線接口的實現(xiàn),從而大大簡化了設計中的復雜度,加快了設計周期。
結語
隨著數(shù)字技術的發(fā)展,要求的數(shù)據(jù)傳輸速率將會越來越高,CPLD技術和PCI總線將會越來越多地應用在數(shù)據(jù)傳輸?shù)脑O計中,PCI9054總線控制器有著較高的性能/價格比,將來的應用將會更加廣泛