新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于CAN總線的雙容水箱控制系統(tǒng)

基于CAN總線的雙容水箱控制系統(tǒng)

作者: 時(shí)間:2013-01-06 來源:網(wǎng)絡(luò) 收藏

圖4 通信模塊主程序流程圖

  (1) CAN控制器的初始化設(shè)置

  CAN控制器的初始化主要是完成SJA1000的初始化設(shè)置,是設(shè)計(jì)的一個(gè)重點(diǎn),也是一個(gè)難點(diǎn)。SJA1000在系統(tǒng)上電、硬件復(fù)位或主控制器發(fā)出復(fù)位命令后需進(jìn)行初始化,以設(shè)定它的工作模式、通信速率、輸出控制方式、標(biāo)識(shí)符和屏蔽格式等重要參數(shù)。

  (2) 數(shù)據(jù)發(fā)送、接收子模塊

  數(shù)據(jù)發(fā)送、接收子模塊主要是控制各個(gè)節(jié)點(diǎn)數(shù)據(jù)的發(fā)送和接收,數(shù)據(jù)從CAN控制器SJA1000發(fā)送到是由CAN控制器自動(dòng)完成的。

  發(fā)送程序只需把包裝好的數(shù)據(jù)送到CAN的發(fā)送緩沖區(qū),然后啟動(dòng)發(fā)送命令即可。發(fā)送程序可采用查詢方式或中斷方式。由于查詢方式比較簡(jiǎn)單,這里不作介紹。而對(duì)于中斷方式,發(fā)送程序分為兩部分:一是主程序,二是中斷服務(wù)程序。主程序主要用于控制信息的發(fā)送及當(dāng)發(fā)送緩沖區(qū)滿時(shí),把要發(fā)送的信息暫存到臨時(shí)存儲(chǔ)區(qū);中斷發(fā)送程序負(fù)責(zé)把臨時(shí)存儲(chǔ)區(qū)中的暫存信息發(fā)送出去。信息從到CAN接收緩沖區(qū)是由CAN控制器自動(dòng)完成的。

  接收程序只需從接收緩沖區(qū)讀取要接收的信息即可。接收程序也可采用查詢方式或中斷方式,兩者的繁簡(jiǎn)程度相當(dāng)。

  4.2 上位機(jī)通信程序的設(shè)計(jì)

  上位機(jī)的軟件設(shè)計(jì)主要包括兩部分內(nèi)容:監(jiān)控界面軟件的設(shè)計(jì)和與適配器通信軟件的設(shè)計(jì)。監(jiān)控界面采用"組態(tài)王"軟件包,對(duì)于不同的系統(tǒng)應(yīng)用再進(jìn)行二次開發(fā),通信程序采用VB編寫。上位機(jī)的通信程序相當(dāng)于一個(gè)接口轉(zhuǎn)換程序,一面和適配器的RS232口進(jìn)行數(shù)據(jù)交換;另一面和組態(tài)王進(jìn)行數(shù)據(jù)交換,如圖5所示。

圖5上位機(jī)通信程序功能示意圖

  VB和適配卡的通信是通過RS232協(xié)議完成的,應(yīng)用VB的通信控件Mscomm可以很方便的實(shí)現(xiàn)。VB和組態(tài)王的通信是動(dòng)態(tài)數(shù)據(jù)交換(DDE)實(shí)現(xiàn)的。

  5 結(jié)束語

  現(xiàn)場(chǎng)總線由于具有數(shù)字式串行網(wǎng)絡(luò)的高可靠性,又是一種低成本的計(jì)算機(jī)網(wǎng)絡(luò),因此倍受人們青睞,已被廣泛應(yīng)用到各種測(cè)量、中。是現(xiàn)場(chǎng)總線技術(shù)中發(fā)展較快的一種現(xiàn)場(chǎng)總線,與其他總線相比,總線的數(shù)據(jù)通訊具有獨(dú)特的可靠性、實(shí)時(shí)性和靈活性等技術(shù)特點(diǎn),是有效支持分布式控制或?qū)崟r(shí)控制的串行通訊網(wǎng)絡(luò),且易于用戶進(jìn)行二次開發(fā)工作,因此,越來越受到各工業(yè)廠家的重視并成為公認(rèn)的最有發(fā)展前途的現(xiàn)場(chǎng)總線之一。

  本文介紹的基于CAN總線水位已經(jīng)在武漢大學(xué)動(dòng)機(jī)學(xué)院系統(tǒng)實(shí)驗(yàn)室得到了成功的應(yīng)用,實(shí)驗(yàn)證明該系統(tǒng)運(yùn)行穩(wěn)定,控制實(shí)時(shí)性良好。


上一頁 1 2 3 下一頁

評(píng)論


相關(guān)推薦

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

關(guān)閉