基于TMSF240芯片的內(nèi)部FLASH的一種自測(cè)試方法
摘要:飛控計(jì)算機(jī)作為飛行控制系統(tǒng)的核心控制處理單元,其可靠性要求是所有航空電子設(shè)備中最高的,用于飛控計(jì)算機(jī)的每一個(gè)元器件都必須經(jīng)過嚴(yán)格的自測(cè)試。隨著DSP越來越廣泛應(yīng)用于飛控系統(tǒng),對(duì)于芯片內(nèi)部FLASH的自測(cè)試卻往往被忽視,這是飛控系統(tǒng)不能容忍的。針對(duì)此問題,文章介紹了一種基于TMSF240芯片的內(nèi)部FLASH自測(cè)試方法。
關(guān)鍵詞:內(nèi)部FLASH;自測(cè)試;飛控計(jì)算機(jī)
0 引言
目前DSP芯片不僅廣泛應(yīng)用于機(jī)載設(shè)備中,也越來越廣泛地應(yīng)用于飛控計(jì)算機(jī)和自動(dòng)駕駛儀中。飛行控制系統(tǒng)的安全性直接關(guān)系到飛機(jī)和飛行員的存亡。飛控計(jì)算機(jī)作為飛行控制系統(tǒng)的核心控制處理單元,其可靠性要求是所有航空電子設(shè)備中最高的。自動(dòng)駕駛儀是按一定技術(shù)要求自動(dòng)控制飛行器的裝置,與飛機(jī)上其他系統(tǒng)交聯(lián)還可實(shí)現(xiàn)對(duì)飛機(jī)的控制,其可靠性也不容忽視。用于飛控計(jì)算機(jī)和自動(dòng)駕駛儀的每一個(gè)元器件都必須經(jīng)過嚴(yán)格的測(cè)試。
飛控計(jì)算機(jī)CPU模塊的處理器通常選用PowerPC或X86系列,CPU模塊設(shè)計(jì)有專門的FLASH芯片,為保證飛控程序存放的正確無誤,F(xiàn)LASH測(cè)試必不可少。而智能接口模塊的處理器通常選用TMSF240、TMSF2812等,采用片內(nèi)FLASH存放自己的程序。這部分FLASH的自測(cè)試常常被忽視,而這是飛控系統(tǒng)不能容忍的。本文介紹了一種基于TMSF240芯片內(nèi)部FLASH的自測(cè)試方法。
1 問題描述
在CPU處理器無自帶FLASH空間的情況下,我們選用市場(chǎng)上專用的FLASH芯片,通過硬件設(shè)計(jì)該FLASH芯片的每一個(gè)地址空間都是可以訪問的,我們可以指定不同的區(qū)域存放不同的內(nèi)容。FLASH芯片的自測(cè)試也有很多種方法,目前較普遍采用的是校驗(yàn)和的方法,即由專門的燒寫工具(可以使用軟件完成該工具)在燒寫的過程中將校驗(yàn)和計(jì)算好直接放到指定的單元中,這個(gè)單元可以指定到燒程序時(shí)寫不到的空閑空間,自測(cè)試時(shí)只需重新計(jì)算一遍校驗(yàn)和與該值進(jìn)行比較即可。此種方法我們稱之為方法一。
而TMSF240內(nèi)部自帶FLASH存儲(chǔ)空間,燒錄過程對(duì)于用戶來說較透明。我們不直接指定向某一具體的Flash空間寫入數(shù)據(jù),而是通過執(zhí)行TI公司提供的批處理文件,經(jīng)由聞亭仿真器連接目標(biāo)機(jī)來完成燒錄程序的過程,因此直接使用方法一我們無處存放校驗(yàn)和為使用方法一來測(cè)試芯片內(nèi)部的FLASH我們必須解決校驗(yàn)和的存放問題。
2 芯片內(nèi)部FLASH自測(cè)試方法概述
下面介紹的方法實(shí)現(xiàn)的是解決程序本身自測(cè)試程序本身燒到FLASH后保存的是否正確的問題。該方法不是將校驗(yàn)和直接寫到FLASH中,而是在待燒錄的程序中定義一個(gè)變量,該變量最終用于存放事先計(jì)算好的校驗(yàn)和,通過兩次燒錄實(shí)現(xiàn)芯片內(nèi)部FLASH自測(cè)試功能的。必須巧妙地避開因改變程序本身而引起的程序校驗(yàn)和改變而導(dǎo)致自測(cè)試算法失效的問題。
本方法需要事先將程序完全調(diào)試好燒錄到FLASH中,然后才能讀取FLASH內(nèi)容計(jì)算校驗(yàn)和。此時(shí)將校驗(yàn)和值賦給事先定義好的變量,重新編譯后得到最終的目標(biāo)碼,燒錄到FLASH中。程序上電后自動(dòng)運(yùn)行,F(xiàn)LASH自測(cè)試程序在每次執(zhí)行自測(cè)試功能時(shí)都將要測(cè)試的程序空間讀出并計(jì)算校驗(yàn)和與該變量進(jìn)行比較,比較結(jié)果一致則待測(cè)試FLASH空間正確,反之則表明FLASH空間有故障。
由于變量賦值的改變會(huì)導(dǎo)致整個(gè)代碼校驗(yàn)和的改變,因此該問題必須得到恰當(dāng)?shù)慕鉀Q。第一次燒寫的程序的算法如圖1所示。
以上步驟中第二步到第四步是此算法的實(shí)現(xiàn)重點(diǎn),它屬于代碼的一部分,兩次燒寫要對(duì)其進(jìn)行更改,詳見第3節(jié)。第三步是本方法的關(guān)鍵所在,由于sum=0,所以經(jīng)過“sum=sum+sum;”的運(yùn)算后sum值還是0,并沒有改變sum的值。而sum的初值0并沒有對(duì)程序的真實(shí)校驗(yàn)和值做出貢獻(xiàn),這為第二次燒寫的程序代碼和計(jì)算做出鋪墊。
評(píng)論