亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        新能源汽車CAN總線實訓(xùn)教學(xué)平臺設(shè)計

        2021-08-04 11:07:22李繼武
        汽車電器 2021年7期
        關(guān)鍵詞:波特率寄存器總線

        李繼武

        (南京城市職業(yè)學(xué)院智能工程學(xué)院,江蘇 南京 211200)

        CAN總線技術(shù)課程是新能源汽車專業(yè)核心課程,承擔(dān)著培養(yǎng)學(xué)生適應(yīng)崗位需求,提高應(yīng)用能力的重任,而以培養(yǎng)應(yīng)用能力為核心改革實訓(xùn)教學(xué),是高職院校人才培養(yǎng)工作內(nèi)涵式發(fā)展的主要努力方向。高職院校新能源汽車專業(yè)目前在講授新能源汽車CAN總線技術(shù)課程時主要依賴于CAN網(wǎng)絡(luò)硬件實訓(xùn)臺架,這種臺架通常只是將汽車上的相關(guān)CAN網(wǎng)絡(luò)設(shè)備拆解下來,再組裝到一個工作臺上,通上電后可以測量CAN網(wǎng)絡(luò)電壓和波形。停留在這個層次上的實訓(xùn)臺架,只能滿足低層次認知實訓(xùn),無法勝任高職教育創(chuàng)新創(chuàng)業(yè)的高層次需求[1]。汽車CAN總線技術(shù)課程是汽車技術(shù)、通信技術(shù)和計算機軟硬件技術(shù)結(jié)合的課程,從崗位人才需求角度考慮,學(xué)生不僅需要掌握汽車技術(shù)和CAN總線技術(shù),還需要從軟件開發(fā)的角度入手,掌握CAN數(shù)據(jù)報文幀的截獲破解方法、報文幀的收發(fā)過程以及控制設(shè)備的原理。

        本文設(shè)計了一款CAN總線教學(xué)平臺軟件,它利用USBCAN接口卡接入某純電動汽車的CAN網(wǎng)絡(luò),通過配置濾波器和波特率等參數(shù),可以截獲破解舒適網(wǎng)、動力網(wǎng)等CAN數(shù)據(jù)。根據(jù)破解的CAN數(shù)據(jù),平臺實現(xiàn)了自動空調(diào)、組合開關(guān)、雨刮開關(guān)、背光調(diào)節(jié)等設(shè)備的CAN命令控制模塊。實踐表明,利用本平臺軟件開展CAN總線技術(shù)課程實訓(xùn)教學(xué),有效提高了學(xué)生的應(yīng)用能力。作為創(chuàng)新教育和專業(yè)教育相結(jié)合的產(chǎn)品,以平臺軟件為核心搭建的工作坊為本專業(yè)學(xué)生開展創(chuàng)新創(chuàng)業(yè)實踐提供了重要的機會和可能[2]。

        1 硬件結(jié)構(gòu)

        1.1 測試用車

        平臺測試用車為2019年上市的某款純電動汽車,該車工信部純電續(xù)航里程為400km,電池能量52kWh,前置永磁同步單電機,單速變速器,4.3英寸液晶儀表,自動空調(diào)。

        1.2 檢測點選擇

        平臺測試用新能源汽車CAN總線網(wǎng)絡(luò)包含3個通信子網(wǎng),分別為舒適網(wǎng)125kb/s,動力網(wǎng)250kb/s,ESC網(wǎng)500kb/s。

        新能源汽車CAN網(wǎng)絡(luò)各子網(wǎng)之間由于通信速率不同,互相之間信息交換需要由網(wǎng)關(guān)控制器進行轉(zhuǎn)發(fā)[3]。網(wǎng)關(guān)是汽車內(nèi)部通信的核心,通過它可以實現(xiàn)各條總線上信息的共享、網(wǎng)絡(luò)管理和故障診斷功能[4]。各子網(wǎng)同網(wǎng)關(guān)控制器的連接關(guān)系如圖1所示。

        圖1 某款純電動汽車網(wǎng)關(guān)控制器電氣連接圖

        本平臺軟件因為要對測試用汽車CAN網(wǎng)絡(luò)數(shù)據(jù)進行采樣,所以選取圖1中的①~⑥作為檢測點,并引出采樣接口。

        1.3 USBCAN接口卡

        USB接口是一種方便、靈活、簡單且即插即用的通用串行總線,CAN總線可以通過USBCAN接口卡與USB接口連接從而與主機進行高速通信。USBCAN接口卡用于在USB總線和CAN總線之間完成數(shù)據(jù)的雙向收發(fā)功能。

        平臺選用的USBCAN接口卡是廣成科技公司生產(chǎn)的USBCAN-IIV502型,該接口卡使用鳳凰端子接線方式,具有兩路CAN總線接口,支持CAN2.0A/CAN2.0B幀格式,通信波特率在5kb/s至1Mb/s之間可自由設(shè)置,電源供電采用USB總線方式,CAN總線接口每秒最多接收14000幀數(shù)據(jù),支持Windows操作系統(tǒng)。

        1.4 硬件連線圖

        上位機PC、USBCAN接口卡和網(wǎng)關(guān)控制器三者連接關(guān)系如圖2所示。從USBCAN接口卡引出的L、H兩根CAN引線可以接到網(wǎng)關(guān)控制器的7和8引腳(舒適網(wǎng))或14和13引腳(ESC網(wǎng))或9和10引腳(動力網(wǎng)),從而接入汽車CAN網(wǎng)絡(luò)。

        圖2 硬件連線圖

        2 軟件平臺設(shè)計

        2.1 打開CAN設(shè)備

        程序啟動后,首先要調(diào)用ECAN鏈接庫中的OpenDevice函數(shù)打開USBCAN接口卡。該函數(shù)需要指定2個輸入?yún)?shù):設(shè)備類型和設(shè)備索引。設(shè)備類型設(shè)置為4表示USBCANⅡ類型;設(shè)備索引設(shè)置為0表示只有1個設(shè)備。如果有2個設(shè)備,可以指定為0或1。

        2.2 初始化CAN設(shè)備

        打開USB-CAN接口卡后需要通過INIT_CONFIG結(jié)構(gòu)體初始化濾波器和波特率等參數(shù)。平臺采用恩智浦半導(dǎo)體生產(chǎn)的CAN總線控制器,型號為SJA1000,它有兩種工作模式:BasicCAN和PeliCAN。在BasicCAN模式下,SJA1000只支持接收發(fā)送標(biāo)準(zhǔn)幀格式報文;在PeliCAN模式下,SJA1000可以接收發(fā)送標(biāo)準(zhǔn)幀格式和擴展幀格式兩種報文。通過軟件編程使用SJA1000的驗收濾波器可以濾掉無關(guān)報文。SJA1000驗收濾波器包含4個驗收碼寄存器:ACR0、ACR1、ACR2和ACR3;同時它還擁有4個屏蔽碼寄存器:AMR0、AMR1、AMR2和AMR3。驗收碼與屏蔽碼按位對應(yīng),如果屏蔽碼某位為1,則報文幀ID對應(yīng)位不參與屏蔽接收數(shù)據(jù);如果屏蔽碼某位為0,則該報文幀ID對應(yīng)位和驗收碼對應(yīng)位相同時,表示該位允許接收數(shù)據(jù);只有報文幀ID所有位都允許接收數(shù)據(jù),SJA1000控制器才會接收該報文,并將其放入接收數(shù)據(jù)緩沖區(qū)[5]。

        INIT_CONFIG結(jié)構(gòu)體同濾波器相關(guān)的成員有3個:Acc-Code、AccMask和Filter。其中AccCode表示驗收碼,AccMask表示屏蔽碼,F(xiàn)ilter表示濾波使能,0表示不使能,1表示使能,只有在使能情況下,才能啟用SJA1000濾波功能。濾波器設(shè)計界面如圖3所示。

        圖3 濾波器設(shè)置

        設(shè)置通信波特率需要使用SJA1000控制器的2個寄存器:BTR0(總線定時寄存器0)和BTR1(總線定時寄存器1)。BTR0定義了波特率預(yù)設(shè)值(BRP)和同步跳轉(zhuǎn)寬度(SJW)的值,如表1所示。

        表1 總線定時寄存器0

        CAN總線時鐘周期tSCL計算公式如下:

        式中:tCLK——SJA1000的晶振周期。考慮到平臺采用的晶振頻率f為16MHz,因此tCLK=1/f=1/16μs。計算樣例數(shù)據(jù)如下:

        BTR1定義了每個位周期的長度、采樣點的位置和在每個采樣點的采樣數(shù)目,如表2所示。

        表2 總線定時寄存器1

        SAM表示采樣數(shù)目,0表示單倍采樣;TSEG1和TSEG2決定了每一位的時鐘數(shù)目和采樣點位置,關(guān)于SYNCSEG、TSEG1和TSEG2,計算公式如下:

        根據(jù)上述公式計算表2樣例,結(jié)果如下:

        通過上面計算得到tSYNCSEG、tTSEG1和tTSEG2結(jié)果值后,可以計算出SJA1000控制器的位周期和通信波特率,公式如下:

        計算SJA1000控制器的位周期和通信波特率,結(jié)果如下:

        綜上,如果BTR0(總線定時寄存器0)設(shè)置為0x03,BTR1(總線定時寄存器1)設(shè)置為0x1C,計算出的SJA1000控制器通信波特率為125kb/s,其它常用波特率設(shè)置情況如表3所示。

        表3 SJA1000控制器常用CAN通信波特率設(shè)置

        2.3 打開CAN通道

        初始化USB-CAN接口卡參數(shù)后,需要調(diào)用StartCAN函數(shù)打開該接口卡的某個CAN通道。如果有多個CAN通道,每次調(diào)用都要指定要使用的CAN通道號。

        2.4 接收CAN數(shù)據(jù)

        USB-CAN接口卡某個CAN通道打開后,即可開始接收CAN數(shù)據(jù)。由于接收CAN數(shù)據(jù)過程是一個耗時操作,可能導(dǎo)致用戶界面停止響應(yīng),為了提高程序響應(yīng)性,使用戶界面及時刷新CAN數(shù)據(jù),本平臺設(shè)計了一個“后臺耗時+通信更新”方案,即開啟一個后臺獨立線程完成接收CAN數(shù)據(jù)的耗時操作,然后通過線程間事件通信,完成用戶界面更新操作。

        2.4.1 程序核心設(shè)計方案

        使用BackgroundWorker對象開啟單獨線程完成耗時操作并及時響應(yīng)更新用戶界面,需要按照下面步驟進行設(shè)計。

        1)創(chuàng)建一個BackgroundWorker對象。BackgroundWorker對象屬于System.ComponentModel命名空間,它是完成本方案的核心對象。

        2)訂閱BackgroundWorker對象的3個事件:DoWork事件、ProgressChanged事件和RunWorkerCompleted事件。

        DoWork事件用于執(zhí)行耗時操作,耗時期間需要不斷輪詢CancellationPending屬性,其值一旦為true,則中止耗時操作。

        ProgressChanged事件用于接收耗時操作的計算結(jié)果并實時更新用戶界面,事件處理程序的第2個參數(shù),其類型為ProgressChangedEventArgs,它有一個UserState屬性,是后臺線程向本事件傳遞進度數(shù)據(jù)的媒介。

        RunWorkerCompleted事件在后臺耗時操作已完成、被取消或引發(fā)異常時觸發(fā)。判斷哪個原因觸發(fā)了該事件需要根據(jù)第2個參數(shù),其類型是RunWorkerCompletedEventArgs,它有Cancelled、Error和Result三個屬性,如果耗時操作中途取消,則Cancelled屬性為true;如果發(fā)生異常,則Error屬性指明發(fā)生了哪種錯誤;如果既沒中途取消,又沒發(fā)生異常,則可通過Result屬性獲得耗時操作結(jié)果。

        3)啟動后臺線程。調(diào)用BackgroundWorker對象的RunWorkerAsync方法將觸發(fā)DoWork事件,啟動后臺線程開始執(zhí)行耗時工作。

        2.4.2 程序核心代碼

        整個程序最核心部分是后臺線程接收CAN數(shù)據(jù)的耗時操作,其代碼如下(部分):

        上述代碼中,CAN_OBJ作為結(jié)構(gòu)體類型代表幀的數(shù)據(jù)結(jié)構(gòu)。Transmit發(fā)送函數(shù)和Receive接收函數(shù)使用CAN_OBJ結(jié)構(gòu)體來傳送CAN信息幀。Receive函數(shù)從指定的設(shè)備CAN通道的緩沖區(qū)里讀取數(shù)據(jù),函數(shù)原型如下:

        上述參數(shù)中,pReceive參數(shù)是一個指針變量,表示用來接收的數(shù)據(jù)幀數(shù)組。根據(jù)本方案設(shè)計的程序,接收CAN數(shù)據(jù)界面如圖4所示。

        圖4 接收CAN數(shù)據(jù)界面

        2.5 發(fā)送CAN數(shù)據(jù)

        發(fā)送CAN數(shù)據(jù)需要調(diào)用ECAN鏈接庫中的Transmit函數(shù),其原型如下:

        上述參數(shù)中,pSend參數(shù)是一個指針類型,表示要發(fā)送的數(shù)據(jù)幀數(shù)組,Len參數(shù)是一個整數(shù)類型,表示要發(fā)送的數(shù)據(jù)幀數(shù)組的長度。函數(shù)成功調(diào)用后,返回實際發(fā)送的幀數(shù)。發(fā)送CAN數(shù)據(jù)的界面如圖5所示。

        圖5 發(fā)送CAN數(shù)據(jù)界面

        3 系統(tǒng)測試

        以2019款某純電動汽車的“雨刮洗滌”部件為研究對象,運行本實訓(xùn)平臺軟件,檢測出CAN命令如表4所示。

        表4 某純電動汽車“雨刮洗滌”部件CAN命令測試結(jié)果

        根據(jù)檢測結(jié)果,進一步開發(fā)“雨刮洗滌”功能模塊,程序運行界面如圖6所示。

        圖6 某純電動汽車“雨刮洗滌”部件CAN命令控制模塊

        任選一種“雨刮”工作模式,雙擊即可發(fā)送CAN命令控制雨刮工作。實際測試表明,CAN命令發(fā)出后,汽車雨刮即可按照指定模式工作。

        4 結(jié)束語

        1)本文搭建了“上位機PC+USBCAN設(shè)備+汽車網(wǎng)關(guān)控制器”硬件環(huán)境,設(shè)計開發(fā)了一款新能源汽車CAN總線實訓(xùn)教學(xué)軟件平臺,通過該平臺可以接收、分析新能源汽車CAN總線數(shù)據(jù),并向新能源汽車發(fā)送CAN命令,同時以某款純電動汽車為例,開發(fā)了自動空調(diào)、組合開關(guān)和雨刮開關(guān)等部件的CAN命令控制模塊。

        2)本文設(shè)計的實訓(xùn)平臺彌補了各高校在用的CAN網(wǎng)絡(luò)實訓(xùn)平臺的不足,演示直觀,控制邏輯清晰,提高學(xué)生崗位應(yīng)用能力效果明顯。

        3)通過本文設(shè)計的實訓(xùn)平臺可建立專業(yè)工作坊,為大學(xué)生創(chuàng)新創(chuàng)業(yè)教育提供一個切實可行的途徑。

        4)本文設(shè)計的實訓(xùn)平臺后續(xù)可持續(xù)拓展不同車型,以豐富平臺功能,增加實訓(xùn)教學(xué)應(yīng)用場景,模擬企業(yè)真實環(huán)境,提高人才培養(yǎng)質(zhì)量和就業(yè)競爭力。

        猜你喜歡
        波特率寄存器總線
        CAN 總線波特率自適應(yīng)程序設(shè)計
        智能制造(2020年5期)2020-07-03 06:24:00
        Lite寄存器模型的設(shè)計與實現(xiàn)
        基于PCI Express總線的xHC與FPGA的直接通信
        機載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計
        基于FPGA的異步串行通信波特率容錯設(shè)計
        電子測試(2018年7期)2018-05-16 06:27:18
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        多通道ARINC429總線檢查儀
        基于EtherCAT總線的ROV控制系統(tǒng)設(shè)計
        河南科技(2014年16期)2014-02-27 14:13:22
        C*Core芯片SCI串口波特率容限優(yōu)化
        高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
        国产精品内射久久一级二| 日韩亚洲中文图片小说| 无码一区二区波多野结衣播放搜索 | 无码人妻av免费一区二区三区| 日本精品一区二区三区在线视频| Jizz国产一区二区| 日本一区二区不卡在线| 自拍偷拍 视频一区二区| 日韩午夜理论免费tv影院| 97精品国产一区二区三区| 欧美日韩国产码高清综合人成| 成人伊人亚洲人综合网站222| 18禁黄无遮挡免费网站| 亚洲黄色av一区二区三区| 老师露出两个奶球让我吃奶头| 亚洲日韩成人av无码网站| 小12箩利洗澡无码视频网站| 亚洲国产福利成人一区二区 | 草莓视频中文字幕人妻系列 | 精品熟人妻一区二区三区四区不卡 | 99er视频| 久久精品国产亚洲av成人无人区 | 性感人妻一区二区三区| av在线一区二区三区不卡| 欧美性生交活xxxxxdddd | 一本一道波多野结衣av中文| 国产精品午夜福利天堂| 欧美颜射内射中出口爆在线 | 少妇免费av一区二区三区久久| 日本国产成人国产在线播放| 波多野结衣中文字幕久久| 永久无码在线观看| 国产精品一区一区三区| 亚洲女人的天堂网av| 免费看黑人男阳茎进女阳道视频| 亚洲人成电影在线无码| 成年男人午夜视频在线看| 国产无套中出学生姝| 丰满岳乱妇久久久| 青青草免费激情自拍视频| 亚洲精品午夜久久久九九|