DSP與慢速設(shè)備接口的實現(xiàn)
為了適應(yīng)較慢的外部存儲器和輸入/輸出設(shè)備,DSP配備了軟件可編程的等待狀態(tài)發(fā)生器,可以將外部總線周期擴(kuò)展到數(shù)個機(jī)器周期。由于受硬件條件的限制,這種擴(kuò)展通常也是有限的,如C54XX系列的DSP最多只能擴(kuò)展到14個機(jī)器周期,C2XX系列的DSP最多只能擴(kuò)展到7個機(jī)器周期。但在實際應(yīng)用過程中,經(jīng)常會遇到讀寫周期更慢的輸入/輸出設(shè)備,如液晶顯示模塊、打印機(jī)、鍵盤等。因此,僅通過軟件編程控制內(nèi)部狀態(tài)等待發(fā)生器是不能實現(xiàn)輸入/輸出時序匹配的,必須進(jìn)行外部硬件擴(kuò)展設(shè)計。
在DSP與慢速外圍設(shè)備接口設(shè)計過程中,通常采用雙CPU的方法,由DSP完成高速數(shù)據(jù)處理和計算,用普通單片機(jī)(如51系列單片機(jī))實現(xiàn)系統(tǒng)的輸入/輸出功能。這種方法由于采用了兩種結(jié)構(gòu)不同的CPU,增加了系統(tǒng)的復(fù)雜性,而且接口和調(diào)試難度加大。本文將利用DSP的READY(外部設(shè)備準(zhǔn)備就緒)引腳,通過硬件擴(kuò)展實現(xiàn)外部狀態(tài)自動等待,從而使DSP與慢速輸入/輸出設(shè)備能直接連接以實現(xiàn)訪問的時序匹配。這種方法接口容易,硬件擴(kuò)展電路并不復(fù)雜,而且內(nèi)、外等待狀態(tài)結(jié)合起來使用,可產(chǎn)生任何數(shù)目的等待狀態(tài),甚至可以將外部硬件等待狀態(tài)設(shè)計為受控方式,只在需要的時候啟動外部等待狀態(tài)。這樣,使用的時候就會更加靈活。
1 DSP的I/O讀寫時序
現(xiàn)以TMS320F206 DSP芯片為例進(jìn)行介紹。其時鐘頻率設(shè)為20MHz,它的外部讀寫時序如圖1所示。
TMS320F206的讀周期為一個時鐘周期(50ns),寫周期為兩個時鐘周期。讀、寫操作數(shù)據(jù)的保持時間T1、T2只有幾個納秒。內(nèi)部可編程等待狀態(tài)發(fā)生器最多只能擴(kuò)展到等待7個時鐘周期,即350ns。利用內(nèi)部狀態(tài)等待,只能實現(xiàn)DSP與常用單片機(jī)的外圍芯片的讀寫時序相匹配。
2 慢速設(shè)備的讀寫時序
現(xiàn)以MDL(S)16465字符液晶顯示模塊為例進(jìn)行介紹。其讀寫時序如圖2和圖3所示。
該液晶模塊的讀寫周期Tcyc最小為1000ns,脈沖寬度Pw最小為450ns,讀寫操作數(shù)據(jù)保持時間最小為10ns。如果采用直接連接方式將TMS320F206與該液晶模塊接口,即使采用最大的狀態(tài)等待數(shù)目,DSP的讀寫時序也不能滿足該液晶模塊的要求。為實現(xiàn)二者的時序匹配,本文將給出一種合適的外部硬件等待擴(kuò)展方法,以實現(xiàn)DSP與液晶模塊的直接讀寫訪問控制。
3 DSP的READY信號
TMS320F206提供兩種狀態(tài)等待選項,一種是片內(nèi)狀態(tài)等待產(chǎn)生器,可以實現(xiàn)有限的可編程狀態(tài)等待;另一種是READY信號,利用它可進(jìn)行硬件擴(kuò)展,從片外產(chǎn)生任何數(shù)目的狀態(tài)等待。
DSP在進(jìn)行外部讀寫操作時,如果READY引腳信號為低電平,DSP將等待一個時鐘周期后再次檢查READY信號。在READY引腳被驅(qū)動至高電平之前,程序處于等待狀態(tài),將不會繼續(xù)往下執(zhí)行。如果不使用READY信號,DSP在進(jìn)行外部訪問期間內(nèi),READY應(yīng)始終保持高電平。
利用DSP的READY信號和相關(guān)外部訪問控制信號,通過硬件擴(kuò)展,可以實現(xiàn)外部自動狀態(tài)等待,從而使DSP能夠與慢速外部設(shè)備進(jìn)行直接連接訪問。
4 DSP與慢速外部設(shè)備的直接訪問接口
外部狀態(tài)等待硬件擴(kuò)展電路采用一片12級的二進(jìn)制波紋計數(shù)器74HC4040來實現(xiàn),該芯片每一級的輸出信號的頻率為前一級的一半。將TMS320F206的時鐘輸出信號CLKOUT1作為74HC4040的輸入時鐘,如果CLKOUT1為20MHz,那么最大等待時間可以達(dá)到212×50ns,使用者可以根據(jù)外部設(shè)備的時序需要選用74HC4040的不同輸出引腳進(jìn)行等待控制。由于輸入時鐘的頻率較高,一般的CD4040或MC14040芯片響應(yīng)速度不夠快,至少應(yīng)選用74HC4040或響應(yīng)速度更快的芯片。
自動硬件等待擴(kuò)展電路如圖4所示。選用74HC4040的Q5腳輸出作為延時等待控制,等待時間為1600ns。將Q4腳輸出信號分別與DSP的讀寫信號相或,產(chǎn)生外部設(shè)備的讀寫控制信號,這樣可以充分保證讀寫操作時數(shù)據(jù)的保持時間。該電路所產(chǎn)生的時序如圖5所示。
經(jīng)過以上硬件狀態(tài)等待擴(kuò)展,DSP對外部設(shè)備讀寫周期達(dá)到1600ns,讀寫操作的數(shù)據(jù)保持時間大于20ns,滿足液晶模塊的時序要求。此外,DSP在進(jìn)行內(nèi)部程序和數(shù)據(jù)訪問時,READY始終為高電平,不影響DSP的內(nèi)部運(yùn)行速度。應(yīng)用該電路,DSP與MDL(S)16465液晶模塊的直接訪問連接如圖6所示。
RS為液晶模塊的數(shù)據(jù)指令控制輸入端,“1”表示數(shù)據(jù),“0”表示指令;R/W為讀寫控制輸入端,“1”為讀操作,“0”為寫操作;E為使能控制輸入端,高電平有效。按圖6的接法,用兩根地址線A8、A9分別與RS、R/W相連,根據(jù)每個引腳的功能定義,液晶模塊的指令口寫地址為0000H,指令口讀地址為0200H,數(shù)據(jù)口寫地址為0100H,數(shù)據(jù)口讀地址為0300H。DSP對液晶模塊的訪問控制子程序如下:
lcdcwaddr .set 0000h ; 指令口寫地址
lcdcraddr .set 0200h ; 指令口讀地址
lcddwaddr .set 0100h ; 數(shù)據(jù)口寫地址
lcddraddr .set 0300h ; 數(shù)據(jù)口讀地址
lcdenable: splk #6ff2h,60h ; io1=1
out 60h,iosr ; lcd enabled
ret
lcddisable: splk #6ff0h,60h ; io1=0
out 60h,iosr ; lcd disabled
ret
lcdrw: call lcdenable
in 60h,[讀地址] ; 讀操作
……………………
out 61h,[寫地址] ; 寫操作
……………………
call lcddisable
ret
利用TMS320F206的IO1作為讀寫使能控制信號,調(diào)用LCDENABLE和LCDDISABLE兩個子程序打開和關(guān)閉對液晶模塊的訪問功能。除了需要調(diào)用兩個簡單的控制子函數(shù)以外,讀寫操作分別由IN和OUT兩條指令完成,實現(xiàn)對該液晶模塊的直接讀寫訪問。由于該液晶模塊沒有單獨(dú)的讀寫控制引腳,訪問控制要求比較特殊, 所以只能按照圖6的方式進(jìn)行連接。該液晶模塊的控制時序可參見參考文獻(xiàn)[1]。
如果外部設(shè)備具有單獨(dú)的讀寫控制引腳,可直接與圖4中的DEV-RD和DEV-WE分別相連,然后將數(shù)據(jù)線與地址線對應(yīng)連接,就能夠進(jìn)行直接讀寫訪問控制。作者在處理鍵盤輸入和打印機(jī)輸出接口時,就是采用這種連接方式。使用結(jié)果表明,訪問和控制都十分可靠。
由于DSP的應(yīng)用日益廣泛,作為一個完整的控制系統(tǒng)和測試設(shè)備,參數(shù)設(shè)置、結(jié)果顯示等基本的輸入/輸出功能是必不可少的。因此,DSP與慢速設(shè)備的接口將是各種科研和開發(fā)中經(jīng)常遇到的問題。本文給出的硬件接口方法能夠?qū)崿F(xiàn)DSP的外部訪問自動狀態(tài)等待,使高速的DSP芯片與傳統(tǒng)的慢速輸入輸出設(shè)備融入一個系統(tǒng),不僅有效地解決了DSP與各種慢速設(shè)備訪問時序的匹配問題,而且硬件電路設(shè)計簡單、訪問直接、控制編程容易,進(jìn)一步拓展了DSP在工業(yè)自動控制和測試設(shè)備中的應(yīng)用空間。