總線(xiàn)系統與DSP硬件接口設計
1 引言
從1982年世界上誕生了首枚DSP芯片后,經(jīng)過(guò)20多年的發(fā)展,現在的DSP屬于第五代DSP器件。其系統集成度更高,已將DSP芯核及外圍器件綜合集成到單一芯片上,DSP逐漸成為數字信號處理器的代名詞。同時(shí),數字信號處理技術(shù)在理論和算法上也取得了突破性進(jìn)展,他本身也形成了比較完善的理論體系,包括數據采集、離散信號與離散系統分析、信號估計、信號建模、信號處理算法等內容。DSP技術(shù)已在航空航天、遙測遙感、生物醫學(xué)、自動(dòng)控制、振動(dòng)工程、通訊雷達、水文科學(xué)等許多領(lǐng)域有著(zhù)十分廣泛的應用。通過(guò)數據采集系統將原始數據傳送到DSP,DSP完成算法的處理是工程上的一種應用模式,數據的傳送可以通過(guò)各種計算機總線(xiàn)來(lái)實(shí)現。
PC104是一種專(zhuān)門(mén)為嵌入式控制而定義的工業(yè)控制總線(xiàn),PC104與普通PC總線(xiàn)控制系統的主要區別是:
(1)小尺寸結構。
(2)堆棧式連接。
(3)輕松總線(xiàn)驅動(dòng)。
PC104有2個(gè)版本,8位和16位,分別與PC和PC/AT相對應。PC104 PLUS則與PCI總線(xiàn)相對應。本文主要涉及的是PC104與DSP的16位數據通信接口設計,采用了CYPRESS公司的雙端口靜態(tài)讀寫(xiě)存儲器CY7C028V15AC作為共享存儲器,雙端口RAM右側接ADI公司的DSP芯片T S101,左側接PC104總線(xiàn),控制邏輯用ALTERA公司ACEX系列CPLD中的EP1K100TC208來(lái)實(shí)現。
2 雙端口RAM訪(fǎng)問(wèn)模式
CY7C028V15AC是16 b×64 k的雙端口RAM,支持高速的訪(fǎng)問(wèn),訪(fǎng)問(wèn)速度為20 ns,支持左右2個(gè)端口完全異步訪(fǎng)問(wèn)。2個(gè)端口的選通信號有效,則雙端口RAM兩側可以同時(shí)對雙端口RAM進(jìn)行讀寫(xiě)操作。需要解決的是當同時(shí)訪(fǎng)問(wèn)到一個(gè)存貯塊時(shí)的沖突問(wèn)題。有2種方法可以解決訪(fǎng)問(wèn)沖突:一種是信號令牌傳遞方式,雙端口RAM內部提供了8個(gè)Semaphore鎖存單元,可以在邏輯上把雙端口RAM劃分為8個(gè)區段;當某個(gè)端口要訪(fǎng)問(wèn)某個(gè)區塊時(shí),首先向相應的鎖存單元請求令牌,以確定訪(fǎng)問(wèn)是否會(huì )產(chǎn)生沖突,即向某一個(gè)鎖存單元寫(xiě)“0”,然后讀回所寫(xiě)數據,如果成功,則對應于該鎖存單元的塊是空閑的,可以訪(fǎng)問(wèn),否則就不能訪(fǎng)問(wèn)。當一側正在訪(fǎng)問(wèn)雙端口RAM的某一塊,則相應的鎖存單元對另一側是不能訪(fǎng)問(wèn)的。申請令牌通過(guò)讀寫(xiě)I/O的方式實(shí)現,實(shí)際用到的是雙端口RAM左右兩側數據總線(xiàn)的D0位,地址總線(xiàn)的A2~A0位(其譯碼對應于8個(gè)鎖存單元),以及左右兩側對鎖存單元訪(fǎng)問(wèn)的使能控制端SEML和SEMR。另一種方式是中斷方式。在中斷方式下,RAM最高的兩個(gè)地址作為通訊郵箱,FFFEH分配給右端口,FFFFH分配給左端口。兩個(gè)郵箱的使用方法一致。以右端口為例,當DSP向FFFEH地址寫(xiě)任意一個(gè)值時(shí),左端口的中斷請求信號INTL有效,當響應完中斷請求后,PC104總線(xiàn)讀一次FFFEH地址就可以INTL清除中斷。
本文中采用中斷方式設計PC104與DSP的握手信號??紤]到用CPLD來(lái)設計數字邏輯的靈活性和可重復編程,用CPLD來(lái)控制中斷請求與響應信號,所以RAM最高端的兩個(gè)地址仍作為普通的R AM單元使用。雙端口RAM左右端口的連接如圖1所示。
圖1 雙端口RAM左右端口連接圖
當DSP向PC104請求數據,TS101的標志位FLAG0通過(guò)CPLD的緩沖連接到PC104的其中一條中斷信號引腳,當PC104收到中斷請求向RAM寫(xiě)完數據,通過(guò)寫(xiě)I/O口的方式,由CPLD產(chǎn)生回復信號到TS101的IRQ0,TS101在適當的時(shí)間讀取數據并進(jìn)行算法處理。當TS101向PC104發(fā)送數據,則先向RAM中寫(xiě)數據,寫(xiě)完后由標志位FLAG1產(chǎn)生讀數據請求信號,通過(guò)CPLD緩沖連接到PC10 4的另一條中斷信號引腳,PC104響應中斷讀完數據,通過(guò)寫(xiě)I/O口的方式由CPLD產(chǎn)生回復信號到TS101的IRQ1。當PC104訪(fǎng)問(wèn)雙端口RAM時(shí)。數據總線(xiàn)的16位通過(guò)CPLD緩沖連接到RAM左端口的I/O15L~I/O0L,因為16位的數據訪(fǎng)問(wèn)占用的是偶地址,所以地址總線(xiàn)的A16~A1在CPLD緩沖后連接到RAM的左端口的A15L~A0L地址線(xiàn)。PC104其余的地址線(xiàn)通過(guò)在CPLD里的譯碼產(chǎn)生RAM左端口的選通信號。當TS101訪(fǎng)問(wèn)RAM,TS101的前16根地址線(xiàn)連接到RAM的A15R~A0R,前16根數據線(xiàn)連接到RAM右端口的I/O15R~I/O0R,用產(chǎn)生選通信號,通過(guò)TS 101的編程實(shí)現,訪(fǎng)問(wèn)RAM的有效地址由用戶(hù)定義。
3 PC104與CPLD的連接關(guān)系
通過(guò)CPLD,PC104要實(shí)現對雙端口RAM的訪(fǎng)問(wèn),首先要考慮的是分配給RAM的存儲地址,因為64 k×16 b的RAM需要64 k的偶地址空間,或者說(shuō)128 k的連續地址空間,工控機1 M以?xún)瓤捎捎脩?hù)使用的自由地址空間往往達不到128 k。所以應將RAM安排在1 M地址空間以外訪(fǎng)問(wèn)。此時(shí)除了用到用于1 M尋址的地址線(xiàn)SA19~SA0,還要采用1 M外尋址的地址線(xiàn)LA23~LA17。需要注意的是,PC104的總線(xiàn)上的SA19~SA17與LA19~LA17是重復的。區別在于SA10~SA0是通過(guò)總線(xiàn)地址鎖存使能信號BALE鎖存輸出,而LA19~LA17未經(jīng)鎖存,為保證在對RAM訪(fǎng)問(wèn)期內地址信號一直有效,至少應在CPLD內將LA23~LA20進(jìn)行BALE鎖存。本文中將RAM的地址安排在1 M地址空間外從100000 H開(kāi)始的64 K偶地址。所有需要用到的PC104信號線(xiàn)都連接到CPLD,CPLD將SA16~SA1緩沖連接到RAM,其余地址線(xiàn)譯碼產(chǎn)生RAM左端口選通信號。PC104與CPLD連接的訪(fǎng)問(wèn)邏輯如圖2所示。
圖2 PC104與CPLD鏈接訪(fǎng)問(wèn)邏輯圖
其中有效表示數據總線(xiàn)的高8位有效,SA0有效表示數據總線(xiàn)的低8位有效,作為譯碼信號的一部分,對于單片16位數據線(xiàn)的集成電路,實(shí)際上也可以不連接,用SA0和高端地址線(xiàn)譯碼產(chǎn)生選片信號。AEN信號有效表示計算機在和某個(gè)設備進(jìn)行DMA傳送,其他的設備發(fā)現AEN信號有效,就不要響應尋址信號。因此在CPLD內部邏輯里設置當AEN信號有效時(shí),將進(jìn)入CPLD的地址信號線(xiàn)置為高阻態(tài)。
是存儲器讀寫(xiě)信號,是用于1 M以外地址空間的讀寫(xiě)信號,當這兩個(gè)信號之一有效且尋址到1 M內的地址,將分別使1 M以?xún)鹊刂返淖x寫(xiě)
一起控制總線(xiàn)周期的長(cháng)短。有3種存儲器訪(fǎng)問(wèn)周期:標準周期,就緒周期,無(wú)等待狀態(tài)周期。訪(fǎng)問(wèn)時(shí)序如圖3所示。
圖3 3種訪(fǎng)問(wèn)周期的訪(fǎng)問(wèn)時(shí)序圖
在設計的時(shí)候考慮到信號在CPLD里的延時(shí),如果標準周期對于訪(fǎng)問(wèn)的時(shí)間長(cháng)度不夠,可以采 用有1個(gè)等待狀態(tài)的就緒周期,而這只需要修改CPLD的設計并重新下載到CPLD即可,由此可 見(jiàn)用CPLD作為控制芯片的優(yōu)點(diǎn)。
4 結語(yǔ)
本文說(shuō)明的這種PC104總線(xiàn)與DSP的數據通訊接口設計,也可以作為采用其他計算機總線(xiàn)與DS P進(jìn)行16位數據通訊接口設計的參考。
評論