張瑩 蔡之駿 楊波 馮其高 李曉平



摘 要:隨著ADAS技術(shù)的普及和發(fā)展,車輛定位技術(shù)的作用也變得更加關(guān)鍵。只有保證車輛定位的精度才能確保許多ADAS應(yīng)用場(chǎng)景的準(zhǔn)確性。車載高精定位系統(tǒng)一般由定位芯片、SOC端、MCU端及RTK服務(wù)組成,其中定位芯片能結(jié)合GNSS技術(shù)與RTK數(shù)據(jù)從而進(jìn)入高精定位模式。由于定位芯片和RTK服務(wù)都有多種主流產(chǎn)品導(dǎo)致車載高精定位系統(tǒng)存在大量的組合方案,相關(guān)的軟件適配工作也因此變得非常繁重。文章提出一種可配置的車載高精定位軟件方案,能通過(guò)修改軟件配置文件便捷地適配多種定位芯片與RTK服務(wù)的組合方案,從而大幅提升軟件的調(diào)試效率和可拓展性。
關(guān)鍵詞:GNSS;車載高精定位軟件;可配置式;RTK
中圖分類號(hào):TP319? 文獻(xiàn)標(biāo)識(shí)碼:A? 文章編號(hào):1671-7988(2020)15-82-03
Abstract: With the development and popularization of ADAS (Advanced Driving Assistance System), the vehicle positioning technology becomes more critical. Automotive high-precision positioning system includes positioning chip, SOC (System on Chip), MCU (Microcontroller Unit) and RTK (Real Time Kinematics) service, where positioning chip can achieve high-precision positioning by combining GNSS (Global Navigation Satellite Systems) with RTK technology Since there are various main products for positioning chips and RTK service, automotive high-precision positioning system has lots of schemes, which requires abundant hard work for software adaption. This paper suggests a configurable high- precision positioning software solution for vehicles, which is able to adapt the high-precision positioning software for different combinations of position chips and RTK service by simply modifying the configure file. Hence, the software debug efficiency and extensibility can be improved significantly.
Keywords: GNSS; Automotive high-precision positioning software; Configurable; RTK
CLC NO.: TP319? Document Code: A? Article ID: 1671-7988(2020)15-82-03
前言
車載高精定位技術(shù)是目前諸多ADAS(Advanced Driving Assistance System)技術(shù)的基礎(chǔ),只有保證了車輛定位的精度才能保證V2X(Vehicle-to-Everything)等車輛預(yù)警場(chǎng)景的準(zhǔn)確性[1][2]。車載高精定位系統(tǒng)一般由定位芯片、SOC (System on Chip) 端、MCU(Microcontroller Unit)端及RTK(Real Time Kinematics)服務(wù)組成,其中定位芯片能結(jié)合GNSS(Global Navigation Satellite Systems)技術(shù)與RTK數(shù)據(jù)從而進(jìn)入高精定位模式。該系統(tǒng)的基本工作原理為SOC端周期性地接受定位芯片發(fā)送的基礎(chǔ)定位信號(hào),并將該信號(hào)發(fā)送至RTK服務(wù)對(duì)應(yīng)的相關(guān)基站;之后,SOC端會(huì)收到RTK基站返回的RTK數(shù)據(jù)并將該數(shù)據(jù)發(fā)送給定位芯片,條件允許時(shí)定位芯片會(huì)進(jìn)入高精定位模式從而使定位芯片發(fā)送給SOC端的定位數(shù)據(jù)也變成了高精定位數(shù)據(jù);MCU端則會(huì)向定位芯片周期性地發(fā)送慣導(dǎo)推算所需信號(hào)(比如輪速tick數(shù)、時(shí)間戳等)以此輔助定位芯片的高精定位計(jì)算。
目前市場(chǎng)上有的主流定位芯片包括Ublox、北斗、高通等,RTK服務(wù)提供商有千尋、星輿科技等。由于不同廠商對(duì)應(yīng)的產(chǎn)品在軟件上采用不同的流程及函數(shù)接口,同時(shí)考慮到不同的硬件方案也會(huì)導(dǎo)致車載高精定位軟件所使用的串口等配置不同,因此,車載高精定位系統(tǒng)存在著大量不同的組合方案,且每種系統(tǒng)方案都在軟件實(shí)現(xiàn)上會(huì)有較大的不同。
本文提出一種可配置的車載高精定位軟件方案,在該方案中,車載高精定位軟件使用配置文件為特定的程序變量賦值,從而選擇高精定位軟件進(jìn)入的流程分支,以此適配不同的車載高精定位系統(tǒng)。該方案中,用戶只需修改配置文件即可實(shí)適配不同的高精定位系統(tǒng),從而大幅提升軟件調(diào)試效率與可拓展性。
注意本文中所述車載高精定位軟件不包含定位芯片與RTK服務(wù)基站內(nèi)置的定位推算軟件,僅包含定位相關(guān)的SOC端軟件和MCU端軟件(包含定位芯片及RTK服務(wù)接口函數(shù))。
1 軟件系統(tǒng)組成及原理
如圖1所示,車載高精定位軟件系統(tǒng)一般采用雙CPU通信架構(gòu),由SOC端軟件(默認(rèn)使用Linux操作系統(tǒng))、MCU端軟件組成,通過(guò)接口函數(shù)與定位芯片及RTK服務(wù)基站進(jìn)行信息交互(部分廠商將定位芯片與SOC模組融合在一起,不過(guò)軟件上SOC端依然需要使用定位相關(guān)接口函數(shù)收發(fā)定位數(shù)據(jù))。其中SOC端軟件周期性地接受來(lái)自定位芯片的定位數(shù)據(jù)并轉(zhuǎn)發(fā)給RTK服務(wù)基站,并將基站返回的RTK數(shù)據(jù)發(fā)送給定位芯片從而使該芯片進(jìn)入高精定位狀態(tài),芯片輸出的定位信號(hào)因此也變成高精定位信號(hào);MCU端軟件負(fù)責(zé)周期性地收集來(lái)自CAN信號(hào)的輪速等慣導(dǎo)所需信號(hào)并將其發(fā)送給定位芯片進(jìn)行慣導(dǎo)推算。注意圖1所述為常規(guī)的車載高精定位軟件原理圖,沒(méi)有使用配置文件。
2 配置文件及使用方法
為了適配不同組合的車載高精定位系統(tǒng),本文提出一種可配置的車載高精定位軟件方案,在SOC端軟件中引入配置文件(一般為.cfg文件,也可使用其他類型)為特定的程序變量賦值,從而選擇高精定位軟件進(jìn)入的流程分支;配置文件可由用戶自行定義,用于配置高精定位軟件使用的定位芯片、RTK(差分?jǐn)?shù)據(jù))來(lái)源、串口通道(uart口);同時(shí),在SOC端軟件中事先寫好所有需要適配的交互流程程序,并使用特定的交互變量決定軟件的交互流程。如圖2所示,定義變量Model,當(dāng)Model=1時(shí)軟件采用定位芯片1的交互流程(包括相應(yīng)的初始化流程、SDK、函數(shù)接口等),當(dāng)Model=2時(shí)軟件采用定位芯片2的交互流程;同理可定義變量Source,當(dāng)Source=1時(shí)軟件采用RTK服務(wù)提供商1的交互流程,當(dāng)Source=2時(shí)軟件采用RTK服務(wù)提供商2的交互流程;串口等其他通信接口的配置也可使用類似方法完成,撰寫代碼時(shí)需要保證每個(gè)交換流程分支都能正常運(yùn)行。這些變量的取值均來(lái)自于自定義的配置文件,軟件初始化時(shí)會(huì)自動(dòng)從配置文件讀取相關(guān)參數(shù)作為這些配置變量的值。配置文件和SOC端軟件一起編譯,可在軟件運(yùn)行時(shí)直接用putty等工具軟件打開(kāi)對(duì)應(yīng)的端口,然后使用vi模式打開(kāi)的窗口中修改相應(yīng)的配置文件,修改后重啟SOC端軟件即可生效,無(wú)需重新編譯軟件。配置文件中只需按用戶自定義的格式撰寫相關(guān)變量的初始值即可,例如只寫一行:Model=1,Source=2,適配其他方案時(shí)修改對(duì)應(yīng)的數(shù)字即可。
同時(shí),SOC端軟件還會(huì)將配置文件提供的交互變量值發(fā)送給MCU端軟件,使MCU端也能根據(jù)所選定位芯片進(jìn)入相應(yīng)的流程,從而選擇芯片所需獲取的慣導(dǎo)信號(hào)并發(fā)送給該定位芯片,發(fā)送方式由定位芯片本身需求決定。SOC端軟件與MCU端軟件的通訊方式由用戶決定,一般采用spi通信。
此外,配置文件中還可根據(jù)硬件方法的不同適配不同的接口,比如SOC端與定位芯片交互的串口號(hào)及波特率等參數(shù)均可在配置文件里設(shè)置和修改,具體操作與上述流程分支的選擇相同,這里不再贅述。
3 軟件流程
本文所述的可配置式車載高精定位軟件方案流程分為SOC端軟件流程和MCU端軟件流程,如下所述。
3.1 SOC端軟件流程
SOC端軟件流程圖如圖3所示,SOC端軟件從配置文件獲取流程分支的選擇信息,并根據(jù)所選芯片和RTK服務(wù)周期性地接受來(lái)自定位芯片的定位數(shù)據(jù)并轉(zhuǎn)發(fā)給RTK服務(wù)基站,并將基站返回的RTK數(shù)據(jù)發(fā)送給定位芯片從而使該芯片進(jìn)入高精定位狀態(tài),芯片輸出的定位信號(hào)因此也變成高精定位信號(hào)。
3.2 MCU端軟件流程
MCU端軟件流程圖如圖4所示, MCU端軟件從SOC端獲取交互變量信息,進(jìn)入配置文件所選定位芯片相應(yīng)的慣導(dǎo)流程,從而周期性地收集來(lái)自CAN信號(hào)的輪速等當(dāng)前定位芯片所需慣導(dǎo)信號(hào)并將其發(fā)送給定位芯片進(jìn)行慣導(dǎo)推算。
4 結(jié)論
本文提出一種可配置的車載高精定位軟件方案,在該方案中,引入配置文件為車載高精定位軟件的特定程序變量賦值,從而選擇高精定位軟件使用的定位芯片、RTK服務(wù)等流程分支,以此適配不同的車載高精定位系統(tǒng)。該方案中,用戶只需修改配置文件即可實(shí)適配不同的車載高精定位系統(tǒng),配置文件可使用putty等工具直接修改,無(wú)需重新編譯,從而大幅提升軟件調(diào)試效率與可拓展性。
參考文獻(xiàn)
[1] IMT-2020(5G)推進(jìn)組. C-V2X白皮書, 2018-06:2-3.
[2] 張耀丹.無(wú)人駕駛汽車的現(xiàn)狀及發(fā)展趨勢(shì)[J].汽車實(shí)用技術(shù).2018 (06).
[3] 劉宗巍,匡旭,趙福全.V2X關(guān)鍵技術(shù)應(yīng)用與發(fā)展綜述[J].電訊技術(shù). 2019(01).
[4] 彭旭飛,佀榮,李立功,余文明.?導(dǎo)航與定位中RTK技術(shù)研究[J].測(cè)繪與空間地理信息.?2019(01).
[5] 王俊超,吳潔.?測(cè)繪與空間地理信息.?GPS網(wǎng)絡(luò)RTK系統(tǒng)的定位精度研究[J].2018(10).
[6] 周玉霞,周明,康登榜,黃小紅.?GNSS互聯(lián)網(wǎng)數(shù)據(jù)傳輸協(xié)議標(biāo)準(zhǔn)綜述[J].導(dǎo)航定位學(xué)報(bào).?2015(04).