雙口RAM在PCI總線與AVR接口設計中的應用
3 雙口RAM的讀/寫程序
為了達到用低速模塊處理高速數(shù)據(jù)流的效果,在雙口RAM的程序處理上采用乒乓操作的技巧。乒乓操作的最大特點是通過“輸入數(shù)據(jù)選擇單元”和“輸出數(shù)據(jù)選擇單元”按節(jié)拍、相互配合的切換,將經(jīng)過緩沖的數(shù)據(jù)流沒有停頓地送到“數(shù)據(jù)流運算處理模塊”進行運算與
處理。把乒乓操作模塊當作一個整體,站在這個模塊的兩端看數(shù)據(jù),輸入數(shù)據(jù)流和輸出數(shù)據(jù)流都是連續(xù)不斷的,沒有任何停頓,因此非常適合對數(shù)據(jù)流進行流水線式處理。所以乒乓操作常應用于流水線式算法,完成數(shù)據(jù)的無縫緩沖與處理。
設計中將雙口RAM分為A,B兩個部分,各占8 KB空間。通過9052和AVR交替對兩個存儲器進行讀/寫操作到達交換數(shù)據(jù)的目的。在雙口RAM的仲裁方式選擇上選取中斷和硬件仲裁結(jié)合的方式,中斷仲裁在硬件電路設計上比較簡單,只要將雙口RAM兩側(cè)的INT引腳連接到AVR和PCI90 52的中斷引腳上,軟件設計上只要編寫雙口RAM操作程序和中斷服務程序兩部分。具體過程是:
(1)數(shù)據(jù)下行(PCI9052寫,AVR讀)。在首次發(fā)起數(shù)據(jù)傳輸時,通過握手信號告訴AVR本次數(shù)據(jù)傳輸共多少個字節(jié)。然后發(fā)起本次數(shù)據(jù)傳輸,如果數(shù)據(jù)傳輸長度小于8 KB,9052向雙口RAM的A區(qū)寫入數(shù)據(jù),并在數(shù)據(jù)全部寫完之后對地址3FFFH(右端口信箱)執(zhí)行一個寫操作,這樣引腳變?yōu)榈碗娖?,該引腳連至PCI9052的局部中斷引腳,通知9052讀取寫入的數(shù)據(jù),9052在讀取數(shù)據(jù)之后會對左端口信箱3FFEH地址執(zhí)行一個讀操作,這樣引腳恢復為高電平,使之退出中斷響應程序。整個數(shù)據(jù)傳輸程序流程和下行相似,具體的流程如圖8所示。本文引用地址:http://www.ex-cimer.com/article/172431.htm
4 結(jié)語
高性能雙口RAM可以有效解決上位機和下位機之間的復雜數(shù)據(jù)處理問題,實現(xiàn)時序的粘連;乒乓操作是一個常應用于數(shù)據(jù)流控制的處理技巧,是解決高速設備和低速設備交換數(shù)據(jù)的常用方法。實踐證明本文的設計方法是解決高低速設備的傳輸瓶頸問題,提高PCI總線與AVR單片機之間的數(shù)據(jù)傳輸速度的有效途徑。
評論