1 引言
隨著控制、計算機、通信、網絡等技術的發展.傳統的控制系統己越來越不能滿足現代工業的要求。以信息技術為基礎的網絡集成自動化系統己經成為當今自動化領域技術發展的熱點之一,它的出現標志著丁業控制領域又一個新時代的開始,并將對該領域的發展產生重要影響?,F場總線就是順應這一形勢發展起來的新技術。本文研究設計了總線監控系統中的現場智能節點,智能節點通過執行應用軟件要實現兩項任務:一是能夠與總線上的其它節點進行數據交換,二是能夠按照通過網絡或鍵盤下達的控制命令驅動步進電機按照要求動作。
2 現場智能節點的整體框架
圖1 智能節點主程序流程圖
對于CAN總線下的智能節點,為了滿足及時指示步進電機執行運動.實時接收和發送報文,及時處理用戶下達的控制指令等要求,程序采用的是順序執行主程序和實時中斷程序相結合的方式。軟件設計分塊進行,主要劃分為以下幾部分:CAN總線通信程序,顯示及鍵盤輸入程序,控制算法程序等。主程序流程如圖1所示。
3 CAN總線通信程序與LED顯示驅動
CAN總線通信程序是指在AT89C52控制下,模塊將采集到的數據發送到總線上供CAN WEB SERVER或其他智能節點使用,或是接收由CAN WEB SERVER傳送的由監控PC下達的控制指令。該部分軟件的程序流程如圖2所示,在通電或者復位后,主控制器首先對SJA 1000控制器進行初始化,建立CAN總線通信。CAN總線通信程序由三部分組成:SJA1000初始化,接受和發送。
圖2 CAN通信程序流程圖
3.1 SJA1000初始化
初始化是在程序運行前對SJA1000的丁作方式進行設定, 使其能夠按照用戶需要的方式進行CAN總線通信工作。
SJA1000 CAN控制器在通電后或硬件復位后,必須通過初始化設置以建立CAN通信。而且,SJA1000可以在主控制器工作期問被再次初始化,這可以通過發送軟件復位請求來實現。系統上電后,CAN控制器在引腳上獲的一個復位脈沖,似的進入復位模式。在開始對SJA1000各個配置寄存器進行設定之前。主控制器通過讀復位模式,請求標識來檢測SJA1000是否進入復位模式。因為單片機AT89C52的上電復位時問和SJA1000 的復位時間有偏差,單片機要等待SJA1000完成上電復位后才能對SJA1000配置寄存器進行配置,存有配置信息的寄存器只能在復位模式下才可進行寫入。
SJA1000初始化程序在復位模式下,需要配置下面的寄存器:時鐘分頻寄存器,接受代碼和接受掩碼寄存器,總線十續寄存器,輸出控制寄存器。在這些配置信息配置到SJA1000寄存器后,通過消除復位請求模式使SJA1000進入操作模式。
3.2 CAN發送程序
對SJA1000進行初始化建立CAN總線通信后,模塊就可以通過CAN總線發送和接受CAN數據包。消息的發送由CAN控制器SJA1000根據CAN的規則自動完成,主控制器必須把要發送的信息送到SJA1000的發送緩沖器中,并設置“發送請求標識位”于命令寄存器中,發送過程既可南SJA1000產生的中斷請求來控制。也可通過檢測SJA1000控制部分的狀態標識符來控制。
在本論文的設計中,當系統初次上電或硬件復位后,節點模塊會主動向CAN WEB SERVER發送節點的狀態信息,在以后的CAN通信中.則采用只有接收到CAN WEB sERVER的控制命令后,節點模塊才會將節點數據作為響應發送到CAN總線上。因此,單個節點模塊向總線上發送數據的頻率不高,在編程時將發送數據根據通信協議寫入發送緩沖器中,通過置位控制命令寄存器的發送請求位,就可以將數據發送到CAN總線上。發送流程如圖3所示。
當多個節點響應CAN WEB SERVER的命令時,有可能產生同時向CAN總線上同一地址發送不同數據,從而導致個別節點不斷累積發送錯誤而最終進入總線關閉狀態這種錯誤的產生。為了避免這種錯誤的產生,基于CAN總線的特點:任何節點均可向總線發送數據,也可接收到總線數據,在程序中設計了這樣的發送策略:將CAN WEB SERVER的接收掩碼寄存器設置為全“1”,即可以接受總線上的全部數據,節點模塊的待發送數據包的標識符由本節點的地址信息構成,即節點通過總線向自己發送了一個數據包,但同時義能夠被CAN WEB SERVER 接收到,因CAN總線上的節點地址都是唯一的,故能夠有效的避免前面所提到的錯誤。
圖3 CAN發送程序流程。
3.3 CAN接受程序
CAN控制器SJA1000根據規則自動接收消息,接受到的消息放到接收緩沖器,此時接收緩沖器狀態標示RBS置為“1“,同時向A1r89c52產生一個接收中斷,AT89C52響應中斷后將消息保存到程序設置的消息緩沖中,同時釋放接收緩沖器井對消息內容做出反應。中斷控制接收數據的流程如圖4所示。
3.4 LED數據顯示和鍵盤輸入程序
ZLG7289B內部含有譯碼器,可直接接收BCD碼或16進制碼,并同時具有2種譯碼方式,此外還具有多種控制指令,如消隱、閃爍、左移、右移、段尋址等。
圖4 中斷控制接收數據流程
4 控制算法程序
通過運行控制算法程序,使得智能節點能夠按照預定要求產生正確的動作??刂扑惴ǔ绦蛑饕啥糠纸M成:鍵盤功能控制.步進電機運動控制,總線命令響應控制。
4.1 鍵盤功能控制
鍵盤功能控制程序依據AT89C52獲得的不同鍵值,控制智能節點完成諸如步進電機運動圈數、角度設定,步進電機的啟停等多種功能。各鍵對應的鍵盤功能見表1所示。
表1鍵盤功能
4.2步進電機運動控制
步進電機運動控制包括:速度控制,計數單位控制.計數控制,方向控制。在本論文設計中,步進電機速度控制程序將變量“TimePerPulse”作為速度控制參數,該變量與定時器1 (T1)和參數count Time相配合可實現步進電機已不同的速度動作。其中T1為100us定時器,當T1每計時100uS后產生一個中斷,使得Count Time加“1”,當count Time=TimePerpulse時,AT89C52會通過端口發送一個脈沖控制步進電機走一個步進角,故步進電機轉動一圈所需時間的計算公式為:
步進電機轉動一圈所需時間=TimePerPulse*(細分數*200)*100(us)
式中(細分數*200)表示步進電機轉動一圈所需要的全部脈沖數。
在本論文設計中.可以控制步進電機以角度或圈數這兩種不同的計數單位控制步進電機的運動。當處于角度計數時,因步進電機的步進角細分為1時是1.8°/脈沖,即1度角對應的脈沖數不是整數,所以需要紀錄以((1/360°)為單位的剩余脈沖計數,以避免累積誤差。
4.3總線命令響應控制
當智能節點接收到總線數據后,需要對接收到的數據加以分析,以判斷總線命令的類型.從而轉入與該命令相對應的控制程序段中進行相關操作。接收數據各字節所代表的含義,在程序中通過一個結構加以說明。在程序中,首先根據參數判斷命令類型,并依據命令類型來解釋聯合體中的數據應作為哪個命令的參數來進行處理。
5 本文結論
由于CAN總線的高速通信速率、高可靠性、連接方便、多主站、通訊協議簡單和高性能價格比等突出優點,被公認為幾種最有前途的總線之一。在本論文設計中.設計并實現了一個CAN總線測控系統中可控制現場設備的智能節點。
-
節點
+關注
關注
0文章
220瀏覽量
24607 -
監控系統
+關注
關注
21文章
3975瀏覽量
179298 -
總線
+關注
關注
10文章
2914瀏覽量
88715
發布評論請先 登錄
相關推薦
CAN總線系統中可控制現場智能節點設計
SPMC65單片機在CAN總線智能節點中的應用

由單片機和CAN控制器MCP2510實現CAN總線系統智能節點的設計

基于EasyJTAG仿真器上采用LPC2292單片機實現CAN節點的設計

基于CAN總線控制器82527實現智能節點的軟硬件電路設計

基于單片機和CAN控制器和CAN收發器實現多機系統系統的設計

基于單片機和CAN控制器實現現場智能節點的設計

評論