版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于STM32的電動摩托車溫度智能檢測系統(tǒng)設(shè)計摘 要:介紹了以STM32CPU作為控制核心,基于CAN總線協(xié)議的電動摩托車溫度采集系統(tǒng)的設(shè)計,從硬件與軟件兩方面介紹了其溫度采集節(jié)點與中心信息顯示的實現(xiàn)過程。其硬件設(shè)計部分主要包括節(jié)點設(shè)計、主控芯片的選型、溫度傳感器的選型與外圍電路設(shè)計、CAN外圍驅(qū)動電路設(shè)計、LCD外圍電路設(shè)計等。其軟件設(shè)計部分就是對硬件電路的控制,使系統(tǒng)能夠達到預(yù)期的目標。關(guān)鍵詞:STM32 CAN總線協(xié)議 溫度傳感器Abstract: This paper introduces a electric motorcycle temperature acquisition sy
2、stem model based on the CAN and using STM32 as its controller, and describes the process of temperature acquisition in node module and information display in central module from the perspectives of hardware and software. The hardware design part mainly includes node design, the main control chip sel
3、ection, the temperature sensor selection and peripheral circuit design, CAN periphery drive circuit design, LCD peripheral circuit design, etc. The software design part is to the control of the hardware circuit, make the system to achieve the desired objectives. Key words: STM32 CAN bus agreement te
4、mperature sensor1 引言 社會的快速發(fā)展使電動摩托車成為了較為普及的交通工具,溫度是檢測電動摩托車運行狀況的一項重要指標,在實際應(yīng)用中,常在無刷直流電機等處設(shè)置溫度傳感器以檢測行駛情況。在電動摩托車通訊系統(tǒng)中,控制器局部網(wǎng)(Controller Area Network,CAN)是BOSCH公司領(lǐng)先推出的一種多主機局部網(wǎng),由于其卓越性能現(xiàn)已廣泛應(yīng)用于電磁輻射強、工作環(huán)境惡劣的工業(yè)場所,CAN的直接通信距離最遠可達10 km;通信速率最高可達1Mbps。在眾多32位微處理器中,STM32系列基于專為嵌入式應(yīng)用設(shè)計的ARM CortexM3內(nèi)核,性能出眾,功能創(chuàng)新,外設(shè)豐富,廣泛應(yīng)
5、用于工業(yè)及消費類電子產(chǎn)品。使用STM32作為主控芯片,構(gòu)建高性能的CAN總線網(wǎng)絡(luò)化溫度傳感系統(tǒng),將更有利于電動摩托車的穩(wěn)定行駛。2 系統(tǒng)設(shè)計及關(guān)鍵技術(shù)本文設(shè)計的溫度采集系統(tǒng)可以采集電動摩托車不同位置的溫度,并通過CAN總線準確地傳回控制中心,同時系統(tǒng)也可以在溫度異常時做出報警提示。該系統(tǒng)由主控節(jié)點、采集節(jié)點和傳感器組成。傳感器設(shè)置在需要監(jiān)控溫度的電動摩托車部件中,將溫度轉(zhuǎn)化為數(shù)字信號。采集節(jié)點用來收集相近的兩個傳感器信號,然后通過 CAN總線將溫度信息發(fā)送至主控節(jié)點。主控節(jié)點接收到總線上的信息后,進行數(shù)據(jù)處理,并在LCD顯示器上顯示出各監(jiān)控部件的溫度信息。系統(tǒng)結(jié)構(gòu)模型如下圖1所示。主控節(jié)點采集
6、節(jié)點1采集節(jié)點2采集節(jié)點3CAN總線傳感器傳感器傳感器傳感器傳感器傳感器圖1 系統(tǒng)結(jié)構(gòu)圖基于STM32的CAN智能溫度檢測系統(tǒng)采用的關(guān)鍵技術(shù)有以下幾個方面:a. CAN總線協(xié)議;b.基于ARM7的STM32微處理器;c. DS18B20溫度傳感器單總線通信;d. TFT LCD顯示器控制驅(qū)動。3 硬件實現(xiàn)3.1 節(jié)點設(shè)計JTAG接口#溫度傳感器(1)#溫度傳感器(2)*LCDILI9325CPU STM32F103FSMCCANController功能按鍵LED指示燈蜂鳴器CAN收發(fā)器TJA1050CAN總線 溫度采集系統(tǒng)中的節(jié)點包含主控節(jié)點與采集節(jié)點兩種類型,在硬件上的實現(xiàn)過程較為相似,其系
7、統(tǒng)結(jié)構(gòu)框圖如下圖2所示。其中*號標注的為主控節(jié)點特有外設(shè),#號標注的為采集節(jié)點特有外設(shè)。圖2 基于STM32溫度檢測節(jié)點系統(tǒng)結(jié)構(gòu)框圖3.2 STM32核心主控芯片采用STM32F103VET6,STM32系列32位微處理器采用ARM V7的CortexM3內(nèi)核,接口豐富, 外設(shè)完整,主頻高達72MHz,使用3.3V電壓供電。內(nèi)置有CAN控制器與FSMC控制器,簡化了系統(tǒng)的實現(xiàn)過程1。bxCAN (Baisc Extended CAN)是STM32內(nèi)置的CAN控制器,支持2. 0A和2. 0B CAN協(xié)議,最高速率可達到1Mbit/s。其中包含3個發(fā)送郵箱,2組各包含3個接收郵箱的FIFO,14
8、個可變位寬的過濾器組。報文的發(fā)送和接收由CAN內(nèi)核自動實現(xiàn)。FSMC (Flexible Static Memory Controller)是STM32內(nèi)置的靜態(tài)存儲控制器,F(xiàn)SMC映射管理的1GB空間被分為4個BANK, LCD控制芯片中的Flash可以被映射到BANK1,在之后的顯示使用中,只需更改映射后FSMC中BANK1的值即可對LCD的FLASH進行操作2。3. 3 溫度傳感器本系統(tǒng)采用的溫度傳感器是DS18B20“單總線”接口的溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它是一種新型的體積小、適用電壓寬、與微處理器接口簡單的數(shù)字化溫度傳感器。該傳感器測量溫度范圍為-55+125
9、176;C,精度為±0.5°C。DS18B20數(shù)據(jù)端與STM32的GPIO 口連接,因為要求上拉輸出模式,所以可以直接使用GPIO 口的IPU (上拉輸入)模式,傳感器的VDD端接5V DC。3.4 CAN外圍收發(fā)電路TJA1050是CAN控制器和物理總線之間的接口,是一種標準的高速CAN收發(fā)器。輸入級可與STM32的3.3V輸出電壓兼容,可以至少連接110個節(jié)點。本系統(tǒng)的CAN外圍電路如下圖3所示,其中在芯片的S 端口設(shè)置切換開關(guān),用來選擇正常/靜默模式,發(fā)送接收端口直接與STM32的CAN控制器映射端口相連。圖3 CAN外圍驅(qū)動電路3.5 LCD顯示器本系統(tǒng)采用了分辨率
10、為320×240的26萬像素TFT顯示器,LCD控制器為ILI9325,其數(shù)據(jù)總線為16位,為了簡化程序,使用STM32中的FSMC與數(shù)據(jù)總線連接。4 軟件設(shè)計4.1 節(jié)點程序操作過程主控節(jié)點用來接收采集節(jié)點發(fā)出的溫度信息,處理數(shù)據(jù)并顯示。主控節(jié)點的主程序包括:(1) 初始化配置;(2) CAN接收中斷服務(wù);(3) 轉(zhuǎn)換溫度信息程序;(4) 顯示程序;(5) 報警程序。采集節(jié)點的主程序分為三部分:(1) 初始化配置;(2) 與傳感器通訊,獲取溫度數(shù)據(jù);(3) 處理數(shù)據(jù)并發(fā)送至主控節(jié)點。采集節(jié)點每隔一秒重復(fù)2、3兩個步驟,實時發(fā)送更新溫度數(shù)據(jù)。主控節(jié)點的程序流程,如下圖4所示。系統(tǒng)初始
11、化開啟接收中斷服務(wù)有效接收中斷關(guān)閉接收中斷轉(zhuǎn)換溫度信息程序顯示程序是否超過預(yù)設(shè)溫度報警程序是否按鍵確認報警是否否是是否圖4 主控節(jié)點程序流程圖4.2 初始化配置硬件通電后,各個節(jié)點需要初始化配置以激活各項功能,采集節(jié)點需要進行RCC (時鐘)、GPIO (通用外圍輸入輸出口)、CAN控制寄存器的初始化配置,主控節(jié)點除以上三種配置外,還需進行NVIC (中斷)、FSMC和 LCD的初始化。下面簡要介紹CAN控制器、LCD以及STM32時鐘的初始化配置。CAN控制器的初始化分為工作方式配置和過濾器配置,在本系統(tǒng)的初始化流程中只需要對CAN工作方式進行配置。其中,波特率的設(shè)定是通過配置發(fā)送過程中各個
12、環(huán)節(jié)的時間量子數(shù)和CAN的時鐘關(guān)系實現(xiàn)的。發(fā)送1個bit 的時間 NormalBitTime = Tq+TBS1+TBS2,這三個時間段的單位由設(shè)置CAN的Prescaler參數(shù)和系統(tǒng)時鐘相聯(lián)系。本系統(tǒng)設(shè)定Tq = 1,TBS1 =3,TBS2 =5, Prescaler = 4,由公式(1)可知: = (1)其中CAN CLOCK為AHB1 =36MHz,可以算得波特率為1Mbit/s,設(shè)置程序如下:CANInitStructure. CANSJW = CANSJW1tq; /設(shè)置重新同步跳轉(zhuǎn)的時間量子CANInitStructure. CANBS1=CANBS18tq; /設(shè)置字段1的時間
13、量子數(shù)CANInitStructure. CANBS2=CANBS27tq; /設(shè)置字段2的時間量子數(shù)CANInitStructure. CANPrescaler=1; /配置時間量子長度為1周期LCD在使用顯示命令之前,需要進行一系列初始化配置,根據(jù)需求調(diào)節(jié)顯示器的對比度、Gamma和顯示區(qū)域等。初始化完畢,在之后的顯示程序中,只需調(diào)用顯示函數(shù),寫入顯示區(qū)域與顏色數(shù)據(jù),即可完成目標。 下面函數(shù)的主要功能就是初始化STM32的時鐘,其中還包括對向量表的配置以及相關(guān)外設(shè)的復(fù)位及配置。代碼如下: Void Stm32ClockInit(u8 PLL) unsigned char temp=0; M
14、YRCCDeInit(); /復(fù)位并配置向量表 RCCCR=0x00010000; /外部高速時鐘使能HSEON While(!(RCCCR17); /等待外部時鐘就緒 RCCCFGR=0x00000400; /APB1/2=DIV2;AHB=DIV1; PLL=2; /抵消2個單位 RCCCFGR=PLL18; /設(shè)置PLL值216 RCCCFGR=116; /PLLSRC ON FLASHACR=0x32; /FLASH 2個延時周期 RCCCR=0x01000000; /PLLON While(!(RCCCR25); /等待PLL鎖定 RCCCFGR=0x00000002; /PLL作為
15、系統(tǒng)時鐘 While(temp!=0x02); /等待PLL作為系統(tǒng)時鐘設(shè)置成功 temp=RCCCFGR2; temp&=0x03; 4.3 溫度傳感器通訊程序DS18B20采用單總線模式,與其相連的GPIO口需要分時作為輸入或輸出端口。單總線的通信以初始化序列開始,首先GPIO口輸出500的低電平,產(chǎn)生復(fù)位脈沖,然后釋放總線,使總線被拉高1560,并將GPIO口置為上拉輸入模式,等待60240的應(yīng)答低電平。成功接收傳感器應(yīng)答脈沖后,進行溫度讀取操作。DS18B20輸出的溫度數(shù)據(jù)占2個字節(jié),高字節(jié)數(shù)據(jù)中前4位為符號位,當溫度為負數(shù)時,符號位為1,此時溫度的絕對值用補碼表示。DS18B
16、20溫度讀取程序流程如下圖5所示。開始初始化序列應(yīng)答電平跳過讀序列號啟動溫度轉(zhuǎn)化等待轉(zhuǎn)換完成檢測DQ端電平讀取寄存器數(shù)據(jù)結(jié)束低高否是圖5 DS18B20溫度讀取流程圖4.4 CAN發(fā)送程序采集節(jié)點與傳感器通信后,將所獲取的溫度數(shù)據(jù)發(fā)送至主控節(jié)點。因為每個采集節(jié)點控制2個溫度傳感器,所以在CAN的通訊協(xié)議中,用標準標識符表示節(jié)點號,用擴展標識符表示傳感器號,便于主控節(jié)點的辨別。然后將溫度數(shù)據(jù)分兩個字節(jié)發(fā)送至CAN總線。發(fā)送報文前,需要對發(fā)送規(guī)則進行一系列配置。以下是采集節(jié)點1傳感器1溫度數(shù)據(jù)的發(fā)送程序:TxMessage. StdId =0x01; /配置報文的標準標識符 TxMessage.
17、ExtId =0x0001; /配置擴屏標識符 TxMessage.IDE=CANIDEXT; /使用標準標識符+擴屏標識符方式 TxMessage.RTR= CANRTRDATA; /報文為數(shù)據(jù)幀 TxMessage.DLC=2; /報文發(fā)送數(shù)據(jù)長度為2字節(jié) TxMessage.Data(0)=k; /發(fā)送第一字節(jié) TxMessage.Data(1)=(k8); /發(fā)送第二字節(jié) CANTransmit(CAN1,& TxMessage); /CAN1報文發(fā)送4.5 顯示程序為將轉(zhuǎn)換為十進制的溫度數(shù)據(jù)在指定位置顯示,首先制作了含有英文與數(shù)字字符的1608簡易字庫, 編寫了在指定位置顯示
18、字符的程序。顯示過程中,首先顯示歡迎界面,讓采集節(jié)點的溫度傳感器完成初始化并穩(wěn)定工作;然后顯示傳感器號碼等固定內(nèi)容;最后實時更新溫度數(shù)據(jù)的符號位、整數(shù)位、小數(shù)位即可。LCD 字符顯示程序流程圖如下圖6所示。開 始確定字符位置(X,Y),字符標記根據(jù)字符標記判斷對應(yīng)的字庫數(shù)組行起始位置命令0x50,X行結(jié)束位置命令0x51,X+7列起始位置命令0x52,Y列結(jié)束位置命令0x53,Y+15寫入16個字節(jié)的字庫數(shù)據(jù)結(jié)束圖6 LCD字符顯示程序流程圖4.6 報警程序程序中分別設(shè)定了每個溫度傳感器采集數(shù)據(jù)的最大標準值,當某傳感器所采集溫度超標時,使主控節(jié)點的LED燈閃爍并開啟蜂鳴器,發(fā)出警報。用戶需要按
19、鍵接收警報才能返回正常測溫程序。在實際應(yīng)用中,可以連接報警器或制動系統(tǒng),以及時排除故障。5 結(jié)束語本文使用STM32作為主控芯片配合DS18B20溫度傳感器、CAN外圍電路和LCD顯示器,實現(xiàn)基于CAN總線協(xié)議的實時溫度傳感網(wǎng)絡(luò),并介紹了其硬件與軟件設(shè)計與實現(xiàn)過程。由于其硬件電路與軟件設(shè)計都較為簡潔,因而在電動摩托車溫度傳感網(wǎng)絡(luò)上具有較好的應(yīng)用前景。參考文獻1李寧.基于MDK的STM32處理器開發(fā)應(yīng)用M.北京:北京航空航天大學出版社,2008.2潘輝.STM32FSMC機制的NOR Flash存儲器擴展技術(shù)J.單片機與嵌入式系統(tǒng)應(yīng)用,2009(10):3134.附 錄溫度傳感器通訊程序#inc
20、lude "ds18b20.h"#include "delay.h"/復(fù)位DS18B20void DS18B20_Rst(void) DS18B20_IO_OUT(); /SET PA0 OUTPUT DS18B20_DQ_OUT=0; /拉低DQ delay_us(750); /拉低750us DS18B20_DQ_OUT=1; /DQ=1 delay_us(15); /15US/等待DS18B20的回應(yīng)/返回1:未檢測到DS18B20的存在/返回0:存在u8 DS18B20_Check(void) u8 retry=0; DS18B20_IO_IN(
21、);/SET PA0 INPUT while (DS18B20_DQ_IN&&retry<200) retry+; delay_us(1); ; if(retry>=200)return 1; else retry=0; while (!DS18B20_DQ_IN&&retry<240) retry+; delay_us(1); ; if(retry>=240)return 1; return 0;/從DS18B20讀取一個位/返回值:1/0u8 DS18B20_Read_Bit(void) / read one bit u8 data;
22、 DS18B20_IO_OUT();/SET PA0 OUTPUT DS18B20_DQ_OUT=0; delay_us(2); DS18B20_DQ_OUT=1; DS18B20_IO_IN();/SET PA0 INPUT delay_us(12); if(DS18B20_DQ_IN)data=1; else data=0; delay_us(50); return data;/從DS18B20讀取一個字節(jié)/返回值:讀到的數(shù)據(jù)u8 DS18B20_Read_Byte(void) / read one byte u8 i,j,dat; dat=0; for (i=1;i<=8;i+)
23、j=DS18B20_Read_Bit(); dat=(j<<7)|(dat>>1); return dat;/寫一個字節(jié)到DS18B20/dat:要寫入的字節(jié)void DS18B20_Write_Byte(u8 dat) u8 j; u8 testb; DS18B20_IO_OUT();/SET PA0 OUTPUT; for (j=1;j<=8;j+) testb=dat&0x01; dat=dat>>1; if (testb) DS18B20_DQ_OUT=0;/ Write 1 delay_us(2); DS18B20_DQ_OUT=1; delay_us(60); else DS18B20_DQ_OUT=0;/ Write 0 delay_us(60); DS18B20_DQ_OUT=1; delay_us(2); /開始溫度轉(zhuǎn)換void DS18B20_Start(void)/ ds1820 start convert DS18B20_Rst(); DS18B20_Check(); DS18B20_Writ
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 當代學校危機管理與應(yīng)對策略
- 2025年房產(chǎn)典當清償協(xié)議3篇
- 當代教育技術(shù)在教學團隊中的應(yīng)用研究
- 家庭資產(chǎn)配置理財規(guī)劃的核心策略
- 2025年度社區(qū)生活垃圾分類推廣合作協(xié)議3篇
- 提升企業(yè)競爭力的對公業(yè)務(wù)跨部門合作案例分析
- 教育背景下如何提升學生膳食結(jié)構(gòu)多樣性
- 2025年建筑項目合同變更協(xié)議3篇
- 2025年度物業(yè)管理合同詳細條款及管理范圍2篇
- 小學生數(shù)學英語融合教學的探索與實踐
- TSGD7002-2023-壓力管道元件型式試驗規(guī)則
- 2024年度家庭醫(yī)生簽約服務(wù)培訓(xùn)課件
- 建筑工地節(jié)前停工安全檢查表
- 決策的藝術(shù)課件
- 國際經(jīng)濟學國際貿(mào)易的標準理論
- 8D報告培訓(xùn)教材(PPT 47頁)
- -居民死亡醫(yī)學證明(推斷)書
- 糖尿病酮癥酸中毒病例討論-文檔資料
- 液相色譜質(zhì)譜質(zhì)譜儀LCMSMSSYSTEM
- 民辦非企業(yè)單位章程核準表-空白表格
- 派克與永華互換表
評論
0/150
提交評論