陳斌 施偉 魏垂浩 解國(guó)林
1.揚(yáng)州工業(yè)職業(yè)技術(shù)學(xué)院創(chuàng)新創(chuàng)業(yè)學(xué)院;2.江蘇汽車技師學(xué)院汽車工程學(xué)院
本次設(shè)計(jì)依據(jù)FSAE賽車實(shí)際運(yùn)行測(cè)試中的需求,論述了一種基于CAN總線通信和STM32F103ZET6的賽車控制與顯示系統(tǒng)的設(shè)計(jì)方案,包括系統(tǒng)硬件設(shè)計(jì)、軟件程序開發(fā)、硬件電路板的制作與系統(tǒng)調(diào)試等方面。測(cè)試結(jié)果表明系統(tǒng)可通過(guò)各個(gè)模塊的配合實(shí)現(xiàn)對(duì)發(fā)動(dòng)機(jī)控制單元及電機(jī)的精確控制,具有相應(yīng)速度快、定位誤差小、運(yùn)行較為穩(wěn)定等特點(diǎn)。
大學(xué)生方程式汽車賽事是一項(xiàng)以各大高校汽車專業(yè)在校生組成一支團(tuán)隊(duì)共同參與的賽車設(shè)計(jì)與制造競(jìng)賽。FSAE賽車未來(lái)的發(fā)展趨勢(shì)是動(dòng)力性能更為優(yōu)越、操縱穩(wěn)定性更好、結(jié)構(gòu)輕量化、成本最低化,并且更加注重賽車的節(jié)能與環(huán)保。隨著各大高校車隊(duì)之間的競(jìng)爭(zhēng)不斷加劇,研制性能優(yōu)良的賽車控制與顯示系統(tǒng)能讓賽車手更好地了解賽車的行駛狀態(tài),在比賽中為車隊(duì)提供更多的優(yōu)勢(shì)[1]。
根據(jù)FSAE賽車實(shí)際運(yùn)行測(cè)試中的需求,本次系統(tǒng)的硬件模塊設(shè)計(jì)的主芯片采取ST公司的STM32F103ZET6芯片,并配置相應(yīng)的外設(shè)實(shí)現(xiàn)報(bào)文ID的采集、傳輸與顯示功能。賽車顯示與控制系統(tǒng)需要顯示賽車行駛速度、發(fā)動(dòng)機(jī)轉(zhuǎn)速、水溫、蓄電池電壓和檔位信號(hào)等賽車數(shù)據(jù),這些信息主要通過(guò)以下兩種方式進(jìn)行通訊:一部分是對(duì)Motoc M84傳遞過(guò)來(lái)的數(shù)據(jù)進(jìn)行篩選,由CAN總線將發(fā)動(dòng)機(jī)相關(guān)數(shù)據(jù)信息傳遞到STM32進(jìn)行處理,待信號(hào)處理完成后發(fā)送給顯示模塊;另一部分由獨(dú)立線束連接,通過(guò)檔位傳感器采集相關(guān)信號(hào)輸出檔位信息,如圖1所示為儀表硬件總體結(jié)構(gòu)圖。
圖1 賽車儀表硬件結(jié)構(gòu)圖Fig.1 Hardware structure diagram of racing instrument
主控芯片是賽車控制與顯示系統(tǒng)的核心部件,本次設(shè)計(jì)選用了ST公司的STM32F103ZET6微處理器作為系統(tǒng)的核心控制器。主芯片工作頻率高達(dá)72MHz,內(nèi)設(shè)有高速存儲(chǔ)器、通用16位定時(shí)器、SPI接口等,此外,其還包含標(biāo)準(zhǔn)和先進(jìn)的通信接口:CAN總線接口、USART接口和SDIO接口等,進(jìn)一步簡(jiǎn)化了外設(shè)電路的設(shè)計(jì)[2]。
1.2.1 電源供電模塊設(shè)計(jì)
賽車上蓄電池的電源電壓為12V,而本次設(shè)計(jì)采用的元器件分別是以5V和3.3V進(jìn)行供電工作的,所以在設(shè)計(jì)時(shí)需要考慮電平轉(zhuǎn)換,將12V電壓轉(zhuǎn)換成5V電壓時(shí),此次選用了一款高效率同步直流對(duì)直流降壓轉(zhuǎn)換器RT7272B,如圖2所示。電路中采用了瞬態(tài)抑制二極管SMAJ5.0CA,其輸出的5V電壓經(jīng)過(guò)低壓差穩(wěn)壓器AMS 1117-3.3轉(zhuǎn)換成3.3V電壓,從而給元器件供電。
圖2 電源供電模塊電路原理圖Fig.2 Schematic diagram of power supply module circuit
1.2.2 CAN接口模塊設(shè)計(jì)
CAN接口電路作為發(fā)動(dòng)機(jī)控制模塊與STM32進(jìn)行信息交互的通訊接口,它的設(shè)計(jì)好壞將直接影響實(shí)際運(yùn)行中信息通信的穩(wěn)定性與實(shí)用性。本次設(shè)計(jì)CAN總線接口的收發(fā)器選用的是TJA1050,它是一款由恩智浦半導(dǎo)體公司生產(chǎn)的帶隔離功能的高速CAN收發(fā)器芯片[3]。本次系統(tǒng)CAN總線通訊使用差分信號(hào)進(jìn)行信號(hào)傳遞,且每個(gè)節(jié)點(diǎn)設(shè)置了一個(gè)120Ω的電阻,以增強(qiáng)總線傳輸?shù)姆€(wěn)定性和抗干擾能力,從而降低數(shù)據(jù)傳輸中的出錯(cuò)率,該硬件電路設(shè)計(jì)如圖3所示。
圖3 CAN接口硬件電路圖Fig.3 CAN interface hardware circuit diagram
1.2.3 外接智能串口顯示屏的電路設(shè)計(jì)
為了使駕駛員能更直觀的了解賽車的具體車況,本次設(shè)計(jì)采用選用深圳淘晶馳電子有限公司的智能串口屏TJC8048T050_ 011R。為了與顯示系統(tǒng)的電平匹配,這里選用+5V電源供電系統(tǒng)[4]。
由于所選用的智能顯示屏自帶顯示和觸屏驅(qū)動(dòng)電路,并對(duì)外提供連接插,其相關(guān)參數(shù)如表1所示。因此,此次設(shè)計(jì)的硬件電路圖只需用排針將芯片的控制及數(shù)據(jù)引腳接出即可,如圖4所示。
表1 工作環(huán)境和可靠性參數(shù)數(shù)據(jù)表Tab.1 Working environment and reliability parameter data table
圖4 外接智能串口顯示屏(USART HMI)接口的電路原理圖Fig.4 Circuit schematic diagram of external smart serial port display (USARTHMI) interface
由于本次賽車采用的發(fā)動(dòng)機(jī)是CBR600CC,因此在本次采用開關(guān)式擋位顯示器,本裝置由以下幾部分組成,它們分別是擋位檢測(cè)開關(guān)、編碼電路、BCD-7段字形譯碼電路、數(shù)碼管等,如圖5所示。檔位傳感器根據(jù)賽車所處的擋位,接觸所對(duì)應(yīng)的接點(diǎn)0~5,通過(guò)SW1、D1、D2、D3、D4組成了如圖所示的編碼電路,得到相應(yīng)的BCD反碼。經(jīng)過(guò)74LS47譯碼器輸出7段字形碼電平來(lái)驅(qū)動(dòng)數(shù)碼管,將對(duì)應(yīng)的擋位數(shù)字顯示出來(lái)。
圖5 檔位顯示器電路原理圖Fig.5 Schematic diagram of gear display circuit
在AltiumDesigner14.0的軟件環(huán)境下對(duì)電路原理圖和PCB板圖進(jìn)行繪制,為考慮其元件的布局和排放是否合理,用軟件的3D顯示功能來(lái)進(jìn)行檢查,從而盡可能減少因元件布局不當(dāng)造成的失誤。
本次軟件設(shè)計(jì)核心思路在于接收MotoC M84發(fā)動(dòng)機(jī)控制模塊發(fā)送的CAN數(shù)據(jù)包,采集需要顯示車速、轉(zhuǎn)速、水溫、電池電壓的數(shù)據(jù),并將實(shí)時(shí)數(shù)據(jù)傳輸給智能串口屏,從而讓駕駛員直觀的了解賽車的具體車況。整個(gè)程序編寫設(shè)計(jì)的流程如下[5]:
(1)根據(jù)賽車實(shí)際運(yùn)行過(guò)程中顯示的需求,合理規(guī)劃設(shè)計(jì)任務(wù),確保能夠完成賽車實(shí)際運(yùn)行時(shí)數(shù)據(jù)的采集與顯示功能。(2)根據(jù)設(shè)計(jì)方案確定主控芯片的外設(shè)并設(shè)置其工作模式,調(diào)用相應(yīng)的庫(kù)函數(shù)實(shí)現(xiàn)底層基礎(chǔ)硬件的配置。(3)根據(jù)所選發(fā)動(dòng)機(jī)控制單元的通訊協(xié)議的相關(guān)內(nèi)容,編寫相關(guān)的通信協(xié)議棧代碼。(4)在智能串口屏的USART HMI上位機(jī)軟件編譯相關(guān)程序。(5)將相應(yīng)的部件匹配完成后,進(jìn)行調(diào)試工作,使之協(xié)調(diào)工作,達(dá)到預(yù)期功能。
ECU接收傳感器的信號(hào)進(jìn)行運(yùn)算處理,集成一個(gè)數(shù)據(jù)包供后期主控芯片采集數(shù)據(jù)時(shí)使用,由于Can通訊協(xié)議中包含有176位數(shù)據(jù)ID,其中所需要了解的賽車車況的數(shù)據(jù)信息有:車速、轉(zhuǎn)速、發(fā)動(dòng)機(jī)溫度、蓄電池電壓、檔位信號(hào)等。因此,在編寫主程序時(shí),需要考慮從若干數(shù)據(jù)包中采集與核實(shí)相關(guān)數(shù)據(jù)的ID,由Motoc M84的Can通訊協(xié)議可知,轉(zhuǎn)速(RPM)的ID為4∶5,發(fā)動(dòng)機(jī)溫度(Engine Temperature)的ID為12∶13,蓄電池電壓(Battery Voltage)的ID是48∶49,車速(Drive Speed)的ID是60∶61,在編寫主程序時(shí),將相關(guān)的庫(kù)函數(shù)頭文件調(diào)用申明寫在其中,相應(yīng)的主程序編寫如圖6所示。
圖6 主函數(shù)代碼Fig.6 Main function code
在測(cè)試過(guò)程中,發(fā)動(dòng)機(jī)控制模塊會(huì)將從發(fā)動(dòng)機(jī)運(yùn)行中的實(shí)際數(shù)據(jù)信息進(jìn)行處理,并發(fā)出一個(gè)176字節(jié)的數(shù)據(jù)包,此時(shí)所設(shè)計(jì)的系統(tǒng)即可用主控芯片STM32通過(guò)CAN總線通訊從發(fā)送過(guò)來(lái)的這些數(shù)據(jù)包中進(jìn)行篩選,采集實(shí)際所需的數(shù)據(jù)ID。當(dāng)采集到賽車實(shí)際所需的相關(guān)數(shù)據(jù)后傳輸?shù)街悄茱@示屏做出相應(yīng)的顯示。
本次設(shè)計(jì)根據(jù)FSAE賽車實(shí)際運(yùn)行測(cè)試中的需求,論述了一種基于CAN總線通信和STM32的賽車控制與顯示系統(tǒng)的設(shè)計(jì)與研究,在系統(tǒng)各模塊硬件電路設(shè)計(jì)基礎(chǔ)上,編寫了從MotoC M84發(fā)動(dòng)機(jī)控制模塊采集數(shù)據(jù)的CAN總線收發(fā)程序,實(shí)現(xiàn)了對(duì)USART HMI智能串口屏等儀表關(guān)鍵器件的控制測(cè)試結(jié)果表明系統(tǒng)可通過(guò)各個(gè)模塊的配合實(shí)現(xiàn)對(duì)發(fā)動(dòng)機(jī)控制單元及電機(jī)的精確控制,具有相應(yīng)速度快、定位誤差小、運(yùn)行較為穩(wěn)定等特點(diǎn)。
數(shù)字技術(shù)與應(yīng)用2021年11期