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