用FIFO實(shí)現(xiàn)DSP間的雙向并行異步通訊
2 硬件結(jié)構(gòu)與通訊流程
2.1 硬件結(jié)構(gòu)
利用FIFO實(shí)現(xiàn)DSP間雙向并行異步通訊的結(jié)構(gòu)原理如圖2所示。DSP56001和ADSP21020分別樹熊美國Motorola和ADI公司的DSP芯片。兩個(gè)CY7C419芯片U1、U2分別用于DSP56001和ADSP21020間雙向并行接口的一個(gè)方向,其中U1用于完成DSP56001向ADSP21020的數(shù)據(jù)傳送,U2則用于完成ADSP21020向DSP56001的數(shù)據(jù)傳送。U1的全滿標(biāo)志(FF)與U2的全空標(biāo)志(EF)通過緩沖器74LS245與DSP56001的數(shù)據(jù)總線相連,該緩沖器被映射為DSP56001數(shù)據(jù)區(qū)的一個(gè)地址單元(0x600),因此,DSP56001通過對(duì)該地址單元的讀操作便可獲知U1是否已寫滿以及U2是否有數(shù)所要讀。同理,U2的全志(FF)與U1的全空標(biāo)志(EF)通過一緩沖器74LS245連于ADSP21020的數(shù)據(jù)總線,該片74LS245補(bǔ)映射為ADSP21020數(shù)據(jù)區(qū)的一個(gè)地址單元(身份地址+0x100000),這樣ADSP21020通過對(duì)該地址單元的讀操作也可獲知U2是否已寫滿以及U1是否有數(shù)據(jù)要讀。另外,DSP56001對(duì)U1的寫操作、對(duì)U2的讀操作映射為對(duì)其數(shù)據(jù)存儲(chǔ)區(qū)一個(gè)地址單元(0x200)的寫、讀操作;而ADSP21020對(duì)U2的寫操作和對(duì)U1的讀操作則被映射為對(duì)其數(shù)據(jù)存儲(chǔ)區(qū)地址單元(身份地址+0x180000)的寫、讀操作。兩個(gè)DSP芯睡均可同時(shí)對(duì)U1、U2進(jìn)行復(fù)位操作。
DSP56001對(duì)雙向口的讀56FIFOR、寫56FIFOW、復(fù)位56FIFORST及對(duì)標(biāo)志口狀態(tài)56FLGR的讀信號(hào)可由DSP56001的地址線與讀寫信號(hào)譯碼獲得;ADSP21020對(duì)雙向口的讀21FIFOR、寫21FIFOW、復(fù)位56FIFORST及對(duì)標(biāo)志口狀態(tài)56FLGR的讀信號(hào)則可由ADSP21020的地址線與讀寫信號(hào)譯碼獲得。各譯碼輸出的邏輯表達(dá)式如下:
56FIFOR=AdEn+Ma10+Ma9+MRD
(映射地址為:0x200)
56FIFOW=AdEn+Ma10+Ma9+MWR
(映射地址為:0x200)
56FIFOORST=AdEn+Ma10+Ma9+MWR
(映射地址為:0x400)
56FLGR=AdEn+Ma10+Ma9+MRD
(映射地址為:0x600)
評(píng)論