999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MOXA多串口卡的陀螺穩(wěn)定平臺通信策略研究

2018-01-01 00:00:00李昂雷肖劍
現(xiàn)代信息科技 2018年5期

摘 要:監(jiān)控系統(tǒng)是數(shù)字化陀螺穩(wěn)定平臺的重要組成部分,本文針對穩(wěn)定平臺高波特率、高數(shù)據(jù)更新率的通信需求,設(shè)計(jì)了基于MOXA多串口卡的通信策略。介紹了MOXA多串口卡的工作原理及特點(diǎn),設(shè)計(jì)了通信程序流程,基于VC++編程實(shí)現(xiàn)了串行通信。實(shí)驗(yàn)結(jié)果表明,監(jiān)控系統(tǒng)軟件工作穩(wěn)定可靠。

關(guān)鍵詞:穩(wěn)定平臺;MOXA;串口通信;VC++

中圖分類號:TP273.5 文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2018)05-0050-03

Research on Communication Strategy of Gyro Stabilized Platform

Based on MOXA Multi Serial Card

LI Ang,LEI Xiaojian

(Military Delegate Office of Navy in Tianjin District,Beijing 100073,China)

Abstract:The monitoring system is an important part of the digital gyroscope stabilization platform. This paper aiming at the high baud rate and high data update rate of the stable platform,a communication strategy based on MOXA multi serial port card is designed. The working principle and characteristics of MOXA multi serial card are introduced,and the communication program flow is designed. Serial communication is realized based on VC++ programming. The experimental results show that the software of the monitoring system works stably and reliably.

Keywords:stabilized platform;MOXA;serial communication;VC++

0 引 言

陀螺穩(wěn)定平臺是航空、航天、車船和導(dǎo)彈系統(tǒng)工程中的重要設(shè)備,在現(xiàn)代軍、民用領(lǐng)域中發(fā)揮著越來越重要的作用[1-3]。它的主要功能是隔離載體角運(yùn)動,在載體機(jī)動狀態(tài)下建立穩(wěn)定基準(zhǔn)面,保證安裝在平臺上的測量設(shè)備具有穩(wěn)定的工作狀態(tài),隔離振動等干擾因素對測量或探測的影響,例如現(xiàn)代武器要求具備行進(jìn)間穩(wěn)瞄、跟蹤、射擊能力,載體(飛機(jī)、坦克、艦艇等)運(yùn)動過程中需要使用穩(wěn)定平臺,保持武器系統(tǒng)的姿態(tài)基準(zhǔn),從而減小載體運(yùn)動對武器系統(tǒng)精度的影響[4];另外,在海洋、航空重力測量過程中也需要將重力傳感器安裝在穩(wěn)定平臺上,從而保證重力傳感器始終保持垂直,減小載體角運(yùn)動對重力測量精度的影響[5]。

陀螺穩(wěn)定平臺數(shù)字化控制回路相比于傳統(tǒng)的模擬電子系統(tǒng)具有體積小、成本低、可靠性高等優(yōu)勢,而上位機(jī)監(jiān)控系統(tǒng)是陀螺穩(wěn)定平臺控制系統(tǒng)的重要組成部分,其主要功能是實(shí)現(xiàn)上位機(jī)與穩(wěn)定平臺之間的數(shù)據(jù)通信,從而實(shí)時(shí)監(jiān)控平臺狀態(tài)。上位機(jī)與穩(wěn)定平臺之間的通信可以通過串口實(shí)現(xiàn)。文獻(xiàn)[6,7]介紹了在VC++開發(fā)平臺下,基于MSComm進(jìn)行串口編程的方法。MSComm是VC++的一個ActiveX控件,它高度集成化的特點(diǎn)使串口編程更為簡單;文獻(xiàn)[8]設(shè)計(jì)了一種永磁同步電機(jī)控制器串口通信上位機(jī)程序,它基于VC++6.0開發(fā)環(huán)境,利用Windows API讀寫串口函數(shù),通過定時(shí)器消息響應(yīng)查詢串口來實(shí)現(xiàn)數(shù)據(jù)的接收;文獻(xiàn)[9]測試分析了基于Visual Basic中的Active X控件、Visual C++中的Active X控件和Win32 API函數(shù)的3種Visual Studio平臺上串行通信方法性能。通過對文獻(xiàn)的分析可知,在高波特率和高數(shù)據(jù)更新頻率的情況下,用MSComm控件進(jìn)行串口通信編程,主機(jī)CPU的負(fù)荷較重,可靠性也不高。本文研究的陀螺穩(wěn)定平臺上位機(jī)監(jiān)控系統(tǒng)需要滿足高波特率和高數(shù)據(jù)更新率的通信需求,鑒于此,本文利用MOXA公司推出的C218Turbo PCI多串口卡以及PComm函數(shù)庫實(shí)現(xiàn)實(shí)時(shí)通信。使用PComm進(jìn)行通信編程,較之MSComm32,降低了程序開發(fā)難度,縮短了程序開發(fā)周期,同時(shí)也提高了程序的可靠性。實(shí)驗(yàn)證明C218Turbo PCI在高波特率、高數(shù)據(jù)更新率下通信可靠。

1 C218Turbo PCI多串口卡簡介

C218Turbo PCI多串口卡是一款智能MOXA卡[10-12],它專為PCI總線設(shè)計(jì),特別適合遠(yuǎn)程接入、工業(yè)控制和辦公自動化工程,可用于Windows(2000,XP/2003/Vista x86/x64,9X/ME/NT)、DOS、Linux 2.4/2.6、SCO Open Server 5/6、UnixWare 7和QNX 4操作系統(tǒng)。

C218Turbo采用了MOXA定制ASIC芯片,使電路板面積大大縮小,減少和縮短了系統(tǒng)連線,使該板具有較高的可靠性和較低的功耗,同時(shí)系統(tǒng)性能與老產(chǎn)品相比有很大提高,C218Turbo之所以被稱為智能MOXA卡,是因?yàn)樗褂昧薚MS320BC203 RISC處理器對輸入輸出數(shù)據(jù)進(jìn)行管理,這將會減少主機(jī)CPU的通信開銷。512KB的On-board雙口RAM為輸入輸出數(shù)據(jù)提供了較大的緩存區(qū),有效地減少了主機(jī)CPU用于通信的開銷,較大緩沖區(qū)的使用也防止了數(shù)據(jù)丟失。由于有上述強(qiáng)大的硬件配置,C218Turbo系列可以在8個串口同時(shí)工作的情況下,保持高吞吐量,而這只占用主機(jī)處理器很少一部分時(shí)間。

UART采用TI550C芯片作為異步通信控制器,可支持50b/s到921.6Kb/s的全雙工異步通信,TI550C帶有16B的片內(nèi)FIFO和硬件數(shù)據(jù)流控制部件大大提高了數(shù)據(jù)吞吐量,同時(shí)也減輕了TMS320BC203RISC處理器的通信控制開銷。C218Turbo PCI本身只支持RS-232接口規(guī)范,通過外接的轉(zhuǎn)換器可支持RS-422和RS-485串口標(biāo)準(zhǔn)。

在使用智能MOXA卡時(shí),需要正確理解驅(qū)動緩存和用戶緩存的概念。以C218Turbo PCI為例,使用C218Turbo PCI進(jìn)行串口通信的數(shù)據(jù)流程如圖1所示。

圖1 C218Turbo PCI通信原理

對于數(shù)據(jù)輸入的情況,外部數(shù)據(jù)首先進(jìn)入U(xiǎn)ART控制器的FIFO中,然后RISC處理器從FIFO中讀取接收到的數(shù)據(jù),并將這些數(shù)據(jù)放入驅(qū)動緩存(雙端口RAM)中,雙端口RAM中的數(shù)據(jù)由RISC處理器管理。用戶通過調(diào)用PComm庫函數(shù)可以將雙端口RAM中的數(shù)據(jù)讀入用戶緩存。對于數(shù)據(jù)輸出的情況,數(shù)據(jù)流反向。由于用于驅(qū)動緩存的是雙端口RAM,雙口RAM最大的特點(diǎn)是存儲數(shù)據(jù)共享,它擁有兩套獨(dú)立的地址、數(shù)據(jù)和控制線,允許兩個獨(dú)立的CPU或控制器同時(shí)異步訪問存儲單元。因此,主機(jī)的CPU可以直接訪問這一存儲單元。這樣主機(jī)CPU與C218Turbo PCI之間的數(shù)據(jù)交換速度很快,可將大量數(shù)據(jù)一次讀出或?qū)懭耄蟠鬁p輕了主機(jī)用于通信的資源消耗,可以使系統(tǒng)工作效率顯著提高。

2 串行通信指標(biāo)及程序流程

本文中的陀螺穩(wěn)定平臺監(jiān)控系統(tǒng)的上位機(jī)采用工控機(jī),下位機(jī)為以陀螺儀和加速度計(jì)為核心傳感器的穩(wěn)定平臺,下位機(jī)主要輸出根據(jù)陀螺儀和加速度計(jì)解算得到的穩(wěn)定平臺的姿態(tài)信息以及速度位置信息。上位機(jī)實(shí)時(shí)采集陀螺穩(wěn)定平臺輸出的數(shù)據(jù),將數(shù)據(jù)幀解包之后,使用姿態(tài)角和角速率信息控制穩(wěn)定平臺,使之實(shí)時(shí)追蹤當(dāng)?shù)氐乩硭矫妗?/p>

陀螺穩(wěn)定平臺采用RS-232串口輸出導(dǎo)航數(shù)據(jù)。通信波特率設(shè)置為921.6Kbps,數(shù)據(jù)更新率為500Hz。普通串口或串口卡難以可靠地接收這樣高波特率和高更新率的數(shù)據(jù),即使能正確接收,通信程序也將占用大量的上位機(jī)CPU資源,通信程序運(yùn)行后,上位機(jī)難以可靠地完成其他任務(wù)。因此,本文中使用C218Turbo PCI多串口卡實(shí)現(xiàn)穩(wěn)定、可靠、智能化的串口通信。

利用MOXA C218Turbo PCI多串口卡實(shí)現(xiàn)陀螺穩(wěn)定平臺與上位機(jī)之間通信的程序流程如圖2所示。

通信程序采用了多線程技術(shù)。主線程主要負(fù)責(zé)根據(jù)用戶指令打開通信板卡、創(chuàng)建讀數(shù)據(jù)線程、關(guān)閉讀數(shù)據(jù)線程以及關(guān)閉通信板卡。子線程主要負(fù)責(zé)對陀螺穩(wěn)定平臺輸出的數(shù)據(jù)進(jìn)行處理,包括按協(xié)議對數(shù)據(jù)進(jìn)行解析、顯示數(shù)據(jù)、保存數(shù)據(jù)以及轉(zhuǎn)發(fā)有用數(shù)據(jù)。

3 基于VC++的串行通信的實(shí)現(xiàn)

在MFC下的32位串口通信程序可以使用兩種方法,即利用ActiveX控件和使用API通信函數(shù)。MSComm通信控件有一系列的屬性和用戶接口,使用ActiveX控件,程序?qū)崿F(xiàn)非常簡單,結(jié)構(gòu)清晰,缺點(diǎn)是不夠靈活,而使用API通信函數(shù)進(jìn)行串口通信編程的方法比較復(fù)雜,需要開設(shè)一個輔助線程,用于實(shí)時(shí)監(jiān)控串口狀態(tài),接收和發(fā)送數(shù)據(jù)。在MFC下的串口通信中,多數(shù)使用的是API通信函數(shù)。以上兩種方法雖然都能用來編寫串口通信程序,但程序設(shè)計(jì)復(fù)雜,對編程人員的要求較高,特別是使用API通信函數(shù)時(shí)更為復(fù)雜。

MOXA公司為Windows系統(tǒng)提供了PComm函數(shù)庫。使用PComm進(jìn)行通信編程,程序的可靠性較之使用MSComm32控件有明顯提高,而相對直接使用Win32 Comm API函數(shù)編程,則降低了程序開發(fā)難度,縮短了程序開發(fā)周期,同時(shí)它還支持多進(jìn)程多線程的串行通信編程,適用于所有的Win32下的串行通信端口。目前該函數(shù)庫專門應(yīng)用于Windows2000、WindowsXP/2003/Vista x86/x64和Windows9X/ME/NT,支持多種編程語言,如Visual Basic、C++、Delphi等。

要使用PComm.Dll中的函數(shù),必須在編譯選項(xiàng)中指明它所在的路徑。在Visual C++環(huán)境下使用PComm,需要進(jìn)行以下操作:

(1)將包含到主程序的源文件中;

(2)將PComm.lib文件導(dǎo)出到連接庫列表中;

(3)將PComm.h和PComm.lib文件放到執(zhí)行路徑中。

3.1 PComm串行通信函數(shù)

本文主要用到了以下幾個PComm.dll庫函數(shù):

串口設(shè)置函數(shù):sio_ioctl(int port、int baud、int mode)。port表示串口號,baud表示波特率,mode表示數(shù)據(jù)位、停止位和校驗(yàn)位;

打開串口函數(shù):sio_open(int port)。port表示串口號;

關(guān)閉串口函數(shù):sio_close(int port)。port表示串口號;

寫串口函數(shù):sio_write(int port,char*buf,int len)。port表示串口號,buf表示傳輸緩沖區(qū)指針,len表示傳輸緩沖區(qū)的長度;

讀串口函數(shù):sio_read(int port,char*buf,int len)。port表示串口號,buf表示傳輸緩沖區(qū)指針,len表示傳輸緩沖區(qū)的長度;

串口中斷觸發(fā)函數(shù):sio_cnt_irq(int port,VOID(CALLBACK *func)(int port),int count)。port表示串口號,func表示中斷服務(wù)程序的入口地址,count表示數(shù)據(jù)長度。

3.2 部分程序代碼

本文的軟件程序中,基于PComm庫函數(shù)的部分通信程序代碼及注釋如下:

#define BaudRate2 B115200 // 綜控口波特率

#define DataBits BIT_8 // 數(shù)據(jù)位

#define Parity P_NONE // 效驗(yàn)位

#define StopBits STOP_1 // 停止位

CString a;

GetDlgItemText(IDC_BTN_PORTOPEN,a);

if(!strcmp(a,\"打開綜控口\"))

{

if(SIO_OK!=sio_open(1)) // 打開串口1

{

MessageBox(\"串口打開錯誤\");

}

else

{

sio_ioctl(1,BaudRate2,DataBits | StopBits | Parity);

// 設(shè)置串口1的波特率,數(shù)據(jù)位,停止位和校驗(yàn)位

sio_cnt_irq(1,CntIrq2,1); // 設(shè)置串口1的中斷觸發(fā)函數(shù)

SetDlgItemText(IDC_BTN_PORTOPEN,\"關(guān)閉綜控口\");

}

}

else

{

sio_close(1); // 關(guān)閉串口1

SetDlgItemText(IDC_BTN_PORTOPEN,\"打開綜控口\");

}

……

VOID CALLBACK CntIrq2(int port) // 中斷服務(wù)程序定義

{

……..

}

通過測試實(shí)驗(yàn),本文研究的基于MOXA C218Turbo PCI多串口卡的陀螺穩(wěn)定平臺監(jiān)控軟件能夠?qū)崿F(xiàn)平臺與上位機(jī)的高速、穩(wěn)定通信。

4 結(jié) 論

陀螺穩(wěn)定平臺在軍、民用領(lǐng)域都有重要應(yīng)用,上位機(jī)監(jiān)控系統(tǒng)是數(shù)字化穩(wěn)定平臺的重要組成部分。要準(zhǔn)確監(jiān)控和分析陀螺穩(wěn)定平臺的狀態(tài),需要監(jiān)控系統(tǒng)能夠高速采集和保存穩(wěn)定平臺輸出的數(shù)據(jù)。針對這一問題,本文為數(shù)字化陀螺穩(wěn)定平臺設(shè)計(jì)了一種基于MOXA多串口卡的通信策略,從而實(shí)現(xiàn)了高速、穩(wěn)定、可靠的數(shù)據(jù)通信。

MOXA C218Turbo PCI是一款智能型多串口卡,它使用了TMS320BC203 RISC處理器對輸入輸出數(shù)據(jù)進(jìn)行管理,這將會減少主機(jī)CPU的通信開銷,為高速串口實(shí)時(shí)通信提供了可能性。同時(shí)PComm庫函數(shù)為用戶提供了相對簡潔,并且高度可靠的串口通信方式,因此可以滿足不同用戶的工業(yè)測量和自動化控制需求。本文利用MOXA多串口卡實(shí)現(xiàn)了高波特率和高數(shù)據(jù)更新率的串行通信,測試試驗(yàn)證明,本文設(shè)計(jì)的通信策略能夠滿足陀螺穩(wěn)定平臺的數(shù)據(jù)通信需求,監(jiān)控系統(tǒng)軟件工作穩(wěn)定可靠。

參考文獻(xiàn):

[1] 樊苗.船載雷達(dá)穩(wěn)定平臺的設(shè)計(jì) [D].大連:大連海事大學(xué),2017.

[2] 于麗.機(jī)載陀螺穩(wěn)定平臺的自抗擾控制算法研究 [D].長春:長春理工大學(xué),2017.

[3] 孫立志.光電穩(wěn)定平臺視軸穩(wěn)定技術(shù)研究 [D].哈爾濱:哈爾濱工業(yè)大學(xué),2017.

[4] 王凌欣.陀螺穩(wěn)定平臺分?jǐn)?shù)階系統(tǒng)建模及控制方法研究 [D].長春:長春理工大學(xué),2017.

[5] 朱倚嫻,陸源,許江寧,等.一種陀螺穩(wěn)定平臺自適應(yīng)模糊-PID復(fù)合控制方法 [J].中國慣性技術(shù)學(xué)報(bào),2014,22(3):317-321.

[6] 李薇,耿淑琴.基于VC實(shí)現(xiàn)MSP430與PC之間的異步串行通信 [J].微型機(jī)與應(yīng)用,2012,31(5):23-25.

[7] 周小剛,單斌,汪立新,等.基于PC104的嵌入式轉(zhuǎn)臺控制系統(tǒng)設(shè)計(jì) [J].自動化應(yīng)用,2013(1):62-63+66.

[8] 龔寄,何雅槐.永磁同步電機(jī)控制器串口通信上位機(jī)軟件設(shè)計(jì) [J].自動化應(yīng)用,2016(8):21-23.

[9] 董圣友,肖繼學(xué),廖旋,等.Visual Studio中串行通信方法實(shí)時(shí)性能測試 [J].中國測試,2015,41(2):124-128.

[10] 趙素娟.基于Moxa多串口卡的多串口通信的VC++實(shí)現(xiàn) [J].計(jì)算機(jī)與現(xiàn)代化,2011(8):117-119+123.

[11] 丁云霞,曾連蓀.基于VC++6.0的RS-422串口通信設(shè)計(jì) [J].信息技術(shù),2010,34(9):73-75.

[12] 李瑞先.VC++中基于MOXA多串口卡串行通信的實(shí)現(xiàn) [J].通信技術(shù),2009,42(11):63-64+184.

作者簡介:李昂(1988-),男,漢族,北京人,助理工程師,碩士。研究方向:慣性導(dǎo)航技術(shù)及應(yīng)用;雷肖劍(1987-),男,畬族,浙江溫州人,助理工程師,碩士。研究方向:軍事運(yùn)籌學(xué)。

主站蜘蛛池模板: 国产白浆一区二区三区视频在线| 国产精品短篇二区| 2021天堂在线亚洲精品专区| 久久久受www免费人成| 天天摸夜夜操| 99久久精品无码专区免费| 国产视频一二三区| 91高清在线视频| 国产精品尤物铁牛tv| 在线日韩日本国产亚洲| 国产精品三级专区| 午夜福利在线观看入口| 欧美日本二区| 动漫精品啪啪一区二区三区| 亚洲欧美不卡视频| 在线观看欧美国产| 亚洲欧洲日产国码无码av喷潮| 午夜丁香婷婷| 精品成人一区二区三区电影| 日韩精品成人在线| 国产91丝袜在线播放动漫 | 91尤物国产尤物福利在线| 国产乱子精品一区二区在线观看| 国产成年女人特黄特色毛片免| 在线免费无码视频| 色综合久久无码网| 国产午夜福利在线小视频| 国产美女免费| 超级碰免费视频91| 99久久精彩视频| 国产精品浪潮Av| 亚洲中文字幕在线精品一区| 91九色国产porny| 国产中文一区a级毛片视频| 最新无码专区超级碰碰碰| 国产v欧美v日韩v综合精品| 又黄又湿又爽的视频| 亚洲欧美一区二区三区麻豆| 国产又色又爽又黄| 久久精品66| 国产又色又爽又黄| 91青青在线视频| 欧美亚洲网| 日韩经典精品无码一区二区| 婷婷六月天激情| 欧美日韩v| 中文纯内无码H| 国产午夜看片| 欧美人在线一区二区三区| 91黄视频在线观看| 成人福利在线免费观看| 成人精品午夜福利在线播放| 免费在线播放毛片| 五月婷婷综合网| 女人18毛片久久| 99999久久久久久亚洲| 亚洲bt欧美bt精品| 成年A级毛片| 中文字幕色在线| 99热国产在线精品99| 伊人色天堂| 无码网站免费观看| 色久综合在线| 亚洲无码熟妇人妻AV在线| 国内精品91| 免费无码网站| 无码啪啪精品天堂浪潮av| 亚洲成人一区在线| 国产91丝袜在线播放动漫| 国产95在线 | 国产精品xxx| 日韩欧美综合在线制服| 99精品一区二区免费视频| 亚洲天堂网在线观看视频| 99热这里只有精品国产99| 亚洲女同一区二区| 日本精品视频| 国产成人精品午夜视频'| 天天躁夜夜躁狠狠躁躁88| 97视频免费在线观看| 国产精品女熟高潮视频| 亚洲中文在线视频|