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

?

嵌入式高精度激光測距系統(tǒng)設(shè)計(jì)*

2022-01-27 11:56:10胡寧波張家峰胡釗雄
關(guān)鍵詞:激光測距通信協(xié)議上位

胡寧波,王 晗,張 平,張家峰,胡釗雄

(1.廣東工業(yè)大學(xué)a.機(jī)電工程學(xué)院廣東省微納加工技術(shù)與裝備重點(diǎn)實(shí)驗(yàn)室,廣州 510006;b.省部共建精密電子制造技術(shù)與裝備國家重點(diǎn)實(shí)驗(yàn)室,廣州 510006;2.長春理工大學(xué)機(jī)電工程學(xué)院,長春 130022)

0 引言

隨著近年來激光測距技術(shù)被廣泛運(yùn)用于社會(huì)生活,工業(yè)自動(dòng)化生產(chǎn)等多個(gè)領(lǐng)域,距離信息被認(rèn)為是其中最重要的測量指標(biāo)之一,因此對激光測距系統(tǒng)能夠獲取準(zhǔn)確可靠的距離數(shù)據(jù)的研究具有積極的意義[1-2]。

研究發(fā)現(xiàn)國內(nèi)目前在激光測距系統(tǒng)設(shè)計(jì)方面其測距原理主要采用三種方式:三角式、脈沖式和相位式,其系統(tǒng)主要組成部分包括硬件和軟件,硬件部分一般選用單一的控制器來控制各種硬件電路包括:信號產(chǎn)生與激光調(diào)制電路、激光器與激光接收探測器、差頻測相技術(shù)設(shè)計(jì)的鑒相電路、以及信號接收處理電路等。軟件部分大多數(shù)通過其選擇的控制器對應(yīng)的軟件平臺(tái)進(jìn)行下位機(jī)開發(fā),有的同時(shí)開發(fā)出上位機(jī)測量界面。其中研究者往往通過實(shí)驗(yàn)測試結(jié)果的反饋來選擇更合理的器件和測量算法去設(shè)計(jì)硬件電路,從而保證和提高系統(tǒng)測量性能[3-6]。這些都是通過提升系統(tǒng)硬件質(zhì)量的方式理論上保證了系統(tǒng)測量部分的精度和穩(wěn)定性,不是針對于整個(gè)系統(tǒng)而言,同時(shí)對測量技術(shù)和成本的要求比較高,缺乏可觀性、可移植性和靈活性。在實(shí)際測量過程中,系統(tǒng)經(jīng)常會(huì)受到測量環(huán)境、硬件故障、被測目標(biāo)間差異等客觀因素的干擾而產(chǎn)生一些系統(tǒng)誤差,由于這些系統(tǒng)誤差的產(chǎn)生會(huì)使測量結(jié)果出現(xiàn)異常數(shù)據(jù),甚至是未知數(shù)據(jù)等在系統(tǒng)間傳輸?shù)腻e(cuò)誤返回?cái)?shù)據(jù)導(dǎo)致偏離真實(shí)測量值,這些會(huì)影響到系統(tǒng)測量的精度和穩(wěn)定性。因此提出了一種自定義HEX通信協(xié)議的軟件方法,該方法使系統(tǒng)只對正確返回?cái)?shù)據(jù)進(jìn)行通信交互,避免了系統(tǒng)因直接對錯(cuò)誤返回?cái)?shù)據(jù)的分析處理而造成錯(cuò)誤測量的問題,尤其在后期需要對大量測量樣本進(jìn)行測試分析時(shí),從而提高系統(tǒng)測量過程中的精度和穩(wěn)定性。

本文提出的自定義HEX通信協(xié)議運(yùn)用到激光測距系統(tǒng)中,搭建了基于相位式測距原理、STM32控制器搭載μC/OS-III實(shí)時(shí)操作系統(tǒng)[7]、同時(shí)結(jié)合LabVIEW的激光測距系統(tǒng),解決了系統(tǒng)因在數(shù)據(jù)傳送過程中產(chǎn)生的系統(tǒng)誤差而影響系統(tǒng)測量性能問題,促進(jìn)了激光測距技術(shù)在理論研究方面的發(fā)展。

1 高精度激光測距儀系統(tǒng)設(shè)計(jì)

相位式激光測距原理距離計(jì)算方法如下(其中c為光速:3×108m/s;測量往返一次所需的時(shí)間為t2D;相位差(總的相位移)φ):

(1)

Y1(t)=Acos(2πf0t0+φ0)

Y2D(t)=Acos(2πf0(t0+t2D)+φ0)

(2)

φ=(2πf0(t0+t2D)+φ0)-(2πf0t0+φ0)

φ=2πf0t2D

(3)

(4)

由式(3)、式(4)可知,在給定激光頻率f0的條件下,如果要得出被測距離D需要得知N和Δφ;在相位式激光測距中的關(guān)于相位差計(jì)算一般是通過鑒相電路或者編寫鑒相程序來比較測量反饋回路與接收信號回路之間信號的相位差,但是只能求出這個(gè)不足一個(gè)整周期的Δφ,而N值具體是多少是不確定的,同時(shí)如果想要使測量范圍D值大,就需要通過降低激光調(diào)制頻率f0,而測量誤差又會(huì)隨著調(diào)制頻率的降低而增大,所以僅僅采用一把測尺是無法平衡測量范圍和精度的問題,需要采用多測尺的方法來進(jìn)行測量。本文系統(tǒng)整體設(shè)計(jì)如圖1所示。

圖1 系統(tǒng)整體設(shè)計(jì)框圖

2 高精度激光測距儀系統(tǒng)實(shí)現(xiàn)

2.1 系統(tǒng)主從機(jī)及硬件設(shè)計(jì)

本設(shè)計(jì)采用意法半導(dǎo)體ST公司總線寬度32位的STM32系列單片機(jī)做主從機(jī)控制器。STM32單片機(jī)不僅具有性能強(qiáng)大、成本低、外設(shè)接口多、開發(fā)便捷的優(yōu)點(diǎn),而且因系統(tǒng)涉及到的通信方式主要是串行通信,需要較多串口支持,所以采用串口資源豐富的STM32單片機(jī)可以更好地滿足系統(tǒng)的的設(shè)計(jì)[8]。為了提高系統(tǒng)靈活性,方便軟硬件移植和模塊化開發(fā),整個(gè)系統(tǒng)硬件部分采用主從機(jī)兩個(gè)部分去控制,主機(jī)選用的MCU型號是STM32F103ZET6,從機(jī)為STM32F030K6T6;其中主機(jī)需要同步實(shí)現(xiàn)多種功能,包括上位機(jī)通信,下位機(jī)搭載實(shí)時(shí)操作系統(tǒng),控制LCD模塊、按鍵模塊,以及后期根據(jù)需要開發(fā)其它功能模塊等,所以選擇功能高度集成的STM32F103ZET6。從機(jī)只需要控制激光測距模塊部分,為了進(jìn)一步降低成本,適應(yīng)更小組件及縮小PCB板的體積同時(shí)保持STM32的高端性能,所以選用入門級STM32F030K6T6。

主、從機(jī)和LabVIEW上位機(jī)PC端通過串行通信方式進(jìn)行數(shù)據(jù)交互,其中上位機(jī)與主機(jī)之間的串行通信通過采用CH340芯片設(shè)計(jì)USB轉(zhuǎn)串口電路實(shí)現(xiàn)。按鍵電路控制系統(tǒng)及各功能模塊(比如LCD模塊)的啟動(dòng)和關(guān)閉。LCD模塊顯示正確返回和錯(cuò)誤返回測量數(shù)據(jù)值。

主機(jī)采用的是串口資源豐富的STM32F103ZET6作為主機(jī)控制器,可預(yù)留供后期其它功能開發(fā)的接口。主從機(jī)控制器STM32最小系統(tǒng)由對應(yīng)的主從機(jī)芯片、電源電路、時(shí)鐘晶振電路、下載電路、BOOT啟動(dòng)電路和復(fù)位電路等組成[9],如圖2所示。

圖2 主從機(jī)STM32FX最小系統(tǒng)框圖

從機(jī)激光測距模塊中通過從機(jī)控制器STM32F030K6T6控制由頻率合成器件組成的信號產(chǎn)生調(diào)制電路來驅(qū)動(dòng)發(fā)射激光信號,系統(tǒng)為了保持精度和測量范圍采用的是多測尺方法測量,通過燒寫于從機(jī)控制器STM32F030K6T6中的程序來控制測尺的切換。選擇半導(dǎo)體激光器發(fā)射探測光源,產(chǎn)生的探測光源采用紅色可見激光,滿足人眼安全要求,同時(shí)便于觀察瞄準(zhǔn)目標(biāo)。選擇光電探測器中的雪崩光電二極管接收返回的激光信號,并完成光電信號的轉(zhuǎn)換。模塊采用差頻測相技術(shù)設(shè)計(jì)鑒相電路來檢測出兩路混頻信號中的相位差,通過從機(jī)控制器STM32F030K6T6的12位ADC對兩路混頻信號進(jìn)行參數(shù)的分析處理,再根據(jù)已燒寫于從機(jī)控制器中的自定義HEX通信協(xié)議解析函數(shù)將得到的距離測量數(shù)值轉(zhuǎn)換成16進(jìn)制表示的數(shù)據(jù)幀格式。從機(jī)激光控制塊通過串行通信方式接收到主機(jī)發(fā)送的命令請求數(shù)據(jù)幀,將測量得到的16進(jìn)制表示的響應(yīng)命令數(shù)據(jù)幀通過串行通信方式返回給主機(jī)控制器STM32F103ZET6用于后續(xù)上位機(jī)數(shù)據(jù)通信和LCD模塊實(shí)時(shí)顯示,從而滿足系統(tǒng)硬件設(shè)計(jì)要求,如圖3所示。

圖3 從機(jī)激光測距模塊框圖

2.2 系統(tǒng)軟件設(shè)計(jì)

2.2.1 自定義HEX通信協(xié)議

本設(shè)計(jì)主從機(jī)控制器間采用10位通用異步收發(fā)器即波特率9600 bps,8位數(shù)據(jù)位,1位起始位,1位停止位,無奇偶校驗(yàn)的方式進(jìn)行串行通信,該協(xié)議設(shè)定一個(gè)數(shù)據(jù)幀大小為11(12)字節(jié),數(shù)據(jù)幀格式為:幀頭、地址碼、功能碼、數(shù)據(jù)、校驗(yàn)碼、(幀尾)。對于單次測量,連續(xù)測量等功能描述的命令請求數(shù)據(jù)幀,響應(yīng)命令數(shù)據(jù)幀都是以16進(jìn)制來表示,其中設(shè)置ADDR(80)為從機(jī)地址,設(shè)置從機(jī)地址是為了當(dāng)有多個(gè)從機(jī)時(shí),主機(jī)可通過對應(yīng)地址找到從機(jī),從而實(shí)現(xiàn)了一個(gè)測量系統(tǒng)中可同時(shí)使用多個(gè)從機(jī)激光測距模塊。采用C語言編寫完成該自定義HEX通信協(xié)議的主功能通信程序,其中主要包括發(fā)送接收基本操作函數(shù),協(xié)議解析函數(shù)、返回特征標(biāo)定識(shí)別函數(shù)以及各種功能模塊函數(shù)等,并燒寫于從機(jī)控制器STM32F030K6T6片上FLASH中。根據(jù)表1、2可知,其中基于硬件編寫的功能模塊函數(shù)包括不同精度下的單次測量、連續(xù)測量,以及測量前的設(shè)置地址、量程、頻率、分辨率,控制激光打開關(guān)閉等。在該協(xié)議下,通過給從機(jī)控制器發(fā)送相應(yīng)命令請求數(shù)據(jù)幀,然后通過觀察顯示的響應(yīng)命令數(shù)據(jù)幀可知測量情況。

表1 自定義HEX通信協(xié)議部分命令表

表2 自定義HEX通信協(xié)議部分響應(yīng)命令返回值表

在主從機(jī)間通信過程中,主機(jī)控制器STM32F103ZET6按照該自定義HEX通信協(xié)議規(guī)定數(shù)據(jù)幀格式通過串行通信方式發(fā)出命令請求數(shù)據(jù)幀給從機(jī)控制器STM32F030K6T6,從機(jī)控制器接收到命令請求數(shù)據(jù)幀后通過協(xié)議接收函數(shù)、協(xié)議解析函數(shù)的處理去控制激光模塊進(jìn)行測量并得到對應(yīng)測量數(shù)據(jù)值,再經(jīng)過STM32F030K6T6中12位ADC的處理,協(xié)議解析函數(shù)、協(xié)議發(fā)送函數(shù)將其按照規(guī)定數(shù)據(jù)幀格式轉(zhuǎn)換為對應(yīng)響應(yīng)命令數(shù)據(jù)幀后并通過串行通信的方式發(fā)送給主機(jī)控制器。

在研究設(shè)計(jì)過程中,先采用單一的從機(jī)控制器STM32F030K6T6對激光測量模塊進(jìn)行開始測量,關(guān)閉測量等測量前動(dòng)作的設(shè)定及控制,直接處理分析返回的測量數(shù)據(jù)值,然后通過大量分組實(shí)驗(yàn)測試,將測試結(jié)果中因測量環(huán)境、硬件故障、被測目標(biāo)間差異等客觀因素造成的錯(cuò)誤返回?cái)?shù)據(jù)值進(jìn)行原因總結(jié)分類制表,最終用于自定義HEX協(xié)議標(biāo)定數(shù)據(jù)返回特征,根據(jù)表3可知,根據(jù)實(shí)際測試情況列舉出目前已知存在的造成錯(cuò)誤返回的幾類原因,將這些原因?qū)е碌腻e(cuò)誤返回的測量數(shù)據(jù)全部設(shè)置成’E’R’R’-’-’3X’3X’的返回特征(根據(jù)精度不同有11字節(jié)和12字節(jié)的區(qū)別)發(fā)送給主機(jī)控制器,主機(jī)控制器通過已燒錄于Flash中的該協(xié)議對這種返回特征進(jìn)行識(shí)別,判斷數(shù)組存儲(chǔ)或不存儲(chǔ),只有正確返回?cái)?shù)據(jù)才能被存儲(chǔ)以及通信給上位機(jī)及其它模塊,從而達(dá)到剔除錯(cuò)誤返回?cái)?shù)據(jù)的目的,并同時(shí)在主機(jī)部分設(shè)計(jì)LCD模塊進(jìn)行實(shí)時(shí)顯示以便觀察,如圖4可知。

2.2.2 上位機(jī)測量界面及主程序

PC端上位機(jī)測量界面采用虛擬儀器平臺(tái)LabVIEW進(jìn)行開發(fā),界面面板控制功能包括:串口選擇、波特率選擇、測量開啟關(guān)閉、實(shí)時(shí)測量值顯示、測量單位切換以及波形圖顯示等[10-11]如圖5所示,其中主程序源碼以及通過其程序框圖中文件I/O函數(shù)對測量數(shù)據(jù)進(jìn)行存儲(chǔ)并導(dǎo)出數(shù)據(jù)表格文件,便于后期用戶對測量數(shù)據(jù)進(jìn)行分析處理,如圖6所示。

圖6 上位機(jī)主程序

上位機(jī)通過設(shè)置實(shí)時(shí)測量數(shù)據(jù)顯示控件可實(shí)現(xiàn)在單次測量下對測量數(shù)據(jù)的監(jiān)測和調(diào)整,設(shè)置波形圖可以實(shí)現(xiàn)在連續(xù)測量、批量采樣下的有效測量數(shù)據(jù)波動(dòng)狀況,其中設(shè)置測量數(shù)據(jù)單位在實(shí)際測量中可隨測量距離自動(dòng)調(diào)整,測量數(shù)據(jù)曲線設(shè)置成虛實(shí)線兩種,便于觀察調(diào)整。

2.2.3 μC/OS-III在主機(jī)控制器上的移植及下位機(jī)主程序

下位機(jī)μC/OS-III實(shí)時(shí)操作系統(tǒng)移植和主程序開發(fā)選用Keil μVision5 IDE(集成開發(fā)環(huán)境),通過下載μC/OS-III源碼、創(chuàng)建系統(tǒng)和工程目錄(添加相關(guān)頭文件和配置文件)、修改相關(guān)文件配置參數(shù)等步驟來完成準(zhǔn)備工作[12-13],根據(jù)系統(tǒng)需要實(shí)現(xiàn)的具體功能在C源文件中編寫,其中主要任務(wù)包括:主機(jī)控制從機(jī)測量任務(wù)、LCD顯示任務(wù)、通信上位機(jī)任務(wù)等,如圖7所示。

圖7 下位機(jī)主程序

3 實(shí)驗(yàn)結(jié)果與分析

通過對測量環(huán)境和測量目標(biāo)分組實(shí)驗(yàn)進(jìn)行測試[14-15],結(jié)果表明本文設(shè)計(jì)的激光測距系統(tǒng)實(shí)測值與理論值最大相對誤差不超過2%,測量范圍0.05 m~50 m,單次測量時(shí)間0.05 s~1 s,測量精度(均方差)±2 mm,具有較高的測量精度,滿足系統(tǒng)精度和穩(wěn)定性的設(shè)計(jì)要求,部分測量數(shù)據(jù)結(jié)果、理論值與測量值對比如表4、圖8所示。

表4 部分分組測試結(jié)果數(shù)據(jù)表

(a)光照強(qiáng)弱對比(b)表面粗糙度對比

4 結(jié)論

本設(shè)計(jì)將提出的自定義HEX通信協(xié)議運(yùn)用到激光測距系統(tǒng)中,有效的解決了系統(tǒng)因在數(shù)據(jù)傳送過程中產(chǎn)生的系統(tǒng)誤差而影響系統(tǒng)測量性能的問題,提高了系統(tǒng)的測量精度和穩(wěn)定性。同時(shí)在設(shè)計(jì)過程中運(yùn)用模塊化開發(fā)思想,系統(tǒng)軟硬件結(jié)構(gòu)采用主從機(jī)控制器,虛擬儀器LabVIEW以及搭載μC/OS-III實(shí)時(shí)操作系統(tǒng)來進(jìn)行設(shè)計(jì),提高了系統(tǒng)的靈活性。

猜你喜歡
激光測距通信協(xié)議上位
基于LabVIEW的偏振調(diào)制激光測距測量控制系統(tǒng)
基于高壓架空線路激光測距的無人機(jī)鎖定導(dǎo)線巡航研究
特斯拉 風(fēng)云之老阿姨上位
車迷(2018年12期)2018-07-26 00:42:22
基于Z-Stack通信協(xié)議棧的紅外地溫采集電路設(shè)計(jì)
基于回波強(qiáng)度的激光測距誤差補(bǔ)償算法研究
“三扶”齊上位 決戰(zhàn)必打贏
基于ZigBee和VC上位機(jī)的教室智能監(jiān)測管理系統(tǒng)
基于DMX512通信協(xié)議的多路轉(zhuǎn)發(fā)器設(shè)計(jì)與研究
基于NS-3的PLC多頻通信協(xié)議仿真平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)
電測與儀表(2016年2期)2016-04-12 00:24:52
以新思路促推現(xiàn)代農(nóng)業(yè)上位
铜陵市| 临沭县| 甘肃省| 上蔡县| 奉新县| 普兰店市| 新密市| 玉田县| 德兴市| 江门市| 盐边县| 金昌市| 古交市| 娄底市| 陆良县| 孟村| 罗山县| 工布江达县| 汤原县| 沙湾县| 若尔盖县| 六盘水市| 油尖旺区| 建水县| 砚山县| 年辖:市辖区| 子洲县| 汝州市| 布尔津县| 九龙坡区| 崇明县| 汝城县| 卓资县| 内江市| 凤山市| 二连浩特市| 尼玛县| 宁强县| 华阴市| 烟台市| 胶南市|