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