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

LabVIEW平臺下雙緩沖高速串口通信系統(tǒng)的設(shè)計與實現(xiàn)

2016-01-18 03:04:57,,,
機械與電子 2015年3期

,,,

(1. 同濟大學(xué)電子與信息工程學(xué)院,上海 200092,2. 上海宇航系統(tǒng)工程研究所,上海 201109)

Design and Realization of Double-buffer and High-speed SerialCommunication System Based on LabVIEW

SHI Pei1,WU Yuanbing2,ZHANG Zhiming1,YU Youling1

(1.College of Electronics and Information Engineering,Tongji University,Shanghai 200092,China;

2.Aerospace Research System Engineering Shanghai 201109,China)

LabVIEW平臺下雙緩沖高速串口通信系統(tǒng)的設(shè)計與實現(xiàn)

施培1,吳源兵2,張志明1,余有靈1

(1. 同濟大學(xué)電子與信息工程學(xué)院,上海 200092,2. 上海宇航系統(tǒng)工程研究所,上海 201109)

Design and Realization of Double-buffer and High-speed SerialCommunication System Based on LabVIEW

SHI Pei1,WU Yuanbing2,ZHANG Zhiming1,YU Youling1

(1.College of Electronics and Information Engineering,Tongji University,Shanghai 200092,China;

2.Aerospace Research System Engineering Shanghai 201109,China)

摘要:采用多線程機制、雙緩沖和隊列技術(shù),基于LabVIEW平臺和高速RS422串口,在高速通信模式下實現(xiàn)數(shù)據(jù)的實時采集、處理、顯示及存儲。實際項目應(yīng)用表明,系統(tǒng)運行穩(wěn)定,執(zhí)行效率高,具有良好的可移植性和可擴展性,能較好地完成高速串口通信功能。

關(guān)鍵詞:LabVIEW;高速串口通信;多線程技術(shù);雙緩沖技術(shù)

中圖分類號:TP273;TP311

文獻標(biāo)識碼:A

文章編號:1001-2257(2015)03-0017-03

收稿日期:2014-12-17

Abstract:High-speed serial communication system was developed based on LabVIEW and RS422 communication protocol. Multi-threads mechanism,double-buffer technique and queue scheduling in LabVIEW were applied for the real-time data acquisition and processing,GUI display and database storage. Application result indicates the proposed frame can improve the operation efficiency and veracity,expand the program's functions effectively.

作者簡介:施培(1987-),男,上海崇明人,碩士研究生,研究方向為嵌入式系統(tǒng)開發(fā)與應(yīng)用。

Key words:LabVIEW;high-speed serial communication;multithread technique;double-buffer technique

0引言

串口通信是一種使用靈活方便,數(shù)據(jù)傳輸可靠的通信方式,在工業(yè)控制、數(shù)據(jù)采集和實時監(jiān)控中被廣泛的應(yīng)用。高速串口數(shù)據(jù)采集系統(tǒng)的設(shè)計不同于普通串口通信系統(tǒng),在接收到數(shù)據(jù)采集終端或者其他設(shè)備所發(fā)送過來的大量數(shù)據(jù)的同時,需要對已接收到的數(shù)據(jù)進行處理并且實時顯示,通常情況下也要準(zhǔn)確完整地存儲數(shù)據(jù)[1CD*22]。由于數(shù)據(jù)的傳輸速度較快,數(shù)據(jù)量大,如采用傳統(tǒng)的單線程編程方式,常常會出現(xiàn)接收數(shù)據(jù)內(nèi)容不完整或者不正確的情況。某型地面試驗系統(tǒng)中,控制中心機與DSP下位機終端之間采用RS422全雙工通信,傳輸格式采用1位起始位,8位數(shù)據(jù)位,1位停止位,115200bps的傳輸速率,DSP終端每隔10 ms上傳64字節(jié)長度的數(shù)據(jù)幀。設(shè)計要求計算機能完整準(zhǔn)確的接收數(shù)據(jù)并存儲到后臺數(shù)據(jù)庫中(本地數(shù)據(jù)庫Access),同時同步顯示解析后的動態(tài)數(shù)據(jù)。采用多線程技術(shù)則能保證系統(tǒng)的每個環(huán)節(jié)同步工作,節(jié)省大量系統(tǒng)時間完成數(shù)據(jù)讀取、顯示及存儲。

1基于LabVIEW串口通信程序的開發(fā)

1.1 LabVIEW-VISA

LabVIEW是NI(美國國家儀器公司)開發(fā)的一種基于圖形化編程語言的虛擬開發(fā)平臺,它采用的圖形化G語言使應(yīng)用程序的開發(fā)變得簡單方便[1-3]。LabVIEW 軟件提供了豐富的串口通信函數(shù),編程時,首先調(diào)用串口配置函數(shù)完成串口參數(shù)設(shè)置,包括資源分配,設(shè)置波特率、數(shù)據(jù)位、停止位、校驗位等.然后,使用VISA Write函數(shù)發(fā)送數(shù)據(jù),使用VISA Read函數(shù)接收數(shù)據(jù).串口使用完成后,應(yīng)用VISA Close函數(shù)關(guān)閉串口,結(jié)束通信[3CD*24]。

1.2 多線程技術(shù)

傳統(tǒng)測控系統(tǒng)的工作流程是數(shù)據(jù)采集,分析,顯示,存儲4個任務(wù)在同一線程上按照順序依次執(zhí)行,在一個任務(wù)運行的同時后面其余的任務(wù)就不能同步運行,只能處于等待狀態(tài),因此,常常造成數(shù)據(jù)不能正常處理顯示及存儲。采用多線程技術(shù),當(dāng)程序運行時,操作系統(tǒng)為每個獨立的線程安排CPU時間,單處理器系統(tǒng)以輪回方式按線程的優(yōu)先級提供時間片,每個線程在使用完時間片后交出控制權(quán),系統(tǒng)再將CPU時間片分配給下一個線程,相較于單線程編程方式,多線程技術(shù)極大的提高了系統(tǒng)的執(zhí)行速度。

1.3 雙緩沖技術(shù)

圖1 數(shù)據(jù)接收程序

由于數(shù)據(jù)采集、處理、顯示和存儲所需的系統(tǒng)資源和運行時間各不相同,和前三者相比較,存儲操作往往耗時更長。在高速大數(shù)據(jù)量情況下,當(dāng)前數(shù)據(jù)記錄在存儲的過程會被后一條數(shù)據(jù)記錄覆蓋,這樣會導(dǎo)致數(shù)據(jù)不能完整正確的存儲。借鑒圖像顯示中的雙緩沖技術(shù),在程序中先開辟2個緩沖區(qū),將接收到的數(shù)據(jù)先存放到一個緩沖區(qū)中,當(dāng)緩沖區(qū)達到一定大小時將數(shù)據(jù)存放到另一個緩沖區(qū)中,同時對第1個緩沖區(qū)中的數(shù)據(jù)進行存儲操作。一旦第2個緩沖區(qū)中的數(shù)據(jù)記錄達到指定的數(shù)量后,再將數(shù)據(jù)存放到第1個緩沖區(qū)中,重復(fù)使用2個緩沖區(qū)進行數(shù)據(jù)的存放和存儲,能夠有效地避免上面遇到的問題。雙緩沖能起到很好的數(shù)據(jù)存儲緩沖作用,在實際工程中能高效地完成數(shù)據(jù)存儲操作。

2高速串口通信程序?qū)崿F(xiàn)

2.1 總體設(shè)計方案

根據(jù)多線程的機制,將數(shù)據(jù)采集、分析顯示、雙緩沖、存儲分配到4個While循環(huán)中,并行的執(zhí)行。每個While循環(huán)采用狀態(tài)機制,循環(huán)之間借助隊列函數(shù)實現(xiàn)“生產(chǎn)者-消費者”架構(gòu)進行數(shù)據(jù)的共享。VISA讀取函數(shù)每隔10 ms讀取一次串口緩沖區(qū),將下位機數(shù)據(jù)終端發(fā)送的數(shù)據(jù)讀取出來,再將數(shù)據(jù)傳輸給后面的數(shù)據(jù)分析顯示循環(huán)和數(shù)據(jù)存儲循環(huán),數(shù)據(jù)接收循環(huán)程序如圖1所示。

當(dāng)使用多線程技術(shù)的同時,必須考慮程序的停止機制,即如何來確保4個不同功能While循環(huán)的同步停止,以便能安全退出整個上位機程序。當(dāng)讀串口循環(huán)接收到64個字節(jié)的數(shù)據(jù)后,將其通過隊列函數(shù)傳遞到數(shù)據(jù)分析循環(huán),按下停止按鈕將讀串口循環(huán)停止,連接在While循環(huán)內(nèi)的釋放隊列引用函數(shù)將前面定義的Data隊列取消,在數(shù)據(jù)處理循環(huán)中的出隊列函數(shù),將無法檢測到Data隊列的引用,從而產(chǎn)生報錯。利用此錯誤可停止數(shù)據(jù)處理While循環(huán),即通過1對隊列函數(shù)(入隊列和出隊列)來控制2個While循環(huán)的停止。系統(tǒng)中其余3個While循環(huán)(數(shù)據(jù)顯示、數(shù)據(jù)處理、數(shù)據(jù)存儲)均通過此機制實現(xiàn)循環(huán)的停止。數(shù)據(jù)顯示循環(huán)和數(shù)據(jù)存儲循環(huán)的后臺程序流程如圖2所示。

圖2 數(shù)據(jù)顯示和存儲程序流程

2.2 雙緩沖的實現(xiàn)

在緩沖處理循環(huán)的Initialize狀態(tài)中,首先利用初始化數(shù)組函數(shù)開辟緩沖區(qū)A和緩沖區(qū)B(50行64列的二維數(shù)組),并且初始化數(shù)組指針為0。程序進入Buffer狀態(tài)后,當(dāng)上位機每隔10 ms接收到一幀64個字節(jié)的數(shù)據(jù)后,利用數(shù)組替換子集函數(shù)將數(shù)據(jù)寫入到緩沖區(qū)A中,第1條數(shù)據(jù)替換到緩沖區(qū)A的第1行(組數(shù)指針初始化為0),同時數(shù)組指針自動加1,即第2條數(shù)據(jù)存放到第2行,當(dāng)存放到第50條時(數(shù)組指針為49),標(biāo)志緩沖區(qū)A放滿,切換到緩沖區(qū)B,將后續(xù)數(shù)據(jù)存放到緩沖區(qū)B中,操作與緩沖區(qū)A相同。同時對緩沖區(qū)A中的數(shù)據(jù)進行存儲操作,借助隊列函數(shù)將其傳輸?shù)酱鎯ρh(huán)中進行存儲。這樣就實現(xiàn)接收數(shù)據(jù)的同時又在存儲數(shù)據(jù)。當(dāng)緩沖區(qū)B存滿時,再將數(shù)據(jù)存放到緩沖區(qū)A中,同時對緩沖區(qū)B中的數(shù)據(jù)進行存儲操作。如此依次進行存放和存儲操作,接收雙緩沖機制流程如圖3所示。

圖3 雙緩沖流程

3測試結(jié)果

實際工程項目應(yīng)用中,上位機電腦配置為:Intel Celeron 1.5 GHz主頻,4 G內(nèi)存,500 G硬盤,Windows XP操作系統(tǒng),本地數(shù)據(jù)庫采用Access2007。下位機DSP數(shù)據(jù)終端以10 ms間隔,115200bps速率持續(xù)向上位計算機發(fā)送64個字節(jié)的數(shù)據(jù)幀,利用前述技術(shù)方案在LabVIEW環(huán)境下編程,上位機能夠?qū)崟r接收數(shù)據(jù)、顯示數(shù)據(jù)和存儲數(shù)據(jù),并且在接收和處理數(shù)據(jù)時沒有發(fā)生緩沖區(qū)溢出現(xiàn)象。根據(jù)實驗測試數(shù)據(jù),可以計算得到平均存儲一條數(shù)據(jù)記錄的時間t=4.08 ms。

4結(jié)束語

結(jié)合實際項目,實現(xiàn)基于雙緩沖的高速串口通信程序,能可靠地接收數(shù)據(jù)終端所發(fā)送的數(shù)據(jù),完整準(zhǔn)確地進行顯示和存儲,能夠達到預(yù)先提出的設(shè)計指標(biāo)。進一步的研究方向是提高數(shù)據(jù)傳輸?shù)乃俾?如發(fā)送時間間隔減小或者增大發(fā)送數(shù)據(jù)長度),以達到更好的技術(shù)性能,并引入高性能數(shù)據(jù)庫管理系統(tǒng)(如SQL Sever或Oracle等來提高程序的整體性能)。

參考文獻:

[1]李江全. LabVIEW虛擬儀器從入門到測控應(yīng)用130例. 北京:電子工業(yè)出版社,2013.

[2]蘇岳龍,李貽斌,宋銳. 基于VC++6.0的高速串口通信數(shù)據(jù)采集系統(tǒng).微計算機信息,2005,21(5):147-148.

[3]Bitter R,Mohiuddin T. LabVIEW advanced programming techniques. Boston:CRC Press,2001.

[4]趙奇峰,閔濤,楊黔龍,等. 基于LabVIEW串口數(shù)據(jù)采集系統(tǒng)設(shè)計. 計算機技術(shù)與發(fā)展,2011,21(11):224-226.

[5]徐華中,黃麗萍. 基于LabVIEW和DSP串口的多通道電機參數(shù)采集系統(tǒng).電子測量技術(shù),2011,34(4):66-69.

主站蜘蛛池模板: 99视频精品在线观看| 在线国产毛片| 亚洲国产精品日韩av专区| 五月婷婷综合网| 久久国产成人精品国产成人亚洲| 欧洲极品无码一区二区三区| 国产jizzjizz视频| 中文字幕在线日韩91| 国产美女免费| 欧美一区二区人人喊爽| 国产女人18毛片水真多1| 欧美黑人欧美精品刺激| 99人体免费视频| 国产97区一区二区三区无码| 91精品国产综合久久香蕉922| 久久久久久久久久国产精品| 精品超清无码视频在线观看| 香蕉伊思人视频| 美女内射视频WWW网站午夜| 国产精品极品美女自在线网站| 国产视频a| 免费国产无遮挡又黄又爽| 456亚洲人成高清在线| 亚洲色欲色欲www网| 99尹人香蕉国产免费天天拍| 在线观看免费人成视频色快速| 欧美另类图片视频无弹跳第一页| 亚洲中久无码永久在线观看软件| 亚洲国模精品一区| 国产综合网站| 久久99国产综合精品女同| 最近最新中文字幕免费的一页| 蜜臀AV在线播放| www.国产福利| 国产精品私拍在线爆乳| 午夜国产在线观看| 亚洲精品无码久久毛片波多野吉| 2021精品国产自在现线看| v天堂中文在线| 午夜福利免费视频| 欧美日韩国产高清一区二区三区| 丁香五月激情图片| 色老头综合网| 亚洲综合色婷婷| 性69交片免费看| 成人午夜久久| 在线观看的黄网| 成年人视频一区二区| 99伊人精品| 欧洲亚洲欧美国产日本高清| 久久 午夜福利 张柏芝| 在线观看免费黄色网址| 2021国产在线视频| 日韩经典精品无码一区二区| 日本五区在线不卡精品| 免费看的一级毛片| 亚洲欧美一区二区三区图片 | 精品久久久久久久久久久| 超碰精品无码一区二区| 国产精品免费久久久久影院无码| 小蝌蚪亚洲精品国产| 少妇极品熟妇人妻专区视频| 久久青草免费91线频观看不卡| 精品久久香蕉国产线看观看gif| a天堂视频| 妇女自拍偷自拍亚洲精品| 蜜桃视频一区| 91精品视频在线播放| 午夜高清国产拍精品| 成人免费黄色小视频| 久久一日本道色综合久久| 国产精品hd在线播放| 热re99久久精品国99热| 国产精品嫩草影院视频| 久久黄色免费电影| 亚洲国产成人麻豆精品| 国产新AV天堂| 国产成人啪视频一区二区三区| 久久亚洲黄色视频| 永久毛片在线播| 国产精品亚洲一区二区在线观看| 国产丝袜精品|