摘 要:介紹了TMS320C6701芯片的主要功能特點(diǎn)及內(nèi)部結(jié)構(gòu),建立了以DSP" rel="http://www.eeworld.com.cn/my/keyad/ti.html" target="_blank">DSP為核心的星敏感器信息處理電路系統(tǒng),并在此系統(tǒng)中成功實(shí)現(xiàn)了快速的全天球星圖識(shí)別。實(shí)驗(yàn)結(jié)果表明,在不降低星圖識(shí)別率的條件下,該算法在本系統(tǒng)中的運(yùn)行速度為0.47s,比基于RISC的星敏感器數(shù)據(jù)處理單元的速度提高近一倍。
關(guān)鍵詞:DSP;TMS320C6701;星敏感器;星圖識(shí)別
星敏感器是天文導(dǎo)航系統(tǒng)的主要設(shè)備,它是集光學(xué)、機(jī)械、電子、實(shí)時(shí)圖像處理技術(shù)于一體的儀器。它通過(guò)圖像傳感器獲取星體的圖像信息,然后對(duì)圖像信息進(jìn)行實(shí)時(shí)處理,處理過(guò)程包括星體質(zhì)心定位、星圖識(shí)別匹配、快速跟蹤和精確姿態(tài)求解,最后輸出當(dāng)前空間飛行器的姿態(tài)信息。
美國(guó)加州理工大學(xué)的JPL實(shí)驗(yàn)室是最早從事星敏感器的開發(fā)研制工作的,為減小星敏感器硬件電路的功耗,其運(yùn)算電路系統(tǒng)主要由RISC芯片構(gòu)成,用以實(shí)現(xiàn)星體定位及星圖識(shí)別算法等。目前星敏感器實(shí)時(shí)工作的瓶頸在于怎樣提高速度。由于星圖識(shí)別算法占整體星敏感器數(shù)據(jù)處理的大部分時(shí)間,因此需要在軟件上應(yīng)用識(shí)別率高同時(shí)算法簡(jiǎn)單的星圖識(shí)別程序,同時(shí)硬件結(jié)構(gòu)上采用更為先進(jìn)的技術(shù)。星圖識(shí)別程序包括了三角函數(shù)的計(jì)算,矩陣的轉(zhuǎn)換等乘法執(zhí)行指令,乘法執(zhí)行速度越快就代表著識(shí)別程序能夠在更短的時(shí)間內(nèi)完成。DSP的專用硬件乘法器可以大大的提高運(yùn)算的速度。本文正是以星敏感器的這一需求為出發(fā)點(diǎn),采用了頻率高、處理速度快的浮點(diǎn)DSP芯片TMS320C6701作為星敏感器的核心處理器,實(shí)現(xiàn)了以徑向和環(huán)向分布為特征的星圖識(shí)別算法。
1 電路系統(tǒng)設(shè)計(jì)
用于星圖識(shí)別算法的星敏感器DSP系統(tǒng)以C6701為核心,在其外圍加上存儲(chǔ)器模塊、JTAG接口模塊、RS232串口模塊、FIFO接口模塊、電源模塊等,實(shí)現(xiàn)計(jì)算、通訊等功能。系統(tǒng)總體框圖如圖1所示。
圖 1 DSP星敏感器系統(tǒng)框圖
1.1 TMS320C6701的內(nèi)部結(jié)構(gòu)
在星敏感器系統(tǒng)中,我們采用TMS320C6701作為主要處理部件。C6701是TI公司推出的TMS320C6000系列中的一款支持浮點(diǎn)運(yùn)算的高速DSP 芯片,它采用超長(zhǎng)指令字(VLIW) 體系結(jié)構(gòu)。在CPU時(shí)鐘頻率為167MHz時(shí),其運(yùn)算能力最高為1336 MIPS,浮點(diǎn)運(yùn)算能力最高為1 G FLOPS。它有4個(gè)相互獨(dú)立的可編程DMA通道,可獨(dú)立于CPU進(jìn)行工作,以CPU時(shí)鐘速率進(jìn)行數(shù)據(jù)吞吐。
1.2 外部存儲(chǔ)器
DSP硬件系統(tǒng)外部存儲(chǔ)器包括滿足大容量數(shù)據(jù)緩存需求的同步動(dòng)態(tài)RAM,以及存儲(chǔ)所有系統(tǒng)軟件保證系統(tǒng)脫離PC機(jī)獨(dú)立工作的FLASH芯片。
1.2.2 EMIF與SDRAM的接口
C6701片內(nèi)有64kBytes的數(shù)據(jù)存儲(chǔ)器和64kBytes的程序存儲(chǔ)器,而用于星圖識(shí)別的程序需要66kBytes的存儲(chǔ)空間,全天球星庫(kù)需要962kBytes的存儲(chǔ)空間,C6701的片內(nèi)存儲(chǔ)器不能滿足星敏感器的需要,因此電路系統(tǒng)擴(kuò)展了大容量的SDRAM以存放星庫(kù)以及程序。
基于以上需求,采用1片MT48LC4M32B2 –1 Meg x 32 x 4banks SDRAM映射到CE0外部存儲(chǔ)空間。MICRON的MT48LC4M32B2-7是86-pin TSOP(400 mil)的CMOS同步DRAM,最高工作頻率(處理速度)為143Mhz(7ns)。DRAM設(shè)備始終時(shí)鐘控制在CPU時(shí)鐘速率的一半,即當(dāng)CPU芯片以O(shè)SC4運(yùn)行時(shí),SDRAM以66.67Mhz(15ns)運(yùn)行。
1.2.2 EMIF與FLASH的接口
在基于C6701的應(yīng)用程序的開發(fā)中,程序代碼或數(shù)據(jù)表是要保存在FLASH或其它非易失存儲(chǔ)器中,以保證掉電時(shí)代碼仍在,程序在加電復(fù)位后自動(dòng)運(yùn)行。C6701的EMIF通過(guò)異步接口可以支持8位、16位和32位FLASH配置。要實(shí)現(xiàn)TI TMS320C6201/ C6701的外部ROM自舉,“8/16bit ROM/FLASH存儲(chǔ)器”必須配置在CE1空間。本系統(tǒng)使用的Flash芯片AT49BV1614A是一種存儲(chǔ)量1M16或2M8的閃速存儲(chǔ)器,存取時(shí)間70ns,能夠電擦除,并能在大多數(shù)標(biāo)準(zhǔn)的微處理器總線上通過(guò)特殊的編碼命令序列編程。
1.3 擴(kuò)展接口
系統(tǒng)還嵌入了FIFO擴(kuò)展接口以及串口通訊模塊。通過(guò)FIFO接口與FPGA連接,獲得數(shù)據(jù)進(jìn)入DSP進(jìn)行處理。通過(guò)RS232接收發(fā)送器,方便的實(shí)現(xiàn)DSP與計(jì)算機(jī)的串行通訊,將全天球星圖識(shí)別計(jì)算結(jié)果傳回PC機(jī)顯示。
1.3.1 串行接口
TMS320C6701的多通道緩沖串口McBSP是同步串口,而計(jì)算機(jī)的串行口RS232是異步串口,中間就要考慮到同步串口轉(zhuǎn)異步接口,以及電平轉(zhuǎn)換的問(wèn)題。將McBSP轉(zhuǎn)換成UART,再進(jìn)行電平轉(zhuǎn)換,就可以與RS232直接進(jìn)行通信。
MAX3111E是一個(gè)集成SPI/微細(xì)線兼容接口的UART和15kv放電保護(hù)RS232收發(fā)器為一體的芯片。使McBSP工作在SPI模式下【3】, MAX3111E來(lái)完成McBSP和RS232之間的通信。
1.3.2 FIFO接口
通過(guò)C6701的外部存儲(chǔ)器接口實(shí)現(xiàn)高速外部先入先出(FIFO)存儲(chǔ)器與DSP的接口,來(lái)保證外部設(shè)備FPGA傳輸數(shù)據(jù)到DSP進(jìn)行處理。
2 系統(tǒng)軟件設(shè)計(jì)
星圖識(shí)別算法的程序是用C語(yǔ)言實(shí)現(xiàn)的,主要有星圖識(shí)別程序,以及一些輔助程序。基于所用的TMS320C6701芯片,我們編寫了一些硬件驅(qū)動(dòng)程序,例如FLASH燒寫及BOOTLOADER程序等。
2.1 星圖識(shí)別算法
本文采用了基于徑向和環(huán)向分布特征的全天球星圖識(shí)別方法【4】。它的基本思想為:利用徑向分布特征作為初始匹配,利用環(huán)向分布特征進(jìn)行精確匹配。
圖 2 徑向分布特征
以主星S為中心,如圖所示將圓周等分成8份,計(jì)算其他伴星在圓周上的分布,組成一個(gè)8位的向量V(<11000100>)。將V作循環(huán)移位,找出V所組成的數(shù)(十進(jìn)制)的最大值,將這個(gè)最大值作為S的環(huán)向分布特征。如圖所示V移位后仍然保持不變,則環(huán)向特征向量 =11000100=196。
圖 3 環(huán)向分布特征
事先構(gòu)造全天球?qū)Ш叫菐?kù)的模式庫(kù)。使用時(shí)獲得星圖后,計(jì)算該星圖中某顆星的模式,通過(guò)比較導(dǎo)航星庫(kù)中的星模式,找到最匹配的星,完成全天球星圖識(shí)別的過(guò)程,從而確定飛行器的位置。DSP經(jīng)過(guò)串口模塊,將計(jì)算結(jié)果傳遞給PC機(jī)顯示,可以比較DSP與PC機(jī)的處理結(jié)果。
2.2 BOOT過(guò)程的實(shí)現(xiàn)
TMS320C6701器件可以設(shè)置成三種自舉方式,分別為(1)無(wú)自舉;(2)ROM自舉;(3)主機(jī)自舉。
系統(tǒng)加電后,RESET信號(hào)為低,芯片復(fù)位。在RESET信號(hào)上升沿處,鎖存BOOTMODE[4:0]信號(hào),借以決定芯片的存儲(chǔ)器映射方式、地址0處的存儲(chǔ)器類型以及復(fù)位后芯片的自舉模式,復(fù)位結(jié)束后,芯片從存儲(chǔ)器的0地址開始執(zhí)行指令。TMS320C6701芯片有專門的BOOTMODE[4:0]管腳決定芯片的各種設(shè)置。本系統(tǒng)中BOOTMODE[4:0]管腳設(shè)置成[10101],芯片在復(fù)位后自動(dòng)將位于外部CE1空間ROM中的程序通過(guò)DMA搬入地址0處,傳輸完成后,CPU退出復(fù)位狀態(tài),開始執(zhí)行地址0處的指令,程序啟動(dòng)。
3 實(shí)驗(yàn)結(jié)果
本文以星敏感器的視場(chǎng)FOV為1212的視場(chǎng)、敏感星等為6等為例,編程測(cè)試以上提到的算法。
測(cè)試結(jié)果表明,基于DSP的硬件系統(tǒng)以及基于RISC的硬件系統(tǒng)的識(shí)別結(jié)果及識(shí)別率一致。DSP系統(tǒng)平均識(shí)別時(shí)間約為0.47s,RISC系統(tǒng)平均識(shí)別時(shí)間約為0.805s,大大提高了星敏感器的實(shí)時(shí)性。
4 結(jié)論
本文首先介紹了星敏感器運(yùn)算及控制的核心——DSP處理器的結(jié)構(gòu)及特點(diǎn),然后利用高速浮點(diǎn)芯片TMS320C6701搭建硬件系統(tǒng),完成了基于DSP的星敏感器運(yùn)算電路系統(tǒng)。接著分析了以徑向和環(huán)向分布為特征的快速星圖識(shí)別算法和BOOT過(guò)程實(shí)現(xiàn)的軟件程序。最后仿真驗(yàn)證表明,該系統(tǒng)可以很好的完成星圖識(shí)別任務(wù),同時(shí)系統(tǒng)平均識(shí)別時(shí)間達(dá)到為0.47s,處理速度相比RISC數(shù)據(jù)處理單元提高了近一倍。
參 考 文 獻(xiàn)
[1] 王念旭等. DSP基礎(chǔ)與應(yīng)用系統(tǒng)設(shè)計(jì). 北京航空航天大學(xué)出版社,2002.
[2] TMS320C6000 EMIF-to-External SDRAM Interface. US: TI Company,2001.
[3] TMS320C6000 McBSP Interface to SPI ROM. US: TI Company,2001.
[4] 魏新國(guó),張廣軍,江潔,“利用徑向和環(huán)向分布特征的星圖識(shí)別方法”,光電工程,2004年,第8期.