新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基子CAN總線的分布式網(wǎng)架健康狀態(tài)監(jiān)測系統(tǒng)的設(shè)計

基子CAN總線的分布式網(wǎng)架健康狀態(tài)監(jiān)測系統(tǒng)的設(shè)計

作者: 時間:2016-11-21 來源:網(wǎng)絡(luò) 收藏
在某大網(wǎng)架結(jié)構(gòu)的建筑中,由于網(wǎng)架結(jié)構(gòu)的特殊性及其所處地理位置在沿海臺風多發(fā)地帶,因此需要設(shè)計高速數(shù)據(jù)采集系統(tǒng)對網(wǎng)架結(jié)構(gòu)的健康狀況進行實時監(jiān)測,并對數(shù)據(jù)進行實時分析和評估。由于需要對網(wǎng)架上受力情況進行多點監(jiān)測,考慮到硬件集中控制擴展能力差且在現(xiàn)場施工有較大的布線困難,因此本系統(tǒng)采用目前廣泛應(yīng)用的分布式系統(tǒng)設(shè)計方案,將各個控制單元分布在現(xiàn)場各采集點上。為了實現(xiàn)分布式系統(tǒng)的監(jiān)測與控制功能,需要建立良好的通訊方式,以完成系統(tǒng)主機與各智能單元之間的信息交換與通信。根據(jù)本數(shù)據(jù)采集系統(tǒng)的特點,其通信系統(tǒng)應(yīng)具有良好的可靠性、適應(yīng)性、可擴展性和簡單的連接方式,并能滿足長距離傳輸?shù)男枰?。由于此?shù)據(jù)采集系統(tǒng)節(jié)點數(shù)多(100路)、對信號傳輸速度要求高且誤碼率低,利用485總線搭建數(shù)據(jù)采集系統(tǒng)的傳統(tǒng)方式,其最大控制結(jié)點只能有32個,在超過lkm的布線結(jié)構(gòu)中傳輸速度只有l(wèi)OOkbps,且“數(shù)據(jù)碰撞”和“死鎖”等問題不易解決,因此采用485總線顯然達不到設(shè)計要求。


1 采集卡硬件電路的設(shè)計

本文引用地址:http://m.butianyuan.cn/article/201611/319184.htm

1.1 CAN總線分布式系統(tǒng)結(jié)構(gòu)設(shè)計

系統(tǒng)結(jié)構(gòu)如圖1所示。本系統(tǒng)由上位監(jiān)控PC機、

1.2.2 A/D模塊設(shè)計

A/D芯片選用12位高速采集芯片AD574。在本設(shè)計中,A/D模塊的功能是將外部模擬信號通過AD574轉(zhuǎn)換成數(shù)字信號后并行輸入到AT89C51,然后AT89C51將其打包,并行輸出至CAN總線通信控制器SJA1000,經(jīng)總線收發(fā)器至CAN總線。其監(jiān)控電路采用DS1232,它具有電源監(jiān)控、手動復(fù)位和看門狗功能,還能同時輸出高低電平的兩路復(fù)位信號,分別輸出至AT89C51和SJA1000的復(fù)位端,以滿足本次設(shè)計的要求。

2 軟件設(shè)計

本健康監(jiān)測系統(tǒng)要求軟件部分具有現(xiàn)場數(shù)字信號顯示、檢測并驅(qū)動現(xiàn)場信號設(shè)備等功能。在本設(shè)計中主要完成兩部分任務(wù):第一是PC機部分的上位機顯示,主要通過集成開發(fā)環(huán)境軟件設(shè)計出上位機監(jiān)視顯示界面,其重點在于PC機與現(xiàn)場節(jié)點間的通信;第二是現(xiàn)場節(jié)點控制設(shè)計,即設(shè)備驅(qū)動功能的實現(xiàn),目的是能接收上位機的控制信號,使現(xiàn)場節(jié)點按既定的工作方式工作。

根據(jù)系統(tǒng)的工作要求,工作重點包括CAN總線通信程序、看門狗的初始化、A/D采樣控制程序、執(zhí)行機構(gòu)控制程序和控制算法等,主要流程如圖4所示。限于篇幅,這里著重介紹SJA1000初始化程序設(shè)計、發(fā)送程序設(shè)計、接收程序設(shè)計以及A/D轉(zhuǎn)換程序的設(shè)計。

2.1 SJA1000初始化設(shè)計

初始化流程圖如圖5所示。AT89C51上電或復(fù)位后,調(diào)用復(fù)位程序給SJA1000的復(fù)位端(RST)提供復(fù)位信號,使SJA1000進入復(fù)位模式。SJA1000的初始化只有在復(fù)位模式下才可以進行。初始化程序主要完成以下寄存器的設(shè)計:(1)通過對SJA1000的時鐘分頻寄存器定義,判斷是使用BassicCAN模式還是使用PeliCAN模式;是否使能CLOCKOUT及輸出時鐘頻率;是否使用旁路CAN輸入比較器;TX1輸出是否采用專門的接收中斷。(2)通過寫驗收碼寄存器和驗收屏蔽寄存器定義接收報文的驗收碼,以及對報文和驗收碼進行比較的相關(guān)位定義驗收屏蔽碼。(3)通過寫總線定時寄存器定義總線的位速率、位周期內(nèi)的采樣點和一個位周期內(nèi)的采樣數(shù)量。(4)通過寫輸出寄存器定義CAN總線輸出管腳TX0、TX1的輸出模式和輸出配置。(5)清除SJA1000的復(fù)位請求標志,進入正常工作模式,這樣SJA1000方可進行報文的發(fā)送和接收。

2.2 發(fā)送和接收程序設(shè)計

單片機將要發(fā)送的報文送到SJA1000的發(fā)送緩沖區(qū),然后將SJA1000命令寄存器的發(fā)送請求標志位(TR)置位,發(fā)送過程由SJA1000獨立完成。在新報文寫入發(fā)送緩沖區(qū)之前,必須檢查狀態(tài)寄存器的發(fā)送緩沖器的狀態(tài)標志位(TBS),若為“1”,則發(fā)送緩沖器被釋放,可將新的報文寫入發(fā)送緩沖器;否則,發(fā)送緩沖器被鎖定,新的報文不能被寫入,發(fā)送程序可以采用中斷方式和查詢方式。在本次設(shè)計中,采用的是查詢方式。

報文的接收也是由SJA1000獨立完成的。收到的報文通過接收濾波器存放在FIFO中,第一條報文進入接收緩沖器,由狀態(tài)寄存器的接收緩沖器狀態(tài)標志位(RBS)和接收中斷標志位(RI)標出。單片機從接收緩沖器取走一條報文后,要通過置位SJA1000的命令寄存器來釋放接收緩沖器。在本次設(shè)計中,接收程序的設(shè)計采用的是中斷方式。

2.3 A/D轉(zhuǎn)換設(shè)計

在本次設(shè)計中采用的是12位逐次逼近型A/D轉(zhuǎn)換器AD574。以查詢方式設(shè)計程序,通過連續(xù)查詢A/D轉(zhuǎn)換結(jié)束標志位判斷轉(zhuǎn)換是否結(jié)束。當轉(zhuǎn)換結(jié)束時,將數(shù)據(jù)送人CPU中進行處理,并將處理后的數(shù)據(jù)保存至6264芯片。

基于CAN總線設(shè)計的高速分布式數(shù)據(jù)采集系統(tǒng)具有一定的使用價值,而且價格低廉、可靠性高。同時系統(tǒng)還具有可擴展性,在需要多通道采集的情況下只需添加少量的采樣保持芯片即可。通過對該總線系統(tǒng)的通信能力進行測試,并將上述系統(tǒng)置于強干擾環(huán)境中進行連續(xù)實驗,發(fā)現(xiàn)使用的通信速率完全可以保證數(shù)據(jù)的實時可靠傳輸,其通信效果完全滿足要求,同時上位機和底層節(jié)點也能夠保證相互間的協(xié)調(diào)工作。



評論


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

關(guān)閉