基于串行通信的車載信息采集系統(tǒng)的設計
本文介紹了一款電動汽車的車載信息采集系統(tǒng):多從機采集信息,從機與主機間采用串行通信的多機通信,再由主機將通信的數據送往LCD顯示。它解決了車載信息繁多以及車身布線復雜而數據難于采集的難點。
本文引用地址:http://2s4d.com/article/196559.htm1 引言
串行通信作為一種重要的通信技術已經在PC機通信及工業(yè)現場控制在線檢測等領域得到了廣泛的應用[1]。本文所設計的車載信息采集系統(tǒng)是包含數據采集,數據傳輸和數據顯示的結構系統(tǒng),是對一款新型電動汽車的車載信息進行采集,傳送和顯示的設計過程:車載信息通過傳感器(模擬量形式)或開關量形式被采到從單片機,主單片機和從單片機之間通過串行通信進行數據傳輸,并由主機將數據送往液晶面板顯示出來。
2 總線型主從式多機系統(tǒng)
綜合考慮了電動汽車所涉及到的大量的車載信息和串行口的多機通信能力,該設計采用了總線型主從式多機通信模式,而進行數據傳輸的標準總線選為最普通實用的RS-485??偩€型主從式多機通信系統(tǒng)模式如下圖:
而串口的通信協(xié)議在這里就不作介紹了。
3 車載信息采集系統(tǒng)硬件設計
該系統(tǒng)所研究的對象為一款電動汽車的車載信息,筆者把信息分為兩類:模擬量和開關量。模擬量包括:電池組(蓄電池)溫度,電池組(蓄電池)電壓,電池組(蓄電池)容量,車速(里程),總電流等;開關量是指各種操作狀態(tài),包括:燈(系列)的狀態(tài),檔位開關量,剎車狀態(tài),限位開關狀態(tài)等。
由于涉及到的信息量比較多,且分布在車身周圍范圍較廣,筆者采用AVR公司的一款單片機——ATMEGA8L。這是一款體積小但采集能力和通信能力卻足夠強的單片機:在采集方面,它含8通道A/D轉換和最多23個可編程I/O口;在數據通信方面,它含一個可編程的串行USART接口,支持同步,異步以及多機通信自動地址識別[3]。ATMEGA8L相對8051或其他單片機一個重要的優(yōu)勢是單片機所需外圍電路比較簡單(考慮到在車身布線,電路越簡單越好)。LCD顯示模塊采用的是內置T6963C的MGLS240128T的點陣液晶,它的特點是與單片機引腳接口電路簡單且顯示功能強大。
本文所設計的車載信息采集系統(tǒng)硬件框架如下圖:
模擬量通過特定傳感器采樣,轉換成電壓信號進入從機的A/D通道,從機做A/D轉換后將數據存儲下來;開關量通過繼電器將電平信號送至從機的I/O口,從機也對信號做相關處理。主機與從機之間通過串行通信進行數據傳輸,并由主機將合理數據送往LCD顯示。
4 車載信息采集系統(tǒng)軟件設計
基于串行通信的多機通信協(xié)議可以這樣進行:1.所有從機處于監(jiān)聽狀態(tài)。2.主機先發(fā)同步字符(即起始符,這里定為E8H),再發(fā)某個標識符(根據信息類別來定義不同值,比如電流值的標識符定義為14H),并將通信狀態(tài)轉換為接收狀態(tài)(RXD=1)。3.當標識符所定義的從機(比如負責電流數據采集的從機1)監(jiān)聽到標識符(14H)后,從機轉為發(fā)送速據狀態(tài),并將準備好的數據(電流值)和結束字符(這里定為CEH)傳給主機,結束字符傳完,從機通信狀態(tài)轉換為監(jiān)聽狀態(tài)。4.主機接收到結束字符后,將數據送往LCD顯示。5.主機發(fā)同步字符,發(fā)下一個標識符(比如電壓15H)。
所以,數據幀格式可以列為:起始符(E8H)+標識符+數據串+結束符(CEH),所有特定字符的選擇都是為了與數據串中數字的ASCⅡ碼(30H–39H)區(qū)分開來。
下面是主機和從機程序流程:
主機采用循環(huán)點明的方式查詢從機,被點到名的從機作出應答,將采集到的數據或信號傳給主機,主機將數據送給LCD顯示,再進入下一個循環(huán)。串行通信的波特率選用9600,數據格式定義為8位數據位加一位停止位。串口初始化程序如下:
voidinit_usart(void)//串口初始化
{
UCSRB|=0x18;//數據發(fā)送允許和接收允許
UBRRL=(fosc/16/(baud+1))%256;//設置波特率寄存器低位字節(jié)
UBRRH=(fosc/16/(baud+1))/256;//設置波特率寄存器高位字節(jié)
UCSRC=0x86;//8位數據位+1位停止位
}
主機和從機都采用查詢方式接收和發(fā)送數據:
voidtransmit(unsignedchardata)//數據發(fā)送
{
while(!(UCSRA(1
UDR=data;//發(fā)送數據
}
unsignedcharreceive(void)//數據接收
{
while(!(UCSRA(1
returnUDR;//接收數據
}
5 結束語
本文成功設計了針對一款電動汽車的車載信息采集系統(tǒng)結構,一方面用多個從機采集車載信息解決了車載信息眾多而難于采集的問題;用簡單的串口通信的多機通信原理避免了車身周圍布線繁多的麻煩,另一方面采用液晶顯示車載信息,給用戶提供友好界面的同時,又可以準確實時地掌握汽車狀況。從液晶的數據顯示和數據刷新的效果來看,這種基于串口通信的車載信息采集系統(tǒng)是有很好的應用前景的。
評論