用FPGA實(shí)現DSP與液晶顯示器的快速接口
考慮到實(shí)際應用方便,可把一些常用的操作按指令的方式編碼。所得到的DSP控制指令如下:
控制顯示器開(kāi)關(guān):0010 0000 1111 111x
指定顯示起始行:0100 0000 11xx xxxx
指定列地址和頁(yè)地址:0110 0yyy yyyy yxxxy:
列地址(0~191)x:
行地址寫(xiě)入數據:1000 0000 xxxx xxxx
讀顯示器狀態(tài):1010 0000 0000 0000
讀顯示數據:1100 0000 0000 0000
框圖中微指令ROM在接口控制中起著(zhù)決定性的作用,每條指令的執行都被看作一系列單步時(shí)序操作的集合。如果從ROM的某一地址開(kāi)始依次讀出ROM里的數據,那么在每一個(gè)數據位上就會(huì )出現隨時(shí)間變化的電平跳變。這樣就可以用它作為控制信號進(jìn)行控制操作。由于ROM是并行輸出的,如果用不同的數據位代表不同的控制信號線(xiàn),就能很容量地實(shí)現各個(gè)信號線(xiàn)之間的同步操作。這樣就能很容易形成時(shí)序圖中的時(shí)序邏輯,而且擴展方便。在上述的指令表示中,通過(guò)對高3位進(jìn)行譯碼,可以得到ROM尋址時(shí)的起始地址。ROM各個(gè)數據位的含義如下:
其中,低七位是控制LCD的接口線(xiàn),FREE是微程序執行完標志,每條指令所對應的微程序分為招待狀態(tài)(有多條微指令,FREE位為0)和閑置狀態(tài)(一條指令,FREE位為1)。當指令執行狀態(tài)機檢測到FREE位的上跳沿時(shí),加載下一條指令。LD是數字寄存器從DSP獲得數據時(shí)的加載信號,微程序執行過(guò)程中,在某些指令執行時(shí)需要加載數據,可由該信號完成。RD是數據寄存器從LCD讀入數據的加載信號,主要完成從LCD讀入數據。
取指控制邏輯主要功能是根據FIFO的狀態(tài)決定是否寫(xiě)入新的指令以及根據執行狀態(tài)機的狀態(tài)讀入新的指令,填寫(xiě)狀態(tài)寄存器,給出中斷信號。
根據上述硬件設計,DSP的軟件設計就大大簡(jiǎn)化了。以寫(xiě)入數據為例,在寫(xiě)入數據前先查詢(xún)一下接口模塊的狀態(tài),如果可以寫(xiě)入就寫(xiě)入數據;否則保持現有數據指針,等待下次寫(xiě)入。一讀一寫(xiě)兩次外部I/O操作,如果按7個(gè)等待周期、主頻100MHz計算,只有140ns,加上判斷所需時(shí)間,200ns內就可以完成寫(xiě)入數據。這里,7個(gè)等待周期是考慮到系統內還其它器件。如果只是對該接口模塊操作,兩三個(gè)等待周期是沒(méi)有問(wèn)題的。這樣,100ns內就可完成寫(xiě)入數據。
在實(shí)際應用中,采用上述接口控制模塊來(lái)完成LCD控制大大減輕了DSP的壓力。推而廣泛,這種方法還可以應用在其它慢速設備上,如打印機等,對于提高系統效率是比較有效的。需要指出的是,盡管這種方法能夠建立雙向快速通道,卻是以占用可編程器件有限的資源為代價(jià)的。但是隨著(zhù)目前可編程器件容量的日益擴大,這個(gè)問(wèn)題已不是很突出的了。
評論