《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于藍(lán)牙的汽車CAN網(wǎng)絡(luò)信號(hào)無(wú)線測(cè)量系統(tǒng)
基于藍(lán)牙的汽車CAN網(wǎng)絡(luò)信號(hào)無(wú)線測(cè)量系統(tǒng)
摘要: 設(shè)計(jì)用內(nèi)嵌CAN控制器的PIC單片機(jī)18F4580構(gòu)成的CAN系統(tǒng),測(cè)量汽車發(fā)動(dòng)機(jī)節(jié)氣門位置信號(hào)和水溫信號(hào),并應(yīng)用基于芯片CSRBC417構(gòu)成的藍(lán)牙模塊對(duì)信號(hào)進(jìn)行無(wú)線傳輸,用上位機(jī)進(jìn)行數(shù)據(jù)處理和顯示;上位機(jī)軟件用VC++語(yǔ)言設(shè)計(jì)了可實(shí)現(xiàn)實(shí)時(shí)顯示數(shù)據(jù)數(shù)值與變化曲線的程序
Abstract:
Key words :

  1  引言

  汽車工作過(guò)程中,,對(duì)各系統(tǒng)的運(yùn)行參數(shù)的實(shí)時(shí)測(cè)量可方便地實(shí)現(xiàn)對(duì)汽車運(yùn)行狀態(tài)的分析與故障診斷,。用傳統(tǒng)的有線方式連接汽車診斷接口或檢測(cè)傳感器輸出值的方法存在著布線和設(shè)備使用等方面的不方便,。如果能把汽車各系統(tǒng)中的參數(shù)值無(wú)線、快速,、準(zhǔn)確地測(cè)量出來(lái),利用功能強(qiáng)大的微機(jī)系統(tǒng)進(jìn)行分析和處理將大大方便汽車運(yùn)行狀態(tài)的監(jiān)控,。本文提出并實(shí)現(xiàn)了一種利用單片機(jī)組成CAN系統(tǒng),,利用藍(lán)牙無(wú)線傳輸技術(shù)對(duì)汽車運(yùn)行數(shù)據(jù)進(jìn)行采集與處理的方法。

  隨著汽車電子的發(fā)展,,汽車內(nèi)電子產(chǎn)品越來(lái)越多,,汽車發(fā)動(dòng)機(jī)、底盤和車身等電控系統(tǒng)中的電控單元數(shù)量不斷增加,,同時(shí)它們之間的通信也越來(lái)越重要,。在汽車內(nèi)利用網(wǎng)絡(luò)技術(shù),可大大提高系統(tǒng)之間信息傳遞的可靠性,,同時(shí)可大大減少汽車線束的數(shù)量,,降低汽車電氣系統(tǒng)的成本。近年來(lái),,CAN系統(tǒng)在汽車內(nèi)的應(yīng)用越來(lái)越廣泛,。CAN(ControllerAreaNetwork)是控制局域網(wǎng)的簡(jiǎn)稱,最早由德國(guó)BOSCH公司推出,,用于汽車內(nèi)部測(cè)量與執(zhí)行部件的數(shù)據(jù)通信,。由于其高性能、高可靠性,、實(shí)時(shí)性好和獨(dú)特的設(shè)計(jì),,已廣泛的應(yīng)用于控制系統(tǒng)的各檢測(cè)和執(zhí)行機(jī)構(gòu)之間的數(shù)據(jù)通信。CAN總線符合ISO11898標(biāo)準(zhǔn),,最大傳輸速率可達(dá)1Mbps,最大傳輸距離為10km,傳輸介質(zhì)可為雙絞線,。它具有如下的一些技術(shù)特性:

  1)多主方式工作,非破壞性的基于優(yōu)先權(quán)的總線仲裁技術(shù),;

  2)采用短幀結(jié)構(gòu),,受干擾概率低,每幀信息都有CRC檢驗(yàn)及其他檢錯(cuò)措施,;

  3)對(duì)嚴(yán)重錯(cuò)誤具有自動(dòng)關(guān)閉總線的功能,,使總線的其他操作不受影響。

  在汽車運(yùn)行過(guò)程中,,車載射頻裝置如汽車立體聲系統(tǒng),、GPS導(dǎo)航設(shè)備、衛(wèi)星數(shù)字音頻無(wú)線電業(yè)務(wù)(SDARS)裝置,、GSM無(wú)線電收發(fā)器以及其它電器設(shè)備均可能造成干擾或受到干擾,,這些射頻干擾信號(hào)會(huì)對(duì)汽車無(wú)線系統(tǒng)的數(shù)據(jù)流造成不良影響。如果應(yīng)用傳統(tǒng)的無(wú)線數(shù)據(jù)傳輸技術(shù),,傳輸?shù)臄?shù)據(jù)的速率和準(zhǔn)確率都不能很高,,從而不能實(shí)現(xiàn)快速,、準(zhǔn)確地進(jìn)行數(shù)據(jù)的傳輸,而把藍(lán)牙無(wú)線傳輸技術(shù)用在汽車上可以很好地解決這個(gè)問(wèn)題,。
本文所用藍(lán)牙模塊采用英國(guó)CSR公司的BC417芯片,,并與SST公司的8M的FLASH芯片39VF800A構(gòu)成了模塊。

藍(lán)牙模塊原理圖

圖1 藍(lán)牙模塊原理圖

  此模塊的主要特點(diǎn)如下:

  1)采用CSR主流藍(lán)牙芯片,,符合藍(lán)牙V210標(biāo)準(zhǔn),。

  2)串口模塊上底板帶有RS232接口和TTL接口,任選一種接口使用,,使用313~5V電源,。串口對(duì)用戶而言是透明的。

  3)藍(lán)牙芯片采用向前糾錯(cuò)編碼,,通信效率高,,自動(dòng)跳頻,抗干擾能力強(qiáng),。

  4)波特率為1200,2400,4800,9600,19200,38400,57600,115200,230400,460800,921600,1382400,可在程序中根據(jù)實(shí)際需要設(shè)置,。

  5)休眠電流:小于1MA,工作電流:40MA。

  2 系統(tǒng)硬件結(jié)構(gòu)原理圖

  本文利用MICROCHIP公司的內(nèi)嵌CAN控制器的18F4580芯片與CAN收發(fā)器芯片MCP2515構(gòu)成CAN網(wǎng)絡(luò)系統(tǒng),,并用18F4580芯片自帶的10位AD傳感器實(shí)現(xiàn)了對(duì)汽車發(fā)動(dòng)機(jī)節(jié)氣門位置信號(hào)的測(cè)量,,同時(shí)利用智能數(shù)字傳感器DS18B20對(duì)發(fā)動(dòng)機(jī)的水溫信號(hào)進(jìn)行測(cè)量。利用藍(lán)牙模塊把測(cè)量的信號(hào)無(wú)線傳給上位機(jī),,利用VC++編寫數(shù)據(jù)接收與處理的程序?qū)崿F(xiàn)數(shù)據(jù)的實(shí)時(shí)顯示與存儲(chǔ),,并可顯示數(shù)據(jù)值隨時(shí)間的變化關(guān)系曲線圖,測(cè)量結(jié)果直觀,。系統(tǒng)的硬件原理圖如圖2所示,。

圖2

圖2 測(cè)量系統(tǒng)原理圖

  3 發(fā)動(dòng)機(jī)節(jié)氣門位置信號(hào)與水溫信號(hào)的測(cè)量

  3.1 節(jié)氣門信號(hào)信號(hào)的測(cè)量

  這里測(cè)量的汽車發(fā)動(dòng)機(jī)上節(jié)氣門位置傳感器為一可調(diào)電阻型,節(jié)氣門位置輸出信號(hào)為0~5V的電壓信號(hào),,根據(jù)節(jié)氣門的實(shí)際開(kāi)度與輸出電壓的關(guān)系,對(duì)測(cè)量的電壓信號(hào)進(jìn)行標(biāo)定,,根據(jù)實(shí)測(cè)的電壓信號(hào)即可換算成節(jié)氣門的開(kāi)度,。所以這里用PIC18F4580單片機(jī)內(nèi)嵌的10位AD轉(zhuǎn)換電路完成對(duì)節(jié)氣門位置傳感器輸出電壓的測(cè)量,為提高測(cè)量精度,,對(duì)單片機(jī)AD的5V基準(zhǔn)電壓進(jìn)行了與系統(tǒng)電源隔離穩(wěn)壓處理,。

  本系統(tǒng)利用Microchip公司的MPLAB開(kāi)發(fā)環(huán)境嵌入PICC18C程序編譯器,用C程序編寫了數(shù)據(jù)采集與CAN數(shù)據(jù)的收發(fā)程序,,其中AD轉(zhuǎn)換子程序用匯編語(yǔ)言編寫,,程序兼顧了C程序的模塊化和可維護(hù)性好的優(yōu)點(diǎn),同時(shí)具有了匯編語(yǔ)言高效率的優(yōu)點(diǎn),。

   信號(hào)通過(guò)CAN控制器用擴(kuò)展幀格式發(fā)送到CAN網(wǎng)絡(luò)上,。其中數(shù)據(jù)采集與CAN數(shù)據(jù)的發(fā)送子程序如下:

  InitSPI(),;//SPI接口初始化

  Init_MCP2515();//MCP2515初始化

  ……

  TRISA=0B00000001;//AN0>>>>DCinputDC通道上輸入,,打開(kāi)RA0

   ADCON0=0B00000001;//AN0通道,,允許ADC工作,

 

  ADCON1=0B00001110;//除RA0為模擬輸入口外,,其他RA口跟RE口均為普通數(shù)字口

  ADCON2=0B10100001;//轉(zhuǎn)換結(jié)果右對(duì)齊,,8TAD,1/8FOSC。

  #asm

  ADCON0EQU0FC2H

  GOEQU001H

  bsfADCON0,GO//開(kāi)始轉(zhuǎn)換

  ADWAIT:

  btfscADCON0,GO

  gotoADWAIT//等待轉(zhuǎn)換完成

  #endasm

  write_MCP2515(TXB0CTRL,0x03),;//設(shè)置為發(fā)送最高優(yōu)先級(jí)

  write_MCP2515(TXB0SIDH,0xFF),;//EID28--21

  write_MCP2515(TXB0SIDL,0xEB);//EID20--EID18,擴(kuò)展幀使能,,EID17--EID16

  write_MCP2515(TXB0EID8,0xFF),;//EID15--EID8

  write_MCP2515(TXB0EID0,0xFF);//EID7--EID0

  write_MCP2515(TXB0DLC,0x02),;//發(fā)送數(shù)據(jù)長(zhǎng)度為8字節(jié)

  write_MCP2515(TXB0D0,ADRESH),;//發(fā)送的數(shù)據(jù)

  write_MCP2515(TXB0D1,ADRESL);

  ……

  send_TXB0(),;//請(qǐng)求發(fā)送

  while((read_MCP2515(TXB0CTRL)&0x08)==0x08),;//等待

  發(fā)送完畢

  ……

  3.2 水溫信號(hào)的測(cè)量

  本文中的水溫信號(hào)利用DALLAS公司的DS18B20智能數(shù)字傳感器測(cè)量。DS1820是世界上第一片支持“一線總線”接口的溫度傳感器,。一線總線獨(dú)特而且經(jīng)濟(jì)的特點(diǎn),,使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測(cè)量系統(tǒng)的構(gòu)建引入全新概念,。測(cè)量溫度范圍為-55℃~+125℃,在-10~+85℃范圍內(nèi),,精度為±015℃。現(xiàn)場(chǎng)溫度直接以“一線總線”的數(shù)字方式傳輸,,大大提高了系統(tǒng)的抗干擾性,。適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,如:環(huán)境控制,、設(shè)備或過(guò)程控制,、測(cè)溫類消費(fèi)電子產(chǎn)品等,。DS1820采集溫度信號(hào)完成后,,通過(guò)PIC18F4580芯片接收數(shù)據(jù),,并通過(guò)內(nèi)嵌CAN控制器把數(shù)據(jù)以8位二制數(shù)的格式用標(biāo)準(zhǔn)幀格式發(fā)送到CAN總線上。

  4 CAN網(wǎng)絡(luò)的傳輸系統(tǒng)

  采集到的信號(hào)通過(guò)PIC18F4580內(nèi)嵌的CAN控制器發(fā)出,。這里選用MICROCHIP公司出品的MCP2551CAN收發(fā)器完成網(wǎng)絡(luò)信號(hào)的傳遞,在CAN網(wǎng)絡(luò)終端加入阻值為120歐的終端電阻,。CAN網(wǎng)絡(luò)接收端的收發(fā)器接收到的信號(hào)后傳遞給另一片PIC18F4580芯片,通過(guò)基內(nèi)部的CAN控制器取出網(wǎng)絡(luò)信號(hào),,如果接收到擴(kuò)展幀,則接收到的數(shù)據(jù)為節(jié)氣門的位置信號(hào),;接收到標(biāo)準(zhǔn)幀,則接收到的數(shù)據(jù)為水溫信號(hào),。對(duì)信號(hào)處理后以數(shù)據(jù)包的方式通過(guò)基自身的UART口發(fā)給MAX232芯片,,把TTL信號(hào)電平轉(zhuǎn)換成232電平。節(jié)氣門部分的CAN通訊板硬件原理圖如圖3所示,。

節(jié)氣門位置信號(hào)測(cè)量CAN通信板原理圖

圖3 節(jié)氣門位置信號(hào)測(cè)量CAN通信板原理圖

   5 藍(lán)牙無(wú)線傳輸系統(tǒng)

  MAX232芯片把轉(zhuǎn)換后的信號(hào)傳給由CSR公司的BC417構(gòu)成的藍(lán)牙主(發(fā)射)模塊,。BC417藍(lán)牙模塊可以設(shè)定數(shù)據(jù)傳輸速率,,在保證發(fā)射信號(hào)的質(zhì)量的情況下,可以盡量采用高速率的傳輸,。本文中的傳輸速率為38400bps,。另一塊BC417藍(lán)牙芯片構(gòu)成的從(接收)模塊在接收到數(shù)據(jù)信號(hào)后,通過(guò)MAX232芯片轉(zhuǎn)換電平傳給上位機(jī)微機(jī)的串口,。

  6 上位機(jī)信號(hào)接收處理系統(tǒng)

  上位機(jī)微機(jī)的串口接到信號(hào)后,,用VC++開(kāi)發(fā)工具編寫了面向?qū)ο蟮某绦驅(qū)?shù)據(jù)包進(jìn)行處理,。為了直觀的顯示數(shù)據(jù)的數(shù)值和其隨時(shí)間的變化關(guān)系,本程序可顯示實(shí)際節(jié)氣門位置信號(hào)與水溫的數(shù)值,,另可顯示節(jié)氣門位置信號(hào)的變化曲線。上位機(jī)程序的界面如圖4所示,。

  本文利用的是SerialPort類來(lái)實(shí)現(xiàn)此功能,這種方法對(duì)使用者來(lái)說(shuō)只要關(guān)心設(shè)定相關(guān)的通訊參數(shù),,而不用關(guān)心封裝的實(shí)現(xiàn)方法,,程序的模塊化和維護(hù)性好[5],。在使用中采用串口事件響應(yīng)方式工作。為了更直觀的顯示出數(shù)據(jù)隨時(shí)間變化的曲線,,編寫了一個(gè)利用封裝的BUTTON類控件實(shí)現(xiàn)的顯示界面。此控件可方便地實(shí)現(xiàn)對(duì)數(shù)據(jù)的坐標(biāo),、背景,、數(shù)據(jù)的單位與數(shù)據(jù)的更新速度等屬性進(jìn)行設(shè)定,,顯示效果良好,。

上位機(jī)界面圖

圖4 上位機(jī)界面圖

  7 結(jié)論

  該系統(tǒng)運(yùn)行良好,,能方便、快速,、可靠地實(shí)現(xiàn)汽車運(yùn)行參數(shù)的測(cè)量,,為實(shí)現(xiàn)汽車網(wǎng)絡(luò)參數(shù)的無(wú)線實(shí)時(shí)測(cè)量與汽車故障診斷提供了一個(gè)較好的平臺(tái),。程序運(yùn)行結(jié)果顯示此藍(lán)牙無(wú)線傳輸CAN測(cè)量系統(tǒng)有如下優(yōu)點(diǎn):

  1)在測(cè)量汽車運(yùn)行參數(shù)時(shí),可利用多個(gè)單片機(jī)構(gòu)成CAN測(cè)量網(wǎng)絡(luò),,充分利用了CAN網(wǎng)絡(luò)的優(yōu)點(diǎn):信號(hào)抗干擾能力強(qiáng),、數(shù)據(jù)速率快,、數(shù)據(jù)可靠性高與系統(tǒng)連接線少等,。

  2)無(wú)線數(shù)據(jù)傳輸系統(tǒng)充分體現(xiàn)了藍(lán)牙系統(tǒng)的高速和藍(lán)牙協(xié)議的高可靠性,理論上數(shù)據(jù)的成功率為100%,實(shí)現(xiàn)了高速和可靠的數(shù)據(jù)傳遞,。

  3)在用上位機(jī)測(cè)量汽車運(yùn)行參數(shù)時(shí),,在汽車與電腦之間無(wú)需任何線纜的連接,方便測(cè)量系統(tǒng)的組建,,降低了系統(tǒng)組建的時(shí)間和成本,。

  4)可充分利用上位機(jī)計(jì)算與處理的優(yōu)勢(shì),相比于傳統(tǒng)的汽車檢測(cè)儀器,,可實(shí)現(xiàn)功能更強(qiáng)大的數(shù)據(jù)處理能力。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。