一 前言 縱觀當(dāng)前國(guó)內(nèi)的望遠(yuǎn)鏡市場(chǎng),大大小小的望遠(yuǎn)鏡都配上了電腦,實(shí)現(xiàn)PC機(jī)控制,這樣無(wú)形之中就增加了產(chǎn)品的生產(chǎn)成本,使一些原本不必要配電腦的中小型望遠(yuǎn)鏡也必須得配一臺(tái)電腦,脫離了電腦,就只能進(jìn)行一些簡(jiǎn)單的手動(dòng)操作,令人苦不堪言,本人主要就這一方面作了一些粗陋的研究,用單片機(jī)的匯編語(yǔ)言編制了望遠(yuǎn)鏡自動(dòng)找星的程序,實(shí)現(xiàn)了把手盒自動(dòng)找星的功能。 二 系統(tǒng)硬件概述 本控制系統(tǒng)的核心部分是采用雙串口的CPU(W77E58芯片),可以同時(shí)和上位機(jī)及把手盒通信,也可以單獨(dú)和他們通信,一片XC95108-84負(fù)責(zé)計(jì)數(shù)分頻等工作,一片MC146818時(shí)鐘芯片,用來(lái)產(chǎn)生恒星時(shí),附加一些外圍接口電路,具體詳情見(jiàn)(圖一),因?yàn)楸疚闹亟榻B的是算法部分,因此硬件部分不再細(xì)述。 下位機(jī)系統(tǒng)方框原理圖(圖一) 三 軟件部分 具體地講,軟件總的可以分為四大部分:PC機(jī)(工控機(jī))部分,把手盒部分,下位機(jī)部分以及功放模塊部分。其中PC機(jī)和把手盒分別與下位機(jī)的主電腦CPU(W77E58)通信,由串行電纜連接,實(shí)現(xiàn)通信,功放模塊(驅(qū)動(dòng)部分)與下位機(jī)連體,由數(shù)據(jù)線直接連接,下面我們主要介紹下位機(jī)軟件的設(shè)計(jì)流程及算法思路: 1、 設(shè)計(jì)思路 我們應(yīng)該明確該設(shè)計(jì)的目的,即實(shí)現(xiàn)望遠(yuǎn)鏡自動(dòng)找星的功能,具體地說(shuō),首先得給望遠(yuǎn)鏡進(jìn)行位置的準(zhǔn)確標(biāo)定,即選中天空中的某一顆已知星,由把手盒手動(dòng)操作,把它找進(jìn)望遠(yuǎn)鏡視場(chǎng)的正中央,放在主鏡的十字線的中心,此時(shí)把這顆星的坐標(biāo)位置由把手盒輸入進(jìn)去,定標(biāo)替換望遠(yuǎn)鏡原來(lái)的位置,然后以這顆星為基本點(diǎn),根據(jù)時(shí)角和赤緯去找尋天空中的任意一顆未知的星,由于系統(tǒng)在程序中做進(jìn)了掉電保護(hù)模塊,因此,對(duì)望遠(yuǎn)鏡而言,調(diào)試完畢之后只需要標(biāo)定一次,以后每次關(guān)機(jī)之前系統(tǒng)都會(huì)自動(dòng)保存望遠(yuǎn)鏡當(dāng)前的實(shí)時(shí)位置,給用戶帶來(lái)了極大的方便,自動(dòng)找星時(shí),我們給望遠(yuǎn)鏡輸入天空星體的天文坐標(biāo)(α,δ)之后,望遠(yuǎn)鏡根據(jù)當(dāng)前自身指向的天區(qū)位置以及待尋目標(biāo)星所處的天區(qū)位置選擇一條合適的路徑,驅(qū)動(dòng)赤經(jīng)、赤緯電機(jī)轉(zhuǎn)動(dòng)使其指向目標(biāo)星,讓目標(biāo)星體落入望遠(yuǎn)鏡視場(chǎng),找星結(jié)束后自動(dòng)轉(zhuǎn)入跟蹤,望遠(yuǎn)鏡的指向與天體的坐標(biāo)是通過(guò)恒星時(shí)聯(lián)系起來(lái)的,因此我們需要知道恒星時(shí),每次觀測(cè)之前要先校正一下恒星時(shí),恒星時(shí)由程序配合手動(dòng)校正,并顯示于面板上。由公式 t+α=s① 其中t是星體的時(shí)角位置 α 是星體的赤經(jīng)值 s 是當(dāng)?shù)氐牡胤胶阈菚r(shí) 顯然我們可以把望遠(yuǎn)鏡的時(shí)角和星體的時(shí)角對(duì)應(yīng)起來(lái),在跟蹤狀態(tài)時(shí),為了克服地球自轉(zhuǎn)的影響,時(shí)角在以每時(shí)秒15個(gè)角秒的速度沿著反地球自轉(zhuǎn)方向勻速運(yùn)動(dòng),因此在赤經(jīng)方面主要是實(shí)時(shí)地采集當(dāng)?shù)氐牡胤胶阈菚r(shí),不停的刷新顯示,計(jì)算目標(biāo)星的時(shí)角,最終讓望遠(yuǎn)鏡的動(dòng)態(tài)時(shí)角值等于目標(biāo)星的時(shí)角,這樣赤經(jīng)找星完畢;在赤緯方面,因?yàn)楹阈堑某嗑暿遣蛔兊模晕覀冎恍枰獙⑼h(yuǎn)鏡的動(dòng)態(tài)赤緯顯示值不斷的靠近目標(biāo)星的赤緯值,不過(guò)對(duì)赤道式望遠(yuǎn)鏡而言,得需要考慮望遠(yuǎn)鏡的所處天區(qū)的位置以及目標(biāo)星的位置,選擇合適的找星路徑,確保望遠(yuǎn)鏡的鏡筒的姿勢(shì)正確,至于限位部分,可以根據(jù)客戶要求自行設(shè)定。 2 、下位機(jī)軟件流程圖 3、子程序部分 (1)鍵盤輸入及顯示部分 在該系統(tǒng)中,我們選用了8279芯片,在程序中查詢鍵值,送入固定單元,如果無(wú)鍵按下,則送#0FFH入固定單元,然后查詢此單元,如果為#0FFH,則返回,否則根據(jù)單元的鍵值內(nèi)容轉(zhuǎn)入相應(yīng)的功能子程序;而顯示部分主要把待顯示的數(shù)據(jù)經(jīng)過(guò)拆分成7位(本系統(tǒng)采用7位數(shù)碼管顯示),分別送給顯示緩沖區(qū),由查表的方式從表中取出7個(gè)相應(yīng)的字型,送到8279數(shù)據(jù)口實(shí)現(xiàn)動(dòng)態(tài)顯示,8279的鍵盤掃描及顯示方式是通過(guò)初始化編程來(lái)實(shí)現(xiàn)的,8279初始化部分程序如下: MOV DPTR, #7FF0H; 8279芯片的狀態(tài)地址 MOV A, #0D1H; 清除命令 MOV @DPTR, A; 命令字送入 LL: MOV A, @DPTR; 讀8279狀態(tài)字 JB ACC.7, LL ; 清除等待 MOV A, #08H; 顯示器左邊輸入外部譯碼,雙鍵互鎖方式 MOV @DPTR, A; 命令字送入 MOV A, #2AH; 時(shí)鐘編程命令 MOV @DPTR,A; 命令字送入 RET; 返回 (2)MC146818時(shí)鐘部分 MC146818芯片是摩托羅拉公司生產(chǎn)的一種可編程的時(shí)鐘芯片,該系統(tǒng)中用它來(lái)讀寫(xiě)恒星時(shí),其中一些主要的操作就是芯片的初始化,讀時(shí)間操作,寫(xiě)時(shí)間操作幾大部分,在使用該芯片進(jìn)行執(zhí)行讀/寫(xiě)時(shí)間操作時(shí),必須得注意,要首先查詢它的狀態(tài)看它是否正在刷新數(shù)據(jù),如果是,必須等刷新數(shù)據(jù)動(dòng)作完成之后再對(duì)芯片進(jìn)行讀/寫(xiě)操作,否則容易出錯(cuò),MC146818的初始化部分程序如下: MOV DPTR,#0BFCAH; A寄存器口地址 MOV A,#26H; 命令字 MOVX @DPTR,A INC DPL; B寄存器口地址 MOV A,#1AH; 命令字 MOVX @DPTR,A RET; 返回 讀時(shí)間子程序: MOV DPTR, #0BFCAH AA: MOVX A, @DPTR; 讀取狀態(tài)字 ANL A, #80H JNZ AA; 芯片是否正在刷新?否,讀取數(shù)據(jù) MOV DPTR, #0BFC0H;讀秒單元 MOVX A, @DPTR MOV @R1, A INC R1 MOV DPL, #0C2H; 讀分單元 MOVX A, @DPTR MOV @R1,A INC R1 MOV DPL, #0C4H; 讀時(shí)單元 MOVX A, @DPTR MOV @R1, A RET; 返回 寫(xiě)時(shí)間的子程序同上類似,不再多述。 (3)串行通信子程序 W77E58實(shí)現(xiàn)雙串口通信,初始化完畢后進(jìn)入主流程,逐個(gè)查詢串口是否有通信數(shù)據(jù)請(qǐng)求,如果有則進(jìn)入通信子程序執(zhí)行并返回,否則程序直接往下執(zhí)行,把下位機(jī)的數(shù)據(jù)分別發(fā)送給把手盒和工控機(jī),等待接收控制命令。具體的初始化程序如下: MOV TCON,#50H; 定時(shí)器/計(jì)數(shù)器狀態(tài)設(shè)置 MOV TMOD,#21H; 定時(shí)器/計(jì)數(shù)器方式設(shè)置 MOV PCON,#00H; 電源控制器設(shè)置 MOV SCON,#53H; 串行口0工作方式設(shè)置 MOV TL1,#0FDH; 計(jì)數(shù)常數(shù)設(shè)置 MOV TH1,#0FDH MOV SCON1,#53H; 串行口1工作方式設(shè)置 MOV TH0,#3CH; 計(jì)數(shù)常數(shù)設(shè)置 MOV TL0,#0B0H RET; 返回 (4)標(biāo)定子程序流圖 (5)自動(dòng)找星子程序 首先根據(jù)輸入的目標(biāo)星的赤經(jīng)值,取出當(dāng)?shù)氐牡胤胶阈菚r(shí)S,通過(guò)計(jì)算,換算成目標(biāo)星的時(shí)角值to,然后讀取望遠(yuǎn)鏡此時(shí)的實(shí)時(shí)位置值tt,根據(jù)他們赤經(jīng)時(shí)角所處的天區(qū)差異來(lái)選擇不同的找星路徑,具體情況可以分為以下幾種: 1) 如果望遠(yuǎn)鏡與目標(biāo)星的時(shí)角處于同一天區(qū)(以望遠(yuǎn)鏡的中柱為軸線,分為東西兩大天區(qū),人為設(shè)定),則先驅(qū)動(dòng)赤緯軸,再驅(qū)動(dòng)赤經(jīng)軸,直到找到目標(biāo)星,進(jìn)入跟蹤。 2) 如果望遠(yuǎn)鏡與目標(biāo)星的時(shí)角處于不同天區(qū),即跨天區(qū)找星,則先驅(qū)動(dòng)赤緯軸,讓赤緯指向北極,再驅(qū)動(dòng)赤經(jīng)軸,然后再驅(qū)動(dòng)赤緯軸,直到找到目標(biāo)星,進(jìn)入跟蹤。 另外,由于我們的位置反饋信息是來(lái)自增量式圓光柵編碼器,而赤緯的度數(shù)始終在(-90,90)區(qū)間,因此還需要進(jìn)行一下特殊處理。 剩下的就是典型的追擊問(wèn)題,以赤經(jīng)為例,具體流程圖如下: 四 結(jié)束語(yǔ) 經(jīng)過(guò)一個(gè)多月的實(shí)際使用觀測(cè),望遠(yuǎn)鏡系統(tǒng)運(yùn)行良好,平穩(wěn)無(wú)噪音,找星定位準(zhǔn)確,精度高,能適用于各種大中小型的望遠(yuǎn)鏡。 |