<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 海氣通量自動(dòng)測量系統設計*

海氣通量自動(dòng)測量系統設計*

——
作者:國家海洋技術(shù)中心 門(mén)雅彬 徐俊臣 劉佳佳 中國海洋大學(xué) 劉金濤 時(shí)間:2007-02-04 來(lái)源:電子產(chǎn)品世界 收藏

摘要: 本文介紹了以為控制核心的船載海氣通量自動(dòng)系統的設計,給出了數據采集設計,對的一些編程細節也做了詳盡的敘述。

關(guān)鍵詞: 海氣通量;  ;  ; 

在相互制約和作用的大氣海洋系統中,大氣對海洋的作用主要是動(dòng)力的,稱(chēng)為動(dòng)量通量;海洋對大氣的作用主要是熱力的,稱(chēng)熱通量。動(dòng)量通量和熱通量通稱(chēng)為海氣通量,它是氣候形成和變化的重要機制之一。

國家十五“863”計劃項目——“船載海氣通量自動(dòng)系統”,要求使用直接協(xié)方差法來(lái)分三個(gè)層次測量海氣界面的動(dòng)量通量,該方法是利用快速響應風(fēng)傳感器測量風(fēng)速值的脈動(dòng),由獲取的脈動(dòng)資料的時(shí)間序列進(jìn)行統計相關(guān)平均,獲得海氣界面動(dòng)量通量。

測量原理及傳感器組成

理論上,直接協(xié)方差法測量海氣動(dòng)量通量只需要快響應三維超聲風(fēng)傳感器來(lái)測量出風(fēng)速度矢量,并以此來(lái)計算風(fēng)應力矢量。海氣動(dòng)量通量τ定義為[1]:

由于是船載系統,要得到真實(shí)的三維風(fēng)速值必須剔除船體運動(dòng)的影響。這些影響來(lái)源于以下三個(gè)方面:(1)船體的前后顛簸、左右搖擺和航向引起的風(fēng)傳感器即時(shí)傾斜;(2)船體的搖擺而帶動(dòng)風(fēng)傳感器相對于船體參考系角速度的變化;(3)船體相對于地面的移動(dòng)速度。使用緊耦合系統消除上述因素引起的誤差,真實(shí)的海面風(fēng)速Vtrue可以表示為[1]:

其中Vobs為三維風(fēng)速計相對于船體測得的風(fēng)速矢量,T為由測量坐標系到真實(shí)風(fēng)速坐標系的變換矩陣;Ω為船體相對于自己重心旋轉、俯仰和搖擺的三維轉動(dòng)角速度矢量;Vmot是風(fēng)速計重心相對于海面的移動(dòng)速度矢量,R是三維風(fēng)速計相對于船體的位置矢量。

因此,系統所需的傳感器除了測量三維風(fēng)速值的三個(gè)超聲風(fēng)傳感器外,還需要測量船體運動(dòng)姿態(tài)的姿態(tài)傳感器、測量船體運動(dòng)方向的電子羅盤(pán)、測量船體位置和運動(dòng)速度的GPS。其中,姿態(tài)傳感器與羅盤(pán)構成運動(dòng)測量單元,每秒采集一次船體運動(dòng)姿態(tài),包括三維線(xiàn)加速度、三維角速度、橫滾角、俯仰角和航向。以上各傳感器的數據輸出形式均為RS-232。

海氣通量數據采集

數據采集部分是船載系統的核心部分,主要完成數據的采集、處理、傳輸和過(guò)程控制。該部分結合總體設計要求,根據當前嵌入式技術(shù)的發(fā)展,以模塊化、高可靠的設計思想來(lái)研制。

方案選擇

數據采集部分所要完成的主要功能是:?jiǎn)纹瑱C按固定時(shí)序和頻率采集各傳感器的輸出數據,經(jīng)過(guò)運算和處理后,按照預定通信協(xié)議以RS-232方式實(shí)時(shí)地將數據以4~20Hz的頻率通過(guò)單片機的串行口傳送給PC機,上位PC機進(jìn)行數據存儲和動(dòng)量通量的計算。

由于海氣通量數據采集系統需要與三個(gè)超聲風(fēng)傳感器、電子羅盤(pán)、姿態(tài)傳感器、GPS和PC機進(jìn)行異步串行通信,而一般的單片機至多只有2個(gè)串口,因此至少需要擴充5個(gè)串口。擴充串口的方法很多,如采用軟件模擬法成本低、易于實(shí)現,但其采樣頻率低,軟件開(kāi)銷(xiāo)大、難以保證數據的實(shí)時(shí)性、正確性,而且一般不能模擬過(guò)高的波特率。利用串行口擴展串行口,控制簡(jiǎn)單,但在多通道模式下,所有子串口工作波特率只能設置成統一值,不適用于各從機波特率不一致、又要求同時(shí)工作的系統。并行口擴展串口方法的功能強大,能提供MODEM控制信號、通訊速度高,實(shí)時(shí)性好,可以滿(mǎn)足多個(gè)串口同時(shí)工作的要求。在本系統中,GPS和電子羅盤(pán)的輸出速率是1Hz,三維超聲風(fēng)速計和姿態(tài)傳感器的數據輸出速率可達20Hz,具有數據通訊量大、輸出速率高、數據輸出格式多、數據爆發(fā)性強的特點(diǎn),因此優(yōu)選并行口擴展的方法。

模塊開(kāi)關(guān)電源輸出5V和12V兩種電壓,12V電壓給測量傳感器供電,5V電源使用電源管理芯片變換成3.3V電源,給GPS模塊、單片機、外部存儲器和串口芯片供電。

系統硬件框圖如圖1所示。

圖1  系統框圖

主控單元設計

系統的主控部分采取了如下的設計方案:?jiǎn)纹瑱C采用了Silicon Laboratories公司的高性能微控制器作為數據采集和控制的核心。它具有與8051完全兼容的CIP-51微控制器內核,采用高速流水線(xiàn)結構(25 MIPS),大多數指令執行時(shí)間為1~2 時(shí)鐘周期;具有64 KB可在系統編程FLASH 和大容量?jì)炔縎RAM,具有外部存儲器接口;最多可達22個(gè)中斷源,這對實(shí)時(shí)多任務(wù)系統的實(shí)現是很重要的。

雖然C8051F020內部有4KB的SRAM,但是對于整個(gè)系統數據流量來(lái)說(shuō)還是不夠的,因此使用高位端口P5~P7外擴32KB的外部存儲器,采用地址/數據線(xiàn)非復用方式。它占用的I/O空間地址范圍是0x0000~0x7FFF。注意與其他8051不同的是C8051F020內部有兩個(gè)SFR(EMI0CF和EMI0TC)控制SRAM的讀寫(xiě)時(shí)序,在對SRAM進(jìn)行操作之前,應根據芯片數據手冊配置好這兩個(gè)寄存器,否則可能會(huì )出現讀寫(xiě)不正常的現象。

C8051F020的UART0用于PC機通訊,UART1用于GPS通訊。

串行口擴展設計

如上所述,系統共需要與6個(gè)串行設備通信。而C8051F020只具有兩個(gè)串行UART,無(wú)法滿(mǎn)足系統的需求。設計共采用了兩片擴充8個(gè)串行口,其中5個(gè)串行口分別連接三個(gè)三維超聲風(fēng)傳感器、電子羅盤(pán)和姿態(tài)傳感器,剩余3個(gè)串行口備用。

ST16C554是EXAR公司生產(chǎn)的帶有FIFO的通用四串口(UART)器件,具有集成度高、使用方便、兼容性強的優(yōu)點(diǎn)。它主要具有兩項功能,一是把從外部設備接收進(jìn)來(lái)的串行數據轉換成并行數據;二是把CPU的并行數據轉換成串行數據以利于發(fā)送。一片ST16C554可以提供4個(gè)標準UART端口。

ST16C554的功能特點(diǎn)如下:

*各帶有16個(gè)字節的發(fā)送/接收FIFO增強型UART??梢源蟠鬁p少對CPU的中斷次數,減少對UART的中斷服務(wù)時(shí)間。
*可以在24MHz的晶體或外部時(shí)鐘輸入下使用1.5Mbps發(fā)送和接收速率。在14.7464MHz晶體下,用戶(hù)最高可選擇921.6Kbps的數據傳輸速率。
*每個(gè)通道具有獨立的發(fā)送、接收、線(xiàn)路狀態(tài)和設置中斷功能。
*用戶(hù)可編程的波特率發(fā)生器和標準的調制解調器接口。
*四種可選擇的FIFO接收中斷觸發(fā)。

ST16C554與C8051F020的接口如圖2所示。D0~D7連接單片機的數據總線(xiàn),A0~A1用來(lái)選擇ST16C554的內部寄存器地址,RD、WR分別接單片機的讀寫(xiě)信號,總線(xiàn)模式引腳接VCC選擇Intel方式。C8051F020的A12~A14經(jīng)74HC138譯碼后,輸出CS0~CS7所代表的地址范圍分別是:8000~8FFFH,9000~9FFFH,A000~AFFFH,B000~BFFFH,C000~CFFFH,D000~DFFFH,E000~EFFFH,F000~FFFFH。IT0~IT7是U5、U6各路UART的中斷輸出??梢园l(fā)生中斷的條件有:接收錯誤、緩沖區數據有效、發(fā)送緩沖區空等。

圖2 ST16C554與C8051F020的接口

ST16C554中斷引腳輸出IT0~IT7分別接單片機的P1.0~P1.7,且連接到CD4002的兩個(gè)四輸入或非門(mén)(U15A和U15B)的輸入端,CD4002的兩個(gè)輸出分別連接至C8051F020的兩個(gè)外部中斷輸入端INT0和INT1,這樣CPU就可在相應的中斷服務(wù)程序中查詢(xún)P1.0~P1.7的狀態(tài),以確定是哪個(gè)UART是中斷源。該部分設計利用兩個(gè)四輸入或非門(mén)連接至單片機的外部中斷,解決了單片機中斷資源有限的問(wèn)題,降低了系統成本。ST16C554工作在FIFO模式,采用中斷方式收發(fā)數據并設置8字節的硬件收發(fā)送緩沖區,降低了CPU的開(kāi)銷(xiāo)。

在本部分的設計中,還需要有電平轉換電路。這是由于C8051F020和經(jīng)ST16C554擴充的UART均是TTL電平,而各傳感器的通訊方式是均是RS-232。因此,必須進(jìn)行它們之間的電平轉換。傳統的方法使用MC1488與MC1489進(jìn)行電平轉換,使用這兩種芯片時(shí),除了系統的+5V電源外,還需要+12V和-12V電源,很不方便而且功耗比較大。為此這里選用5片MAX3232來(lái)完成這項工作,連線(xiàn)方式使用簡(jiǎn)單三線(xiàn)方式即TXD、RXD、GND。MAX3232是單電源低功耗的電荷泵式RS-232電平轉換芯片,在電源電壓3.0~5.0V之間均能正常工作,它的工作電流僅為300mA。

值得一提的是,系統還設計了比較完善的串口保護電路。具體實(shí)現方法是在MAX3232的RS-232一側加保護芯片MAX367。MAX367是MAXIM公司的ESD保護芯片,它有兩個(gè)限制電壓輸入端V+和V-,當信號的電平超過(guò)V+或者低于V-時(shí),可自動(dòng)切斷該路的連接,待故障解除后,又可自動(dòng)恢復連接。V+和V-分別是+15V和-15V。在傳感器信號的RS-232信號端還串接了50mA自恢復保險和雙向TVS管,有效地抑制了瞬變電壓和電流給系統造成的破壞。

ST16C554編程要點(diǎn)

ST16C554的控制比較復雜,使用前應充分了解各個(gè)寄存器的功能和設置要點(diǎn)。事實(shí)上控制它并不難,關(guān)鍵是準確把握各控制寄存器的含義,熟悉其控制流程。

ST16C554具有4個(gè)完全相同的端口,各組控制寄存器均是相互獨立的。系統上電后需先對ST 16C554 進(jìn)行初始化,包括設置波特率、傳輸數據的幀格式、中斷允許位、對FIFO的控制等。對MCU來(lái)說(shuō),ST16C554相當于MCU的外部數據存儲器。它的寄存器中有一個(gè)寄存器(Scratchpad Register),在初始化之前,可以先讀寫(xiě)這個(gè)寄存器,如果結果一致,證明單片機與ST16C554接口電路無(wú)誤。若不一致,則應檢查硬件接口電路或者芯片本身是否損壞。初始化代碼如下:
XBYTE[BASE_ADDR+LCR] = 0x80;       //向
 LCR寄存器寫(xiě)0x80,使能波特率設置XBYTE[BASE_ADDR +DIVLSB] =BAUD_L  ;
 //寫(xiě)波特率低字節
XBYTE[BASE_ADDR +DIVMSB] = BAUD_H;
 //寫(xiě)波特率高字    XBYTE[BASE_ADDR +LCR] = 0x00;       //禁止波特率設置
XBYTE[BASE_ADDR +LCR] = lcr_byte;   
 //設置數據位,停止位,奇偶校驗位
XBYTE[BASE_ADDR +FCR]=0x87;      
 //使用并清除8字節FIFO,
XBYTE[BASE_ADDR +IER]=0x03;      
 //使能發(fā)送和接收中斷

編程時(shí)最好啟用FIFO功能,以減輕CPU中斷系統的負擔。FIFO的接收中斷字節最好設置在8 字節左右,不要設置成16字節。否則如果CPU在FIFO滿(mǎn)的情況下產(chǎn)生中斷,系統來(lái)不及響應,會(huì )產(chǎn)生接收數據溢出的危險。

ST16C554發(fā)生中斷時(shí),CPU轉向外部中斷0(或1)服務(wù)程序。在中斷服務(wù)程序中,CPU應逐個(gè)輪詢(xún)P1.0~P1.3(或者P1.4~P1.7)的狀態(tài),如果有任何一個(gè)引腳是高電平,則進(jìn)入相應端口的中斷處理程序,處理完畢后,應繼續查詢(xún)有無(wú)其它端口發(fā)生中斷,以防止端口中斷的遺漏。以外部中斷0服務(wù)程序為例,示例代碼如下:
IntSource =P1&0x0f;  //讀取中斷源
while(IntSource!=0)  //ST16C554(U5)有中
   斷發(fā)生
{
     if(P1^0) //串口A(yíng)有中斷產(chǎn)生
    IntUart1() ;   //判斷串口A(yíng)中斷源子
   程序
     if(P1^1)         //串口B有中斷產(chǎn)生
        IntUart2();  //判斷串口B中斷源子
   程序
        if(P1^2)        /串口C有中斷產(chǎn)生
             IntUart3(); //判斷串口C中斷源
   子程序
           if(P1^3)       //串口D有中斷產(chǎn)生
            IntUart4();   //判斷串口D中斷源
   子程序
          IntSource = P1&0x0f; //繼續讀取中
        斷源,直至無(wú)串口中斷產(chǎn)生
    }

結語(yǔ)

“船載海氣通量自動(dòng)測量系統”試制成功后,經(jīng)過(guò)在西北太平洋近兩個(gè)月的海上實(shí)驗,取得了大量寶貴海氣通量實(shí)驗數據,實(shí)踐證明該數據采集系統的設計是可靠,穩定的,該項目已經(jīng)于2005年11月通過(guò)863專(zhuān)家組的驗收。

參考文獻
1.J.B.EDSON,etc. Direct Covariance Flux Estimates from Mobile Platforms at Sea. Journal of Atmospheric and Oceanic Technology.Vol 15,1998.
2. Silicon Laboratories.C8051F020/1 Datasheets. 2001.
3. EXAR Corporation. ST16C554 Datasheets REV.3.10. 1994

加速度計相關(guān)文章:加速度計原理


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>