摘 要: 現場總線FCS技術在當前自動化領域的應用越來越廣泛。本文詳細講述基于工業設備聯機控制系統的CAN總線節點的設計,對節點的軟、硬件設計進行了詳細的說明。根據系統需要設計了不同類型的CAN總線節點。節點間通訊方式多樣。系統適合于一個場所多機聯網控制、多樓層設備聯機控制,或對多個特定的場所進行聯網控制等。系統具有擴展性,可將上位機通過特定的CAN接口器件連接,對系統進行監控。
關鍵字: 設備控制系統; CAN總線節點; 微控制器
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總線是目前流行的總線技術之一,是一種基于微控制器件的網絡。它用開放的,具有可互操作的網絡將現場各種控制器及儀表設備互連,構成現場總線控制系統, 將控制功能徹底下放到現場,降低了安裝成本和維護費用。FCS實質是一種開放的、具可互操作性的、徹底分散的分布式控制系統。CAN總線屬于工業現場總線的范疇是目前流行的現場總線控制系統之一。與一般的通信總線相比,CAN總線的數據通信具有突出的可靠性、實時性和靈活性,同時具備了現場總線優點。本文提出一種基于CAN智能節點的設備聯機控制系統。
2 系統概述
本文設計的是一種基于工業設備控制系統的以CAN總線智能節點。節點分為控制節點、主機節點和從機節點三種,多個不同節點通過總線連接,形成多機聯控系統。系統雖然有三種不同功能的節點,每類節點采用相同的CAN節點結構。
圖1 CAN總線節點結構示意圖
CAN總線節點可以歸納為三種構成方式: 1) CAN控制器的單片機+CAN收發器;2) 帶有CAN控制器的單片機+CAN收發器;3)帶有CAN控制器的I/O 端口+CAN收發器。系統結構更為如圖1所示。本文選擇第一種方式連接方式,由于器件組合靈活,很容易實現高的性價比。
3 節點的硬件結構設計
3.1 節點控制芯片選擇
本研究選用的是美國微芯Microchip Technology公司的PIC芯片(PIC16F873,28腳FLASH)和福州貝能公司的 MPLAB開發工具。MPLAB開發系統是一種廉價的開發工具,集編程器與調試器為一體。它利用了PICI6F87X的在線調試能力和MICROCHIP 的串行編程技術(In-Circuit Serial Programming)。它工作于MPLAB-IDE集成開發環境軟件包下,直接連接到應用系統中去。PICI6F87X是MICIZOCHII)公司的中檔產品,繼承了MICROCI-III,的傳統特點,實用、低價、指令集少、低功耗。
PIC16F873開發裝置的不足之處有:系統只能設置一個斷點;運行系統程序后單步執行速度慢;由于占用了芯片資源,I/0管腳RB3,RB7,RB6功能不正常,無法調試.另外程序調試時,應注意編程電壓不能太低。
3.2 節點CAN通訊的硬件設計
在CAN中應用的元器件主要包括CAN控制器和CAN收發器。本文選用的是獨立CAN控制器。PHILIPS公司的SJA1000管腳太多,占用過多的I/O口,MCP2510是目前市場上體積最小的CAIN控制器,通過SPI通訊方式與微處理器連接,連接端口少,所以系統選擇MCP2510作為 CAN控制器。MCP2510只要跟MCU和驅動芯片(8X250 )就可以構成一個簡易局域網的節點。MCP2510可以完全實現CAN2.0A和 CAN2.0B協議。圖2為MCP2510芯片的內部結構圖。
圖2 MCP2510內部結構圖
它的特點有:CAN總線的收發器大部分都是8腳DIP封裝,各公司的產品價格和性能類似,無太大的區別。PHILIP公司新推出的高速容錯CAN收發器TJA1050, TJA1040與早先推出的PCA82C250相比,價格大致相同,但其抗干擾性更強,可防止電磁干擾。本文選用了 PCA82C250CAN收發器。
3.3 控制節點設計
控制節點采用PIC16F873進行控制和通訊控制板的結構如圖。控制板由以下電路組成:鍵盤輸入電路、IC卡控制電路、液晶顯示電路、無線信號接收電路、主控制電路、CAN通訊電路。圖3為控制節點結構示意圖。
圖3 控制節點結構示意圖
1、鍵盤輸入電路采用74C922鍵盤編碼芯片。其輸出的有效端(DATA AVAILABLE)與I6F873的PORTB口的硬件中斷連接。其解碼輸出與分別接至PORTA, PORTB口。74C922芯片通過外部時鐘或者外部電容執行鍵盤掃描,功耗小,寬范圍供電3V-15V。當按鍵按下,數據有效端輸出高電平,否則為低電平。數據輸出端口在下一次按鍵之前保持前次按鍵解碼輸出的狀態。
2、IC卡控制電路。控制芯片采用I2C通訊方式與IC卡通訊。只有讀到卡內的數據才能操作控制板,否則控制板只顯示當前的時間,按鍵無效。通用存貯器1C卡是由通用存貯器芯片封裝而成的,由于它的結構和功能簡單,生產成本低,使用方便,因此在各領域都得到了廣泛的應用。目前用于IC卡的通用存貯器芯片多為E2PROM,其常用的協議主要有兩線串行連接協議(I2C)和三線串行鏈接協議。本文采用比較常用的ATMEL公司生產的AT24系列芯片 EEPROM AT24C01,它具有1k的存貯容量,兩線串行I2C通訊方式,適用于2V~5V的低電壓/標準電壓的操作,具有低功耗和高可靠性等優點。
3、LCD顯示是單片機控制產品中的典型應用。目前有多種方法實現LCD液晶顯示控制:一種是單片機內部直接集成了LCD驅動電路,這種方法一般在4 位機中較常用,8位機則很少,成本也較高。另一種方法是使用LCD模塊,這種模塊中帶有LCD顯示屏和LCD驅動電路,用起來較方便,但成本偏高,不適合于大批量生產采用。本文采用的是單片機+LCD驅動器+LCD顯示屏的方式,可選用不同的單片機,另外選用性價比很高的LCD驅動器HT1621。
4、本系統設計的無線信號接收電路采用MICRF002芯片。MICRF002芯片是超外差電路。美國Micrel公司推出的MICRF系列超外差電路靈敏度高和選擇性好。單片集成電路可完成接收及解調功能。Micrel 公司MICRF002為MICRF001的改進型,與MICRF001相比,功耗更低,并具有電源關斷控制端。MICRF002性能穩定,使用非常簡單。
5、主從機節點硬件電路相同(我們稱其為電機板),二者僅軟件設計不同而己。電機板由主控芯片PIC16F873,水位檢測電路、脈沖檢測電路、驅動電路組成。
4 節點軟件設計
系統軟件的設計分為以下幾個部分:CAN節點通訊程序、控制板程序(包括鍵盤輸入程序、無線接收程序、IC卡通訊程序、液晶界面控制程序)、電機板程序三個大部分。控制板上的IC芯片包含控制板程序和CAN通訊程序。電機板上的IC芯片存有CAN通訊程序和電機板程序。CAN節點要有效、實時地完成通訊任務,CAN通訊軟件設計是關鍵。它包括初始化程序報文發送子程序,報文接收子程序和出錯處理子程序等。
控制板的主程序流程圖如圖4所示。系統設計要求只有插入IC卡后,才可以通過鍵盤或遙控器來控制系統。鍵盤處理子程序和無線接收子程序都是采用中斷方式執行,且任何時刻二者只能有一個被執行。鍵盤處理子程序的中斷是外部INT中斷,無線接收子程序采用的是PORTB 口的RB6端。
圖4 控制板程序流程圖
在編程時有一點要注意,PORTB口RB7-RB4端有電平變化時可以產生中斷,但只有當I/O引腳設置為輸入狀態時才能發生中斷。芯片通過把 RB7-RB4端口的輸入信號與上次讀入的鎖存值進行比較,如不等,則二者異或后輸出,產生變化中斷,使標志位RBIF為1。控制板程序運行時,控制板的程序接收各塊電機板的狀態,然后在控制板液晶上顯示電機臺數和水箱的水位狀態。控制板收到鍵盤和遙控器的命令,向總線發送信息。電機板接受總線信息,執行控制板的命令動作。同時定期發送水位的狀態值給控制板。其中冷凍功能就是同時執行沖洗功能和通風功能。冷凍功能程序是電機板程序的子程序。每次冷凍結束后必須執行清洗,保持過濾網清潔。
CAN控制器MCP2510與控制芯片PIC16F873采用SPI通訊方式。PIC微控制器工作于主模式下,可實現完全SPI功能。數據的收發采用軟件緩沖區。發送數據時,軟件緩沖區裝入所發數據,同時發出SPI中斷。CAN總線廢除了站地址編碼,對通訊數據進行編碼。數據的編碼通過幀ID號來識別。可以通過編碼開關設定數據ID號。總線仲裁指如果2個或2個以上的單元同時開始傳送報文,那么就會有總線訪問沖突。通過使用了識別符的逐位仲裁可以解決這個沖突。仲裁的機制確保了報文和時間均不損失。當具有相同識別符的數據幀和遠程幀同時初始化時,數據幀優先于遠程幀。仲裁期間,每一個發送器都對發送位的電平與被監控的總線電平進行比較。
本文作者創新點
本文構建了基于工業設備控制系統的CAN總線節點,按照功能的不同,設計三種不同功能的節點。設計了不同節點的硬件結構。采用PIC的匯編程序,實現了基本CAN通訊的方式和不同節點的功能要求。本文設計的CAN總線節點解決了在傳統的工業通訊控制方式485總線中的一些弊端,如無法構成多主結構,主節點任務繁忙,主節點故障可能引起系統癱瘓,數據傳輸效率降低;實時性差,錯誤處理能力不強等。
參考文獻:
[1] 蔣建文CAS總線通信協議的分析協議和實現[J].計算機工程2002, 3
[2] 楊振江,杜鐵軍,李群. 流行單片機實用子程序及應用實例[M].電子科技大學出版社.西安.2002, 7
[3] 孫樹文,楊建武,張慧慧,鄭剛. CAN總線在車輛分布式控制系統中的應用[J]. 微計算機信息, 2007, 3-2: 45-47