<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 汽車(chē)電子 > 設計應用 > 電動(dòng)汽車(chē)車(chē)載智能顯示系統設計,包括源代碼、原理結構圖

電動(dòng)汽車(chē)車(chē)載智能顯示系統設計,包括源代碼、原理結構圖

作者: 時(shí)間:2017-06-07 來(lái)源:網(wǎng)絡(luò ) 收藏

本文引用地址:http://dyxdggzs.com/article/201706/350540.htm

引言

作為新型的交通工具,具有節能、污染小的特點(diǎn),是目前最環(huán)保的新型交通工具,并被視為調整交通能源使用結構和改善城市大氣環(huán)境質(zhì)量的有效途徑之一,是解決燃油車(chē)輛所帶來(lái)的能源和環(huán)境問(wèn)題的最有希望的方案之一。在世界范圍內的研究正在如火如荼進(jìn)行;在國內,政府更是把的列為重點(diǎn)攻關(guān)的技術(shù)研究。因此電動(dòng)汽車(chē)智能顯示系統的研發(fā)就在這種大背景下應運而生。

電動(dòng)汽車(chē)智能顯示系統觸摸屏作為一種新穎的交互式設備越來(lái)越展現出巨大的應用前景,電動(dòng)汽車(chē)的智能顯示屏應該具有良好的實(shí)時(shí)性和穩定性,以符合汽車(chē)級產(chǎn)品的要求。

1.總體方案設計

該儀表顯示電動(dòng)汽車(chē)特有的信息,主要包括電機,電機控制器,電池管理(BMS)和充電機等各個(gè)模塊的信息和實(shí)時(shí)狀態(tài)。用戶(hù)可以通過(guò)儀表模塊獲取例如電機的轉速、電機母線(xiàn)電壓、電機母線(xiàn)電流、電機相電流、電機溫度和電機轉速等信息。電池管理系統(BMS)采用電池容量?jì)?yōu)化的估算方法,此方法能夠對電池的剩余容量做出比較準確的估算,同時(shí)還能夠對電池組的總電壓進(jìn)行監控,也可以對單節電池的電壓、溫度和電池容量等信息進(jìn)行監控和實(shí)時(shí)報警。同時(shí)充電機的狀態(tài)和信息也都可以在BMS中顯示。

儀表顯示和各功能模塊之間的信息傳遞都是采用CAN總線(xiàn)的通訊方式,用戶(hù)可以通過(guò)觸摸屏方便快捷地實(shí)現與電動(dòng)汽車(chē)各模塊之間的信息共享和雙向溝通。其主要功能如下:

①車(chē)輛的速度、里程、溫度、電池核電狀態(tài)(SOC)等信息實(shí)時(shí)顯示:

  • 車(chē)輛行駛速度顯示。

  • 電機轉速實(shí)時(shí)顯示。

  • 車(chē)輛行駛總里程表(掉電保存),最大里程數:999,999Km。

  • 單次行駛里程計,最大記數里程999.9Km

  • 檔位指示,顯示車(chē)輛當前的檔位。

  • 控制器溫度指示

  • 電池剩余容量(SOC)實(shí)時(shí)顯示。

②電機控制器的信息和狀態(tài)實(shí)時(shí)顯示,參數設定:

  • 電機轉速顯示

  • 溫度顯示

  • 檔位顯示

  • 母線(xiàn)電壓,母線(xiàn)電流

  • 過(guò)流報警

  • 油門(mén),剎車(chē)開(kāi)關(guān)指示

  • 油門(mén),剎車(chē)給定

③電池管理的信息和狀態(tài)實(shí)時(shí)顯示,參數設定:

  • 實(shí)時(shí)核電狀態(tài)顯示

  • 實(shí)時(shí)電池組總電壓顯示

  • 單節電池電壓實(shí)時(shí)顯示,欠壓、過(guò)壓報警。

  • 單節電池溫度實(shí)時(shí)顯示,過(guò)溫報警。

  • 單節電池容量實(shí)時(shí)顯示,過(guò)放、過(guò)充報警。

  • 電池充放電循環(huán)次數顯示。

④充電機狀態(tài)顯示:

  • 外接充電指示

  • 充電機輸出電壓、電流顯示。

  • 充電機通訊狀態(tài)指示

⑤車(chē)輛故障的實(shí)時(shí)和歷史記錄:

  • 車(chē)輛實(shí)時(shí)故障記錄顯示,最多可以記錄163條信息。

  • 車(chē)輛歷史故障記錄顯示,最多可以記錄163條信息。

⑥參數設置

可以設置日歷、時(shí)鐘、語(yǔ)言、速比、輪徑、電機最大轉速。

可以設置充電機最高輸出電壓和最大輸出電流。

可以設置控制器參數

可以設置管理的電池種類(lèi),數量,電池的ID號,可以設置電池SOC估算充放電數組數據和基準電壓

⑦采樣外部信號

可以采樣8路外部模擬信號。

2.電路硬件原理

電動(dòng)汽車(chē)智能顯示儀表系統硬件框圖如圖1所示,其主要分為電源部分、通信部分、數據存儲部分、實(shí)時(shí)時(shí)鐘部分等。

圖1 電動(dòng)汽車(chē)智能顯示儀表系統硬件框圖

2.1 電源電路設計

本設計中電源由電動(dòng)汽車(chē)車(chē)載電池提供,給液晶屏、CAN隔離芯片、處理芯片PIC32MX、時(shí)鐘芯片PCF8563、轉換芯片MCP2515、存儲芯片AT24C256供電。

圖2 電源電路設計

車(chē)載電池電壓為48V,通過(guò)一個(gè)DC/DC電源模塊,輸出電壓為12V。液晶屏由TPS65150供電,其允許輸入電壓范圍為1.8V—6V;CAN供電電壓為5V,所以選用一個(gè)LM1117I-5將12V轉換為5V,給CAN與液晶屏供電芯片TPS65150供電。選用LM1117I-3.3將12V轉換為3.3V,給處理芯片PIC32MX、時(shí)鐘芯片PCF8563、轉換芯片MCP2515、存儲芯片AT24C256供電。本系統配備了電池,能防止掉電情況下,日歷時(shí)鐘數據丟失。時(shí)鐘芯片PCF8563在系統正常的工作狀態(tài)下由LM1117I-3.3供電,在系統掉電的工作狀態(tài)下由電池供電。

2.2 A/D采樣通道

PIC32MX A/D轉換模塊包含16個(gè)A/D轉換通道,模擬輸入通過(guò)兩個(gè)多路開(kāi)關(guān)(MUX)連接到一個(gè)SHA??稍贑PU 休眠和空閑模式下工作。本系統數據采樣電路將8路外部模擬信號ANx_input,經(jīng)過(guò)濾波分壓,輸入到PIC32MX的A/D轉換模塊采樣通道ANx(x=0-9,12-15)。如圖3所示

圖3 A/D采樣輸入電路設計

2.3 數據存儲

本系統使用存儲芯片AT24C256存儲電池狀態(tài)歷史數據及車(chē)輛運行故障歷史數據。AT24C256是ATMEL公司推出的256kB串行電可擦可編程只讀存儲器,結構緊湊,8引腳雙排直插式封裝;存儲容量大,內部有512頁(yè),每一頁(yè)為64字節,任一單元的地址為15位。能夠滿(mǎn)足本系統高容量數據儲存的要求。

圖4 數據存儲及傳輸電路設計

圖4為數據存儲及傳輸硬件接口電路圖。AT24C256存儲芯片AT24C256通過(guò)I2C數據線(xiàn)SDA、時(shí)鐘線(xiàn)SCL與PIC32MX相連接??商峁?56K存儲空間。在系統工作時(shí),可記錄電池狀態(tài)歷史數據及車(chē)輛運行故障歷史數據。

2.4通信設計

本設計包含兩種通信方式,方式與RS485通信方式,兩種通信方式為液晶屏的通信兼容提供了可能。

2.4.1 設計

本液晶屏設計采用的主控芯片PIC32MX440F128L不帶有CAN功能,因此本設計中的采用MCP2515+ PCA82C250T且外加一個(gè)磁偶隔離芯片來(lái)實(shí)現CAN通信功能,通信波特率125Kbps,采用11位標準標志符,CAN通信網(wǎng)絡(luò )可連接節點(diǎn)最多112個(gè),可滿(mǎn)足對110節單體電池的監控。CAN通信原理框圖如圖5所示:

圖5 CAN通信原理框圖

從電池和電機控制器發(fā)出的信息通過(guò)CAN總線(xiàn)送到CAN收發(fā)器,再經(jīng)過(guò)轉換和隔離送入CAN控制器芯片,CAN信息經(jīng)過(guò)CAN控制器處理信息數據最后以SPI通訊方式傳送給主控芯片PIC32MX440F128L進(jìn)行數據處理。電路原理如圖6所示:

圖6 CAN通行原理圖

其中MCP2515是一款CAN協(xié)議控制器,完全支持CAN V2.0B技術(shù)規范,通信速率為1Mb/s。該器件主要由三個(gè)部分組成:① CAN模塊,包括CAN協(xié)議引擎,驗收濾波寄存器,發(fā)送和接受緩沖寄存器。②用于配置該器件及其運行的控制邏輯和寄存器。③SPI協(xié)議模塊。MCP2515能發(fā)送和接收標準和擴展數據幀和遠程幀。PCA82C250T是CAN收發(fā)器,支持“ISO 11898”標準,通信速率可達1Mb/s,具有很強的抗電磁干擾和抗無(wú)線(xiàn)干擾的能力,是雙通道數字隔離器,采用了高速CMOS工藝和芯片級的變壓器技術(shù),工作電壓為2.7V到5V,符合車(chē)用等級,工作溫度可達到125°C。傳輸速率可達到25Mb/s。

2.4.2 RS485通信

液晶屏上配備有RS485通信接口,以方便液晶屏與外部進(jìn)行通信。RS485是一種共模通信方式,具有較強的抗干擾能力。PIC32MX440F128L自帶RS485通信接口,其輸出信號送給MAX2M3425芯片,該芯片能發(fā)送、接收RS485信號,能進(jìn)行半工和全雙工的傳輸方式,具有最大1M/S的傳輸方式,RS485通信電路原理圖如圖7所示:

圖7 RS485通信接口電路原理圖

2.5 液晶屏實(shí)時(shí)時(shí)鐘顯示設計

本液晶屏設計時(shí)鐘顯示數據通過(guò)PCF8563實(shí)時(shí)時(shí)鐘/日歷芯片來(lái)產(chǎn)生。PCF8563是低功耗的CMOS實(shí)時(shí)時(shí)鐘日歷芯片,它提供一個(gè)可編程的實(shí)時(shí)時(shí)鐘輸出,一個(gè)中斷輸出和掉電檢測器。所有的地址和數據通過(guò)I2C總線(xiàn)接口串行傳遞,最大總線(xiàn)速度可達到400Kbit/S。PCF8563有16個(gè)8位寄存器,一個(gè)內置32.768KHZ的振蕩器,一個(gè)分頻器,一個(gè)可編程的時(shí)鐘輸出,一個(gè)定時(shí)器,一個(gè)報警器,一個(gè)掉電檢測器和一個(gè)400KHZ的I2C總線(xiàn)接口。電路原理圖如圖8所示:

圖8 日歷時(shí)鐘電路原理圖

圖8中PCF8563芯片的5、6引腳為I2C總線(xiàn)用的兩個(gè)引腳,兩個(gè)引腳必須用一個(gè)上拉電阻與正電源連接,這兩個(gè)引腳與PIC32MX440F128L的I2C引腳相連實(shí)現PIC32MX440F128L與日歷時(shí)鐘芯片間傳遞數據。液晶屏工作時(shí),PIC32MX440F128L主控芯片先通過(guò)I2C對PCF8563芯片進(jìn)行初始化,設定好當前顯示的年月日以及時(shí)間信息,設定完成確認后,單片機將數據傳送給圖形處理器芯片,最后在液晶屏上顯示。如果在使用過(guò)程中想調整顯示的時(shí)間,可直接在液晶屏上通過(guò)按鈕修改。PIC32MX440F128L主控芯片會(huì )不斷地查詢(xún)液晶屏按鈕動(dòng)態(tài)信息,并發(fā)送相應的指令信息到PCF8563芯片修改時(shí)間。

2.6 PIC32MX與SSD1926的接口電路

SSD1926是一款中小規模的顯示控制芯片。采用128引腳LQFP封裝,256 KB靜態(tài)存儲空間和2D圖像引擎,可以支持單色和彩色LCD;32位內部數據通道,可以提供高帶寬的顯示內存,以實(shí)現快速的屏幕刷新;采用單電源供電和單時(shí)鐘輸入,具有很短的CPU訪(fǎng)問(wèn)延遲時(shí)間,可以支持無(wú)READY/WAIT信號的微處理器。這些特點(diǎn)能夠極大地簡(jiǎn)化外圍電路的設計。同時(shí),SSD1926還具有強大的總線(xiàn)兼容性,可與多種類(lèi)型的MCU連接,除了支持SRAM接口與ARM系列連接、ISA接口與NEC系列連接外,還支持8/16位8080時(shí)序間接尋址方式,能夠方便地與各種具有并口的MCU連接。本設計采用PIC32MX460F512L的8位/16位并行控制接口模塊與SSD1926接口。硬件接口框圖如圖9所示:

圖9 PIC32MX440F128與SSD1926接口框圖

CS為片選信號,RS為地址與數據選擇信號,RESET為復位信號,都可以由通用I/O口進(jìn)行控制,分別用RD10、RC2和RC1與其連接。數據總線(xiàn)DB[15:0]與并行控制接口模塊中的PMD[15:0]引腳分別對接。WR和RD為讀寫(xiě)信號,由并行控制接口模塊中的PMWR和PMRD引腳分別控制。SSD1926對接收到的數據進(jìn)行處理之后,再通過(guò)與LCD的接口驅動(dòng)TFT彩色液晶屏進(jìn)行顯示。

2.7 觸摸功能的硬件設計

電阻式觸摸屏處于與外界完全隔離的工作環(huán)境,不怕灰塵和水汽,可以用任何物體來(lái)觸摸,可以寫(xiě)字畫(huà)圖,廣泛應用于工業(yè)控制領(lǐng)域中。觸摸屏工作時(shí),上下導體層可以看作電阻網(wǎng)絡(luò )。當某一層電極加上電壓時(shí),會(huì )在該電阻網(wǎng)絡(luò )上形成電壓梯度。若施加外力使得上下兩層電極在某一點(diǎn)相接觸,則在電極未施加電壓的另一層可以檢測出接觸點(diǎn)的電壓,從而換算出接觸點(diǎn)的坐標值。本作品選用4線(xiàn)電阻式觸摸屏,其電阻網(wǎng)絡(luò )工作原理如圖10所示。

圖10 電阻網(wǎng)絡(luò )工作原理圖

系統工作時(shí),首先把AN11/RB11、AN4/RB4復用引腳設置為I/O引腳。RB11輸出高電平(+3.3 V),RB4引腳輸出低電平(0 V),在頂層的電極X+、X-上即產(chǎn)生了3.3 V的電壓。當有外力使得上下兩層在某一點(diǎn)接觸時(shí),在底層Y+、Y-引腳上就會(huì )輸出接觸點(diǎn)處的電壓。此時(shí),AN10/RB10、AN5/RB5設置為A/D輸入通道。采樣此引腳上的電壓信號,即可得到Y+、Y-引腳上的電壓值,根據式(1)可以計算出X坐標:

觸點(diǎn)X坐標=X軸分辨率×X相電壓采樣值/1 024 (1)

本設計為10位的精度A/D采樣,3.3 V輸入時(shí)對應的采樣值即為1 024。然后,改變4個(gè)引腳的輸出定義,將A/D輸入引腳RB10設置為I/O引腳輸出高電平,RB5設置為I/O引腳輸出低電平,將3.3 V電壓切換到底層電極Y+、Y-上,設置AN11和AN4為A/D輸入引腳。對X+、X-引腳進(jìn)行A/D采樣,測量得到接觸點(diǎn)處的Y相電壓,根據式(2)可以計算出Y坐標:

觸點(diǎn)Y坐標=y軸分辨率×y相電壓采樣值/1 024 (2)

2.8 電氣連接

液晶屏共有6個(gè)接線(xiàn)引腳,如圖11所示。1,2腳是給儀表供電用DC48V輸入,接到電池組正極和負極。3,4腳是CAN+5V和CAN GND,這一組+5V電源由儀表電路產(chǎn)生,給CAN總線(xiàn)供電。5,6腳是CAN_H和CAN_L,與其它模塊的CAN通信線(xiàn)連接。電池檢測模塊如圖12所示。

圖11 CAN通信電氣連接圖

圖12 電池監測模塊

2.9 LED背光控制接口

本設計提供了對LED背光電路的調節控制接口,其硬件接口電路如圖13所示??梢酝ㄟ^(guò)芯片PIC32MX輸出3路PWM(OCS2-OCS4)對LCD的背光電路進(jìn)行控制,可以進(jìn)行明暗調節。在某些工作狀態(tài),可關(guān)掉背光電源,降低電源損耗。

PIC32440F128L

圖13 LED背光控制硬件接口電路

3.軟件設計

本設計中的軟件主要包括兩方面的內容:圖形顯示和數據通信。軟件部分包括設備驅動(dòng)程序層、圖形元素層、圖形對象層和應用層,設備驅動(dòng)程序層為硬件提供必要的驅動(dòng)程序,圖形元素層直接與設備驅動(dòng)程序對話(huà),圖形對象層提供控件驅動(dòng)函數庫,應用層通過(guò)控件繪制界面、開(kāi)發(fā)應用程序。設備驅動(dòng)程序層、圖形原語(yǔ)層和圖形對象層都屬于系統層。

3.1圖形顯示原理

由于液晶屏在運行時(shí)需要顯示電機控制器,電機,電池模塊,以及充電機等的信息,這些信息量比較多,在一個(gè)界面里不能夠完全顯示。所以在本液晶屏中分別創(chuàng )建了電機控制器等顯示頁(yè)面用于檢測電機控制器及電機的相關(guān)信息,電池監測頁(yè)面用于監測電池的實(shí)時(shí)狀態(tài),充電機頁(yè)面和主界面以及一些利于人機交互的頁(yè)面,這些頁(yè)面的創(chuàng )建使電動(dòng)汽車(chē)用戶(hù)能方便快捷的獲得電動(dòng)汽車(chē)的信息。頁(yè)面創(chuàng )建的軟件框圖如圖14所示:

圖14 頁(yè)面創(chuàng )建軟件框圖

汽車(chē)各部分實(shí)時(shí)信息通過(guò)CAN總線(xiàn)送入PIC32MX440F128L芯片,并通過(guò)圖形處理芯片SSD1926芯片在液晶屏上生成圖像,顯示在液晶屏上。同時(shí),通過(guò)液晶屏也可以對各個(gè)模塊的參數進(jìn)行設置,具有良好的人機界面。

圖形顯示是本設計的重點(diǎn)。本設計全部是用來(lái)開(kāi)發(fā)的,系統層使用微芯(Microchip)公司圖形對象層(Graphics Object Layer,GOL)圖形驅動(dòng)庫來(lái)實(shí)現。Microchip 的圖形庫針對范圍寬廣的顯示設備控制器,可與PIC 單片機配合使用;圖形庫提供應用編程接口(API),完成基本圖形對象以及類(lèi)似控件對象的繪制。 圖形庫也使得通過(guò)消息接口集成輸入設備變得容易。圖形庫的分層結構設計使得所有這一切成為可能。Microchip 圖形庫的層次結構如圖15所示。

圖15 Microchip 圖形庫的層次結構圖

應用層是使用圖形庫的程序。圖形對象層(Graphics Object Layer, GOL)生成控件,例如按鈕、滑動(dòng)條和窗口等等??丶╳idget)指GOL 對象或其他對象。 為了控制這些對象,GOL 層具有一個(gè)消息接口,接收從應用層來(lái)的消息。消息接口支持觸摸屏。圖形元素層實(shí)現基本繪圖功能。這些基本功能完成圖形對象的繪制,例如線(xiàn)、條和圓等。 液晶屏驅動(dòng)程序是圖形庫結構的設備相關(guān)層。這一層直接與顯示設備控制器對話(huà)。大量的API 允許應用程序訪(fǎng)問(wèn)圖形庫的任何一層。繪圖和消息處理在內部進(jìn)行,對應用程序保持透明。圖形庫提供了兩種配置(阻塞式和非阻塞式),在編譯時(shí)進(jìn)行設置。對于阻塞式配置,繪圖函數將延遲程序的執行,直到繪圖完成。對于非阻塞式配置,繪圖函數不等待繪圖完成,就把控制權釋放給程序。因為程序能執行其他任務(wù),而不必等待繪圖任務(wù)完成繪制,從而使得單片機時(shí)間的使用更為高效。

對象狀態(tài)

GOL 對象有兩種類(lèi)型的狀態(tài):屬性狀態(tài)和繪圖狀態(tài) 。屬性狀態(tài)定義對象的行為和外觀(guān)。而繪圖狀態(tài)指出在顯示時(shí)對象是否需要被隱藏、部分重畫(huà)或完全重畫(huà),一些常用的屬性狀態(tài)和繪圖狀態(tài)如表1 所示。

表1 常用的對象狀態(tài)

狀態(tài)

類(lèi)型

說(shuō)明

OBJ_FOCUSED

屬性

對象處在聚焦狀態(tài)。通常用于表示對象被選中。有的對象沒(méi)有此屬性。

OBJ_DISABLED

屬性

對象被禁止,忽略全部的消息。

OBJ_DRAW_FOCUS

繪圖

聚焦應被重畫(huà)的對象。

OBJ_DRAW

繪圖

對象應被完全重畫(huà)。

OBJ_HIDE

繪圖

使用共同的背景色填充對象所占有的區域,把對象隱藏起來(lái)。這種狀態(tài)在所有繪圖狀態(tài)中,優(yōu)先級最高。當對象被設置成隱藏時(shí),所有其他繪圖狀態(tài)將不再產(chǎn)生作用。

式樣方案:

所有對象都使用式樣方案來(lái)定義所使用的字體和顏色。在創(chuàng )建對象時(shí),對象可以使用用戶(hù)定義的式樣方案。如果不存在用戶(hù)定義的方案,就將使用缺省的式樣方案。表2 概括了式樣方案的組成部分。

表2 式樣方案的組成

式樣的組成部分

說(shuō)明

EmbossDkColor

暗浮雕顏色,用于對象的三維效果。

EmbossLtColor

亮浮雕顏色,用于對象的三維效果。

TextColor0

TextColor1

對象使用的一般文本顏色。隨著(zhù)對象的不同,在用法上可能有所變化。

TextColorDisabled

已經(jīng)被禁止的對象所使用的文本顏色。

Color0

Color1

對象繪制時(shí)使用的一般顏色。隨著(zhù)對象的不同,在用法上可能有所變化。

ColorDisabled

已經(jīng)被禁止的對象繪制時(shí)使用的顏色。

CommonBkColor

對象的共同背景色。通常用于從屏幕中隱藏對象。

pFont

指向對象所使用的字體的指針。有些對象不使用文本。

活動(dòng)對象鏈表:

圖形庫把當前正在顯示和接收消息的對象放入一個(gè)鏈表中。任何時(shí)候,GOL 消息和繪圖函數針對的都是這張鏈表中的對象。

繪圖

為了繪制對象,應用程序將調用繪圖管理器,GOLDraw()。這個(gè)函數將解析活動(dòng)鏈表,使用設置的繪圖狀態(tài)重畫(huà)對象。當繪制完成后,對象的繪圖狀態(tài)自動(dòng)清除。最先創(chuàng )建的對象將首先繪出。當前鏈表中的對象全部繪出后,GOLDraw() 調用GOLDrawCallback()函數。定制的繪圖可以在GOLDrawCallback() 函數中實(shí)現。

消息的接收和發(fā)送:

可移植性是圖形庫的關(guān)鍵特性。圖形庫支持大量的輸入設備。 圖形庫提供一個(gè)接口,用來(lái)接收來(lái)自輸入設備的消息。所有的輸入設備事件,都將采用GOL 消息結構體的方式發(fā)送到庫里去。結構體定義如下:

typedef struct {

BYTE type;

BYTE event;

int param1;

int param2;

} GOL_MSG;

字段 type 定義輸入設備的類(lèi)型ID。字段 event 表明行為的類(lèi)型。字段type 和event 一起決定如何解釋 param1 和param2。某些情況下,僅使用param1,而另一些情況下可能兩個(gè)參數字段都需要。

當屏幕被觸摸時(shí),應用程序必須先填充消息結構體,然后把它傳送給庫中的消息處理函數GOLMsg(GOL_MSG*pMsg)。對象(包括它的x、y 位置),將根據目前的狀態(tài)和事件,改變其狀態(tài)。針對輸入事件而定制的行為,可以放在GOLMsgCallback() 函數中。一旦有對象收到有效的消息,這個(gè)函數就會(huì )被調用。

圖形庫用法:

圖形庫的設計,旨在使圖形接口能夠無(wú)縫地集成到應用程序中去。通常,對象行為是通過(guò)圖形庫來(lái)進(jìn)行管理的。把收到的消息進(jìn)行處理,根據消息的內容,改變受影響的對象狀態(tài)。然后,圖形庫自動(dòng)地重畫(huà)對象,顯示狀態(tài)的改變。

在用戶(hù)接口模塊和顯示驅動(dòng)程序已被選擇和加載的前提下,調用InitGraph(),復位顯示設備控制器,把光標位置移動(dòng)到(0,0) ,然后初始化顯示器成全黑狀態(tài)。然后,調用GOLCreateScheme(),定義用于對象的式樣方案。

項目文件

圖形庫安裝后,項目目錄結構如圖16所示:

圖16 Microchip項目層次結構圖

此目錄作為項目目錄,可以添加應用程序代碼,也可以與圖形庫一道被編譯。Graghics Lib 子目錄下存放的是圖形庫。Source Files子目錄存放C 文件、文檔和實(shí)用程序。Headers子目錄包含子目錄Graphics Lib圖形庫的頭文件和其他頭文件。

3.2軟件設計程序流程框圖

本設計主程序流程圖如圖17所示:

圖17 主程序流程圖

當液晶屏啟動(dòng)時(shí)開(kāi)始對系統進(jìn)行配置,對變量、EEPROM、定時(shí)計數器等進(jìn)行初始化,等待50ms后,系統進(jìn)入穩定,并創(chuàng )建代替的樣式方案。隨后從EEPROM讀取單次行駛里程和總行駛里程,并在對語(yǔ)言和時(shí)鐘模式進(jìn)行選擇時(shí)初始化用戶(hù)定義的式樣方案(例如字體,顏色)。在此之后執行創(chuàng )建液晶屏頁(yè)面,處理觸摸信息,CAN接受處理等操作。最后是CAN信息的接收,處理和發(fā)送。

在此要特別強調的是觸摸信息分為四種:①無(wú)觸摸信息②接觸觸摸屏③離開(kāi)觸摸屏 ④觸摸在液晶屏上移動(dòng)。當無(wú)觸摸信息時(shí),液晶屏顯示原有界面。當有物體接觸觸摸屏時(shí),進(jìn)入中段,當接觸物體離開(kāi)觸摸屏時(shí)進(jìn)入下一界面。本設計暫時(shí)還沒(méi)有考慮第四種情況。這也是需要改進(jìn)的地方。

液晶屏顯示面積有限,不可能將所有的信息顯示在同一界面下,因此采用界面分層的層次結構來(lái)滿(mǎn)足不同信息的顯示。每層下面對應相應的軟件流程框圖。顯示的層次結構如圖18所示:

圖18 層次結構圖

本設計中主要通信方式為CAN通信,也是電動(dòng)汽車(chē)與液晶顯示屏對話(huà)的語(yǔ)言,其程序設計流程框圖如圖19所示。

圖19 CAN通信結構圖

3.3 智能顯示儀表界面

開(kāi)機啟動(dòng)時(shí),屏幕進(jìn)入主界面,如圖20所示:

圖20 主界面

圖20中顯示了車(chē)速,車(chē)輛行駛的距離,時(shí)間,電池等信息,各模塊具體信息通過(guò)點(diǎn)擊功能建進(jìn)入圖21所示界面。

圖21 液晶屏目錄界面

這個(gè)界面包括:控制器矢量控制,控制器壓頻控制,控制器直接轉矩控制,小計里程清零,能量清零,電池,充電機,系統設置,故障,鎖定界面和返回。點(diǎn)擊其中一個(gè)按鍵將進(jìn)入相應的控制界面,進(jìn)行更為詳細的信息顯示和設置。

當點(diǎn)擊控制器矢量控制按鈕,進(jìn)入控制器矢量控制界面,該界面可以監視電機的相關(guān)信息,如圖22所示:

圖22 矢量控制界面

圖22中電機轉速,行駛速度,電機溫度,控制器溫度,電機電壓,電流,頻率等參數都由CAN總線(xiàn)傳送給Microchip-PIC32芯片,再由Microchip-PIC32信息處理后,將實(shí)時(shí)的數據在液晶顯示屏上進(jìn)行顯示。

當電池在充電或者放電時(shí),電池電壓,溫度,SOC等信息都會(huì )發(fā)生變化。液晶屏程序對充放電都進(jìn)行管理。當通信出現問(wèn)題時(shí),在液晶屏右上角將顯示通信故障。如果發(fā)生過(guò)充,或者過(guò)放,液晶屏上將對過(guò)充過(guò)放電池電壓顯示為紅色以引起司機注意。在必要的時(shí)候將自動(dòng)關(guān)斷充電機阻止充電機對電池進(jìn)行過(guò)充電,過(guò)放電也是如此。如圖23所示。

圖24 電池狀態(tài)監控界面

本設計由于要滿(mǎn)足不同電池類(lèi)型的需求,所以對鉛酸電池,錳酸電池,磷酸鐵鋰電池以及不同節數電池組成的電池組都進(jìn)行了考慮。并進(jìn)行了程序設計。當使用不同電池類(lèi)型時(shí),需要在系統設置中對電池類(lèi)型進(jìn)行選擇。在圖24中,1號,4號,6號電池由于沒(méi)接電池檢測芯片,所以顯示通訊故障。表3是不同電池類(lèi)型的編號。

表3不同電池類(lèi)型的編號

電池類(lèi)型

電池電壓(電池節數)

電池編號

鉛酸

6V

0

8V

1

12V

2

磷酸鐵鋰

16節

3

24節

4

錳酸

3.3V

5

缺省

----

6

該選擇必須進(jìn)入系統設置,并輸入密碼才能進(jìn)行修改。密碼保護功能能阻止系統被隨意設置,從而保證系統設置的正確性。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>