一種基于ARM的新型智能化航跡儀的設(shè)計(jì)
隨著計(jì)算機(jī)技術(shù)的發(fā)展,智能化航跡儀的發(fā)展趨勢(shì)是進(jìn)一步拓寬功能、縮小體積、降低功耗、減少成本、提高可靠性,而傳統(tǒng)的航跡儀系統(tǒng)不完全具備上述功能,存在局限性。
1 航跡儀工作原理
航跡儀的工作過(guò)程是在計(jì)算機(jī)控制下進(jìn)行的。首先,使鍵盤(pán)處于開(kāi)放狀態(tài),通過(guò)移筆鍵和自檢鍵簡(jiǎn)單檢查繪圖功能;然后,由綜導(dǎo)顯控臺(tái)裝海圖并向航跡儀發(fā)出裝海圖命令,由此航跡儀自動(dòng)進(jìn)入跟蹤狀態(tài)。船舶航跡的實(shí)時(shí)標(biāo)繪是通過(guò)實(shí)時(shí)接收由綜導(dǎo)顯控臺(tái)發(fā)送的緯度、經(jīng)度值及各種繪圖命令,通過(guò)數(shù)學(xué)模型的解算及直線(xiàn)插補(bǔ)運(yùn)算后,產(chǎn)生步進(jìn)電機(jī)的控制脈沖序列,經(jīng)功放電路驅(qū)動(dòng)電動(dòng)機(jī)執(zhí)行,再經(jīng)機(jī)械轉(zhuǎn)換變成繪筆在圖面上運(yùn)動(dòng)。
傳統(tǒng)的航跡儀系統(tǒng)有一定的局限性,存在有待改進(jìn)之處:(1)傳統(tǒng)的航跡儀系統(tǒng)的接口、控制、傳動(dòng)等部分采用分立式設(shè)計(jì),占用了大量的空間,且價(jià)格較貴。(2)隨著導(dǎo)航數(shù)據(jù)信息化程度的提高,設(shè)備間的通訊越發(fā)頻繁,信息量亦隨之增大,使用單一的串行口通訊已不能滿(mǎn)足系統(tǒng)要求。(3)航跡儀與綜導(dǎo)臺(tái)使用同一操作界面,缺少獨(dú)立的人機(jī)交互系統(tǒng)。(4)傳統(tǒng)的航跡儀為開(kāi)環(huán)系統(tǒng),無(wú)檢測(cè)反饋裝置,影響了走筆的精度。(5)接口板的設(shè)計(jì)動(dòng)態(tài)初始化要求嚴(yán)格,不能完全滿(mǎn)足實(shí)時(shí)性要求。另外,傳統(tǒng)航跡儀傳動(dòng)部分的振動(dòng)及噪音較大,從另一方面影響了繪筆的精度。新型智能化航跡儀的設(shè)計(jì)對(duì)以上問(wèn)題給出了解決方案。
2 航跡儀系統(tǒng)的硬件設(shè)計(jì)
2.1 硬件系統(tǒng)的總體構(gòu)成
航跡儀微機(jī)控制系統(tǒng)是以ARM處理器S3C44B0X模塊為中心的控制系統(tǒng)。系統(tǒng)由以下幾部分組成:基于ARM處理器S3C44B0X的開(kāi)發(fā)板, STN 型320像素X240行LCD彩色液晶觸摸屏,基于FPGA元件XC2S50的接口板,步進(jìn)電機(jī)驅(qū)動(dòng)及控制電路,步進(jìn)電動(dòng)機(jī),數(shù)字化板。系統(tǒng)的硬件結(jié)構(gòu)如圖1所示。 2.2 S3C44B0X主板
傳統(tǒng)的航跡儀采用嵌入式PC/104模塊為核心控制系統(tǒng)。系統(tǒng)的接口、控制、傳動(dòng)等部分采用分立式設(shè)計(jì),占用的空間較大,且價(jià)格昂貴。因此在改進(jìn)設(shè)計(jì)中使用基于Samsung公司生產(chǎn)的ARM處理器S3C44B0X芯片。由于使用基于芯片開(kāi)發(fā)的主板提高設(shè)計(jì)開(kāi)發(fā)的靈活性,為本系統(tǒng)所專(zhuān)用,因此所用接口、外設(shè)均為自主設(shè)計(jì)的電路,節(jié)省了不必要的開(kāi)銷(xiāo)。這種設(shè)計(jì)提高了系統(tǒng)的響應(yīng)速度,降低了成本。另外,S3C44B0X自帶LCD控制器,能夠保證改進(jìn)設(shè)計(jì)中觸摸屏顯示部分的順利實(shí)現(xiàn)。
S3C44B0X主板主要包括CPU模塊及其輔助電路、存儲(chǔ)器系統(tǒng)模塊、通信模塊、系統(tǒng)調(diào)試模塊、人機(jī)接口模塊及擴(kuò)展總線(xiàn)部分。
主板外接CAN總線(xiàn)控制器及總線(xiàn)驅(qū)動(dòng)器等設(shè)備,接收CAN總線(xiàn)上由綜合導(dǎo)航顯控臺(tái)發(fā)送的實(shí)時(shí)位置、航向信息;通過(guò)人機(jī)接口接收到的觸摸屏發(fā)送的控制信息,經(jīng)處理后將控制命令(主要是控制脈沖頻率、脈沖個(gè)數(shù)、開(kāi)始停止等命令)通過(guò)擴(kuò)展I/O口發(fā)送給接口板,另外,將顯示信息發(fā)送給LCD觸摸顯示屏。
2.3 XC2S50接口板 傳統(tǒng)航跡儀使用接口板CDT800,其中包括 Am9513計(jì)數(shù)器與μPD71055I/O接口。CDT800為成品接口板,其計(jì)數(shù)器Am9513相關(guān)資料相對(duì)有限,且動(dòng)態(tài)初始化要求嚴(yán)格,在實(shí)際應(yīng)用過(guò)程中,對(duì)系統(tǒng)資源的占用過(guò)大,嚴(yán)重影響系統(tǒng)的實(shí)時(shí)性。在改進(jìn)設(shè)計(jì)中,采用基于Xilinx公司生產(chǎn)的FPGA元件XC2S50的接口板。這種設(shè)計(jì)提高了系統(tǒng)的集成化,保證了實(shí)時(shí)性,使得硬件的設(shè)計(jì)開(kāi)發(fā)更加簡(jiǎn)便。
XC2S50接口板包括FPGA芯片XC2S50、配置芯片18V01、輸出驅(qū)動(dòng)芯片SN74LS244及外部接口電路。其原理圖見(jiàn)圖2。
接口板的主要功能是:接收S3C44B0X主板通過(guò)數(shù)據(jù)總線(xiàn)發(fā)送的數(shù)據(jù)命令信息(包括:X、Y方向的分頻值、脈沖個(gè)數(shù)、運(yùn)行方向,以及開(kāi)始/終止運(yùn)行、抬落筆、報(bào)警等),經(jīng)FPGA芯片XC2S50處理后,轉(zhuǎn)化為相應(yīng)頻率的脈沖信號(hào);再經(jīng)輸出驅(qū)動(dòng)芯片SN74LS244,通過(guò)接口HJY傳遞給X、Y向的步進(jìn)電機(jī)驅(qū)動(dòng)器。運(yùn)行程序通過(guò)JTAG口或DOWNLOAD口燒寫(xiě)入配置芯片18V01中。
2.4 步進(jìn)電機(jī)及其驅(qū)動(dòng)器
對(duì)于航跡儀系統(tǒng),標(biāo)繪精度是極其重要的一項(xiàng)技術(shù)指標(biāo),而電機(jī)及傳動(dòng)機(jī)構(gòu)的精度則對(duì)其產(chǎn)生直接影響。
航跡儀控制系統(tǒng)對(duì)快速性及定位精度均有很高的要求。考慮到系統(tǒng)是針對(duì)數(shù)字量及位移的控制系統(tǒng),因此選用步進(jìn)電機(jī)作為其執(zhí)行元件。步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)換成相應(yīng)角位移的電機(jī)元件,當(dāng)外加一個(gè)脈沖信號(hào)于電機(jī)的控制裝置時(shí),其轉(zhuǎn)軸就轉(zhuǎn)過(guò)一個(gè)固定的角度(步距角),即前進(jìn)了一步。
系統(tǒng)要求繪筆繪制大量細(xì)小折線(xiàn),這就要求電機(jī)工作在低頻區(qū)且需要頻繁地執(zhí)行起動(dòng)、停止、調(diào)速等操作。因此步進(jìn)電機(jī)極易出現(xiàn)低頻振蕩,產(chǎn)生工作噪音,影響繪筆的穩(wěn)定性及標(biāo)繪精度。因此,改進(jìn)方案采用了先進(jìn)的細(xì)分驅(qū)動(dòng)器,大大降低了低頻振蕩。
本設(shè)計(jì)選用RORZE公司生產(chǎn)的5相混合式步進(jìn)電機(jī)M56853D及相應(yīng)的5相細(xì)分步步進(jìn)電機(jī)驅(qū)動(dòng)器RD-0534M。
步進(jìn)電機(jī)M56853D各技術(shù)參數(shù):
最大靜轉(zhuǎn)矩Mk=8.0kg·cm;電流I=3.5A/相;轉(zhuǎn)子轉(zhuǎn)動(dòng)慣量Jr=0.240g·cm·S2;步距角(整步時(shí))θb== 0.72°;容許徑向負(fù)載10.5kg;容許軸向負(fù)載1.5kg;轉(zhuǎn)子齒數(shù)Zr=100。
細(xì)分驅(qū)動(dòng)器RD-0534M各技術(shù)參數(shù):
改進(jìn)后航跡儀系統(tǒng)電機(jī)步距角變?yōu)樵到y(tǒng)的1/80,步距分辨率及控制脈沖頻率均得到提高。提高后的控制脈沖頻率大大超過(guò)了自由振動(dòng)頻率f0,從而避免了系統(tǒng)的低頻振蕩。
2.5 電磁感應(yīng)式數(shù)字化板
傳統(tǒng)的航跡儀為開(kāi)環(huán)系統(tǒng),無(wú)檢測(cè)反饋裝置。改進(jìn)設(shè)計(jì)中增添了數(shù)字化板。這一反饋模塊,構(gòu)成了一套完整的閉環(huán)控制系統(tǒng),增強(qiáng)了穩(wěn)定性,降低了誤差。
數(shù)字化板的工作原理:在標(biāo)繪儀的繪圖平板上布上導(dǎo)線(xiàn)形成格柵,把電磁發(fā)射線(xiàn)圈安裝到繪筆上,此時(shí)把線(xiàn)圈圓心和繪筆圓心標(biāo)定在同一直線(xiàn)上;繪筆在平板上繪圖,而線(xiàn)圈不斷發(fā)射磁場(chǎng)脈沖,導(dǎo)線(xiàn)切割磁場(chǎng)產(chǎn)生感應(yīng)電流,通過(guò)接收電路和信號(hào)處理電路得到繪筆在繪圖平臺(tái)上的相對(duì)位置(繪筆位置)。把電磁感應(yīng)定位得到的位置作為繪筆當(dāng)前真實(shí)位置,此位置通過(guò)UART口反饋給S3C44B0X控制器。目標(biāo)位置與該位置進(jìn)行比較,得到需要的位置差量,計(jì)算后作出響應(yīng)的位置補(bǔ)償調(diào)整。數(shù)字化板工作原理如圖3所示。
3 航跡儀系統(tǒng)的軟件設(shè)計(jì)
3.1 S3C44B0X主板部分的軟件設(shè)計(jì)
操作系統(tǒng)是控制和管理計(jì)算機(jī)軟硬件資源、合理組織計(jì)算機(jī)工作流程、方便用戶(hù)的程序集合。航跡儀功能的完成,很大程度上取決于操作系統(tǒng)軟件平臺(tái)的選擇和應(yīng)用程序的編制。在航跡儀的設(shè)計(jì)中,軟件平臺(tái)選用基于Tonardo集成開(kāi)發(fā)環(huán)境的實(shí)時(shí)操作系統(tǒng)VxWorks,應(yīng)用程序則采用VxWorks支持的標(biāo)準(zhǔn)C語(yǔ)言編制。
主板軟件系統(tǒng)主要由主程序、命令解釋部分、底層部分組成。其中,主程序到命令解釋部分的調(diào)用通過(guò)函數(shù)shibie( )進(jìn)行;命令解釋部分到底層部分的調(diào)用通過(guò)函數(shù)zxcb( )進(jìn)行。
3.1.1 主程序
主程序主要對(duì)綜導(dǎo)臺(tái)命令和觸摸屏命令進(jìn)行管理、調(diào)度。程序執(zhí)行過(guò)程中查詢(xún)隨機(jī)命令數(shù)和推位命令數(shù)這兩個(gè)變量。變量小于等于零時(shí),沒(méi)有綜導(dǎo)臺(tái)命令,程序查詢(xún)觸摸屏有無(wú)按下及鍵值,執(zhí)行響應(yīng)操作。當(dāng)兩個(gè)變量大于零,說(shuō)明有了綜導(dǎo)臺(tái)命令,就會(huì)自動(dòng)進(jìn)入跟蹤狀態(tài)。在跟蹤狀態(tài),不響應(yīng)觸摸屏命令,控制程序只查詢(xún)有無(wú)隨機(jī)命令及推位命令,轉(zhuǎn)入響應(yīng)的命令解釋程序。
3.1.2 命令解釋部分
命令解釋部分主要功能:通過(guò)函數(shù)shibie( )對(duì)每一條命令進(jìn)行識(shí)別及格式檢查。對(duì)于隨機(jī)命令和推位命令,每從CAN總線(xiàn)上接收一條命令,相應(yīng)的命令條數(shù)加1。每執(zhí)行完一條,相應(yīng)的命令條數(shù)減1,同時(shí)指向下一條。只要這兩個(gè)變量不為零,就說(shuō)明有綜導(dǎo)臺(tái)命令未處理。通過(guò)檢查隨機(jī)命令數(shù)和推位命令數(shù),即可按先后次序順次執(zhí)行所有命令。 http://www.armforum.cn
本部分中還包括海圖坐標(biāo)轉(zhuǎn)換程序,其主要功能:主板接收裝海圖命令的同時(shí),會(huì)讀取CAN總線(xiàn)上由綜導(dǎo)臺(tái)發(fā)送的海圖信息,包括海圖類(lèi)型(墨卡托或高斯海圖)、大小、比例等。程序根據(jù)這些信息,將海圖上的經(jīng)緯度值折算成XY軸坐標(biāo),以便于底層的直線(xiàn)差補(bǔ)程序?qū)Y坐標(biāo)量轉(zhuǎn)換成步進(jìn)電機(jī)的走步脈沖數(shù)。
3.1.3 底層部分
底層包括所有的畫(huà)線(xiàn)、寫(xiě)標(biāo)記符等繪筆執(zhí)行動(dòng)作的程序,及與硬件有關(guān)的I/O操作子程序、中斷服務(wù)程序。下面介紹幾個(gè)主要的程序。
(1)直線(xiàn)差補(bǔ)程序
線(xiàn)段是航跡儀繪制的基本圖形,其他各種曲線(xiàn)都是以線(xiàn)段逼近的。設(shè)線(xiàn)段終點(diǎn)到起點(diǎn)坐標(biāo)長(zhǎng)度分量分別為Δx、Δy。令X、Y向步進(jìn)電動(dòng)機(jī)同時(shí)起動(dòng),同時(shí)停止,分別以均勻速度Vx、Vy運(yùn)動(dòng)。這樣 ,即 。其中T代表電機(jī)運(yùn)行時(shí)間,Vx、Vy分別為X、Y向電機(jī)速度,fx、fy分別為運(yùn)轉(zhuǎn)頻率,k為步進(jìn)電機(jī)脈沖當(dāng)量。
程序設(shè)計(jì)中,已知X、Y向的增量?駐x、?駐y,選增量大的方向的走步頻率為最大走步頻率f1=fM,另一方向頻率即為f2=fM×Δy/Δx。已知兩個(gè)方向的走步頻率,由接口板計(jì)數(shù)器的初始頻率12MHz可計(jì)算出X、Y向的分頻值;已知的脈沖當(dāng)量可求出X、Y向各自需要的走步脈沖數(shù)。將分頻值、脈沖數(shù)及開(kāi)始/停止等控制信息傳送給接口板,使其產(chǎn)生相應(yīng)頻率的脈沖信號(hào),以控制步進(jìn)電機(jī),即可實(shí)現(xiàn)航跡儀的直線(xiàn)差補(bǔ)功能。
(2)CAN總線(xiàn)通訊任務(wù)模塊
設(shè)計(jì)中采用PHILIPS公司的CAN總線(xiàn)控制器SJA1000,CAN總線(xiàn)驅(qū)動(dòng)器選用82C250。
綜導(dǎo)臺(tái)將導(dǎo)航數(shù)據(jù)通過(guò)CAN總線(xiàn)發(fā)送給航跡儀。通訊模塊主要實(shí)現(xiàn)對(duì)航跡儀數(shù)據(jù)報(bào)文接收、解析等。當(dāng)有CAN報(bào)文到達(dá),SJA1000產(chǎn)生中斷釋放信號(hào)量。設(shè)備工作任務(wù)中輪詢(xún)等待信號(hào)量接收CAN報(bào)文。對(duì)接收的CAN報(bào)文,首先存入CAN接收數(shù)據(jù)結(jié)構(gòu),解析后讀入航跡儀數(shù)據(jù)結(jié)構(gòu)。CAN接收數(shù)據(jù)結(jié)構(gòu)在接收CAN報(bào)文時(shí)臨時(shí)分配。在報(bào)文解析過(guò)程中,接收的報(bào)文通常為BCD碼,因此要將其還原為ASCII碼。解析過(guò)程中,若出現(xiàn)格式錯(cuò)誤,則置錯(cuò)誤狀態(tài)標(biāo)志。
(3)LCD屏顯示及觸摸程序
本設(shè)計(jì)采用SHARP公司的144.78mm、LM057QC1T01型STN彩色液晶顯示器,其顯示格式為320像素(×3)×240行,即顯示屏每行有320個(gè)像素點(diǎn),共240行,每個(gè)像素點(diǎn)由RGB(紅、綠、籃)三種顏色組成。
LCD觸摸屏程序主要分為顯示任務(wù)FsceShow,觸摸屏查詢(xún)?nèi)蝿?wù)TouchCheck,觸摸屏狀態(tài)查詢(xún)?nèi)蝿?wù)TouchStateCheck。TouchCheck入口函數(shù)Touch_check( )查詢(xún)觸摸屏中斷,TouchStateCheckt( )查詢(xún)觸摸屏狀態(tài)改變,F(xiàn)aceShow執(zhí)行響應(yīng),顯示圖形。程序框圖如圖4所示。 ARM
ARM開(kāi)發(fā)論壇
(4)位置補(bǔ)償模塊
如前文所述,在步進(jìn)電機(jī)運(yùn)行完一次由運(yùn)行到靜止的過(guò)程后,把目標(biāo)位置與從數(shù)字化板發(fā)送的實(shí)際位置做差比較得到的位置差量Δd作為一次操作補(bǔ)償。其特點(diǎn)是在一次繪圖過(guò)程中有兩次電機(jī)的開(kāi)始和停止,補(bǔ)償速度慢,但所繪的是近似真實(shí)的圖形。程序框圖如圖5所示。
3.2 XC2S50接口板部分的軟件設(shè)計(jì)
XC2S50接口板軟件部分采用VHDL語(yǔ)言編寫(xiě)。編譯后通過(guò)JTAG口燒寫(xiě)入配置芯片18V01中。軟件部分主要包括頂層模塊jkb_top、接口模塊jiekou、脈沖發(fā)生模塊pulse_generate、速度控制模塊speed_ctr、脈沖計(jì)數(shù)模塊counter、方波發(fā)生器counter32等。其結(jié)構(gòu)框圖如圖6所示。
http://www.armforum.cn
在脈沖發(fā)生模塊pulse_generate中,速度控制模塊speed_ctr的主要功能是:通過(guò)查詢(xún)發(fā)送、剩余脈沖數(shù),計(jì)算出響應(yīng)的速度控制級(jí)別(可分為4種模式),將速度控制信息傳送給脈沖計(jì)數(shù)模塊counter。兩個(gè)脈沖計(jì)數(shù)模塊counter分別控制X、Y兩個(gè)步進(jìn)電機(jī)的走步步數(shù)。它們分別以X、Y向驅(qū)動(dòng)脈沖作為輸入時(shí)鐘信號(hào),紀(jì)錄兩向脈沖數(shù),發(fā)出使能信號(hào)以控制counter32,其原理如圖7所示。兩個(gè)方波發(fā)生模塊counter32分別對(duì)X向、Y向步進(jìn)電機(jī)驅(qū)動(dòng)器輸出方波,其輸出波形的頻率即為步進(jìn)電機(jī)的走步頻率,如圖8所示。接口模塊jiekou接收來(lái)自主板發(fā)送的X、Y向分頻值、脈沖數(shù)數(shù)據(jù)信息,以及運(yùn)行方向、開(kāi)始終止、抬落筆、報(bào)警等控制信息,并將數(shù)據(jù)信息發(fā)送給pulse_generate模塊,將控制信息發(fā)送給驅(qū)動(dòng)板。所有的軟件模塊封裝在頂層模塊jkb_top中。
ARM開(kāi)發(fā)論壇
串5
ARM開(kāi)發(fā)論壇
新型智能化航跡儀設(shè)計(jì),針對(duì)傳統(tǒng)航跡儀系統(tǒng)的諸多問(wèn)題,給出了有效的改造方案。改造方案降低了成本,增強(qiáng)了功能的針對(duì)性,節(jié)省了系統(tǒng)資源。數(shù)字化板的使用,為原開(kāi)環(huán)系統(tǒng)增加了閉環(huán)反饋,提高了標(biāo)繪精度。使用FPGA器件代替原CDT800接口板,保證系統(tǒng)的時(shí)事性與穩(wěn)定性,提高了集成度。CAN總線(xiàn)通訊的采用,增大了信息的承載量,提高了實(shí)時(shí)性。LCD觸摸顯示屏的使用,增強(qiáng)了人機(jī)交互性。使用帶有細(xì)分功能的電機(jī)驅(qū)動(dòng)器,及對(duì)傳統(tǒng)航跡儀步進(jìn)電機(jī)部分的優(yōu)化改造,降低了工作的振動(dòng)與噪音,提高了工作穩(wěn)定性。
評(píng)論