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