基于TMS320C6711B DSP的中心定位算法設(shè)計
地平儀是衛(wèi)星姿態(tài)控制系統(tǒng)的關(guān)鍵子系統(tǒng),其測量精度和可靠性直接關(guān)系到衛(wèi)星姿態(tài)是否精確和穩(wěn)定。本文利用TI公司的DSP芯片TMS320C6711B(簡稱C6711)實現(xiàn)了中心定位的相關(guān)算法。
1 實時圖像處理系統(tǒng)的硬件構(gòu)成
本系統(tǒng)以C6711為核心,輔助以現(xiàn)場可編程門陣列FPGA及高速A/D等器件構(gòu)成實時高速數(shù)字圖像處理系統(tǒng)。系統(tǒng)硬件框圖如圖1。該圖像處理系統(tǒng)的工作原理是:由CCD采集輸出的模擬圖像信號,經(jīng)過高速A/D將模擬信號轉(zhuǎn)換為數(shù)字信號。數(shù)字圖像信號在FPGA控制下,將數(shù)據(jù)不斷輸入至雙口RAM。每當(dāng)一幀圖像掃描結(jié)束時,F(xiàn)PGA提供一個中斷標(biāo)志信號,觸發(fā)DSP進(jìn)行數(shù)據(jù)搬移,將雙口RAM中的一幀圖像通過C6711的QDMA搬移到SDRAM中。QDMA將數(shù)據(jù)搬移完后檢查圖像數(shù)據(jù)是否有效,如有效則觸發(fā)DSP執(zhí)行圖像處理程序,否則返回等下一個中斷到來。DSP在下次中斷到來之前處理完本幀圖像,將得出的姿態(tài)角信息通過多通道緩沖串口McBSP輸出給電腦PC機(jī)RS232口并顯示,之后又進(jìn)入中斷等待狀態(tài),等待中斷再次觸發(fā)QDMA進(jìn)行數(shù)據(jù)搬移。
1.1 C6711數(shù)字信號處理器
C6711是TI公司的高速浮點DSP芯片,主頻為150MHz,最高能達(dá)到900MFLOPS的峰值運算能力。C6711由CPU內(nèi)核、片內(nèi)外設(shè)和存儲器三大部分組成。處理單元采用高性能、先進(jìn)的VelociTITM結(jié)構(gòu),每時鐘周期8個功能單元可并行工作。C6711具有特別適合實時圖像處理的特點:
(1)先進(jìn)的VelociTI超長指令字C67xDSP內(nèi)核;
(2)硬件支持IEEE標(biāo)準(zhǔn)的單精度和雙精度浮點指令;
(3)32位外部存儲器接口(EMIF),提供與同步、異步存儲器的無縫接口;
(4)兩級緩存結(jié)構(gòu),其中:程序緩存32Kbit,數(shù)據(jù)緩存32Kbit,二級緩存512Kbit;
(5)增強型DMA控制器,共16個獨立通道。
1.2 A/D變換
由CCD輸出的模擬圖像信號,經(jīng)過高速A/D將模擬信號轉(zhuǎn)換為10位數(shù)字圖像信號,在FPGA的控制下存入雙口RAM存儲器,供DSP處理使用。
1.3 電源模塊和監(jiān)控復(fù)位電路
C6000系列DSP需要兩種電壓,分別為CPU內(nèi)核電壓和周邊I/O接口電壓。C6711需要3.3V和1.8V兩種電壓,并且要求兩種電源滿足一定的加電順序。本系統(tǒng)采用兩者同時加電的方式。根據(jù)系統(tǒng)的功耗要求,分別采用芯片TPS54316和TPS54314直接產(chǎn)生3.3V和1.8V兩種電壓,它最大可提供3A的供電電流。電源監(jiān)控和復(fù)位電路采用TI公司的TPS3307-33實現(xiàn),它可以同時監(jiān)測三個獨立的電壓3.3V/5V/1.8V,并且被監(jiān)測的三個電壓有一個低于其門限值時,就可以保證輸出有效的
信號,使DSP復(fù)位,當(dāng)它們的值都高于門限值時,
信號才變?yōu)楦唠娖?。[!--empirenews.page--]1.4 時鐘模塊和JTAG接口
25MHz時鐘信號經(jīng)過ICS501倍頻后,產(chǎn)生150MHz和100MHz時鐘信號,經(jīng)三態(tài)門總線緩沖器74LVTH125輸出后得到CPU工作時鐘及同步接口所需的工作時鐘。C6711的7個JTAG仿真腳
、TMS、TDI、TDO、TCK、EMU1和EMU0連接到一個14腳雙排插頭上,可與仿真器相連,以進(jìn)行系統(tǒng)調(diào)試和程序下載。
1.5 外部存儲器設(shè)計
C6711訪問外部存儲器必須通過EMIF。EMIF不僅有很高的數(shù)據(jù)吞吐率,而且還有很強的接口能力,可以與目前所有類型的存儲器直接接口。設(shè)計采用三種類型的存儲器:Flash ROM、雙口RAM和同步動態(tài)存儲器SDRAM。Flash ROM 是現(xiàn)場可擦除、掉電后可保持?jǐn)?shù)據(jù)的存儲器,用來固化程序和保存掉電后需要保存的數(shù)據(jù);雙口RAM用來存儲一幀圖像數(shù)據(jù);SDRAM運行速度快,用來存放實時運行程序和臨時數(shù)據(jù)。本系統(tǒng)Flash ROM采用SST39VF040,且配置在CE1空間。雙口RAM采用IDT70V28,且配置在CE2空間。選用HY57V653220作為SDRAM,配置在CE0空間,這樣的配置與引導(dǎo)方式相配合。
1.6 輸出電路
系統(tǒng)根據(jù)輸入的圖像,由C6711進(jìn)行處理后得出一個衛(wèi)星姿態(tài)角信息。該姿態(tài)角信息由C6711輸出到PC機(jī)的RS-232口,由于通信的信息量少,所以可以利用C6711的多通道緩沖串口McBSP,在不擴(kuò)展其他硬件的情況下,用軟件實現(xiàn)異步數(shù)據(jù)傳輸格式。發(fā)送時,發(fā)送轉(zhuǎn)換子程序把每一個數(shù)據(jù)位擴(kuò)展成16位的UART字,并把這些已轉(zhuǎn)換好的數(shù)據(jù)塊放入發(fā)送緩沖區(qū),同時在適當(dāng)?shù)牡胤郊由掀鹗嘉缓徒K止位(如圖2所示),然后EDMA把數(shù)據(jù)從發(fā)送緩沖區(qū)傳給McBSP,而McBSP幀同步發(fā)生器負(fù)責(zé)連續(xù)地移出這些數(shù)據(jù)[4];接收時,EDMA從McBSP讀入已經(jīng)擴(kuò)展過的數(shù)據(jù),并把這些數(shù)據(jù)寫入接收緩沖區(qū),然后再調(diào)用壓縮子程序把數(shù)據(jù)轉(zhuǎn)換成原來的字節(jié)形式。這種方法的優(yōu)點是硬件接口簡單,只需增加一個CMOS電平與RS232電平的電平轉(zhuǎn)換電路。
2 圖像處理算法的實現(xiàn)
中心定位圖像處理算法設(shè)計以輸入圖像格式320×240像素、1024灰度級/像素為基礎(chǔ),包括濾波、判斷地平圈是否進(jìn)入視場、邊緣檢測和精確定中心幾個部分。
2.1 濾波
探測器可能存在小于1%的壞單元,其灰度值主要為0或1023,壞元區(qū)范圍小于3×3。壞元的存在有可能對邊緣檢測帶來誤差,再加上采集到的圖像數(shù)據(jù)信噪比較低,所以采用二維中位數(shù)濾波[5]。其做法是:對于一幀圖像,采用從上到下、從左到右的方法,移動3×3的窗口,在每一個位置,將有9個圖像像素出現(xiàn)在窗口中,對這9個像素灰度值進(jìn)行排序,使用快速排序法找到處于正中的像素值,把這個值賦給3×3窗口的中心像素。使用這種方法可以有效濾除區(qū)域不大于2×2的突發(fā)性干擾,從而提高算法精度。
2.2 判斷地平圈是否進(jìn)入視場
當(dāng)衛(wèi)星初始進(jìn)入軌道時,在地平儀初始狀態(tài)下可能探測不到地球,這時需啟動搜索程序控制衛(wèi)星偏轉(zhuǎn)以搜索地球。因此,必須對所得的地平圈圖像采用逐行掃描的搜索方法以判斷地球是否進(jìn)入視場。
2.3 邊緣檢測
邊緣提取首先檢測圖像局部特性的不連續(xù)性,然后再將這些不連續(xù)的邊緣像素連成完備的邊界。邊緣的特性是沿邊緣走向的像素變化平緩,而垂直于邊緣方向的像素變化劇烈。從這個意義上說,提取邊緣的算法就是檢測符合邊緣特性的邊緣像素的數(shù)學(xué)算子。
由于地球的輻射存在不均勻性,所以地平高度與采用的地平檢測方式有關(guān)。其差別在于對應(yīng)不同的地平檢測方式,具體的地平高度隨地球輻射變化程度不同。本文采用比例門限法檢測地平圈。具體算法如下:以粗略地心為起點,以0.5度為間隔取720條射線??紤]到只需掃描地球輻射過渡帶,所以每條射線的掃描起點距粗略地心為100個單位,間隔一個單位進(jìn)行一次采樣。由于該采樣點的坐標(biāo)不是整型,所以利用雙線性內(nèi)插得到采樣點的灰度值,依次判斷采樣點,一邊記錄灰度最大值,一邊判斷該灰度值是否小于最大值的一半。當(dāng)條件成立時,掃描停止,算出灰度值為最大值的50%所對應(yīng)的坐標(biāo),即地平點坐標(biāo)。掃完720條射線后,所有的地平點構(gòu)成一個地平圈。該算法對接近過渡帶的點進(jìn)行雙線性內(nèi)插,提高了程序執(zhí)行效率。檢測出的地平點坐標(biāo)是浮點數(shù),提高了地平判定精度,有利于減小測量地心的誤差。[!--empirenews.page--]2.4 精確定中心
精確定中心是算法中最關(guān)鍵的部分,方法的好壞直接影響地心的精度。一般有霍夫變換法、面積積分和三點均值法等。精確定位采用面積積分法。根據(jù)微積分理論,對于一個封閉區(qū)域D,其重心坐標(biāo)可用如下公式得到:
式中,x和y代表單元點的坐標(biāo),ρ(x,y)代表單元點的密度,D代表整個區(qū)域。
當(dāng)ρ(x,y)=1時,區(qū)域的重心和形心重合,S表示區(qū)域的面積。為了能夠用計算機(jī)計算區(qū)域的中心位置,必須對上面的公式離散化。離散化后的公式為:
式中, R(θ)表示對應(yīng)θi~θi+1范圍內(nèi)的幅值變化規(guī)律。
3 實驗結(jié)果
把CCD拍攝到的圖像數(shù)據(jù)送入該系統(tǒng)處理,每處理完一幀圖像就會從串口輸出一個姿態(tài)角信息。表1是四幀圖像的處理結(jié)果。從表1可以看出算法的精度優(yōu)于0.1的指標(biāo)要求,算法處理時間約為0.49秒,滿足一秒處理一幀的實時要求。
實時圖像處理系統(tǒng),實現(xiàn)了圖像采集、實時數(shù)據(jù)處理及輸出。系統(tǒng)具有很好的升級性和擴(kuò)展性。采用DSP處理器,增強了系統(tǒng)的處理能力,提高了系統(tǒng)處理速度,保證了工作的實時性要求。采用貼片器件,既減小了PCB板的尺寸,又增強了系統(tǒng)的可靠性。實驗證明,中心定位算法通過對原始圖像濾波、判斷目標(biāo)是否進(jìn)入視場、邊緣檢測和精確定中心大大提高了地平儀的測量精度。