VC5402與外部存儲(chǔ)器的接口設(shè)計(jì)
對(duì)FLASH 空間的某一地址進(jìn)行訪問(wèn)時(shí),應(yīng)分為以下幾步:
首先,解析該地址,進(jìn)行地址分割,低15 位為頁(yè)內(nèi)地址,高3 位作為頁(yè)選擇地址;
其次,把頁(yè)選擇地址用PORTW 命令送到所分配的I/ O空間PA 中,等選通信號(hào)使能后,頁(yè)地址就在所選存儲(chǔ)器的高端地址線上;
最后,使用訪問(wèn)數(shù)據(jù)的指令。由于VC5402 的數(shù)據(jù)是16 位的,因此在調(diào)用數(shù)據(jù)指令時(shí),需要16 位的數(shù)據(jù)。這里,低15 位來(lái)自所要訪問(wèn)的地址的低15 位,最高位補(bǔ)零。
要對(duì)Flash 存儲(chǔ)器的高端進(jìn)行訪問(wèn),必須先對(duì)CPLD送數(shù)。如要尋址70000 H 存儲(chǔ)單元時(shí),假定AR3 輔助寄存器指向某一存儲(chǔ)單元,CPLD 映射在VC5402 I/ O 空間的地址為PA ,其大致操作如下:
ST # 07H , *AR3
PORTW * AR3 ,PA
這樣,CPLD 充當(dāng)?shù)逆i存器將111 這3 位數(shù)給鎖存住,在選通FLASH 時(shí),將數(shù)據(jù)111 送至FLASH 的A15~A17端,然后再對(duì)DSP 存儲(chǔ)器的地址0000 H 進(jìn)行讀寫操作即可。
DSP 的擴(kuò)展I/ O 端口
VC5402 僅有這2 個(gè)通用I/ O 引腳往往是不夠的,DSP 為了一些特殊的需要提供了多個(gè)片上設(shè)備,比如3 個(gè)多功能串口、HPI 接口等。這些片上設(shè)備在系統(tǒng)中并沒(méi)有用上,因此可以利用DSP 的擴(kuò)展功能將這些設(shè)備的管腳擴(kuò)展為通用I/ O 端口供系統(tǒng)使用。比如將HPI 端口的8 位并行數(shù)據(jù)線擴(kuò)展為8 位I/ O 端口,用來(lái)和CPLD 進(jìn)行通信,這些I/ O 口的擴(kuò)展是通過(guò)對(duì)DSP 的相關(guān)寄存器進(jìn)行相應(yīng)的設(shè)置來(lái)實(shí)現(xiàn)的。
為了實(shí)現(xiàn)DSP 和CPLD 之間的交互,將HPI 的數(shù)據(jù)線用作通用I/ O 端口實(shí)現(xiàn)了VC5402 I/ O 口的擴(kuò)展。HPI數(shù)據(jù)線擴(kuò)展為通用I/ O 口的具體方法:在HPI 接口不允許,即在復(fù)位時(shí)HPIENA 引腳為低電平的情況下,使用2 個(gè)存儲(chǔ)器映射寄存器(通用I/ O 控制寄存器GPIOCR 和通用I/ O 狀態(tài)寄存器GPIOSR) 來(lái)控制HPI 數(shù)據(jù)引腳的輸入輸出。GPIOCR 和GPIOSR 在DSP 的物理地址分別是003CH 和003DH。
如要從擴(kuò)展的HPI 口輸出數(shù)據(jù)40 H ,需要進(jìn)行以下3 步操作:
第一步:在復(fù)位時(shí),將HPIENA 引腳置為低電平;
第二步:將通用I/ O 控制寄存器GPIOCR 的值設(shè)置為0x00FF ;
第三步:將通用I/ O 狀態(tài)寄存器GPIOSR 的相應(yīng)位設(shè)置為01000000 ,即40 H。
實(shí)現(xiàn)的程序代碼如下:
STM # 0x003C ,AR3 ; 選中控制寄存器
ST # 0x00FF , *AR3 ; 將HPI數(shù)據(jù)端置為輸出狀態(tài)
STM # 0x003D ,AR3 ; 選中狀態(tài)寄存器
ST # 0x0040 , *AR3 ; 輸出數(shù)據(jù)40H
結(jié) 語(yǔ)
利用CPLD 實(shí)現(xiàn)VC5402 的存儲(chǔ)器空間擴(kuò)展,大大簡(jiǎn)化了硬件電路的設(shè)計(jì),編程靈活;調(diào)試時(shí),只需對(duì)CPLD 電路進(jìn)行調(diào)試,簡(jiǎn)單方便,此方案可以推廣到其他便攜式圖像采集處理系統(tǒng)的存儲(chǔ)器擴(kuò)展中。
評(píng)論