摘 要: 本文主要介紹如何使用SPMC65P2404A單片機設計開發CAN總線中的智能節點。
關鍵詞: SPMC65單片機、CAN總線、智能節點
1 Can總線概述
CAN, 全稱為“Controller Area Network”,是國際上應用最廣泛的現場總線之一。20世紀80年代初,德國Bosch公司為了解決現代汽車中眾多的控制與測試儀表之間的數據交換問題,開發出CAN總線。CAN總線能有效支持分布式控制或實時控制的串行通信網絡,具有抗干擾性強和使用可靠等優點,最初主要應用汽車工業,現在廣泛應用于汽車工業、航空工業和工業控制等自動化領域,如分布式環境監測系統、溫室環境監控系統、變電站變監測系統等。
CAN總線是一種串行數據通信協議,其通信接口中集成了CAN協議的物理層和數據鏈路層功能,可完成對數據的成幀處理,用戶可在其基礎上開發適應系統實際需要的應用層通信協議。CAN協議的一個最大特點是廢除了傳統的站地址編碼,而代之以對通信數據塊編碼,采用這種方法可使網絡內節點個數在理論上不受限制,還可使不同的節點同時收到相同的數據。
CAN總線提供高速數據傳送, 在短距離(40m)條件下具有高速(1Mbit/s)數據傳輸能力,而在最大距離10000m時具有低速(5kbits/s)傳輸能力,極適合在高速的工業自控應用上,CAN總線可在同一網絡上連接多種不同功能的傳感器(如位置,溫度或壓力等)。
CAN總線的其他特點如下:
(1)它是一種多主總線,即每個節點機均可成為主機,且節點機之間也可進行通信;
(2)通信介質可以是雙絞線、同軸電纜或光導纖維,通信速率可達1Mbps;
(3)數據段長度最多為8個字節,可滿足通常工業領域中控制命令,工作狀態及測試數據的一般要求。同時,8個字節不會占用總線時間過長,從而保證了通信的實時性;
(4)CAN協議采用CRC檢驗并可提供相應的錯誤處理功能,保證了數據通信的可靠性。
CAN可以以多主方式工作,網絡上任意節點均可以在任意時刻主動地向總線上其它節點發送信息,實現點對點、一點對多點及全局廣播幾種方式發送接收數據;CAN采用非破壞性總線仲裁技術,當兩個節點同時向總線上發送信息時,優先級低的節點主動停止數據發送,而優先級高的節點可不受影響地繼續傳輸數據,節省了總線沖突仲裁時間。
圖1-1為一個CAN總線應用系統,主要有主機和各節點組成,主機和節點之間通過CAN收發器及CAN控制器相連,單個節點包括一個單片機控制器、一個CAN收發器和一個CAN控制器。其中一個典型的應用是:主機接收各節點發送的現場數據,如現場溫度、電流或壓力等參數,主機經過綜合計算、判斷作出相應的控制命令,這些命令將通過CAN總線傳送至各節點。各節點由單片機作為控制器,它用于采集現場的各項參數,并執行主機發送的各項命令,這些命令將最終傳送至各執行機構,如閥門、電機或泵等。

圖1-1 CAN總線應用系統
本文將介紹基于凌陽8位通用型工控單片機的CAN總線智能節點的設計。本文將闡述智能節點中的主控器SPMC65P2404A在本方案中的應用特點,及主控器與CAN總線控制器之間的通信。
2 芯片特性簡介
SPMC65P2404A是凌陽推出的8位工業控制單片機,最高工作頻率為8MHz,工作電壓3.0V~5.0V,有192字節的RAM和4K字節的OTP ROM,具備23個可編程IO口,內置上/下拉電阻,8通道10位A/D轉換器(100KHz),SPMC65P2404其他特性包括:
◆凌陽科技8位單片機
☉182條指令
☉11種尋址模式
☉支持位操作(Set,Clear,Inverse,Test)
◆2個8位可編程定時器/計數器(可自動預置初始計數值)
☉普通的定時/計數器
☉具有8位捕獲功能
☉具有8位比較功能
◆2個16位可編程定時器/計數器(可自動預置初始計數值)
☉普通的定時/計數器
☉具有8或16位捕獲功能
☉具有16位比較功能
☉12位PWM輸出
◆中斷方式
☉支持IRQ和NMI中斷
☉4種外部中斷
☉12種內部中斷
◆具有SPI總線:最高通信速率為2Mbps
◆5種復位功能:上電復位、低電壓復位、看門狗復位、外部復位及錯誤地址復位
◆支持3種時鐘電路:晶體振蕩器、RC振蕩、外部信號
◆2種低功耗模式:Halt模式和Stop模式
◆一個蜂鳴器驅動輸出口
3 智能節點硬件設計
在工業控制中,通常需要進行電壓、電流、溫度等信號的實時采集、可靠傳輸和實時顯示,實現了PC端對CAN智能節點的有效控制。為了達到工業控制上這些控制要求,CAN總線上的節點通常需要有微控器作為節點的主控器。主控器完成現場各項參數的采集、響應相關的外部事件、接受外部按鍵命令、產生驅動信號、顯示相關參數及與CAN總線控制器通信。圖3-1為SPMC65P2404A作為節點控制器,各個部件的連接示意圖。
圖 3-1 智能節點示意圖
※ 數據采集部件:
在工業控制現場,通常會有各類傳感器,如電流互感器、溫度傳感器、壓力傳感器等,將現場的電流、溫度及壓力等參數轉化為模擬電信號,這些模擬信號輸入MCU中的A/D轉換器,最終得到可傳輸的數字信號。SPMC65P2404A具有8通道10位精度的A/D轉換器,并可以選擇內部或外部參考電壓,能夠滿足多通道、高精度的模數轉換。
※ 現場人機交互部件:
人機交互部件可以實現工作人員在現場對某個節點進行操作控制,人機交互部件包括鍵盤、紅外遙控器、LED或LCD顯示。比如,顯示模塊可以實時顯示現場參數,工作人員操作鍵盤或遙控器上的某些按鍵,可以啟動電機或電閥門等執行機構,使系統達到預設定的效果。
SPMC65P2404A具有多組捕獲功能,使用捕獲功能,可以很方便的實現紅外信號解碼。
※ 快速響應外部突發事件:
在工業控制現場,突發事件保護機制非常重要。對現場的突發事件實行快速響應,并做出保護動作將使控制現場更安全。在節點設計中,可以使用MCU快速響應外部中斷,在MCU的中斷程序中,切斷驅動信號的輸出。SPMC65P2404A能夠響應4個外部中斷,并且每個外部中斷可以設定為非屏蔽中斷或屏蔽中斷。
※ 產生執行機構的驅動信號:
工業控制現場會有多種執行機構,如電機、電閥門等,正對各種每種執行機構,MCU會輸出相應的驅動信號,以控制這些機構。SPMC65P2404A具有2路12位的PWM輸出能力,有2路比較輸出功能,同時,每個I/O口都具備驅動LED的能力。利用SPMC65P2404A的這些功能,并配合相應的驅動電路,就可以有效控制電機、電閥門等。
※ 節點通信連接:
在智能節點的設計中,需要使用CAN控制器及CAN收發器,作為主控器與CAN總線之間的連接媒介。本智能節點使用MCP2510作為CAN控制器和PCA82C250作為CAN收發器。它們之間的連接是:MCU主控器通過SPI總線與CAN控制器通信,CAN控制器通過光電隔離器件與CAN收發器連接。SPMC65P2404A內部集成SPI總線,SPI總線支持全雙工同步傳輸,具有主、從兩種模式,最高通信速率為2Mbps。CAN控制器MCP2510也具備SPI總線。
4 智能節點軟件設計
智能節點程序包括主程序和中斷程序兩部分,主程序處理常規的數據采集及控制操作,中斷程序則處理異常事件及紅外信號解碼。
主程序包括系統初始化、按鍵掃描、紅外信號處理、顯示處理、電流信號采集、溫度數據采集、壓力信號采集、與CAN控制器通信、驅動信號產生等模塊。程序流程圖如圖4-1所示:
圖 4-1 主程序流程圖
主流程采用分時結構,在每個不同的時間片進行不同的工作。對主程序的循環時間實行定時,使得主程序每1ms循環一次。
5 參考文獻
[1] 杜尚豐等. 中國溫室環境控制硬件系統研究進展
[2] 于群等. 基于現場總線的10kV高壓開關柜在線檢測及故障診斷系統. 儀器儀表學報, 2002.