基于DSP的外部Flash存儲(chǔ)器在線編程的軟硬件設(shè)計(jì)
引言
本文引用地址:http://m.butianyuan.cn/article/257586.htm隨著嵌入式系統(tǒng)向體積更小、性能更高的方向發(fā)展,傳統(tǒng)的DIP(雙列直插)集成電路因體積龐大、元器件I/O引腳數(shù)量受封裝限制等缺陷,已逐漸淡出人們的視線。在嵌入式產(chǎn)品設(shè)計(jì)中,大量采用SMT貼片元器件,既提高了性能,又節(jié)省了寶貴的空間。由于采用貼片元器件,無法將Flash存儲(chǔ)器等元器件從電路板上取下來單獨(dú)進(jìn)行編程。專用編程器的方式已經(jīng)很少采用,取而代之的是采用基于仿真器連接的JTAG接口的在線編程方式。這種在系統(tǒng)帶電編程的方式不受時(shí)間和空間的限制,隨時(shí)隨地都可進(jìn)行,且產(chǎn)品軟件版本升級(jí)容易。
在嵌入式系統(tǒng)中,為了實(shí)現(xiàn)程序的脫機(jī)自動(dòng)運(yùn)行,程序往往固化在電可擦除的Flash存儲(chǔ)器中。要實(shí)現(xiàn)一個(gè)嵌入式系統(tǒng)的帶電脫機(jī)運(yùn)行,在線編程就成為嵌入式系統(tǒng)開發(fā)過程的必經(jīng)之路。由于在線編程涉及到硬件和軟件方面的內(nèi)容,因此要從頂層設(shè)計(jì)和系統(tǒng)的角度來考慮在線編程。硬件設(shè)計(jì)要為軟件設(shè)計(jì)作鋪墊,盡可能簡(jiǎn)化軟件設(shè)計(jì)。
本文以TI公司的DSP芯片TMS320C6711D和AMD公司的4 Mb Flash存儲(chǔ)器AM29LV400B為例來介紹兩種在線編程方式。
1 DSP與Flash存儲(chǔ)器的兩種硬件連接關(guān)系
1.1 以Ready信號(hào)作為硬件握手
帶有Ready信號(hào)的TMS320C6711D的EMIF(Exterhal Memory Interface)接口與Flash存儲(chǔ)器AM29LV400B的硬件連接如圖1所示。由于AM29LV-400B輸出的就緒信號(hào)/忙信號(hào)()為OD(漏極開路)輸出,需要在該信號(hào)上加上拉電阻并連接到VCC。
1.2 采用無Ready硬件連接的軟件握手
不帶Ready信號(hào)的TMS320C6711D與Flash存儲(chǔ)器AM29LV400B的硬件連接如圖2所示。
2 軟件設(shè)計(jì)
2.1 帶有硬件握手的軟件設(shè)計(jì)
帶有Ready信號(hào)連接的Flash存儲(chǔ)器編程時(shí)序如圖3所示。Flash的就緒信號(hào)/忙信號(hào)()輸出為低電平時(shí),表明Flash正忙,處于編程或擦除狀態(tài)。由于DSP與Flash存儲(chǔ)器采用Ready/Busy信號(hào)作為硬件握手信號(hào),當(dāng)Ready/Busy信號(hào)為低電平時(shí),CPU在總線時(shí)序上插入等待周期,直到Ready/Busy信號(hào)解除(為高電平)。在Ready信號(hào)為低電平期間,由于CPU處于等待狀態(tài),程序被暫停執(zhí)行,因此不需要通過軟件來判斷Flash存儲(chǔ)器的編程或擦除狀態(tài)。
Flash擦除函數(shù)如下:
評(píng)論