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