吐率。
(2)軟件優(yōu)化
軟件優(yōu)化的作用在本系統(tǒng)的調(diào)試過程中效果明顯;本系統(tǒng)的第一個(gè)版本,圖像采集速率僅為3 s/幀;通過軟件優(yōu)化后,達(dá)到了最終的O.3 s/幀。其優(yōu)化如下:
①循環(huán)外移,避免在循環(huán)中重復(fù)運(yùn)算;
②頻繁使用的變量申明為寄存器變量;
③把所有的JPEG-LS編碼函數(shù)代碼拷貝到RAM中執(zhí)行。
默認(rèn)情況下,所有的代碼都存放在Flash中。ARM運(yùn)行時(shí),從Flash中讀取指令并且執(zhí)行。眾所周知,F(xiàn)lash的訪問速度相對(duì)RAM而言,相差一個(gè)數(shù)量級(jí),因此,如果把關(guān)鍵代碼放在RAM中,執(zhí)行速率將會(huì)大大提高。而AT9lR40008內(nèi)部自帶512 KB的RAM,足夠本系統(tǒng)使用,因此,這個(gè)方法可行。
解決的方法有兩個(gè),一是寫一個(gè)啟動(dòng)程序,在啟動(dòng)時(shí),把系統(tǒng)所有的代碼都拷貝到RAM中,這樣系統(tǒng)速度會(huì)提高。然而,該方法實(shí)現(xiàn)起來(lái)較麻煩,且如果程序擴(kuò)展,可能會(huì)超過RAM的512 KB限制。因此,本系統(tǒng)采用另外一個(gè)簡(jiǎn)單方法。采用IAR Embedded Workbench開發(fā)環(huán)境,通過閱讀其編譯器手冊(cè)發(fā)現(xiàn),在函數(shù)之前添加一個(gè)__ramfunc偽指令,那么鏈接器在生成啟動(dòng)代碼時(shí),會(huì)將該函數(shù)拷貝到RAM中,從而提高運(yùn)行效率。其使用例子如下:
__ramfunc void encode_oneline(vcrid)
通過使用該方法,系統(tǒng)的運(yùn)行效率提高了約lO倍。
結(jié)語(yǔ)
本系統(tǒng)以ARM為核心,實(shí)現(xiàn)了JPEG-LS無(wú)損圖像壓縮算法,并日結(jié)合CPLD實(shí)現(xiàn)了CMOS攝像頭的時(shí)序控制。通過藍(lán)牙傳輸,實(shí)現(xiàn)了數(shù)字化的無(wú)線內(nèi)窺系統(tǒng)。
本系統(tǒng)具有良好的擴(kuò)充性,可以使得系統(tǒng)更加微型化。首先,如果采用CSR公司更新的BC3系列芯片,則將融合ARM核以及藍(lán)牙功能,可以更加減小內(nèi)窺鏡的體積。最重要的是,如果發(fā)展自主產(chǎn)權(quán)的內(nèi)窺鏡芯片,那么以現(xiàn)有的SOPC技術(shù),可以將ARM核、CPLD邏輯門以及藍(lán)牙通信功能集成在一起,形成無(wú)線內(nèi)窺鏡的集成解決方案,從而使其產(chǎn)業(yè)化成為可能。
本系統(tǒng)在實(shí)現(xiàn)過程中,完成了一系列的調(diào)試工具,積累了調(diào)試以及優(yōu)化經(jīng)驗(yàn)。我國(guó)現(xiàn)有的醫(yī)療設(shè)備開發(fā)技術(shù)相對(duì)比較落后,在此分享,希望對(duì)同類型的產(chǎn)品設(shè)計(jì)以及芯片生產(chǎn)能有一些參考價(jià)值。





