www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 汽車電子 > 汽車電子
[導(dǎo)讀]自動(dòng)駕駛汽車依靠人工智能、視覺計(jì)算、雷達(dá)、監(jiān)控裝置和全球定位系統(tǒng)協(xié)同合作,讓電腦可以在沒有任何人類主動(dòng)的操作下,自動(dòng)安全地操作機(jī)動(dòng)車輛。

自動(dòng)駕駛汽車依靠人工智能、視覺計(jì)算、雷達(dá)、監(jiān)控裝置和全球定位系統(tǒng)協(xié)同合作,讓電腦可以在沒有任何人類主動(dòng)的操作下,自動(dòng)安全地操作機(jī)動(dòng)車輛。

Voyage是汽車自動(dòng)駕駛領(lǐng)域內(nèi)的一家專業(yè)公司,他們想要實(shí)現(xiàn)的終極目標(biāo)是:對(duì)于世界上的任何一個(gè)人,他都可以隨時(shí)隨地召喚一輛汽車直接開到他的家門口,并將他安全地送達(dá)到目的地,而且價(jià)格也非常便宜。對(duì)于Voyage來說,他們將不可避免地給乘客提供汽車關(guān)鍵功能的控制權(quán),因?yàn)榭傆幸惶扉_車的將不再是我們?nèi)祟?,而這一天馬上就要到來了。

CAN總線介紹

一臺(tái)現(xiàn)代化汽車擁有大量的控制系統(tǒng),這些控制系統(tǒng)的作用與Web應(yīng)用中各種微服務(wù)的作用是非常相似的。對(duì)于一臺(tái)電動(dòng)汽車來說,它擁有安全氣囊、自動(dòng)剎車系統(tǒng)、電動(dòng)助力轉(zhuǎn)向系統(tǒng)、音響系統(tǒng)、電動(dòng)車門、后視鏡調(diào)整系統(tǒng)、以及電池與充電系統(tǒng)等等。這些系統(tǒng)需要相互通信并獲取其他系統(tǒng)的運(yùn)行狀態(tài)。1983年, 博世公司 (德國(guó)一家從事汽車與智能交通技術(shù)的公司)的一個(gè)團(tuán)隊(duì)開始嘗試通過研究CAN(Controller Area Network-控制器區(qū)域網(wǎng)絡(luò))總線來解決這一復(fù)雜的問題。

你可以把CAN總線當(dāng)作一個(gè)簡(jiǎn)單的網(wǎng)絡(luò),汽車中的任何一個(gè)系統(tǒng)都可以通過這個(gè)網(wǎng)絡(luò)來監(jiān)聽或發(fā)送命令,它可以將汽車中那些復(fù)雜的組件以一種“優(yōu)雅”的方式組合起來,并給我們的汽車提供各種各樣的現(xiàn)代化功能。

下圖為一輛1988年款的寶馬8系,這也是全球第一臺(tái)采用了CAN總線的汽車:

 

自動(dòng)駕駛汽車與CAN總線

近些年來,隨著自動(dòng)駕駛汽車的快速發(fā)展,CAN總線的概念也得到了普及。為什么呢?因?yàn)樽詣?dòng)駕駛汽車領(lǐng)域內(nèi)的絕大多數(shù)公司都不會(huì)從零開始設(shè)計(jì)和制造自家的汽車,而且他們還需要想辦法通過編程的方式來控制汽車。

通過對(duì)汽車CAN總線進(jìn)行逆向工程分析,工程師將可以通過軟件來向汽車發(fā)送控制命令。比如說,最常用的控制命令有旋轉(zhuǎn)方向盤、加速(踩油門)和制動(dòng)(踩剎車)。

通過使用類似LIDAR(激光雷達(dá))這樣的傳感器,汽車將能夠“看到”或“感受到”它所處的外部環(huán)境。汽車內(nèi)的電腦可以根據(jù)傳感器傳回的數(shù)據(jù)來決定向汽車發(fā)送怎樣的控制命令,比如說將方向盤旋轉(zhuǎn)多少度、加速到多少邁、或者是否應(yīng)該立即踩剎車等等。

下圖為L(zhǎng)IDAR技術(shù)的動(dòng)態(tài)演示圖:

 

實(shí)際上,并不是每一臺(tái)汽車都可以成為自動(dòng)駕駛汽車。

CAN總線

自從1994年開始,CAN已經(jīng)成為了美國(guó)汽車和輕型卡車中的一種標(biāo)準(zhǔn)了,但是直到2008年它才成為一種強(qiáng)制標(biāo)準(zhǔn)。它主要使用了兩條線:CAN high(CANH)和CAN low(CANL)。CAN使用的是差分信號(hào),這意味著當(dāng)信號(hào)傳輸進(jìn)來時(shí),CAN會(huì)提升一條線路的電壓,并等量降低另一條線路的電壓。一般來說,只有對(duì)噪聲容錯(cuò)較高的環(huán)境才會(huì)使用差分信號(hào),例如汽車系統(tǒng)或工業(yè)制造領(lǐng)域。

下圖顯示的是示波器中觀察到的原始CAN信號(hào):

 

這也就意味著,通過CAN總線傳輸?shù)臄?shù)據(jù)包并非標(biāo)準(zhǔn)化的數(shù)據(jù)包,每一個(gè)CAN總線數(shù)據(jù)包都包含下面這四個(gè)關(guān)鍵元素:

1.仲裁ID(Arbitration ID):仲裁ID是一種廣播消息,代表的是需要進(jìn)行數(shù)據(jù)通信的設(shè)備ID,不過一臺(tái)設(shè)備可以發(fā)送多個(gè)仲裁ID。如果兩個(gè)CAN數(shù)據(jù)包同時(shí)在總線上進(jìn)行發(fā)送,那么仲裁ID較小的那個(gè)數(shù)據(jù)包將優(yōu)先傳輸;

2.標(biāo)識(shí)符擴(kuò)展(IDE):對(duì)于標(biāo)準(zhǔn)CAN來說,這部分?jǐn)?shù)據(jù)永遠(yuǎn)為o;

3.數(shù)據(jù)長(zhǎng)度碼(DLC):它代表數(shù)據(jù)的長(zhǎng)度,范圍從0到8字節(jié)不等;

4.數(shù)據(jù)(Data):需要傳輸?shù)臄?shù)據(jù),標(biāo)準(zhǔn)CAN總線數(shù)據(jù)包可攜帶的數(shù)據(jù)大小最多為8字節(jié),但某些系統(tǒng)會(huì)將數(shù)據(jù)包強(qiáng)制填充至8個(gè)字節(jié);

標(biāo)準(zhǔn)CAN數(shù)據(jù)包的格式

 

CAN框架

為了能夠控制汽車空調(diào)系統(tǒng)的開啟和關(guān)閉,我們首先需要找到正確的CAN總線(因?yàn)橐惠v汽車有很多CAN總線)。福特Fusion至少有四條總線(廠商記錄),其中有三條為高速CAN(500 kbps),還有一條為中速CAN(125 kbps)。

OBD-II端口暴露了其中的兩條總線:HS1和HS2,但這臺(tái)汽車上這兩條總線有防火墻的保護(hù),因此不允許我們向其發(fā)送欺騙指令。在Alan(Voyage員工)的幫助下,我們解決了這個(gè)問題并成功拿到了HS1、HS2、HS3和MS的訪問權(quán)。注:OBD-II端口后面有一個(gè)名叫Gateway Module的設(shè)備,所有的總線最終都要將數(shù)據(jù)傳輸?shù)竭@個(gè)設(shè)備中,這就是我們的解決方案。

 

由于空調(diào)系統(tǒng)可以通過汽車多媒體接口(SYNC)來進(jìn)行調(diào)整,因此我們直接將目標(biāo)鎖定在了MS總線身上。

但是我們?cè)鯓硬拍茏屛覀兊挠?jì)算機(jī)去讀寫CAN數(shù)據(jù)包呢?答案就是 SocketCAN ,它是一套開源CAN驅(qū)動(dòng),而且也是 Linux內(nèi)核 中的一種網(wǎng)絡(luò)棧。

現(xiàn)在,我們可以將汽車上的三條線路(GND、MSCANH和MSCANL)連接到Kvaser Leaf Light HSv2或CANable上,然后通過一臺(tái)擁有最新版Linux內(nèi)核的計(jì)算機(jī)將這些總線當(dāng)作一種網(wǎng)絡(luò)設(shè)備來進(jìn)行加載和讀取。

modprobe can

modprobe kvaser_usb

ip link set can0 type can bitrate 1250000

ifconfig can0 up

加載完成之后,我們可以使用命令candump can0,然后開始查看CAN的數(shù)據(jù)流量:

 

但是,我們這樣去監(jiān)控總線的數(shù)據(jù)流量,就相當(dāng)于用眼睛來觀察聲音信號(hào)的振幅一樣,我們不僅很難弄清楚總線到底在傳輸什么數(shù)據(jù),而且也很難發(fā)現(xiàn)其中的模式或規(guī)律。因此,我們需要像分析聲音頻率一樣來分析這個(gè)問題,我們可以調(diào)用cansniffer.和cansniffer來查看相應(yīng)的ID,然后主要分析CAN框架的數(shù)據(jù)區(qū)域中具體發(fā)生了哪些變化。我們通過研究后發(fā)現(xiàn),我們可以利用特定的ID來過濾掉那些我們不需要的數(shù)據(jù),然后只留下與我們問題相關(guān)的那些數(shù)據(jù)。

下面我們對(duì)MS總線調(diào)用cansniffer命令。我們只留下了CAN id 355、356和358的相關(guān)數(shù)據(jù),并過濾掉了其他無效內(nèi)容。與此同時(shí),按下了汽車中的溫度調(diào)節(jié)按鈕,我們可以看到數(shù)據(jù)下方出現(xiàn)了001C00000000,它代表的就是我們按下調(diào)節(jié)按鈕的操作。

下一步就是將汽車的空調(diào)系統(tǒng)與我們運(yùn)行于汽車內(nèi)的PC進(jìn)行連接,PC運(yùn)行的是Robot操作系統(tǒng)(ROS)。幸運(yùn)的是我們使用了SocketCAN,因?yàn)樗幸粋€(gè)模塊可以方便我們的操作,即socketcan_bridge可以將我們的CAN框架轉(zhuǎn)換成一種ROS可接受的消息格式。

下面演示的是整個(gè)解碼過程:

if frame.id == 0x356:

raw_data = unpack('BBBBBBBB', frame.data)

fan_speed = raw_data[1] / 4

driver_temp = parse_temperature(raw_data[2:4])

passenger_temp = parse_temperature(raw_data[4:6])

解碼后的數(shù)據(jù)保存在CelsiusReport.msg之中:

bool auto

bool system_on

bool unit_on

bool dual

bool max_cool

bool max_defrost

bool recirculation

bool head_fan

bool feet_fan

bool front_defrost

bool rear_defrost

string driver_temp

string passenger_te

在按下了汽車內(nèi)所有的相關(guān)按鈕之后,我們得到了下面這個(gè)清單列表:

CONTROL_CODES = {

'ac_toggle': 0x5C,

'ac_unit_toggle': 0x14,

'max_ac_toggle': 0x38,

'recirculation_toggle': 0x3C,

'dual_temperature_toggle': 0x18,

'passenger_temp_up': 0x24,

'passenger_temp_down': 0x28,

'driver_temp_up': 0x1C,

'driver_temp_down': 0x20,

'auto': 0x34,

'wheel_heat_toggle': 0x78,

'defrost_max_toggle': 0x64,

'defrost_toggle': 0x4C,

'rear_defrost_toggle': 0x58,

'body_fan_toggle': 0x04,

'feet_fan_toggle': 0x0C,

'fan_up': 0x2C,

'fan_down': 0x30,

}

現(xiàn)在,我們就可以直接向ROS節(jié)點(diǎn)發(fā)送字符串?dāng)?shù)據(jù),然后通過它來將我們發(fā)送的信息轉(zhuǎn)換成汽車可以識(shí)別的特殊代碼:

rostopic pub /celsius_control celsius/CelsiusControl ac_toggle

分析結(jié)果

我們現(xiàn)在可以向CAN總線發(fā)送相應(yīng)的CAN控制代碼了,這些代碼與我們按下汽車物理實(shí)體按鈕時(shí)所發(fā)出的總線控制命令是一樣的。這也就意味著,我們可以遠(yuǎn)程改變汽車的車內(nèi)溫度了。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉