基于CAN總線的智能節(jié)點的設計
摘要:CAN總線性能優(yōu)越,是當前的研究熱點,本文提出一種基于STM32F107和SN65HVD230組成的CAN總線智能節(jié)點測試系統(tǒng)。分別設計了基于CAN總線智能節(jié)點系統(tǒng)的硬件結構和軟件設計,實現(xiàn)了穩(wěn)定可靠的數(shù)據(jù)測量控制,提高了工業(yè)現(xiàn)場的可操作性。實際應用表明,該方案提出的智能節(jié)點組態(tài)靈活、結構簡單、性能穩(wěn)定、擴展性好。
本文引用地址:http://butianyuan.cn/article/201610/307873.htm關鍵詞:CAN總線;智能節(jié)點;STM32F107
現(xiàn)場總線是工業(yè)自動化領域中實現(xiàn)分布式控制而產生的工業(yè)級局域網,其可以實現(xiàn)控制系統(tǒng)內各節(jié)點的實時數(shù)據(jù)通信,具有良好的可靠性,成為當前工業(yè)控制領域內的研究熱點。在眾多現(xiàn)場總線中,CAN總線以其高性能的特點,被廣泛應用于航天航空、工業(yè)控制、環(huán)境監(jiān)測,醫(yī)療設備等多個方面?;贑AN總線的控制節(jié)點可實現(xiàn)對工業(yè)控制中多點
的分布式控制,具有重要的研究價值。
1 總體結構設計
CAN總線采用了不同于傳統(tǒng)的分布式控制系統(tǒng)的構架,由分散于工業(yè)控制中現(xiàn)場智能節(jié)點完成傳統(tǒng)系統(tǒng)中主機的常規(guī)測試與控制。因此基于CAN總線的分布式控制系統(tǒng)的主機不必監(jiān)控底層設備,實現(xiàn)高性能的高層次控制與管理。一般基于CAN總線的工業(yè)分布式控制系統(tǒng)中由主機、數(shù)據(jù)轉換器以及智能節(jié)點組成。
整個系統(tǒng)的結構如圖1所示,主機和智能節(jié)點通過CAN總線連接,智能節(jié)點作為從機通過CAN接口連接CAN總線。主機由基于LabVIEW設計的監(jiān)測軟件和硬件資源組成,主要實現(xiàn)對智能節(jié)點的監(jiān)測以及測試數(shù)據(jù)的顯示和存儲。數(shù)據(jù)轉換器是串口轉CAN總線實現(xiàn)數(shù)據(jù)的轉換,并實現(xiàn)轉發(fā)。各個智能節(jié)點都掛接到 CAN總線上,將采集到的數(shù)據(jù)發(fā)送到CAN總線上或者接受CAN總線上數(shù)據(jù)進行處理。智能節(jié)點主要由微控制器、CAN收發(fā)器以及相應I/O接口組成。
智能節(jié)點設計使用STM32F107作為其主控芯片,集成多項高性能工業(yè)標準接口的互聯(lián)型微處理器,其采用32位ARM Cortex—M3核心,主頻高達72 MHz,其出色的兼容性以及高性能,低價格,具有較大的RAM和ROM,對于程序量較大的嵌入式系統(tǒng)有良好的支持,廣泛應用于工業(yè)控制中。
新STM32外設豐富強大,包括10個定時器,其中一些不僅可以進行普通的定時還可以進行脈沖捕獲、以及PWM生成;2個12位AD模數(shù)轉換器,其最大采樣率高達2M sample/s、2個12位DA數(shù)模轉換器、2個I2C接口、5個UART接口支持最高921 600 bps和3個SPI端口和高質量數(shù)字音頻接口IIS,擁有全速USB(OTG)接口,支持2路CAN2.0B接口,以及高速以太網10/100 MAC模塊接口。
CAN收發(fā)器選擇德州儀器的SN65HVD230,該器件具有高速率、高抗干擾能力和高可靠性CAN總線的串行通信。該芯片在CAN總線系統(tǒng)中具有廣泛的應用,便于更換。
2 系統(tǒng)硬件設計
一般的CAN總線智能節(jié)點由三個部分:微控制器、CAN總線控制器以及CAN總線收發(fā)器組成。微控制器STM32F107內部已經集成了CAN總線控制器,故本文涉及的智能節(jié)點主要由STM32F107和CAN總線收發(fā)器組成。
圖2是基于STM32F107智能節(jié)點系統(tǒng)的CAN總線部分原理圖。圖中STM32F107的PD0和PD1腳分別為CANRX和CANTX引腳,為 CAN總線的輸入輸出管腳,連接CAN總線收發(fā)器才能與CAN物理總線相連。CAN收發(fā)器SN65HVD230,具有速度高達1 Mbps的差分發(fā)送、差分接收能力,提供三種工作模式:高速、低電流待機和斜率控制。自身具有短路保護、失地保護、過壓保護和過熱保護。常態(tài)下工作電壓是 -2V~7V,瞬時耐壓范圍是-25V~25V。CAN收發(fā)器SN65HVD230第8引腳經10 k電阻與PD15連接,這樣可以由微控制器控制其工作模式,當PD 15為低電平時為高速工作模式,PD15為高電平時為低電流待機模式。CAN收發(fā)器SN65HVD230與CAN總線的接口設計時采用較強的抗干擾措施,以及過流保護等方式。其中與CANH、CANL串連的5 k電阻可起到一定的限流作用;并聯(lián)在CANH、CANL和地之間的32 pF的小電容,防止高頻干擾,同時具有一定的防電磁輻射能力;在CAN總線的輸入端與地之間接的防雷擊管,可以濾除CAN總線輸入端和地之間的瞬態(tài)突變干擾。
復位電路則是包括按鍵復位電路和上電自動復位電路組成,加強其可靠性。本文為了系統(tǒng)的調試,集成了JTAG的調試接口。
3 系統(tǒng)軟件設計
基于CAN總線的智能節(jié)點主程序流程如圖3所示,其發(fā)送方式通過查詢實現(xiàn),而發(fā)送數(shù)據(jù)方式通過中斷來實現(xiàn)。智能節(jié)點的主程序主要包括系統(tǒng)及外設初始化、CAN控制器初始化、數(shù)據(jù)發(fā)送、數(shù)據(jù)接收部分。
在CAN控制器初始化時,必須要求其控制寄存器中復位位置較高時,才可以訪問寄存器。因此,在初始化寄存器前,系統(tǒng)必須確保已經進入復位狀態(tài),在訪問CAN總線時寄存器中的內容決定波特率的大小。總線定時寄存器的初始化值應根據(jù)CAN控制器的晶振頻率進行設計。
數(shù)據(jù)發(fā)送時,CAN控制器將數(shù)據(jù)發(fā)送到CAN總線是由CAN控制器自動完成的,發(fā)送主程序將發(fā)送數(shù)據(jù)的信息幀發(fā)送到CAN的發(fā)送緩沖區(qū),然后啟動發(fā)送命令即可。
數(shù)據(jù)接收時,CAN控制器從CAN總線將數(shù)據(jù)讀取到CAN接收緩沖區(qū)也是自動完成的。接收程序需要從接收緩沖區(qū)讀取數(shù)據(jù)。設計時充分考慮讀接收緩存器(RBF0和RBF1)內容后,微控制器必須通過置釋放接收緩存位為高,從而釋放緩存器,使得另一個立即變?yōu)橛行А?/p>
4 結束語
以STM32F107微處理器為核心,設計了CAN總線的智能數(shù)據(jù)采集節(jié)點,該系統(tǒng)充分發(fā)揮CAN總線的優(yōu)點,具有高可靠性、高抗干擾性、高傳輸率以及靈活的組網方式等。該智能節(jié)點可實現(xiàn)分布式多節(jié)點測試,實現(xiàn)了測試過程智能化和網絡化,在工業(yè)測控領域有廣闊的應用前景,尤其是處理數(shù)據(jù)較多和實時性嚴苛的環(huán)境下,該設計節(jié)點會更加有優(yōu)勢。
- STM32單片機中文官網
- STM32單片機官方開發(fā)工具
- STM32單片機參考設計
評論