国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于LabVIEW的車輛實時監(jiān)測系統(tǒng)設(shè)計與實現(xiàn)*

2018-10-30 03:14許霜梅
關(guān)鍵詞:PC機(jī)子程序串口

許霜梅

(西安職業(yè)技術(shù)學(xué)院 陜西 西安 710000)

引言

隨著汽車工業(yè)以及計算機(jī)信息技術(shù)、網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,對車輛運(yùn)行的實時位置定位和實時性能監(jiān)控系統(tǒng)已成為研究熱點(diǎn)。將計算機(jī)、傳感器、通信技術(shù)等應(yīng)用于車輛管理系統(tǒng)中,能加強(qiáng)對車輛信息的管理,實時獲取車輛位置信息,對車輛運(yùn)行狀態(tài)進(jìn)行實時監(jiān)控,從而及時發(fā)現(xiàn)車輛運(yùn)行過程中的異常情況,提高車輛運(yùn)行的安全性、維護(hù)性和可靠性。因此,開發(fā)一個性能穩(wěn)定、功能明確的車輛實時監(jiān)測系統(tǒng)具有重要意義[1]。

本文基于LabVIEW及CAN總線通信技術(shù),設(shè)計了一個能對車輛實時位置進(jìn)行定位和對運(yùn)行數(shù)據(jù)進(jìn)行采集和監(jiān)控的系統(tǒng)。通過該系統(tǒng),用戶可以定制選擇監(jiān)測項目。該系統(tǒng)具有良好的通用性,可適用于多種應(yīng)用場合。

1 監(jiān)測系統(tǒng)總體架構(gòu)設(shè)計

本監(jiān)測系統(tǒng)主要完成車輛位置定位顯示和車輛實時運(yùn)行狀態(tài)監(jiān)測等2大功能。車輛位置定位顯示主要是利用車載GPS接收模塊獲得定位信息,經(jīng)過RS232串口轉(zhuǎn)發(fā)給CAN總線,再經(jīng)過CAN總線實現(xiàn)與上位機(jī)PC的通訊,從而將定位信息顯示在LabVIEW上位機(jī)軟件界面上;實時狀態(tài)監(jiān)測的原理是利用車載傳感器獲得車輛運(yùn)行狀態(tài)信息,然后通過CAN總線將車輛狀態(tài)信息傳送到PC端的LabVIEW上位機(jī)軟件[2]。監(jiān)測系統(tǒng)總體結(jié)構(gòu)如圖1所示。

圖1 監(jiān)測系統(tǒng)總體架構(gòu)圖

從圖1可以看出,本監(jiān)測系統(tǒng)由車載系統(tǒng)和PC端主監(jiān)測系統(tǒng)等2部分組成。車載系統(tǒng)安裝于車輛內(nèi)部,包括GPS接收模塊、串口通信模塊、單片機(jī)和CAN通信模塊等幾部分;PC端主監(jiān)測系統(tǒng)安裝于遠(yuǎn)程PC機(jī)上,運(yùn)行LabVIEW上位機(jī)軟件。車載CAN總線系統(tǒng)和PC機(jī)端的CAN總線節(jié)點(diǎn)的通信是通過PCI-CAN總線接口卡完成的。

本監(jiān)測系統(tǒng)各主要模塊的功能如下。

1)GPS接收模塊。該模塊用于確定車輛位置,硬件使用和芯星通公司生產(chǎn)的UM220模塊。UM220模塊是GPS/BDS雙接收系統(tǒng)模塊,優(yōu)勢是在信號微弱或其他復(fù)雜環(huán)境下依然能保持良好的連續(xù)定位和捕獲跟蹤能力[3]。使用經(jīng)度、緯度以及經(jīng)緯度方向?qū)ξ恢眠M(jìn)行確定。GPS接收模塊的數(shù)據(jù)不能直接傳遞給單片機(jī)處理,需要先通過USB轉(zhuǎn)串口將數(shù)據(jù)傳遞給串口通信模塊,然后由串口通信模塊將數(shù)據(jù)轉(zhuǎn)發(fā)給單片機(jī)進(jìn)行處理。

2)串口通信模塊。串口通信模塊的功能是將GPS接收模塊的數(shù)據(jù)傳遞給單片機(jī)。本監(jiān)測系統(tǒng)使用RS232串口。在對串口通信模塊的串口驅(qū)動軟件進(jìn)行設(shè)計時,需關(guān)注串口波特率、端口等設(shè)置。

3)單片機(jī)。單片機(jī)作為監(jiān)測系統(tǒng)的微處理器,是所有數(shù)據(jù)的處理單元。本監(jiān)測系統(tǒng)選用AT89S52型單片機(jī),負(fù)責(zé)接收GPS的位置數(shù)據(jù)和傳感器數(shù)據(jù),對這些數(shù)據(jù)進(jìn)行處理后傳送給CAN通信模塊。

4)傳感器。傳感器安裝在車內(nèi)各個位置,負(fù)責(zé)對車輛的各種運(yùn)行信息如車速、油門開度、擋位、變速器等進(jìn)行實時監(jiān)測,并將數(shù)據(jù)傳遞給單片機(jī)。

5)CAN通信模塊。CAN通信模塊是由CAN通信控制器SJA1000控制的。SJA1000是一款功能強(qiáng)大且獨(dú)立的CAN總線控制器[4]。主要用于工業(yè)領(lǐng)域中的區(qū)域網(wǎng)絡(luò)控制和移動目標(biāo)控制。與其他CAN控制器相比,SJA1000具有配置簡單、功能強(qiáng)大等優(yōu)點(diǎn),經(jīng)過簡單的總線連接就可實現(xiàn)CAN總線的數(shù)據(jù)層和物理通信層的所有功能。

在主控程序運(yùn)行時,單片機(jī)負(fù)責(zé)對SJA1000進(jìn)行初始化,實現(xiàn)數(shù)據(jù)的接收和發(fā)送等通信任務(wù)。

6)CAN總線。本監(jiān)測系統(tǒng)使用的CAN總線驅(qū)動器為PCA82C250。它是CAN總線控制器和物理總線之間的接口,在單片機(jī)與高速總線電路之間進(jìn)行連接非常簡單,只需要連接數(shù)據(jù)發(fā)送(TRXCAN)、數(shù)據(jù)接收(RXCAN)和相應(yīng)的電源管腳即可[5]。

CAN總線能解決巨大的數(shù)據(jù)交互問題,擺脫了傳統(tǒng)的用導(dǎo)線進(jìn)行點(diǎn)對點(diǎn)連接的傳輸方式,節(jié)點(diǎn)之間通過報文廣播和報文傳遞的方式進(jìn)行連接,發(fā)送節(jié)點(diǎn)和接收節(jié)點(diǎn)之間可以建立一對一、一對多或多對一的聯(lián)系。能靈活地建立連接,快捷高效地進(jìn)行數(shù)據(jù)傳輸。

7)PCI-CAN總線接口卡。由于PC機(jī)本身不帶CAN接口,所以,PC機(jī)和車載CAN網(wǎng)絡(luò)是不能直接互聯(lián)的。為了解決這個問題,將計算機(jī)自帶的PCI通訊接口轉(zhuǎn)換為CAN總線接口,即通過PCI-CAN總線接口卡給計算機(jī)增加CAN總線接口功能。

本監(jiān)測系統(tǒng)使用NI公司生產(chǎn)的PCI-CAN/XS CAN接口卡,內(nèi)置SJA1000CAN控制器和PCA82C250總線驅(qū)動器,能實現(xiàn)PC機(jī)和車載系統(tǒng)之間的高速通信。

2 監(jiān)測系統(tǒng)軟件設(shè)計

本監(jiān)測系統(tǒng)軟件設(shè)計的總體思想是:

1)實現(xiàn)GPS接收模塊通過串口通信模塊與單片機(jī)的通信;

2)實現(xiàn)單片機(jī)與CAN通信模塊的通信;

3)實現(xiàn)傳感器通過單片機(jī)向CAN通信模塊轉(zhuǎn)發(fā)數(shù)據(jù)的功能。

通過總結(jié),本監(jiān)測系統(tǒng)軟件需完成3大功能:

1)GPS模塊向單片機(jī)發(fā)送數(shù)據(jù),單片機(jī)在完成數(shù)據(jù)處理之后將數(shù)據(jù)轉(zhuǎn)發(fā)給CAN;

2)傳感器向單片機(jī)發(fā)送數(shù)據(jù),單片機(jī)在完成數(shù)據(jù)處理之后轉(zhuǎn)發(fā)給CAN;

3)CAN將單片機(jī)發(fā)送過來的數(shù)據(jù)發(fā)送到PC機(jī)端,在LabVIEW上位機(jī)軟件上進(jìn)行顯示。

通過分析,將本監(jiān)測系統(tǒng)的程序分為如下幾個部分:

1)主控程序。完成串口初始化和CAN接口卡的初始化和配置;

2)CAN通訊子程序。用于接收和保存從單片機(jī)傳出的經(jīng)過處理的串口通信模塊數(shù)據(jù)和傳感器的數(shù)據(jù);

3)數(shù)據(jù)處理與顯示子程序。用于觀察接收到的車輛位置信息和車輛運(yùn)行狀態(tài)信息,可按需求顯示不同的數(shù)據(jù)及處理結(jié)果,并進(jìn)行保存;

4)監(jiān)測子程序。用于設(shè)置數(shù)據(jù)屬性,繪制車輛狀態(tài)信息的變化曲線;

5)串口通訊子程序。接收GPS模塊發(fā)來的數(shù)據(jù),并發(fā)送給單片機(jī)。

以上程序在軟件運(yùn)行時按先后順序獨(dú)立運(yùn)行,當(dāng)軟件啟動時,主控程序運(yùn)行,根據(jù)用戶需求對其它4個子程序進(jìn)行實時調(diào)度,并將子程序的運(yùn)行結(jié)果傳遞給相關(guān)功能面板的顯示控件,然后反饋給用戶。以上5個程序模塊之間的關(guān)系如圖2所示。

圖2 各程序模塊之間的關(guān)系

3 監(jiān)測系統(tǒng)軟件實現(xiàn)

3.1 主控程序?qū)崿F(xiàn)

主控程序負(fù)責(zé)所有其他模塊的調(diào)用、程序執(zhí)行流程的控制、串口通訊模塊和CAN通訊模塊的初始化以及所有人機(jī)交互的工作。設(shè)置while循環(huán)來進(jìn)行各模塊的調(diào)用和切換。在程序運(yùn)行時,需在循環(huán)中不斷檢測串口和CAN是否存在待接收的數(shù)據(jù),為串口通訊模塊和CAN通訊模塊設(shè)置2個緩沖區(qū):發(fā)送緩沖區(qū)和接收緩沖區(qū),從而保證不丟失數(shù)據(jù)。

主控程序?qū)Υ谀K的初始化主要是完成串口基本參數(shù)的設(shè)置,包括波特率、數(shù)據(jù)位、停止位及校驗方式等。本監(jiān)測系統(tǒng)中,波特率設(shè)置為115 200 bit/s,數(shù)據(jù)位設(shè)置為8位,停止位設(shè)置為1位,校驗方式設(shè)置為奇校驗。

主控程序?qū)AN通訊模塊的初始化主要是對SJA1000CAN控制器進(jìn)行初始化。SJA1000CAN控制器的初始化配置在復(fù)位模式下進(jìn)行,主要完成SJA1000控制器的寄存器的配置,包括時鐘分頻寄存器、總線定時寄存器、輸出控制寄存器等的配置。

3.2 CAN通訊子程序?qū)崿F(xiàn)

CAN通訊子程序的核心是CAN通訊協(xié)議的實現(xiàn),主要內(nèi)容是通訊幀的組織和發(fā)送。CAN通訊協(xié)議分為3層:物理層、數(shù)據(jù)鏈路層和應(yīng)用層,物理層和數(shù)據(jù)鏈路層的功能由CAN接口器件即硬件完成,開發(fā)人員需要關(guān)注的是應(yīng)用層的開發(fā)。應(yīng)用層的主要任務(wù)是完成單片機(jī)與SJA1000通訊控制器之間的數(shù)據(jù)交互,包括數(shù)據(jù)發(fā)送和接收,即單片機(jī)把待發(fā)送的數(shù)據(jù)發(fā)送給SJA1000控制器,SJA1000控制器將數(shù)據(jù)發(fā)送給CAN總線;另外,SJA1000控制器從CAN總線接收到數(shù)據(jù)后發(fā)送給單片機(jī)。所以,SJA1000控制器相當(dāng)于單片機(jī)CPU和CAN總線之間的數(shù)據(jù)中轉(zhuǎn)站。

本監(jiān)測系統(tǒng)應(yīng)用CAN2.0B協(xié)議,在通訊中采用查詢方式發(fā)送報文,采用中斷方式接收報文。

CAN通訊子程序主要包括發(fā)送數(shù)據(jù)和接受數(shù)據(jù)等2部分。

發(fā)送數(shù)據(jù)時,首先應(yīng)檢查發(fā)送緩沖器的狀態(tài),由“發(fā)送緩沖器狀態(tài)標(biāo)志(TBS)”控制,只有該標(biāo)志為空閑時才能發(fā)送報文。如果SJA1000正在發(fā)送報文,則TBS標(biāo)志位為忙,需要等待SJA1000控制器發(fā)送完成后,才能發(fā)送本次報文。即將發(fā)送的報文應(yīng)首先發(fā)送到發(fā)送緩沖器,等待SJA1000控制器從緩沖器中提取數(shù)據(jù)并發(fā)送。

接收數(shù)據(jù)時,從總線接收到的報文首先放在接收緩沖區(qū)中,由“接收緩沖器狀態(tài)標(biāo)志RBS”控制是否可以接收數(shù)據(jù)。該標(biāo)志位顯示為空閑時才能接收緩沖區(qū)中的數(shù)據(jù)。

3.3 數(shù)據(jù)處理與顯示子程序?qū)崿F(xiàn)

本監(jiān)測系統(tǒng)的數(shù)據(jù)處理模塊分為GPS數(shù)據(jù)處理模塊和CAN總線數(shù)據(jù)處理模塊。

GPS數(shù)據(jù)處理過程為:單片機(jī)通過串口接收GPS數(shù)據(jù),GPS每秒鐘發(fā)送一個數(shù)據(jù)包,包括經(jīng)度、緯度等信息。通過單片機(jī)解析后將數(shù)據(jù)轉(zhuǎn)發(fā)給CAN總線,CAN總線再將數(shù)據(jù)發(fā)送到PC機(jī)端。CAN總線數(shù)據(jù)處理模塊處理的數(shù)據(jù)包括2類:GPS發(fā)送的位置數(shù)據(jù)和傳感器發(fā)送的車輛實時運(yùn)行信息。CAN總線對這2類數(shù)據(jù)不加以區(qū)分,傳送到PC機(jī)端,由PC機(jī)端的LabVIEW上位機(jī)軟件進(jìn)行分析提取。CAN總線控制器接收到報文后向單片機(jī)發(fā)送中斷請求,單片機(jī)響應(yīng)中斷后進(jìn)入相應(yīng)的中斷處理程序。

顯示子程序為PC機(jī)端的LabVIEW上位機(jī)軟件,主要功能是讀取CAN總線發(fā)送給PC機(jī)的2類數(shù)據(jù)并進(jìn)行解析,正確顯示這些數(shù)據(jù),如位置信息和車輛運(yùn)行狀態(tài)信息,點(diǎn)擊相應(yīng)的選項選擇,查看相應(yīng)的選項。

3.4 監(jiān)測子程序?qū)崿F(xiàn)

監(jiān)測子程序的主要功能是對數(shù)據(jù)進(jìn)行處理和分析。CAN總線傳送的數(shù)據(jù)是由真實的GPS位置信息經(jīng)過CAN協(xié)議轉(zhuǎn)換后得到的,傳感器數(shù)據(jù)也是直接由傳感器采集得到的,這些原始數(shù)據(jù)不利于用戶直接觀測,需對數(shù)據(jù)進(jìn)行轉(zhuǎn)換和處理。經(jīng)過相應(yīng)的數(shù)據(jù)處理程序處理后,輸出直觀且更易理解的數(shù)據(jù),在數(shù)據(jù)監(jiān)測功能面板可實時查看。

3.5 串口通訊子程序?qū)崿F(xiàn)

本監(jiān)測系統(tǒng)中的串口通訊程序與其他系統(tǒng)的串口通訊程序存在差別,由于GPS實時地向監(jiān)測系統(tǒng)傳送的數(shù)據(jù)量非常大,有可能出現(xiàn)數(shù)據(jù)接收緩沖區(qū)滿溢出的情況。本監(jiān)測系統(tǒng)采用雙緩沖區(qū)的方式避免這種情況,2個緩沖區(qū)輪流接收數(shù)據(jù),一個緩沖區(qū)滿了后,轉(zhuǎn)由另一個緩沖區(qū)接收數(shù)據(jù)。這樣循環(huán)更換緩沖區(qū),可充分利用單片機(jī)有限的內(nèi)存資源。同時,設(shè)計2個接口:comReceive和comSend來接收和發(fā)送數(shù)據(jù)。

4 監(jiān)測系統(tǒng)運(yùn)行

PC機(jī)端和車載系統(tǒng)之間通過CAN總線接口卡實現(xiàn)通訊。本監(jiān)測系統(tǒng)可完成車輛實時運(yùn)行位置的顯示和車輛運(yùn)行過程中的狀態(tài)信息顯示。該監(jiān)測系統(tǒng)PC機(jī)端顯示的車輛位置定位信息和實時狀態(tài)信息如圖3所示。

圖3 車輛位置信息顯示

5 結(jié)論

本文所設(shè)計的基于LabVIEW的車輛實時監(jiān)測系統(tǒng)通過CAN總線接收傳感器信號和經(jīng)GPS/BDS處理過的位置信息,并對接收到的傳感器信號和位置信息進(jìn)行運(yùn)算處理,實現(xiàn)對車輛的實時位置和車輛實時狀態(tài)的監(jiān)測。測試結(jié)果表明,該監(jiān)測系統(tǒng)硬件構(gòu)成簡單,軟件界面友好,操作方便,可根據(jù)用戶需求定制所需的數(shù)據(jù)監(jiān)測方式。該監(jiān)測系統(tǒng)適用于任何支持CAN通信且配有相應(yīng)通信接口的傳感器,有很好的通用性,且具有較高的準(zhǔn)確性和穩(wěn)定性。

猜你喜歡
PC機(jī)子程序串口
基于NPORT的地面綜合氣象觀測系統(tǒng)通信測試方法及故障處理
淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
基于三菱FXPLC的感應(yīng)淬火機(jī)床與PC機(jī)的串行通信實現(xiàn)
船舶電子設(shè)備串口數(shù)據(jù)的軟件共享方法
VC.NET下實現(xiàn)dsPIC單片機(jī)與PC機(jī)的通信
基于單片機(jī)與PC機(jī)的電氣量采集系統(tǒng)設(shè)計
串口技術(shù)的實物調(diào)試和虛擬仿真聯(lián)合教學(xué)模式
淺談子程序在數(shù)控車編程中的應(yīng)用
VIVID3彩色超聲儀結(jié)構(gòu)原理及維修
子程序在數(shù)控車加工槽中的應(yīng)用探索
南京市| 平和县| 秦皇岛市| 苏州市| 丹东市| 中江县| 盖州市| 东安县| 开鲁县| 庆云县| 堆龙德庆县| 渝中区| 睢宁县| 冷水江市| 会理县| 望谟县| 天全县| 隆子县| 皋兰县| 巴青县| 天柱县| 辰溪县| 永修县| 额尔古纳市| 瓦房店市| 唐海县| 嘉黎县| 临海市| 东乡族自治县| 中西区| 永安市| 扎囊县| 武夷山市| 平利县| 浮梁县| 彭州市| 恭城| 秦安县| 成安县| 秦皇岛市| 昌江|