基于高性能單片機(jī)的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
陀螺儀是捷聯(lián)慣性導(dǎo)航系統(tǒng)中很關(guān)鍵的測(cè)量元件,敏感著載體的角速率,為姿態(tài)計(jì)算提供基準(zhǔn)坐標(biāo)系,因此其輸出信號(hào)性能的好壞在很大程度上決定了捷聯(lián)慣性導(dǎo)航系統(tǒng)的精度,高性能陀螺儀數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)在捷聯(lián)慣性導(dǎo)航系統(tǒng)中是必須的。
本文正是針對(duì)這一需要成功地設(shè)計(jì)了一種基于高性能單片機(jī)的高精度陀螺數(shù)據(jù)采集系統(tǒng)。它由現(xiàn)場(chǎng)數(shù)據(jù)采集單元、雙端口RAM緩存單元和通訊監(jiān)聽三部分組成,很好地解決了船用捷聯(lián)慣性導(dǎo)航系統(tǒng)中數(shù)據(jù)采集傳輸與姿態(tài)運(yùn)算的時(shí)間沖突矛盾。
1 陀螺儀數(shù)據(jù)采集整體系統(tǒng)
圖1為陀螺儀數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)框圖。
船用慣性導(dǎo)航系統(tǒng)中陀螺儀及其驅(qū)動(dòng)線路——力反饋回路通常安放在甲板上的慣性組件箱中,直接敏感船體的搖擺,而用于姿態(tài)運(yùn)算和控制的導(dǎo)航計(jì)算機(jī)則放在控制柜中,遠(yuǎn)離慣性組件箱,因此現(xiàn)場(chǎng)采集的陀螺儀信號(hào)必須遠(yuǎn)距離傳輸?shù)綄?dǎo)航計(jì)算機(jī)中。由于導(dǎo)航計(jì)算機(jī)需要不斷地進(jìn)行復(fù)雜的姿態(tài)運(yùn)算,實(shí)時(shí)地給出姿態(tài)信息,因此若現(xiàn)場(chǎng)數(shù)據(jù)采集板與導(dǎo)航計(jì)算機(jī)直接通訊,導(dǎo)航計(jì)算機(jī)將把大量時(shí)間消耗在數(shù)據(jù)接收上,姿態(tài)運(yùn)算來不及實(shí)現(xiàn)。為此陀螺儀數(shù)據(jù)采集系統(tǒng)中在現(xiàn)場(chǎng)數(shù)據(jù)采集板與導(dǎo)航計(jì)算機(jī)之間加了一塊數(shù)據(jù)緩存單元,它主要由雙端口RAM和高性能單片機(jī)89C51組成。由于艦艇上工作環(huán)境很惡劣,各種電磁波和干擾會(huì)影響數(shù)據(jù)的采集和傳輸,因此在系統(tǒng)設(shè)計(jì)時(shí)必須考慮通訊監(jiān)聽和糾錯(cuò)的措施。
數(shù)據(jù)采集系統(tǒng)的工作受導(dǎo)航計(jì)算機(jī)的控制,也可以獨(dú)立工作。正常時(shí)要求采集器在10 ms內(nèi)完成兩個(gè)陀螺四路力反饋電流信號(hào)的采集、傳輸發(fā)送及通訊監(jiān)聽、糾錯(cuò)等功能,剩下的時(shí)間由導(dǎo)航計(jì)算機(jī)工作,因此整個(gè)系統(tǒng)實(shí)時(shí)性很強(qiáng),要求數(shù)據(jù)傳輸時(shí)間越短越好,這樣有利于導(dǎo)航計(jì)算機(jī)進(jìn)行復(fù)雜的濾波計(jì)算和陀螺動(dòng)態(tài)漂移補(bǔ)償計(jì)算,并實(shí)時(shí)地給出姿態(tài)更新信息。
2 采集板的設(shè)計(jì)及實(shí)現(xiàn)
數(shù)據(jù)采集系統(tǒng)中陀螺儀有用信號(hào)的頻帶范圍為直流至50 Hz左右。圖2為陀螺儀靜態(tài)時(shí)的信號(hào)頻譜圖,由圖2可見陀螺儀輸出信號(hào)中含有135 Hz以及更高頻率的噪聲,信號(hào)調(diào)理時(shí)必須盡可能地濾除它們,將真實(shí)有效信號(hào)給反映出來,為此在I/V轉(zhuǎn)換線路后面設(shè)計(jì)了一個(gè)高階低通濾波器。
采集板中的高性能16位單片機(jī)采用微處理器80C196KC[1],它除了提供8X96已包括的一些外設(shè)(如時(shí)鐘發(fā)生器、I/O端口、A/D轉(zhuǎn)換、PWM輸出、串行口、高速輸入輸出等)外,還集成了先進(jìn)的外設(shè)事物服務(wù)器 PTS(Peripheraltransaction server)。PTS是一種微代碼硬件處理器,可以替代CPU高速實(shí)現(xiàn)諸如啟動(dòng)A/D轉(zhuǎn)換并讀取結(jié)果、讀取HSIFIFO、裝載HSO、串行口的發(fā)送與接收等中斷服務(wù),從而大大減少CPU響應(yīng)中斷的開銷。在數(shù)據(jù)采集板中80C196KC用來完成A/D轉(zhuǎn)換器的啟動(dòng)和轉(zhuǎn)換數(shù)據(jù)的讀取和處理,并及時(shí)發(fā)送出去。80C196KC具有數(shù)據(jù)總線動(dòng)態(tài)配置功能,系統(tǒng)設(shè)計(jì)時(shí)使80C196KC在讀程序時(shí)置數(shù)據(jù)總線為8位方式,而讀A/D轉(zhuǎn)換結(jié)果時(shí)置數(shù)據(jù)總線為16位方式,這樣一次讀走A/D轉(zhuǎn)換結(jié)果。系統(tǒng)中通過開關(guān)切換來實(shí)現(xiàn)對(duì)四路力反饋信號(hào)的采集,且利用80C196KC提供的高速輸出HSO和內(nèi)部定時(shí)器T1配合形成四路力反饋信號(hào)的精確等間隔采樣,然后輔以必要的數(shù)字平滑濾波。通常發(fā)送數(shù)據(jù)是要花費(fèi)CPU時(shí)間的,而采用80C196KC提供的PTS發(fā)送數(shù)據(jù)可近似認(rèn)為發(fā)送不占CPU的時(shí)間。此外數(shù)據(jù)采集系統(tǒng)中還充分利用了80C196KC提供的內(nèi)部A/D轉(zhuǎn)換器,來定期采集慣性組件箱內(nèi)的溫度為電子線路溫度漂移補(bǔ)償提供參數(shù)。
采集板中的A/D轉(zhuǎn)換器為MAX195[2],16位串行輸出,具有自校準(zhǔn)功能,轉(zhuǎn)換速率隨外界時(shí)鐘頻率而定。系統(tǒng)中將80C196KC的時(shí)鐘輸出端四分頻形成1.5 MHz的時(shí)鐘供MAX195使用。
3 數(shù)據(jù)通訊監(jiān)聽糾錯(cuò)
由于艦艇上的工作環(huán)境很惡劣,有強(qiáng)烈的電磁干擾(慣性組件箱靠近搜索雷達(dá)),有可能使遠(yuǎn)距離傳輸數(shù)據(jù)出現(xiàn)差錯(cuò),采用雙絞線或屏蔽電纜線能大大提高通訊的可靠性,但也不能保證不出錯(cuò)。由于數(shù)字通訊中一個(gè)數(shù)碼的錯(cuò)誤可能導(dǎo)致整個(gè)發(fā)送數(shù)據(jù)面目全非,因此在通訊中必須采用校驗(yàn)和糾錯(cuò)技術(shù)。若接收方校驗(yàn)出錯(cuò),則要求發(fā)送方重新發(fā)送數(shù)據(jù),這些工作必須在規(guī)定的時(shí)間內(nèi)盡快完成。
現(xiàn)場(chǎng)采集板上的單片機(jī)80C196KC是數(shù)據(jù)發(fā)送方,它的工作十分繁忙,且發(fā)送控制是通過PTS硬件邏輯實(shí)現(xiàn)的,不可能要求它在發(fā)送完數(shù)據(jù)后再接收導(dǎo)航計(jì)算機(jī)要求的數(shù)據(jù)重發(fā)命令,為此在數(shù)據(jù)采集系統(tǒng)中增加了數(shù)據(jù)通訊監(jiān)聽糾錯(cuò)單元,負(fù)責(zé)通訊有誤時(shí)的處理。其原理為在采集板80C196KC的附近設(shè)置一個(gè)監(jiān)控系統(tǒng),當(dāng)80C196KC通過PTS發(fā)送陀螺數(shù)據(jù)至導(dǎo)航計(jì)算機(jī)時(shí),監(jiān)控系統(tǒng)進(jìn)入監(jiān)控狀態(tài),也接收陀螺數(shù)據(jù)。當(dāng)導(dǎo)航計(jì)算機(jī)發(fā)現(xiàn)錯(cuò)誤數(shù)據(jù)時(shí),回傳要求重發(fā)數(shù)據(jù),此信號(hào)被監(jiān)控系統(tǒng)接收并負(fù)責(zé)重發(fā)數(shù)據(jù),而80C196KC不再負(fù)責(zé)數(shù)據(jù)的重發(fā),實(shí)時(shí)地啟動(dòng)下一次A/D轉(zhuǎn)換。在軟件編程時(shí),采取了漢明編碼理論[3],通過軟件來實(shí)現(xiàn)糾錯(cuò)編碼[4]。實(shí)踐表明,采用硬件通訊監(jiān)聽和軟件實(shí)現(xiàn)糾錯(cuò)編碼后,數(shù)據(jù)傳輸誤碼率大大降低,特別是對(duì)一些突發(fā)性干擾(尖脈沖)尤為明顯,大大提高了整機(jī)系統(tǒng)的可靠性。
4 雙端口RAM緩存
由于導(dǎo)航計(jì)算機(jī)忙于姿態(tài)更新和復(fù)雜的濾波計(jì)算,不可能直接和采集板上的單片機(jī)80C196KC或89C2051進(jìn)行數(shù)據(jù)通訊,因此系統(tǒng)中采用雙端口 RAM來緩存?zhèn)鬏數(shù)臄?shù)據(jù),緩存單元由微處理器89C51進(jìn)行控制。首先是89C51直接和采集板上的單片機(jī)進(jìn)行數(shù)據(jù)通訊,并負(fù)責(zé)通訊傳輸過程中可能發(fā)生的誤碼的處理,然后將接收到的數(shù)據(jù)放入雙端口RAM,這樣導(dǎo)航計(jì)算機(jī)只需從雙端口RAM的另一側(cè)數(shù)據(jù)線上讀走數(shù)據(jù),減輕了導(dǎo)航計(jì)算機(jī)的負(fù)擔(dān),提高了慣性系統(tǒng)的可靠性。
雙端口RAM緩存單元不僅暫時(shí)存貯陀螺儀的信息,實(shí)際應(yīng)用時(shí)還暫存加速度計(jì)的信息,此外還由89C51進(jìn)行陀螺標(biāo)度因子的計(jì)算來完成導(dǎo)航計(jì)算機(jī)的部分工作。
雙端口RAM在實(shí)際操作時(shí)會(huì)發(fā)生數(shù)據(jù)沖突,即雙端口RAM兩側(cè)的CPU同時(shí)對(duì)同一個(gè)地址單元進(jìn)行寫操作,這種情況是不允許的。有三種解決爭(zhēng)用的方案:片內(nèi)硬件判優(yōu)方案、中斷方案和令牌傳替方案。在本系統(tǒng)中,利用雙端口RAM(IDT7130/LA55P)上兩個(gè)特殊的存貯單元3FFH和3FEH(16 進(jìn)制)產(chǎn)生中斷信號(hào)供兩側(cè)計(jì)算機(jī)使用[5]。
5 數(shù)據(jù)采集系統(tǒng)的軟件和抗干擾
在數(shù)據(jù)采集系統(tǒng)中,軟件可分為三個(gè)模塊,分布在三個(gè)單片機(jī)中。(1)數(shù)據(jù)采集轉(zhuǎn)換啟動(dòng)模塊,它包括對(duì)16位A/D轉(zhuǎn)換器的自校準(zhǔn)編程,采集數(shù)據(jù)的預(yù)處理處理和PTS發(fā)送等功能;(2)通訊監(jiān)聽糾錯(cuò)模塊,完成通訊過程中數(shù)據(jù)的發(fā)送和接收編程,漢明碼的軟件實(shí)施等;(3)數(shù)據(jù)緩沖單元中89C51的編程,主要完成通訊數(shù)據(jù)的接收和陀螺標(biāo)度因子的計(jì)算以及發(fā)布導(dǎo)航計(jì)算機(jī)的控制命令等工作。
數(shù)據(jù)采集系統(tǒng)的抗干擾主要從硬件和軟件上著手,除了上面介紹的措施外,系統(tǒng)中還采取了多種方法,如對(duì)程序和電源進(jìn)行監(jiān)視,以實(shí)現(xiàn)系統(tǒng)失控防護(hù)以及掉電復(fù)位和掉電操作的控制。對(duì)軟件運(yùn)行中可能出現(xiàn)的“飛程序”和程序 “死循環(huán)”采取了監(jiān)控定時(shí)器和中斷互檢技術(shù)。此外良好的地平面技術(shù)、合理的系統(tǒng)布局都大大提高了系統(tǒng)的抗干擾能力。圖3給出該數(shù)據(jù)采集系統(tǒng)測(cè)試陀螺儀靜態(tài)時(shí)的數(shù)據(jù)曲線。
Vave=0.003 377 6 V
Vrms=1.013833e-004 V
Vmax=0.003 631 6 V
Vmin=0.003 106 6 V
參考文獻(xiàn)
1 孫涵芳.Intel 16位單片機(jī).北京:北京航空航天大學(xué)出版社,1995.144~171
2 MAXIM 1996 New Release Data Book Volume V7.93~7.117
3 楊 爵,等.實(shí)用糾錯(cuò)編碼.北京:中國(guó)鐵道出版社,1988.22~34
4 吳延海.用軟件實(shí)現(xiàn)糾錯(cuò)編碼.電子技術(shù)應(yīng)用,1997,5:33~35
5 朱欣華.多機(jī)系統(tǒng)中雙口RAM的構(gòu)成方法及應(yīng)用.測(cè)控技術(shù),1996,2:25~28