《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計(jì)應(yīng)用 > 基于微處理器與CAN的工業(yè)聯(lián)機(jī)控制系統(tǒng)
基于微處理器與CAN的工業(yè)聯(lián)機(jī)控制系統(tǒng)
摘要: 現(xiàn)場總線FCS技術(shù)在當(dāng)前自動(dòng)化領(lǐng)域的應(yīng)用越來越廣泛。本文詳細(xì)講述基于工業(yè)設(shè)備聯(lián)機(jī)控制系統(tǒng)的CAN總線節(jié)點(diǎn)的設(shè)計(jì),對節(jié)點(diǎn)的軟、硬件設(shè)計(jì)進(jìn)行了詳細(xì)的說明。根據(jù)系統(tǒng)需要設(shè)計(jì)了不同類型的CAN總線節(jié)點(diǎn)。節(jié)點(diǎn)間通訊方式多樣。系統(tǒng)適合于一個(gè)場所多機(jī)聯(lián)網(wǎng)控制、多樓層設(shè)備聯(lián)機(jī)控制,或?qū)Χ鄠€(gè)特定的場所進(jìn)行聯(lián)網(wǎng)控制等。系統(tǒng)具有擴(kuò)展性,可將上位機(jī)通過特定的CAN接口器件連接,對系統(tǒng)進(jìn)行監(jiān)控。
Abstract:
Key words :

摘 要: 現(xiàn)場總線FCS技術(shù)在當(dāng)前自動(dòng)化領(lǐng)域的應(yīng)用越來越廣泛。本文詳細(xì)講述基于工業(yè)設(shè)備聯(lián)機(jī)控制系統(tǒng)的CAN總線節(jié)點(diǎn)的設(shè)計(jì),對節(jié)點(diǎn)的軟、硬件設(shè)計(jì)進(jìn)行了詳細(xì)的說明。根據(jù)系統(tǒng)需要設(shè)計(jì)了不同類型的CAN總線節(jié)點(diǎn)。節(jié)點(diǎn)間通訊方式多樣。系統(tǒng)適合于一個(gè)場所多機(jī)聯(lián)網(wǎng)控制、多樓層設(shè)備聯(lián)機(jī)控制,或?qū)Χ鄠€(gè)特定的場所進(jìn)行聯(lián)網(wǎng)控制等。系統(tǒng)具有擴(kuò)展性,可將上位機(jī)通過特定的CAN接口器件連接,對系統(tǒng)進(jìn)行監(jiān)控。

 

關(guān)鍵字: 設(shè)備控制系統(tǒng); CAN總線節(jié)點(diǎn); 微控制器

Abstract: CAN (Controller Area Network) is one of popular field bus and a new kind of network based on micro control unit. The paper introduces the CAN node based on the industrial instruments controlling system and node design of hardware and software. The paper design different CAN nodes which can communicate each other in several modes. The node can be applied in control network which is composed of many special sites or industrial workshops. The system can be monitored through personal computer which connected the CAN bus through special CAN device.

Keywords: Air-Condition Control System; CAN Bus Nodes; Micro Controller

1 引言

  CAN總線是目前流行的總線技術(shù)之一,是一種基于微控制器件的網(wǎng)絡(luò)。它用開放的,具有可互操作的網(wǎng)絡(luò)將現(xiàn)場各種控制器及儀表設(shè)備互連,構(gòu)成現(xiàn)場總線控制系統(tǒng), 將控制功能徹底下放到現(xiàn)場,降低了安裝成本和維護(hù)費(fèi)用。FCS實(shí)質(zhì)是一種開放的、具可互操作性的、徹底分散的分布式控制系統(tǒng)。CAN總線屬于工業(yè)現(xiàn)場總線的范疇是目前流行的現(xiàn)場總線控制系統(tǒng)之一。與一般的通信總線相比,CAN總線的數(shù)據(jù)通信具有突出的可靠性、實(shí)時(shí)性和靈活性,同時(shí)具備了現(xiàn)場總線優(yōu)點(diǎn)。本文提出一種基于CAN智能節(jié)點(diǎn)的設(shè)備聯(lián)機(jī)控制系統(tǒng)。

2 系統(tǒng)概述

  本文設(shè)計(jì)的是一種基于工業(yè)設(shè)備控制系統(tǒng)的以CAN總線智能節(jié)點(diǎn)。節(jié)點(diǎn)分為控制節(jié)點(diǎn)、主機(jī)節(jié)點(diǎn)和從機(jī)節(jié)點(diǎn)三種,多個(gè)不同節(jié)點(diǎn)通過總線連接,形成多機(jī)聯(lián)控系統(tǒng)。系統(tǒng)雖然有三種不同功能的節(jié)點(diǎn),每類節(jié)點(diǎn)采用相同的CAN節(jié)點(diǎn)結(jié)構(gòu)。

 


圖1 CAN總線節(jié)點(diǎn)結(jié)構(gòu)示意圖

 

  CAN總線節(jié)點(diǎn)可以歸納為三種構(gòu)成方式: 1) CAN控制器的單片機(jī)+CAN收發(fā)器;2) 帶有CAN控制器的單片機(jī)+CAN收發(fā)器;3)帶有CAN控制器的I/O 端口+CAN收發(fā)器。系統(tǒng)結(jié)構(gòu)更為如圖1所示。本文選擇第一種方式連接方式,由于器件組合靈活,很容易實(shí)現(xiàn)高的性價(jià)比。

3 節(jié)點(diǎn)的硬件結(jié)構(gòu)設(shè)計(jì)

  3.1 節(jié)點(diǎn)控制芯片選擇

  本研究選用的是美國微芯Microchip Technology公司的PIC芯片(PIC16F873,28腳FLASH)和福州貝能公司的 MPLAB開發(fā)工具。MPLAB開發(fā)系統(tǒng)是一種廉價(jià)的開發(fā)工具,集編程器與調(diào)試器為一體。它利用了PICI6F87X的在線調(diào)試能力和MICROCHIP 的串行編程技術(shù)(In-Circuit Serial Programming)。它工作于MPLAB-IDE集成開發(fā)環(huán)境軟件包下,直接連接到應(yīng)用系統(tǒng)中去。PICI6F87X是MICIZOCHII)公司的中檔產(chǎn)品,繼承了MICROCI-III,的傳統(tǒng)特點(diǎn),實(shí)用、低價(jià)、指令集少、低功耗。

  PIC16F873開發(fā)裝置的不足之處有:系統(tǒng)只能設(shè)置一個(gè)斷點(diǎn);運(yùn)行系統(tǒng)程序后單步執(zhí)行速度慢;由于占用了芯片資源,I/0管腳RB3,RB7,RB6功能不正常,無法調(diào)試.另外程序調(diào)試時(shí),應(yīng)注意編程電壓不能太低。

  3.2 節(jié)點(diǎn)CAN通訊的硬件設(shè)計(jì)

  在CAN中應(yīng)用的元器件主要包括CAN控制器和CAN收發(fā)器。本文選用的是獨(dú)立CAN控制器。PHILIPS公司的SJA1000管腳太多,占用過多的I/O口,MCP2510是目前市場上體積最小的CAIN控制器,通過SPI通訊方式與微處理器連接,連接端口少,所以系統(tǒng)選擇MCP2510作為 CAN控制器。MCP2510只要跟MCU和驅(qū)動(dòng)芯片(8X250 )就可以構(gòu)成一個(gè)簡易局域網(wǎng)的節(jié)點(diǎn)。MCP2510可以完全實(shí)現(xiàn)CAN2.0A和 CAN2.0B協(xié)議。圖2為MCP2510芯片的內(nèi)部結(jié)構(gòu)圖。

 


圖2 MCP2510內(nèi)部結(jié)構(gòu)圖

 

  它的特點(diǎn)有:CAN總線的收發(fā)器大部分都是8腳DIP封裝,各公司的產(chǎn)品價(jià)格和性能類似,無太大的區(qū)別。PHILIP公司新推出的高速容錯(cuò)CAN收發(fā)器TJA1050, TJA1040與早先推出的PCA82C250相比,價(jià)格大致相同,但其抗干擾性更強(qiáng),可防止電磁干擾。本文選用了 PCA82C250CAN收發(fā)器。

  3.3 控制節(jié)點(diǎn)設(shè)計(jì)

  控制節(jié)點(diǎn)采用PIC16F873進(jìn)行控制和通訊控制板的結(jié)構(gòu)如圖。控制板由以下電路組成:鍵盤輸入電路、IC卡控制電路、液晶顯示電路、無線信號接收電路、主控制電路、CAN通訊電路。圖3為控制節(jié)點(diǎn)結(jié)構(gòu)示意圖。

 


圖3 控制節(jié)點(diǎn)結(jié)構(gòu)示意圖

 

  1、鍵盤輸入電路采用74C922鍵盤編碼芯片。其輸出的有效端(DATA AVAILABLE)與I6F873的PORTB口的硬件中斷連接。其解碼輸出與分別接至PORTA, PORTB口。74C922芯片通過外部時(shí)鐘或者外部電容執(zhí)行鍵盤掃描,功耗小,寬范圍供電3V-15V。當(dāng)按鍵按下,數(shù)據(jù)有效端輸出高電平,否則為低電平。數(shù)據(jù)輸出端口在下一次按鍵之前保持前次按鍵解碼輸出的狀態(tài)。

  2、IC卡控制電路??刂菩酒捎肐2C通訊方式與IC卡通訊。只有讀到卡內(nèi)的數(shù)據(jù)才能操作控制板,否則控制板只顯示當(dāng)前的時(shí)間,按鍵無效。通用存貯器1C卡是由通用存貯器芯片封裝而成的,由于它的結(jié)構(gòu)和功能簡單,生產(chǎn)成本低,使用方便,因此在各領(lǐng)域都得到了廣泛的應(yīng)用。目前用于IC卡的通用存貯器芯片多為E2PROM,其常用的協(xié)議主要有兩線串行連接協(xié)議(I2C)和三線串行鏈接協(xié)議。本文采用比較常用的ATMEL公司生產(chǎn)的AT24系列芯片 EEPROM AT24C01,它具有1k的存貯容量,兩線串行I2C通訊方式,適用于2V~5V的低電壓/標(biāo)準(zhǔn)電壓的操作,具有低功耗和高可靠性等優(yōu)點(diǎn)。

  3、LCD顯示是單片機(jī)控制產(chǎn)品中的典型應(yīng)用。目前有多種方法實(shí)現(xiàn)LCD液晶顯示控制:一種是單片機(jī)內(nèi)部直接集成了LCD驅(qū)動(dòng)電路,這種方法一般在4 位機(jī)中較常用,8位機(jī)則很少,成本也較高。另一種方法是使用LCD模塊,這種模塊中帶有LCD顯示屏和LCD驅(qū)動(dòng)電路,用起來較方便,但成本偏高,不適合于大批量生產(chǎn)采用。本文采用的是單片機(jī)+LCD驅(qū)動(dòng)器+LCD顯示屏的方式,可選用不同的單片機(jī),另外選用性價(jià)比很高的LCD驅(qū)動(dòng)器HT1621。

  4、本系統(tǒng)設(shè)計(jì)的無線信號接收電路采用MICRF002芯片。MICRF002芯片是超外差電路。美國Micrel公司推出的MICRF系列超外差電路靈敏度高和選擇性好。單片集成電路可完成接收及解調(diào)功能。Micrel 公司MICRF002為MICRF001的改進(jìn)型,與MICRF001相比,功耗更低,并具有電源關(guān)斷控制端。MICRF002性能穩(wěn)定,使用非常簡單。

  5、主從機(jī)節(jié)點(diǎn)硬件電路相同(我們稱其為電機(jī)板),二者僅軟件設(shè)計(jì)不同而己。電機(jī)板由主控芯片PIC16F873,水位檢測電路、脈沖檢測電路、驅(qū)動(dòng)電路組成。

4 節(jié)點(diǎn)軟件設(shè)計(jì)

  系統(tǒng)軟件的設(shè)計(jì)分為以下幾個(gè)部分:CAN節(jié)點(diǎn)通訊程序、控制板程序(包括鍵盤輸入程序、無線接收程序、IC卡通訊程序、液晶界面控制程序)、電機(jī)板程序三個(gè)大部分。控制板上的IC芯片包含控制板程序和CAN通訊程序。電機(jī)板上的IC芯片存有CAN通訊程序和電機(jī)板程序。CAN節(jié)點(diǎn)要有效、實(shí)時(shí)地完成通訊任務(wù),CAN通訊軟件設(shè)計(jì)是關(guān)鍵。它包括初始化程序報(bào)文發(fā)送子程序,報(bào)文接收子程序和出錯(cuò)處理子程序等。

  控制板的主程序流程圖如圖4所示。系統(tǒng)設(shè)計(jì)要求只有插入IC卡后,才可以通過鍵盤或遙控器來控制系統(tǒng)。鍵盤處理子程序和無線接收子程序都是采用中斷方式執(zhí)行,且任何時(shí)刻二者只能有一個(gè)被執(zhí)行。鍵盤處理子程序的中斷是外部INT中斷,無線接收子程序采用的是PORTB 口的RB6端。

 


圖4 控制板程序流程圖

 

  在編程時(shí)有一點(diǎn)要注意,PORTB口RB7-RB4端有電平變化時(shí)可以產(chǎn)生中斷,但只有當(dāng)I/O引腳設(shè)置為輸入狀態(tài)時(shí)才能發(fā)生中斷。芯片通過把 RB7-RB4端口的輸入信號與上次讀入的鎖存值進(jìn)行比較,如不等,則二者異或后輸出,產(chǎn)生變化中斷,使標(biāo)志位RBIF為1。控制板程序運(yùn)行時(shí),控制板的程序接收各塊電機(jī)板的狀態(tài),然后在控制板液晶上顯示電機(jī)臺(tái)數(shù)和水箱的水位狀態(tài)??刂瓢迨盏芥I盤和遙控器的命令,向總線發(fā)送信息。電機(jī)板接受總線信息,執(zhí)行控制板的命令動(dòng)作。同時(shí)定期發(fā)送水位的狀態(tài)值給控制板。其中冷凍功能就是同時(shí)執(zhí)行沖洗功能和通風(fēng)功能。冷凍功能程序是電機(jī)板程序的子程序。每次冷凍結(jié)束后必須執(zhí)行清洗,保持過濾網(wǎng)清潔。

  CAN控制器MCP2510與控制芯片PIC16F873采用SPI通訊方式。PIC微控制器工作于主模式下,可實(shí)現(xiàn)完全SPI功能。數(shù)據(jù)的收發(fā)采用軟件緩沖區(qū)。發(fā)送數(shù)據(jù)時(shí),軟件緩沖區(qū)裝入所發(fā)數(shù)據(jù),同時(shí)發(fā)出SPI中斷。CAN總線廢除了站地址編碼,對通訊數(shù)據(jù)進(jìn)行編碼。數(shù)據(jù)的編碼通過幀ID號來識(shí)別。可以通過編碼開關(guān)設(shè)定數(shù)據(jù)ID號。總線仲裁指如果2個(gè)或2個(gè)以上的單元同時(shí)開始傳送報(bào)文,那么就會(huì)有總線訪問沖突。通過使用了識(shí)別符的逐位仲裁可以解決這個(gè)沖突。仲裁的機(jī)制確保了報(bào)文和時(shí)間均不損失。當(dāng)具有相同識(shí)別符的數(shù)據(jù)幀和遠(yuǎn)程幀同時(shí)初始化時(shí),數(shù)據(jù)幀優(yōu)先于遠(yuǎn)程幀。仲裁期間,每一個(gè)發(fā)送器都對發(fā)送位的電平與被監(jiān)控的總線電平進(jìn)行比較。

本文作者創(chuàng)新點(diǎn)

  本文構(gòu)建了基于工業(yè)設(shè)備控制系統(tǒng)的CAN總線節(jié)點(diǎn),按照功能的不同,設(shè)計(jì)三種不同功能的節(jié)點(diǎn)。設(shè)計(jì)了不同節(jié)點(diǎn)的硬件結(jié)構(gòu)。采用PIC的匯編程序,實(shí)現(xiàn)了基本CAN通訊的方式和不同節(jié)點(diǎn)的功能要求。本文設(shè)計(jì)的CAN總線節(jié)點(diǎn)解決了在傳統(tǒng)的工業(yè)通訊控制方式485總線中的一些弊端,如無法構(gòu)成多主結(jié)構(gòu),主節(jié)點(diǎn)任務(wù)繁忙,主節(jié)點(diǎn)故障可能引起系統(tǒng)癱瘓,數(shù)據(jù)傳輸效率降低;實(shí)時(shí)性差,錯(cuò)誤處理能力不強(qiáng)等。

參考文獻(xiàn):

  [1] 蔣建文CAS總線通信協(xié)議的分析協(xié)議和實(shí)現(xiàn)[J].計(jì)算機(jī)工程2002, 3

  [2] 楊振江,杜鐵軍,李群. 流行單片機(jī)實(shí)用子程序及應(yīng)用實(shí)例[M].電子科技大學(xué)出版社.西安.2002, 7

  [3] 孫樹文,楊建武,張慧慧,鄭剛. CAN總線在車輛分布式控制系統(tǒng)中的應(yīng)用[J]. 微計(jì)算機(jī)信息, 2007, 3-2: 45-47

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。