基于PLD的嵌入式系統(tǒng)外存模塊設(shè)計(jì)
本文引用地址:http://butianyuan.cn/article/150820.htm
3 地址分配
有了上面的存儲(chǔ)器擴(kuò)展方法,再結(jié)合系統(tǒng)的技術(shù)參數(shù)和單片機(jī)的特點(diǎn),就可以做出一套合理的內(nèi)存地址分配方案。下面給出單片機(jī)的地址劃分情況:
0000H~01FFH 系統(tǒng)寄存器區(qū),保留0200H~1EFFH用戶區(qū),直接映射到Flash ROM中的
0200H~1EFFH 可以用來存放數(shù)據(jù)、程序等,該區(qū)域可以由單片機(jī)直接進(jìn)行尋址。
1FOOH~1FFFH 用戶區(qū),實(shí)際使用中把Address—1lR、Address_F_WP等地址以及一些特殊設(shè)備如A/D轉(zhuǎn)換器、LCD顯示屏等的訪問地址設(shè)置在這個(gè)區(qū)域。
2000H~207FH 該區(qū)域是中斷向量區(qū)、芯片配置字節(jié)區(qū)、保留字區(qū)等,直接映射到Flash ROM中的2000H-207FH。
2080H~8FFFH 用戶區(qū),單片機(jī)啟動(dòng)也是從 2080H 處開始執(zhí)行程序的,因此把這個(gè)地址范圍直接映射到 Flash ROM 的2080H~8FFFH,該區(qū)域設(shè)置系統(tǒng)的引導(dǎo)、初始化等程序。
9000H~FFFFH 用戶區(qū),將這一段映射到 RAM 的9000H~FFFFH,作為系統(tǒng)程序的運(yùn)行區(qū)域。
圖4中白色區(qū)域是單片機(jī)通過總線直接尋址的區(qū)域,可以由單片機(jī)直接進(jìn)行訪問?;疑珔^(qū)域?yàn)閮?nèi)存的擴(kuò)展區(qū)域,不能被單片機(jī)直接訪問,但可以通過前面介紹的方法由EPLD生成地址進(jìn)行讀寫操作。下面簡(jiǎn)要介紹一下各個(gè)區(qū)域在實(shí)際中的用途:Flash ROM中的0000H~1FFH和1F00H~1FFFH因?yàn)槿萘亢苄?,沒有被利用。系統(tǒng)啟動(dòng)后從Flash ROM的2080H處開始執(zhí)行程序,將2000H~8FFFH的內(nèi)容復(fù)制到RAM中的9000H~FFFFH,然后跳轉(zhuǎn)到RAM中執(zhí)行系統(tǒng)程序。由于Hash ROM的速度慢,需要在讀寫過程中插入一定量的等待周期,因此將程序復(fù)制到RAM中執(zhí)行可以提高系統(tǒng)的性能;同時(shí)系統(tǒng)在對(duì)Flash ROM進(jìn)行寫入操作后,編程階段的10ms內(nèi)不能對(duì)其進(jìn)行讀取,因此RAM在這個(gè)時(shí)候也提供了程序運(yùn)行的位置。這樣分配后,程序的長度被限制在28K字節(jié),實(shí)際中這個(gè)數(shù)量完全可以滿足系統(tǒng)的需求。Hash ROM中的9000~FFFFH共28K字節(jié),用來保存4段系統(tǒng)運(yùn)行配置程序,每段長度可達(dá)7K字節(jié);10000H-
1FFFFH共64K字節(jié),用來作為采集數(shù)據(jù)的保存區(qū)域。RAM中的0000H~8FFFH共36K字節(jié),用來作為數(shù)據(jù)的緩存區(qū)域。從上面的分析可以看出,最終設(shè)計(jì)的各項(xiàng)指標(biāo)都已經(jīng)超過實(shí)際的需求,能很好地解決實(shí)際應(yīng)用問題。
4 合理利用日EADY信號(hào)
最后介紹一下單片機(jī)就緒信號(hào)READY在這個(gè)系統(tǒng)中的關(guān)鍵作用。從前面的設(shè)計(jì)中可以看出系統(tǒng)存在著高速RAM和慢速Hash ROM存儲(chǔ)器,開始時(shí),Hash ROM選用了AT29C1024-70JCt31,它是該型號(hào)中速度最快的,有效數(shù)據(jù)建立時(shí)間僅為70ns。單片機(jī)不插入等待周期的讀寫時(shí)序,如圖5所示。
從ALE下降沿地址有效到/RD上升沿的時(shí)間是80ns,Hash的響應(yīng)時(shí)間為70ns,再加上EPLD的延時(shí)就造成了單片機(jī)從Hash ROM讀取數(shù)據(jù)的不穩(wěn)定,表現(xiàn)在無法對(duì)Flash ROM進(jìn)行在線寫入、經(jīng)常發(fā)生錯(cuò)誤的執(zhí)行結(jié)果、死機(jī)等。為此必須加入等待周期,延長讀、寫時(shí)間才能滿足Hash ROM的要求。在這里只需插入一個(gè)等待周期(100ns)便可以滿足要求,因此設(shè)置芯片配置字節(jié)CCR.5=0,CCR.4;0[1]。這樣,當(dāng)READY信號(hào)為低電平時(shí)便自動(dòng)插入且僅插入一個(gè)等待周期。一個(gè)簡(jiǎn)單的做法就是把Flash ROM的片選信號(hào)/CS2連接到READY,這樣,當(dāng)選中Flash ROM芯片時(shí)READY信號(hào)就跟隨/CS2同時(shí)變?yōu)榈碗娖健0凑者@樣的設(shè)想可在EPLD內(nèi)部重新設(shè)置READY信號(hào),描述如下:
ready=!(((a[15..0]>=H0200)(a [15..0]:=H1EFF))
#((a[15..0]>=H2000)(a[15..0]=H8FFF))#(a[15..0]= =Address_F_R)
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論