新聞中心

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

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

作者: 時(shí)間:2012-02-20 來源:網(wǎng)絡(luò) 收藏

2 軟件設(shè)計(jì)

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

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

2.1 SJA1000初始化設(shè)計(jì)

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

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

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

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

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

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

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


上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

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

關(guān)閉