新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于CAN總線的嵌入式設(shè)備狀態(tài)監(jiān)測平臺設(shè)計

基于CAN總線的嵌入式設(shè)備狀態(tài)監(jiān)測平臺設(shè)計

作者: 時間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

引言

本文引用地址:http://www.butianyuan.cn/article/201609/304013.htm

實驗室中關(guān)鍵設(shè)備的信息需要及時采集、反饋到主控室中,又因為設(shè)備類型多,促使設(shè)計者開發(fā)主節(jié)點、從節(jié)點的結(jié)構(gòu),總線通信的監(jiān)測平臺。同時,平臺的用戶界面需具有二次開發(fā)能力。因此,本文設(shè)計了一種設(shè)備狀態(tài)監(jiān)測平臺。

本文設(shè)計的系統(tǒng)硬件基于STM32F103芯片,是基于ARM的Cortex—M3架構(gòu),其外設(shè)單元資源豐富,能夠達到系統(tǒng)需求的性能指標。配備了一塊4.3寸TFT顯示、觸摸屏,可直觀地顯示與操作,體現(xiàn)了與用戶的互動。

1 硬件架構(gòu)

以STM32F103為主控芯片,主要包含了5個外圍電路模塊:實時時鐘、模數(shù)處理、數(shù)據(jù)存儲、數(shù)據(jù)傳輸和界面顯示。模數(shù)處理是A/D模塊加預(yù)處理電路,數(shù)據(jù)存儲采用一片2 MB SPI Flash,數(shù)據(jù)傳輸采用CAN接口和RS232接口,顯示屏是4.3寸。如圖1所示,為設(shè)備的硬件架構(gòu)圖。

基于CAN總線的嵌入式設(shè)備狀態(tài)監(jiān)測平臺設(shè)計

系統(tǒng)采用的STM32F103是ST公司推出的基于Cortex—M3內(nèi)核的32位ARM芯片系列。本系統(tǒng)選用的STM32F103ZET6屬于該系列的高容量芯片,片內(nèi)Flash容量為512 KB,片內(nèi)SRAM容量為64 KB,主頻為72MHz。具備完整的FSMC總線、26位地址線和16位數(shù)據(jù)寬度。系統(tǒng)的顯示屏為翰彩4.3寸TFT液晶屏,分辨率為640×480,貼一塊電阻式觸摸屏。顯示屏驅(qū)動模塊是SSD1963,采用了16位(5位紅色、6位綠色、5位藍色)64K接口模式,由FSMC數(shù)據(jù)接口連接控制。觸摸屏芯片為ADS7843,它輸入觸摸屏四路電壓,用SPI通信輸出觸摸點位置信息。圖2是LCD接口電路。

基于CAN總線的嵌入式設(shè)備狀態(tài)監(jiān)測平臺設(shè)計

協(xié)議的高可靠性使其在工業(yè)上得到廣泛應(yīng)用。STM32F103的單元支持協(xié)議2.0A和2.0B;選用的CAN收發(fā)器是TJA1050,在CAN協(xié)議控制器和物理總線之間起到接口作用,設(shè)計120 Ω的終端匹配電阻以適應(yīng)不同的網(wǎng)絡(luò)。CAN模塊的接口電路如圖3所示。

基于CAN總線的嵌入式設(shè)備狀態(tài)監(jiān)測平臺設(shè)計

2 軟件設(shè)計

2.1 整體架構(gòu)

設(shè)計的第一步在于清晰地劃分任務(wù),設(shè)定優(yōu)先級,根據(jù)任務(wù)的執(zhí)行情況調(diào)度系統(tǒng)資源。如圖4所示,μC/OS是系統(tǒng)的總調(diào)度,之上有6個主要的任務(wù),它們分別對應(yīng)硬件架構(gòu)中的模塊,運行整個程序。

基于CAN總線的嵌入式設(shè)備狀態(tài)監(jiān)測平臺設(shè)計

每個任務(wù)分配不同的優(yōu)先級和啟動方式,有周期性啟動、信號量驅(qū)動兩種方式。顯示功能由μCGUI驅(qū)動,F(xiàn)AT32文件由FatFs管理。任務(wù)劃分及資源如表1所列。

基于CAN總線的嵌入式設(shè)備狀態(tài)監(jiān)測平臺設(shè)計

劃分任務(wù)之后,先實現(xiàn)板級支持包,再對通信協(xié)議進行設(shè)計,然后繪制整個μCGUI的界面。

2.2 板級支持包

板級支持包是指在單板上實現(xiàn)全部基礎(chǔ)功能,例如時鐘管理、掉電備份、串口、CAN總線通信、A/D采樣以及顯示任務(wù)的fsmc接口、驅(qū)動優(yōu)盤的SPI接口等。利用ST公司提供的標準化庫函數(shù),調(diào)用庫函數(shù)進行初始化,配置模塊參數(shù),在使用時根據(jù)需要調(diào)用函數(shù)或在中斷進行,完成后封裝成一個Lib庫文件使用。

在系統(tǒng)中斷里設(shè)置:①CAN中斷,用于快速反映CAN口信息;②USART接收中斷,用于接收串口信息;③RTC中斷,用于實時時鐘中斷;④USB有兩個中斷,用于USB端口的收發(fā)設(shè)置。板級支持包的函數(shù)如圖5所示。

全系統(tǒng)的參數(shù)如下:A/D總線模塊采樣率為1 kHz,最高為5 kHz,通道數(shù)8個,可以拓展到16通道。串口速率為115 200,數(shù)據(jù)位為8位,無校驗。CAN用CAN-1口,設(shè)置為500 kbps、250 kbps、100kbps、50 kbps的4檔速率,擴展ID形式。

初始化單板需進行時鐘校正,存儲正確的時間。單板掉電之后用電池工作,存入備份寄存器,上電再取時間參數(shù)(即秒的數(shù)量),換算成對應(yīng)的日期和時間。顯示模塊采用FSMC并行接口控制,實現(xiàn)在屏幕上畫出單個點、單條直線等基本繪圖功能,就能提供接口給μC總線GUI使用。

2.3 CAN總線通信協(xié)議

本設(shè)計采用CAN總線協(xié)議,用狀態(tài)機進行狀態(tài)轉(zhuǎn)換,在具體的指令驅(qū)動下實現(xiàn)從握手到傳輸數(shù)據(jù)的過程。圖6是CAN總線通信的狀態(tài)機。

基于CAN總線的嵌入式設(shè)備狀態(tài)監(jiān)測平臺設(shè)計

CAN總線通信指令是英文單詞縮寫用ASCII碼表示的結(jié)果。在本設(shè)計中,有一個主節(jié)點和3個從節(jié)點。主節(jié)點和從節(jié)點對應(yīng)的指令應(yīng)答方式如圖7所示。初始化時,主節(jié)點在發(fā)出“TEST”指令后,從節(jié)點回復(fù)“ALOK”,表示從節(jié)點收到指令,工作正常。1號和2號從節(jié)點負責測量溫度、濕度和壓力。主節(jié)點發(fā)送“NEED”指令,從節(jié)點1號和2號回復(fù)溫度、濕度數(shù)值給主節(jié)點,格式是對應(yīng)的“指令+數(shù)據(jù)”。主節(jié)點根據(jù)ID與指令,判斷數(shù)據(jù)正確性,及時顯示在屏幕上。

基于CAN總線的嵌入式設(shè)備狀態(tài)監(jiān)測平臺設(shè)計

采樣時,主節(jié)點在指令的驅(qū)動下,切換不同狀態(tài)。主節(jié)點發(fā)送預(yù)備指令,確認從節(jié)點準備好之后,再發(fā)出采樣開始的“SMPL”命令,從節(jié)點收到指令后,啟動采樣,完成后回復(fù)“GOGO”指令。從節(jié)點在采樣結(jié)束后再回復(fù),是為了減少采樣啟動的延時。主節(jié)點進入接收數(shù)據(jù)的狀態(tài),發(fā)送傳輸數(shù)據(jù)指令“DATA”,從節(jié)點先用“LENS”指令告訴主節(jié)點,本次采樣長度是多少,便于主節(jié)點在接收數(shù)據(jù)的時候統(tǒng)計,是否接收到了數(shù)量正確的數(shù)據(jù)。從節(jié)點開始發(fā)送數(shù)據(jù),最后發(fā)送“ENDD”指令,告訴主節(jié)點數(shù)據(jù)傳送結(jié)束。主節(jié)點的數(shù)據(jù)標識清空,回到初始狀態(tài)。這樣完成了一輪數(shù)據(jù)采樣、發(fā)送過程。


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉