郭麗萍,張艷榮,林思苗
(西南交通大學機械工程學院,四川 成都 610031)
嵌入式設備電源控制系統(tǒng)的CAN通信軟硬件設計
郭麗萍,張艷榮,林思苗
(西南交通大學機械工程學院,四川 成都 610031)
為解決電源監(jiān)控系統(tǒng)中存在的數字化程度低、實時性差、準確度和可靠性低等問題,在研究CAN協議的原理及應用技術的基礎上,采用外掛Microchip MCP2515 CAN控制器的設計思想,完成基于AVR單片機的CAN通信軟硬件設計,滿足電源控制系統(tǒng)策略的需要。該文給出CAN總線的整體結構及控制器、收發(fā)器等組成部分硬件及軟件的設計與實現,并對系統(tǒng)進行網絡負載分析及實時性分析。實際運行表明:該系統(tǒng)可實現報文的發(fā)送、接收等功能,可靠性強、通信實時性好。另外,電氣隔離電路的設計,進一步提高系統(tǒng)的抗干擾能力;同時,軟件設計部分采用自頂向下的模塊化設計方法,增強系統(tǒng)的可移植性。
電源控制系統(tǒng);CAN通信軟硬件設計;網絡負載分析;實時性分析;抗干擾能力
隨著社會的發(fā)展,電力電子設備與人們的工作、生活關系日益密切,而電子設備都離不開可靠的電源。在工業(yè)控制中對電源監(jiān)控系統(tǒng)[1-2]的準確度、可靠性及實時性等要求也越來越高。然而目前對電源監(jiān)控普遍采用的做法存在數字化程度低、時實性差、準確度和可靠性低等問題。
在工業(yè)控制中,電源控制系統(tǒng)經常需要監(jiān)控設備的互聯操作,即對現場采集的數據進行有效地收集與傳輸,并且把控制信號從控制中心發(fā)送到現場控制節(jié)點。CAN總線是一種使用CAN協議的串行通信網絡,它廢除了傳統(tǒng)的站地址編碼,采用對通信數據塊進行編碼,從而網絡內的節(jié)點個數在理論上不受限制,其數據通信具有突出的可靠性、實時性和靈活性[3]。因此,電源控制系統(tǒng)采用CAN總線,即使在比較惡劣的工業(yè)現場環(huán)境中,也能保證信號傳輸時間短、受干擾概率低。
針對電源監(jiān)控系統(tǒng)存在的問題,本文提出有效的軟硬件設計方案。該電源控制系統(tǒng)具有以下功能:
1)發(fā)送控制命令和配置參數。
2)對電源狀態(tài)進行實時監(jiān)控,采集電源的電壓、電流和溫度參數。
3)把采集的各數據發(fā)送給控制單元,通過控制單元保證電源的正常運行。
為了實現控制系統(tǒng)的功能,采用主從控制方式。主機為PC機[4],從機采用AVR單片機作為控制核心。主機與從機、從機里的兩層系統(tǒng)之間的信息交互采用CAN總線通信方式。電源控制系統(tǒng)的CAN總線結構如圖1所示。
由圖可以看出,整個系統(tǒng)采用2路并行CAN總線:CAN總線1負責AVR單片機與PC機之間報文的傳送;CAN總線2負責AVR單片機與電源的各功能模塊之間報文的傳送。由此,避免各種數據的傳輸沖突,使得系統(tǒng)更加穩(wěn)定可靠,實時性增強。由于AVR單片機內部沒有集成CAN控制器,所以采用外掛CAN控制器的方式,AVR單片機通過SPI接口與CAN控制器進行數據傳輸。
完整的CAN節(jié)點的硬件結構如圖2所示,主要包括微處理器、CAN控制器、CAN收發(fā)器、電氣隔離等部分。本文微處理器采用性價比高、結構簡單、便于編程的AVR單片機,主要用于對CAN控制器MCP2515的初始化,并通過對CAN控制器的控制操作實現現場總線與管理層中央服務器PC的數據交換等通信任務[5]。
圖1 電源控制系統(tǒng)的CAN總線結構
圖2 CAN節(jié)點硬件電路框圖
由圖可以看出,電源控制系統(tǒng)的CAN接口電路包括CAN控制器收發(fā)CAN信號的電路以及AVR單片機與CAN控制器之間的通信電路。CAN控制器能夠完成CAN格式數據和SPI格式數據的轉換,并通過CAN收發(fā)器進行CAN數據的收發(fā)。
CAN控制器主要集成了CAN協議[6]的物理層和數據鏈路層的功能,由實現CAN通信協議部分的電路和實現與AVR單片機接口部分的電路組成。
Microchip公司的MCP2515芯片是一款基于SPI接口操作設置的獨立CAN協議控制器[7-9]。CAN控制器與AVR單片機接口部分連接如圖3所示。
本文使用MCP2551作為CAN協議控制器與物理總線的接口[10],負責把CAN控制器的數字信號轉換成適合總線傳輸(差分輸出)的信號。MCP2551與ISO/DIS11898標準完全兼容,其原理如圖4所示。MCP2551的CANH、CANL引腳分別串接一個熱敏電阻再連接到物理總線上,當電流增加時,電阻增大,從而保護收發(fā)器免受過流沖擊。另外,收發(fā)器的RS引腳通過一個電阻后接地,可控制CAN差分信號的上升沿、下降沿的陡峭程度,以匹配CAN速率要求,同時降低對外界的電磁干擾[11]。
圖3 MCP2515與AVR單片機的物理連接接口
圖4 CAN收發(fā)器部分原理圖
收發(fā)器采用帶隔離的DC-DC模塊單獨供電來達到電氣隔離的目的。另外,本文采用光電耦合器件進行信號的隔離,隔離電路如圖5所示。
CAN控制器引腳 CANTX、CANRX和收發(fā)器MCP2551之間不直接相連,而是通過由高速光電耦合器ACPL-M61L構成的隔離電路后再與MCP2551相連,這樣就可以很好地防止線路間串擾。圖中,TXCAN、RXCAN分別為信號發(fā)送(從MCP2515來)和信號接收(到MCP2515去),與MCP2515的TXCAN、RXCAN引腳相連,TX、RX分別連接 MCP2551的TXD、RXD引腳。
圖5 信號隔離電路原理圖
圖6 程序主流程圖
電源控制系統(tǒng)的程序設計主要包括MCP2515的初始化、數據的發(fā)送和接收,這3部分程序是CAN模塊進行數據通信的基本部分。程序主流程如圖6所示。MCP2515在正常運行之前必須進行初始化,主要包括波特率設置、接收濾波方式的設置、接收屏蔽寄存器、中斷允許設置等。初始化設置是在配置模式下進行的,在上電或復位時,器件會自動進入配置模式。MCP2515有2種復位方式:硬件復位和SPI復位。本文采用SPI命令復位方式。只有在正常模式下,MCP2515才能在CAN總線上進行報文的傳輸[9]。
系統(tǒng)中1路CAN通信[10-11]的相應設置如下:
1)通信終端:主機-從機AVR單片機。
2)通信方式:命令/應答方式。
3)通信協議:使用CAN協議,擴展數據幀[12],不使用遠程幀,波特率為500kb/s。
由于CAN協議定義了物理層和數據鏈路層,故本系統(tǒng)在CAN總線擴展幀格式基礎上,結合系統(tǒng)要求,自定義了應用層通信協議,包括若干命令,如參數設置、參數查詢、停止命令等。該應用層通信協議中設計的幀結構如表1所示。具體溫度、電流、電壓參數相關的幀結構如表2所示。
表1 應用層通信協議幀結構
表2 溫度、電流、電壓參數幀結構1)
AVR單片機將要發(fā)送的數據按CAN協議封裝成一完整信息幀,通過SPI接口依次存入MCP2515的發(fā)送緩沖器中,設置控制寄存器中的相應位來啟動發(fā)送模式,然后通過CAN收發(fā)器MCP2551發(fā)送數據[9]。
數據發(fā)送部分主要完成CAN擴展幀格式與用戶通信協議中設計的幀結構之間的轉換。將通信協議中定義的幀結構對應到MCP2515的相關發(fā)送緩沖器中(有關CAN幀的控制信息和CAN擴展幀ID的存放結構)。MCP2515中相關發(fā)送緩沖器的結構如表3所示。
由于通信控制的實時性要求比較強,采用中斷接收方式來接收信息。當MCP2515接收到有效報文時,器件的INT引腳拉為低電平,并保持低電平狀態(tài)直到AVR單片機清除中斷。AVR單片機讀取到報文后,通過位修改命令對CANINTF寄存器中的相應位清零來清除中斷。
當中斷服務程序將數據包接收后,再根據CAN擴展幀格式與自定義的應用層通信協議中的幀結構之間的轉換方式得出擴展幀的29bitID,再根據ID將數據分別存入相應寄存器中,由此完成數據的接收。
一般CAN總線的網絡負載限制在30%以內。根據文獻[13],報文總長度最大值為填充位數、數據位數、報文格式位數之和。按照CAN協議,相同電平持續(xù)5bit,在下一位要插入1bit與前5bit反型的電平。由此,填充位數計算公式為
表3 MCP2515中相關發(fā)送緩沖器的結構
其中:n——填充的位數;
有著高度政治責任感和強烈事業(yè)心的李潔,認真貫徹“四個最嚴”和“四有兩責”要求,勇于擔當、從嚴監(jiān)管。作為上海市“行刑銜接”涉案食品危害鑒定機構的負責人,她帶領同事們大膽探索,主動爭取有關部門支持,在全國率先制定了“行刑銜接”涉案食品危害鑒定工作程序,近3年來完成了涉案食品鑒定40多起。2013年4月,受上海市奉賢工商分局委托對一批檢驗不符合國家標準的嬰幼兒配方奶粉進行鑒定,她帶領團隊立即查閱國內外各類嬰幼兒奶粉有關資料,第一時間組織專家進行健康風險評估,為案件定性提供了科學依據,最終涉案主犯被判刑15年。
54——擴展幀中控制位的總位數;
sm——數據幀中數據段字節(jié)數。
報文格式位數公式為
式中:m——報文格式位數;
p——無位填充段+幀間間隔,此處為13。
因此,CAN總線的網絡負載率表示為
式中:sc、sa——單位時間內網絡上實際傳送的位數、理想傳送的位數;
對于一個8字節(jié)的擴展數據幀來說,一共有64 bit的數據位,67 bit的報文格式位,23 bit的填充位。設單位時間為1s,則sa就是波特率。設定30s,波特率為500kb/s,取N=18/30。通過式(3)計算可以得到網絡負載率的理論值為0.018%,遠小于30%,不會出現嚴重的丟包現象。
根據文獻[13],在CAN網絡通信中,排隊數據幀的最長響應時間可以用式(4)計算得到:
式中:Jm——數據幀m的排隊抖動時間,主要取決于最長反應時間;
Wm——最長排隊延遲時間,主要取決于數據幀的優(yōu)先級別;
Cm——傳送數據幀m所需最長時間。
經過實驗證明,該系統(tǒng)可以順利高效地進行CAN通信。
實踐證明,利用CAN總線技術實現的電源控制系統(tǒng)結構簡單,抗干擾性和可擴展性強。同時,對系統(tǒng)進行了連續(xù)的通信測試,本文使用的波特率為500 kb/s,完全可以滿足系統(tǒng)實時性要求,實現數據幀的可靠傳輸。另外,模塊化的編程思想使系統(tǒng)可移植性增強,適用于不同功能的系統(tǒng)和應用環(huán)境。
[1] 李霞,蔡啟仲,陳文輝.基于CAN的嵌入式PLC和監(jiān)控系統(tǒng)通信設計[J].儀表技術與傳感器,2011(10):41-43.
[2]韓紅遠,朱翔宇.CAN總線在煤礦安全監(jiān)控系統(tǒng)中的應用[J].太原科技,2007,160(5):63-64.
[3]陶秋紅,張偉龍.CAN總線技術及發(fā)展[J].商場現代化,2007(9):4-5.
[4] 孫書鷹,陳志佳,寇超.新一代嵌入式微處理器STM32F103開發(fā)與應用[J].微計算機應用,2010,31(12):59-63.
[5] 陸前鋒,劉波,陳明昭.基于SJA1000的CAN總線智能控制系統(tǒng)設計[J].自動化技術與應用,2003,22(1):61-64.
[6] 韓鑫,鮑可進.CAN總線網絡層協議棧開發(fā)測試[J].計算機工程,2011,37(15):232-234.
[7] 柯江民,孫淑霞,曹屹東.MCP2515及CAN通信驅動設計[J].網絡技術,2008,17(12):43-45.
[8] 王繼國,吉吟東,孫新亞.CAN總線控制器MCP2515的原理及應用[J].電測與儀表,2004,41(457):52-56.
[9]MICROCHIP INCORPORATION.MCP2515協議控制器手冊[M].北京:機械工業(yè)出版社,2005,142-149.
[10]張文杰,王坤.淺談CAN通信的硬件抗干擾設計[J].科技信息,2012(23):144.
[11]田江學,屈衛(wèi)東.基于C8051F020的CAN通信軟硬件設計[J].2004,23(3):52-55.
[12] 王泓.CAN總線的消息機制[J].中國測試技術,2006,32(1):130-131,144.
[13]TINDELL K W,HANSSON H,WELLINGS A J.Analyzing real-time communications:Controller area network(CAN)[R].Real-time Systems Symposium, San Juan: IEEE,1994:259-263.
Software and hardware design based on CAN communication for control system of embedded device power supply
GUO Liping, ZHANG Yanrong, LIN Simiao
(School of Mechanical Engineering,Southwest Jiaotong University,Chengdu 610031,China)
To solve such problems as low digital level, poor real-time performance, low accuracy and reliability, software and hardware parts of CAN communication are designed based on AVR,meeting the requirement of control system to power supply.Microcontroller in conjunction with external CAN controller of Microchip MCP2515 is applied with the foundation of CAN protocol and practical technology.After hardware and software of parts of the system such as controller,transceiver are designed and established, as well as the general structure is shown, network load analysis and real-time performance analysis are carried out.The result of test shows that system can achieve such functions as transferring and receiving of messages with good reliability and realtime performance for communicating.In addition,the design of electrical isolation circuit further improve the anti-interference ability of the system;meanwhile,the software design part adopts the top-down modular design method strengthening the portability of the system.
control system of power supply; software and hardware design of CAN communication;network load analysis; real-time performance analysis; anti-interference ability
A
1674-5124(2017)10-0109-05
10.11857/j.issn.1674-5124.2017.10.021
2017-01-28;
2017-02-22
郭麗萍(1990-),女,四川簡陽市人,碩士研究生,專業(yè)方向為網絡測控。
張艷榮(1971-),女,河北易縣人,副教授,博士,研究方向為自動化測量與控制系統(tǒng)。
(編輯:商丹丹)