新聞中心

EEPW首頁 > 汽車電子 > 設(shè)計(jì)應(yīng)用 > 基于串行通信的車載信息采集系統(tǒng)的設(shè)計(jì)

基于串行通信的車載信息采集系統(tǒng)的設(shè)計(jì)

作者: 時(shí)間:2012-08-15 來源:網(wǎng)絡(luò) 收藏

本文介紹了一款電動(dòng)汽車的:多從機(jī)采集信息,從機(jī)與主機(jī)間采用的多機(jī)通信,再由主機(jī)將通信的數(shù)據(jù)送往LCD顯示。它解決了繁多以及車身布線復(fù)雜而數(shù)據(jù)難于采集的難點(diǎn)。

本文引用地址:http://butianyuan.cn/article/196559.htm

1 引言

作為一種重要的通信技術(shù)已經(jīng)在PC機(jī)通信及工業(yè)現(xiàn)場控制在線檢測等領(lǐng)域得到了廣泛的應(yīng)用[1]。本文所設(shè)計(jì)的是包含數(shù)據(jù)采集,數(shù)據(jù)傳輸和數(shù)據(jù)顯示的結(jié)構(gòu)系統(tǒng),是對一款新型電動(dòng)汽車的車載信息進(jìn)行采集,傳送和顯示的設(shè)計(jì)過程:車載信息通過傳感器(模擬量形式)或開關(guān)量形式被采到從單片機(jī),主單片機(jī)和從單片機(jī)之間通過進(jìn)行數(shù)據(jù)傳輸,并由主機(jī)將數(shù)據(jù)送往液晶面板顯示出來。

2 總線型主從式多機(jī)系統(tǒng)

綜合考慮了電動(dòng)汽車所涉及到的大量的車載信息和串行口的多機(jī)通信能力,該設(shè)計(jì)采用了總線型主從式多機(jī)通信模式,而進(jìn)行數(shù)據(jù)傳輸?shù)臉?biāo)準(zhǔn)總線選為最普通實(shí)用的RS-485。總線型主從式多機(jī)通信系統(tǒng)模式如下圖:

11.jpg

而串口的通信協(xié)議在這里就不作介紹了。

3 車載信息硬件設(shè)計(jì)

該系統(tǒng)所研究的對象為一款電動(dòng)汽車的車載信息,筆者把信息分為兩類:模擬量和開關(guān)量。模擬量包括:電池組(蓄電池)溫度,電池組(蓄電池)電壓,電池組(蓄電池)容量,車速(里程),總電流等;開關(guān)量是指各種操作狀態(tài),包括:燈(系列)的狀態(tài),檔位開關(guān)量,剎車狀態(tài),限位開關(guān)狀態(tài)等。

由于涉及到的信息量比較多,且分布在車身周圍范圍較廣,筆者采用AVR公司的一款單片機(jī)——ATMEGA8L。這是一款體積小但采集能力和通信能力卻足夠強(qiáng)的單片機(jī):在采集方面,它含8通道A/D轉(zhuǎn)換和最多23個(gè)可編程I/O口;在數(shù)據(jù)通信方面,它含一個(gè)可編程的串行USART接口,支持同步,異步以及多機(jī)通信自動(dòng)地址識(shí)別[3]。ATMEGA8L相對8051或其他單片機(jī)一個(gè)重要的優(yōu)勢是單片機(jī)所需外圍電路比較簡單(考慮到在車身布線,電路越簡單越好)。LCD顯示模塊采用的是內(nèi)置T6963C的MGLS240128T的點(diǎn)陣液晶,它的特點(diǎn)是與單片機(jī)引腳接口電路簡單且顯示功能強(qiáng)大。

本文所設(shè)計(jì)的車載信息采集系統(tǒng)硬件框架如下圖:

22.jpg

模擬量通過特定傳感器采樣,轉(zhuǎn)換成電壓信號(hào)進(jìn)入從機(jī)的A/D通道,從機(jī)做A/D轉(zhuǎn)換后將數(shù)據(jù)存儲(chǔ)下來;開關(guān)量通過繼電器將電平信號(hào)送至從機(jī)的I/O口,從機(jī)也對信號(hào)做相關(guān)處理。主機(jī)與從機(jī)之間通過串行通信進(jìn)行數(shù)據(jù)傳輸,并由主機(jī)將合理數(shù)據(jù)送往LCD顯示。

4 車載信息采集系統(tǒng)軟件設(shè)計(jì)

基于串行通信的多機(jī)通信協(xié)議可以這樣進(jìn)行:1.所有從機(jī)處于監(jiān)聽狀態(tài)。2.主機(jī)先發(fā)同步字符(即起始符,這里定為E8H),再發(fā)某個(gè)標(biāo)識(shí)符(根據(jù)信息類別來定義不同值,比如電流值的標(biāo)識(shí)符定義為14H),并將通信狀態(tài)轉(zhuǎn)換為接收狀態(tài)(RXD=1)。3.當(dāng)標(biāo)識(shí)符所定義的從機(jī)(比如負(fù)責(zé)電流數(shù)據(jù)采集的從機(jī)1)監(jiān)聽到標(biāo)識(shí)符(14H)后,從機(jī)轉(zhuǎn)為發(fā)送速據(jù)狀態(tài),并將準(zhǔn)備好的數(shù)據(jù)(電流值)和結(jié)束字符(這里定為CEH)傳給主機(jī),結(jié)束字符傳完,從機(jī)通信狀態(tài)轉(zhuǎn)換為監(jiān)聽狀態(tài)。4.主機(jī)接收到結(jié)束字符后,將數(shù)據(jù)送往LCD顯示。5.主機(jī)發(fā)同步字符,發(fā)下一個(gè)標(biāo)識(shí)符(比如電壓15H)。

所以,數(shù)據(jù)幀格式可以列為:起始符(E8H)+標(biāo)識(shí)符+數(shù)據(jù)串+結(jié)束符(CEH),所有特定字符的選擇都是為了與數(shù)據(jù)串中數(shù)字的ASCⅡ碼(30H–39H)區(qū)分開來。

下面是主機(jī)和從機(jī)程序流程:

33.jpg

主機(jī)采用循環(huán)點(diǎn)明的方式查詢從機(jī),被點(diǎn)到名的從機(jī)作出應(yīng)答,將采集到的數(shù)據(jù)或信號(hào)傳給主機(jī),主機(jī)將數(shù)據(jù)送給LCD顯示,再進(jìn)入下一個(gè)循環(huán)。串行通信的波特率選用9600,數(shù)據(jù)格式定義為8位數(shù)據(jù)位加一位停止位。串口初始化程序如下:

voidinit_usart(void)//串口初始化

{

UCSRB|=0x18;//數(shù)據(jù)發(fā)送允許和接收允許

UBRRL=(fosc/16/(baud+1))%256;//設(shè)置波特率寄存器低位字節(jié)

UBRRH=(fosc/16/(baud+1))/256;//設(shè)置波特率寄存器高位字節(jié)

UCSRC=0x86;//8位數(shù)據(jù)位+1位停止位

}

主機(jī)和從機(jī)都采用查詢方式接收和發(fā)送數(shù)據(jù):

voidtransmit(unsignedchardata)//數(shù)據(jù)發(fā)送

{

while(!(UCSRA(1

UDR=data;//發(fā)送數(shù)據(jù)

}

unsignedcharreceive(void)//數(shù)據(jù)接收

{

while(!(UCSRA(1

returnUDR;//接收數(shù)據(jù)

}

5 結(jié)束語

本文成功設(shè)計(jì)了針對一款電動(dòng)汽車的車載信息采集系統(tǒng)結(jié)構(gòu),一方面用多個(gè)從機(jī)采集車載信息解決了車載信息眾多而難于采集的問題;用簡單的串口通信的多機(jī)通信原理避免了車身周圍布線繁多的麻煩,另一方面采用液晶顯示車載信息,給用戶提供友好界面的同時(shí),又可以準(zhǔn)確實(shí)時(shí)地掌握汽車狀況。從液晶的數(shù)據(jù)顯示和數(shù)據(jù)刷新的效果來看,這種基于串口通信的車載信息采集系統(tǒng)是有很好的應(yīng)用前景的。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉