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