?
1 引言
隨著汽車電子的發展,汽車內電子產品越來越多,汽車發動機、底盤和車身等電控系統中的電控單元數量不斷增加,同時它們之間的通信也越來越重要。在汽車內利用網絡技術,可大大提高系統之間信息傳遞的可靠性,同時可大大減少汽車線束的數量,降低汽車電氣系統的成本。本文提出并實現了一種利用單片機組成CAN系統,利用藍牙無線傳輸技術對汽車運行數據進行采集與處理的方法。CAN總線符合ISO11898標準,最大傳輸速率可達1Mbps,最大傳輸距離為10km,傳輸介質可為雙絞線。它具有如下的一些技術特性:
1)多主方式工作,非破壞性的基于優先權的總線仲裁技術;
2)采用短幀結構,受干擾概率低,每幀信息都有CRC檢驗及其他檢錯措施;
3)對嚴重錯誤具有自動關閉總線的功能,使總線的其他操作不受影響。
在汽車運行過程中,車載射頻裝置如汽車立體聲系統、GPS導航設備、衛星數字音頻無線電業務(SDARS)裝置、GSM無線電收發器以及其它電器設備均可能造成干擾或受到干擾,這些射頻干擾信號會對汽車無線系統的數據流造成不良影響。如果應用傳統的無線數據傳輸技術,傳輸的數據的速率和準確率都不能很高,從而不能實現快速、準確地進行數據的傳輸,而把藍牙無線傳輸技術用在汽車上可以很好地解決這個問題。
本文所用藍牙模塊采用英國CSR公司的BC417芯片,并與SST公司的8M的FLASH芯片39VF800A構成了模塊。
模塊的硬件圖如圖1所示。
?
圖1 藍牙模塊原理圖
此模塊的主要特點如下:
1)采用CSR主流藍牙芯片,符合藍牙V210標準。
2)串口模塊上底板帶有RS232接口和TTL接口,任選一種接口使用,使用313~5V電源。串口對用戶而言是透明的。
3)藍牙芯片采用向前糾錯編碼,通信效率高,自動跳頻,抗干擾能力強。
4)波特率為1200,2400,4800,9600,19200,38400,57600,115200,230400,460800,921600,1382400,可在程序中根據實際需要設置。
5)休眠電流:小于1MA,工作電流:40MA。
2 系統硬件結構原理圖
本文利用MICROCHIP公司的內嵌CAN控制器的18F4580芯片與CAN收發器芯片MCP2515構成CAN網絡系統,并用18F4580芯片自帶的10位AD傳感器實現了對汽車發動機節氣門位置信號的測量,同時利用智能數字傳感器DS18B20對發動機的水溫信號進行測量。利用藍牙模塊把測量的信號無線傳給上位機,利用VC++編寫數據接收與處理的程序實現數據的實時顯示與存儲,并可顯示數據值隨時間的變化關系曲線圖,測量結果直觀。系統的硬件原理圖如圖2所示。
?
圖2 測量系統原理圖
3 發動機節氣門位置信號與水溫信號的測量
3.1 節氣門信號信號的測量
這里測量的汽車發動機上節氣門位置傳感器為一可調電阻型,節氣門位置輸出信號為0~5V的電壓信號,根據節氣門的實際開度與輸出電壓的關系,對測量的電壓信號進行標定,根據實測的電壓信號即可換算成節氣門的開度。所以這里用PIC18F4580單片機內嵌的10位AD轉換電路完成對節氣門位置傳感器輸出電壓的測量,為提高測量精度,對單片機AD的5V基準電壓進行了與系統電源隔離穩壓處理。
本系統利用Microchip公司的MPLAB開發環境嵌入PICC18C程序編譯器,用C程序編寫了數據采集與CAN數據的收發程序,其中AD轉換子程序用匯編語言編寫,程序兼顧了C程序的模塊化和可維護性好的優點,同時具有了匯編語言高效率的優點。
信號通過CAN控制器用擴展幀格式發送到CAN網絡上。其中數據采集與CAN數據的發送子程序如下:
InitSPI();//SPI接口初始化
Init_MCP2515();//MCP2515初始化
……
TRISA=0B00000001;//AN0>>>>DCinputDC通道上輸入,打開RA0
ADCON0=0B00000001;//AN0通道,允許ADC工作,
ADCON1=0B00001110;//除RA0為模擬輸入口外,其他RA口跟RE口均為普通數字口
ADCON2=0B10100001;//轉換結果右對齊,8TAD,1/8FOSC。
#asm
ADCON0 EQU 0FC2H
GO EQU 001H
bsf ADCON0, GO //開始轉換
ADWAIT:
btfscADCON0,GO
gotoADWAIT//等待轉換完成
#endasm
write_MCP2515(TXB0CTRL,0x03);//設置為發送最高優先級
write_MCP2515(TXB0SIDH,0xFF);//EID28--21
write_MCP2515(TXB0SIDL,0xEB);//EID20--EID18,擴展幀使能,EID17--EID16
write_MCP2515(TXB0EID8,0xFF);//EID15--EID8
write_MCP2515(TXB0EID0,0xFF);//EID7--EID0
write_MCP2515(TXB0DLC,0x02);//發送數據長度為8字節
write_MCP2515(TXB0D0,ADRESH);//發送的數據
write_MCP2515(TXB0D1,ADRESL);
……
send_TXB0();//請求發送
while((read_MCP2515(TXB0CTRL)&0x08)==0x08);//等待
發送完畢
……
3.2 水溫信號的測量
本文中的水溫信號利用DALLAS公司的DS18B20智能數字傳感器測量。DS1820是世界上第一片支持“一線總線”接口的溫度傳感器。一線總線獨特而且經濟的特點,使用戶可輕松地組建傳感器網絡,為測量系統的構建引入全新概念。測量溫度范圍為-55℃~+125℃,在-10~+85℃范圍內,精度為±015℃。現場溫度直接以“一線總線”的數字方式傳輸,大大提高了系統的抗干擾性。適合于惡劣環境的現場溫度測量,如:環境控制、設備或過程控制、測溫類消費電子產品等。DS1820采集溫度信號完成后,通過PIC18F4580芯片接收數據,并通過內嵌CAN控制器把數據以8位二制數的格式用標準幀格式發送到CAN總線上。
4 CAN網絡的傳輸系統
采集到的信號通過PIC18F4580內嵌的CAN控制器發出。這里選用MICROCHIP公司出品的MCP2551CAN收發器完成網絡信號的傳遞,在CAN網絡終端加入阻值為120歐的終端電阻。CAN網絡接收端的收發器接收到的信號后傳遞給另一片PIC18F4580芯片,通過基內部的CAN控制器取出網絡信號,如果接收到擴展幀,則接收到的數據為節氣門的位置信號;接收到標準幀,則接收到的數據為水溫信號。對信號處理后以數據包的方式通過基自身的UART口發給MAX232芯片,把TTL信號電平轉換成232電平。節氣門部分的CAN通訊板硬件原理圖如圖3所示。
?
圖3 節氣門位置信號測量CAN通信板原理圖
5 藍牙無線傳輸系統
MAX232芯片把轉換后的信號傳給由CSR公司的BC417構成的藍牙主(發射)模塊。BC417藍牙模塊可以設定數據傳輸速率,在保證發射信號的質量的情況下,可以盡量采用高速率的傳輸。本文中的傳輸速率為38400bps。另一塊BC417藍牙芯片構成的從(接收)模塊在接收到數據信號后,通過MAX232芯片轉換電平傳給上位機微機的串口。
6 上位機信號接收處理系統
上位機微機的串口接到信號后,用VC++開發工具編寫了面向對象的程序對數據包進行處理。為了直觀的顯示數據的數值和其隨時間的變化關系,本程序可顯示實際節氣門位置信號與水溫的數值,另可顯示節氣門位置信號的變化曲線。上位機程序的界面如圖4所示。
本文利用的是SerialPort類來實現此功能,這種方法對使用者來說只要關心設定相關的通訊參數,而不用關心封裝的實現方法,程序的模塊化和維護性好[5]。在使用中采用串口事件響應方式工作。為了更直觀的顯示出數據隨時間變化的曲線,編寫了一個利用封裝的BUTTON類控件實現的顯示界面。此控件可方便地實現對數據的坐標、背景、數據的單位與數據的更新速度等屬性進行設定,顯示效果良好。
?
圖4 上位機界面圖
7 結論
該系統運行良好,能方便、快速、可靠地實現汽車運行參數的測量,為實現汽車網絡參數的無線實時測量與汽車故障診斷提供了一個較好的平臺。程序運行結果顯示此藍牙無線傳輸CAN測量系統有如下優點:
1)在測量汽車運行參數時,可利用多個單片機構成CAN測量網絡,充分利用了CAN網絡的優點:信號抗干擾能力強、數據速率快、數據可靠性高與系統連接線少等。
2)無線數據傳輸系統充分體現了藍牙系統的高速和藍牙協議的高可靠性,理論上數據的成功率為100%,實現了高速和可靠的數據傳遞。
3)在用上位機測量汽車運行參數時,在汽車與電腦之間無需任何線纜的連接,方便測量系統的組建,降低了系統組建的時間和成本。
4)可充分利用上位機計算與處理的優勢,相比于傳統的汽車檢測儀器,可實現功能更強大的數據處理能力。
評論
查看更多