一種片外Flash存儲器IAP的方案
以ARM芯片為處理器核的嵌入式應用系統(tǒng),以其小體積、低功耗、低成本、高性能、豐富的片內(nèi)資源以及對操作系統(tǒng)的廣泛支持,得到了人們越來越多的青睞。包括工業(yè)控制領域、無線通信領域、網(wǎng)絡應用、消費電子、成像和安全產(chǎn)品等,如今,ARM微處理器及嵌入式技術的應用幾乎已經(jīng)滲透到了各個領域。其中,ARM7作為ARM微處理器系列中的一員,是低功耗的32位RISC處理器。
Samsung公司的S3C4510B、Philips公司的LPC20XX、LPC21XX、LPC22XX系列等都是ARM7處理器。這些為數(shù)繁多的ARM7處理器,因其片內(nèi)外設不同而各擅所長,但都應用同樣的ARM7TDMI核(或ARM7TDMI-S核,這是ARM7TDMI的綜合版本,這兩種核對處理器應用人員來說沒有區(qū)別)??梢哉f,ARM7TDMI是目前使用最為廣泛的32位嵌入式RISC處理器
ARM7TDMI核應用馮 ·諾依曼結(jié)構(gòu),處理器使用的存儲器中數(shù)據(jù)和程序指令不予區(qū)分,PC寄存器指向的存儲器單元,無論是ROM區(qū)還是RAM區(qū),只要符合ARM指令的格式都可以執(zhí)行,這就為系統(tǒng)自修改提供了可能。在應用編程IA(In Application Program)就是這樣的自修改程序。它先在RAM存儲器中寫入數(shù)據(jù)值,然后使PC指向該存儲段,把該段作為程序段來執(zhí)行。很多ARM7芯片自帶IAP處理器,應用其自帶的IAP處理器可以方便地對其片內(nèi)集成的FLASH存儲器進行在應用編程,但幾乎所有的ARM核芯片均不支持片外IAP處理,因為片外Flash存儲器是用戶選型的,芯片生產(chǎn)廠家無法先知先覺,而不同F(xiàn)lash存儲器其編程時序也不盡相同,導致芯片生產(chǎn)廠家無法提供通用的IAP代碼。那么,如何對嵌入式系統(tǒng)的片外Flash存儲器進行在應用編程呢?這里分兩種情況:一是普通代碼存放在片外單獨1片F(xiàn)lash中,IAP代碼在另一片F(xiàn)lash中完成,此時只要依據(jù)Flash的操作時序執(zhí)行IAP代碼,完成擦除或?qū)懭氩僮骷纯?。這種情況雖然簡單,但應用了2片F(xiàn)lash;而IAP代碼很小,一般完全可以集成到1片中,所以這里對這種情況不予考慮,另一種情況是1片F(xiàn)lash中既要存儲普通代碼,又要實現(xiàn)IAP。下面以Philips公司的LPC2210和Silicon Storage Technology公司的SST39VF160為例,詳細討論這種情況IAP的解決方案。
1 硬件結(jié)構(gòu)
1.1 LPC2210介紹
Philips公司的LPC2210是一款基于支持實時仿真和嵌入式跟蹤的16/32位ARM7TDMI-S CPU的微控制器。芯片采用144腳封裝,有16KB片內(nèi)靜態(tài)RAM,開放外部總線;通過外部存儲器接口可將外部存儲器配置成4組,每組的容量高達16Mb,數(shù)據(jù)寬度8/16/32位均可;具有多個32位定時器、8路10位PWM輸出、多個串行接口(包括2個16C550工業(yè)標準UART、高速I2C接口和2個SPI接口)以及9個外部中斷、多達76個可承受5V電壓的通用I/O口,同時內(nèi)嵌實時時鐘和看門狗,片內(nèi)外設功能豐富強大;片內(nèi)晶振頻率范圍1-30MHz,通過片內(nèi)PLL可實現(xiàn)最大為60MHz的CPU工作頻率,具有2種低功耗模式--空閑和掉電,通過外部中斷將處理器從掉電模式中喚醒,并可通過個別使能/禁止外部功能來優(yōu)化功耗。以上特性,使其特別適用于工業(yè)控制、醫(yī)療系統(tǒng)、訪問控制和POS機,同時也非常適合于通信網(wǎng)關協(xié)議轉(zhuǎn)換器、嵌入式軟Modem,以及其他各種類型的應用。
1.2 SST39VF160介紹
Silicon Storage Technology公司的SST39VF160是一個1M×16b的COMS多功能FLASH器件,單電壓的讀和寫操作,電壓范圍3.0-3.6V,提供48腳TSOP和48腳TFBGA兩種封裝形式。
該器件主要操作包括讀、寫編程、扇區(qū)/塊擦除和芯片擦除操作。擦除和字編程必須遵循一定的時序,表1列出了扇區(qū)擦除和字編程過程及時序。擦除或編程操作過程中讀取觸發(fā)位DQ6將得到"1"和"0"的循環(huán)跳變;而操作結(jié)束后讀DQ6,得到的是不變的固定值。這是器件提供的寫操作狀態(tài)檢測軟件方法。
1.3 硬件連接
SST39VF160作為系統(tǒng)的程序存儲器,以LPC2210的CS0作為Flash的片選信號,處理器配置Boot引腳為16位數(shù)據(jù)總線寬度后,上電可直接執(zhí)行SST39VF160中代碼。此Flash芯片為16位數(shù)據(jù)寬度,無字節(jié)控制總線,所以應用中不使用LPC2210的BLS引腳。系統(tǒng)結(jié)構(gòu)示意圖如圖1所示。
評論