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