新聞中心

        EEPW首頁 > 汽車電子 > 設計應用 > 基于串行通信的車載信息采集系統的設計

        基于串行通信的車載信息采集系統的設計

        作者: 時間:2012-08-15 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/196559.htm

        1 引言

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

        2 總線型主從式多機系統

        綜合考慮了電動汽車所涉及到的大量的車載信息和串行口的多機通信能力,該設計采用了總線型主從式多機通信模式,而進行數據傳輸的標準總線選為最普通實用的RS-485。總線型主從式多機通信系統模式如下圖:

        11.jpg

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

        3 車載信息硬件設計

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

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

        本文所設計的車載信息采集系統硬件框架如下圖:

        22.jpg

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

        4 車載信息采集系統軟件設計

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

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

        下面是主機和從機程序流程:

        33.jpg

        主機采用循環點明的方式查詢從機,被點到名的從機作出應答,將采集到的數據或信號傳給主機,主機將數據送給LCD顯示,再進入下一個循環。串行通信的波特率選用9600,數據格式定義為8位數據位加一位停止位。串口初始化程序如下:

        voidinit_usart(void)//串口初始化

        {

        UCSRB|=0x18;//數據發送允許和接收允許

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

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

        UCSRC=0x86;//8位數據位+1位停止位

        }

        主機和從機都采用查詢方式接收和發送數據:

        voidtransmit(unsignedchardata)//數據發送

        {

        while(!(UCSRA(1

        UDR=data;//發送數據

        }

        unsignedcharreceive(void)//數據接收

        {

        while(!(UCSRA(1

        returnUDR;//接收數據

        }

        5 結束語

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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 扶绥县| 蒙阴县| 黄大仙区| 靖西县| 湖州市| 麦盖提县| 铜山县| 老河口市| 通海县| 孙吴县| 宝山区| 洪泽县| 松溪县| 绩溪县| 莲花县| 潍坊市| 龙南县| 永安市| 奈曼旗| 饶阳县| 庄河市| 黔南| 达孜县| 沈丘县| 农安县| 涿州市| 南华县| 蚌埠市| 吴旗县| 六安市| 宜君县| 射阳县| 资兴市| SHOW| 东台市| 湘潭县| 始兴县| 金阳县| 平凉市| 安西县| 西乌|