張寧寧,韓嘉驊,徐銳,趙志遠(yuǎn)
基于CAN協(xié)議的操縱手柄電控系統(tǒng)設(shè)計(jì)
張寧寧,韓嘉驊,徐銳,趙志遠(yuǎn)
(四川大學(xué) 機(jī)械工程學(xué)院,四川 成都 610065)
隨著工程機(jī)械近年來向自動(dòng)化、智能化、嵌入式方向發(fā)展,傳統(tǒng)機(jī)械式換擋操縱手柄正逐步被電子式換擋操控手柄取代。然而,控制手柄上的控制信號(hào)大多由單一的信號(hào)線傳輸,線束組成繁雜,通信可靠性差。對(duì)于這個(gè)缺點(diǎn),基于STM32的CAN總線設(shè)計(jì)了一種應(yīng)用于電子換擋操控手柄的CAN通信采集板控制系統(tǒng),并詳細(xì)闡述了整個(gè)控制系統(tǒng)的軟、硬件設(shè)計(jì)方案。經(jīng)調(diào)試表明,該系統(tǒng)通訊可靠、安全性高、抗干擾能力強(qiáng),達(dá)到預(yù)期設(shè)計(jì)目的。
自動(dòng)化;嵌入式;STM32;CAN總線
隨著國(guó)家《中國(guó)制造2025》戰(zhàn)略的逐步實(shí)施和推進(jìn),中國(guó)工程機(jī)械領(lǐng)域面臨著前所未有的機(jī)遇和挑戰(zhàn)。眾所周知,操縱手柄系統(tǒng)遭工程機(jī)械的自動(dòng)化控制中扮演著極其重要的角色,因此,操縱手柄系統(tǒng)的集成化和智能化發(fā)展變得迫在眉睫。對(duì)工程機(jī)械各方面的要求不斷提高,目前,發(fā)展較為成熟的CAN總線協(xié)議無疑給工程機(jī)械操縱手柄系統(tǒng)的集成化和智能化發(fā)展帶來無限的希望。
CAN總線作為一種技術(shù)先進(jìn)、可靠性高、功能完善、成本低廉的網(wǎng)絡(luò)通信控制模式,已發(fā)展?jié)B透到工業(yè)自動(dòng)化產(chǎn)業(yè)、紡織機(jī)械、數(shù)控機(jī)床、工程機(jī)械、農(nóng)業(yè)機(jī)械、過程控制、傳感器等領(lǐng)域[1]。正是由于CAN總線獨(dú)立且應(yīng)用越來越廣泛的特性,吸引著世界各國(guó)著名芯片制造廠商及企業(yè)生產(chǎn)和研發(fā)CAN控制器相關(guān)的各種芯片,其中也包括內(nèi)嵌CAN控制器的微處理器芯片[1],比如意法半導(dǎo)體公司、英特爾公司等著名企業(yè),這給CAN總線的應(yīng)用帶來了極大的便利。
在工程機(jī)械領(lǐng)域,如果在傳統(tǒng)的電控操縱手柄系統(tǒng)中引入CAN總線網(wǎng)絡(luò)協(xié)議,則可方便地實(shí)現(xiàn)操縱手柄上撥輪、自復(fù)位開關(guān)等與工程機(jī)械上其他部件上的傳感器或者執(zhí)行機(jī)構(gòu)之間的數(shù)據(jù)信息通信,不僅可以實(shí)現(xiàn)工程機(jī)械上個(gè)各操作單元之間的相互協(xié)作,而且可對(duì)工程機(jī)械上各執(zhí)行單元進(jìn)行實(shí)時(shí)控制。
本文所設(shè)計(jì)的基于CAN總線的操控手柄電控系統(tǒng)主要是實(shí)現(xiàn)工程機(jī)械執(zhí)行機(jī)構(gòu)的前進(jìn)、后退、起升、降落、抓取、平移、旋轉(zhuǎn)等,另外還有照明、喇叭、緊急制動(dòng)等輔助功能。操縱手柄結(jié)構(gòu)如圖1所示,這些功能全部集成在操縱手柄上,由霍爾角度傳感器、電位器、按鍵、撥輪、通信電路板等構(gòu)成操縱手柄電控系統(tǒng)[2]。各單元的端子線通過線束通道連接至通信電路板。
圖1 操縱手柄結(jié)構(gòu)示意圖
本文所設(shè)計(jì)的工程機(jī)械操縱手柄電控系統(tǒng)通信電路板所采用的微處理器芯片是基于ARM的具有32位的Cortex-M3微處理器,ST公司基于此研發(fā)出的STM32系列單片機(jī),其自帶了各種常用通信接口,比如IIC、SPI、USART、CAN等[3]。其型號(hào)眾多,本文將內(nèi)嵌CAN控制器的高性能微處理器STM32F103C8T7作為系統(tǒng)主控芯片,選用與“ISO11898”標(biāo)準(zhǔn)完全兼容的高速CAN收發(fā)器TJA1050T,電源穩(wěn)壓器芯片選用的是LM25017和AMS1117,分別為系統(tǒng)提供5 VDC和3.3 VDC供電。
工程機(jī)械的工況環(huán)境復(fù)雜,電源輸入電壓要求為9~ 36 VDC轉(zhuǎn)5 VDC,其所選用的MCU必須具有高速運(yùn)算處理能力,且功耗低。ADC電壓采集分辨率最低要求為10位分辨率,要求支持16路開關(guān)量(包含微動(dòng)開關(guān))輸入,需滿足電位器、角度傳感器4路模擬量輸入。CAN控制器需支持標(biāo)準(zhǔn)幀ID和擴(kuò)展幀ID,并且可修改ID。因工作環(huán)境惡劣,需保證系統(tǒng)抗電磁干擾能力強(qiáng)、信號(hào)傳輸穩(wěn)定、通訊 可靠。
CAN閉環(huán)總線網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,應(yīng)用于工程機(jī)械的CAN通訊網(wǎng)絡(luò)是一種遵循ISO11898標(biāo)準(zhǔn)的短距離、高速“閉環(huán)網(wǎng)絡(luò)”,其通信速率最高為1 Mbps,總線長(zhǎng)度最長(zhǎng)為40 m,總線的兩端各要求有1個(gè)120 Ω的電阻。
圖2 CAN總線網(wǎng)絡(luò)結(jié)構(gòu)圖
工程機(jī)械的CAN總線系統(tǒng)由通訊節(jié)點(diǎn)、雙絞線、USB-CAN轉(zhuǎn)換器、上位機(jī)等組成[4]。該通訊節(jié)點(diǎn)由一個(gè)控制器和收發(fā)器組成,控制器和收發(fā)器之間通過RX和TX兩根通訊信號(hào)線相連接,根據(jù)不同的情況,設(shè)計(jì)的電路有所差異。而每個(gè)節(jié)點(diǎn)又和相應(yīng)的傳感器等執(zhí)行單元相連接,比如電磁閥裝置、報(bào)警裝置、電機(jī)驅(qū)動(dòng)裝置等。CAN總線屬于一種多主方式的串行通信總線。當(dāng)某個(gè)節(jié)點(diǎn)需要向總線上發(fā)送數(shù)據(jù)信息時(shí),其相對(duì)應(yīng)的核心處理器會(huì)觸發(fā)控制器,如圖2所示,通過TX信號(hào)線將這種二進(jìn)制編碼的普通邏輯電平信號(hào)通過特定的方式轉(zhuǎn)換成差分電壓傳輸信號(hào),最后再經(jīng)過CAN_high和CAN_low兩根差分電壓輸送信號(hào)線輸送到CAN總線通信協(xié)議網(wǎng)絡(luò)系統(tǒng)中。同理可知,通過收發(fā)器接收CAN總線通信協(xié)議網(wǎng)絡(luò)系統(tǒng)中的數(shù)據(jù)信息傳輸給控制器時(shí),其過程恰好相反,需要將CAN總線通信協(xié)議網(wǎng)絡(luò)上的差分電壓輸送信號(hào)通過特定的方式轉(zhuǎn)換成普通的邏輯電平信號(hào),然后通過RX信號(hào)線傳輸?shù)娇刂破鳌?/p>
CAN總線電控系統(tǒng)硬件設(shè)計(jì)結(jié)構(gòu)如圖3所示,由于篇幅所限,比如晶振電路、電源濾波電路、SWD下載調(diào)試電路、ADC電壓采集電路等比較常規(guī)或簡(jiǎn)單的電路就不在此處詳細(xì)討論了,這里主要針對(duì)TJA1050T總線接口單元和9~36 VDC轉(zhuǎn)5 VDC電源單元進(jìn)行詳細(xì)闡述。
本設(shè)計(jì)選擇的STM32F103C8T7微處理器所需的供電電壓=2.0~3.6 V,通常選擇3.3 V,而所選擇的型號(hào)為TJA1050T的CAN收發(fā)器所需的供電電壓為5 VDC。因此,需要設(shè)計(jì)1個(gè)5 VDC電源和1個(gè)3.3 VDC電源。
圖3 電控系統(tǒng)硬件設(shè)計(jì)結(jié)構(gòu)框圖
LM25017器件是一款48 V、650 mA同步降壓穩(wěn)壓器,LM25017典型如圖4所示,其集成了高側(cè)和低側(cè)金屬氧化物半導(dǎo)體場(chǎng)效應(yīng)晶體管(MOSFET)。LM25017器件所采用的恒定導(dǎo)通時(shí)間(COT)控制方案無需環(huán)路補(bǔ)償,可提供出色的瞬態(tài)響應(yīng),并且可實(shí)現(xiàn)超高降壓比。導(dǎo)通時(shí)間與輸入電壓成反比,這使得整個(gè)輸入電壓范圍內(nèi)的頻率幾乎保持恒定。高壓?jiǎn)?dòng)穩(wěn)壓器為IC的內(nèi)部運(yùn)行以及集成柵極驅(qū)動(dòng)器提供了偏置電源。
圖4 LM25017典型示意圖
峰值電流限制電路可防止出現(xiàn)過載的情況。欠壓閉鎖(UVLO)電路支持對(duì)輸入欠壓閾值和滯后進(jìn)行單獨(dú)編程。其他的保護(hù)特性包括熱關(guān)斷和偏置電源欠壓閉鎖(cc UVLO)。LM25017器件采用WSON-8和HSOP-8塑料封裝。工程機(jī)械對(duì)電源的要求高,往往在9~36 VDC之間,并且有波動(dòng)。所以電控系統(tǒng)對(duì)穩(wěn)壓器要求非常高,普通的低壓差穩(wěn)壓器(簡(jiǎn)稱LDO)有TPS71718、LM337、LP28842、AMS1117等。
采用LDO固然是一種解決辦法,但是它存在2個(gè)問題:i必須大于o,不能升壓,也不能產(chǎn)生反極性的電壓;當(dāng)i必須大于o較多時(shí),LDO的效率仍然不高。要解決這2個(gè)問題,就必須使用DC-DC變換器[3]。常見的DC-DC芯片有TPS5430、LM2578、TPS1120、LM25017等。
LM78xx、LM317將電源電壓降低后向負(fù)載供電,但從線性穩(wěn)壓器的工作原理可知,輸出電流的值不會(huì)超過輸入電流,因此,工作效率較低。為提高電源的工作效率,可以改用降壓型BUCK電路。LM25017是一種輸出電壓小于輸入電壓的非隔離式DC-DC變換器,其工作效率高達(dá)90%以上。選擇的最小電感應(yīng)限制最大負(fù)載電流輸出波紋為20%~40%。最大負(fù)載時(shí)的峰值電感電流應(yīng)該小于最小電流限制,在電特性中給出。
5 V的DC-DC電源原理如圖5所示,其主要有2個(gè)作用,分別是給CAN總線接口電路提供5 VDC電源和5 VDC轉(zhuǎn)3.3 VDC的電源電路,給STM32單片機(jī)供電。其所使用的穩(wěn)壓器是AMS1117穩(wěn)壓器,其電路設(shè)計(jì)比較常規(guī),此處不再贅述。
本設(shè)計(jì)所采用的是目前比較流行的CAN收發(fā)器TJA1050T,其可與各種獨(dú)立的CAN控制器配合,包括帶有CAN控制器的MCU芯片,因此,內(nèi)嵌CAN控制器的微處理器STM32F103可與之建立完美的通訊通道。另外,CAN總線通信接口電路必須滿足電磁干擾(EMI)和靜電放電(ESD)標(biāo)準(zhǔn)的嚴(yán)格要求[1]。
CAN總線通信接口原理如圖6所示。
圖5 5 V的DC-DC電源原理圖
圖6 CAN總線接口原理圖
為了防止上電瞬間電流過大,對(duì)上位的供電單元造成過流沖擊,所以將CAN收發(fā)器的CAN_High和CAN_Low 2個(gè)引腳各通過1個(gè)5 Ω的電阻連接到總線上。為濾除CAN總線信號(hào)線上的共模電磁干擾,并使得差分信號(hào)的高頻部分得到一定程度的衰減,在CAN_High和CAN_Low引腳之間并聯(lián)了2個(gè)電容[4]。
此外,在許多場(chǎng)合CAN總線接口有可能遭到雷電沖擊,所以增添了保護(hù)器件D1和D2,以防止浪涌。為了解決CAN總線上雙絞線輸出和輸入間的信號(hào)隔離問題,圖6中STM32的CAN信號(hào)發(fā)送引腳CAN_TX經(jīng)由單通道耦合器6N137與TJA1050T的TXD端進(jìn)行銜接,接收引腳CAN_RX經(jīng)由單通道耦合器6N137與TJA1050T的RXD端進(jìn)行銜接[4]。
另外,為了與其他節(jié)點(diǎn)進(jìn)行配合,專門在2根信號(hào)線之間接了1個(gè)跳線帽。如果CAN總線網(wǎng)絡(luò)上的節(jié)點(diǎn)比較多,可以根據(jù)實(shí)際情況拔掉跳線帽或插上跳線帽。以便進(jìn)行正常的數(shù)據(jù)通信,主要原因是通常情況下整個(gè)總線網(wǎng)絡(luò)中只需要2個(gè)120 Ω的電阻。所以,當(dāng)不需要時(shí)可拔掉跳線帽,需要時(shí)插上跳線帽。
對(duì)于工程機(jī)械操縱手柄電控系統(tǒng)的設(shè)計(jì),除了進(jìn)行各模塊相關(guān)的硬件電路設(shè)計(jì)外,更重要的是其各模塊軟件部分的設(shè)計(jì),本電控系統(tǒng)的軟件設(shè)計(jì)主要包含2大部分:關(guān)于操縱手柄通信板上的各模塊對(duì)應(yīng)的軟件程序設(shè)計(jì),主要包括LED燈子程序設(shè)計(jì)、角度傳感器子程序設(shè)計(jì)、自復(fù)位開關(guān)子程序設(shè)計(jì)、CAN總線網(wǎng)絡(luò)協(xié)議的子程序設(shè)計(jì)、ADC電壓采集子程序設(shè)計(jì)等;上位機(jī)的程序設(shè)計(jì)。在這2大部分的程序設(shè)計(jì)中,主要采用的是模塊化設(shè)計(jì)思想,這樣做的目的是使得整體的程序設(shè)計(jì)思路變得清晰易懂,并使后期的調(diào)試與修改也更加容易[5]。軟件設(shè)計(jì)流程如圖7所示。
圖7 軟件設(shè)計(jì)流程圖
本設(shè)計(jì)采用的集成開發(fā)環(huán)境是keil5,它是美國(guó)keil軟件公司生產(chǎn)的最新的STM32系列兼容C語言的軟件開發(fā)系統(tǒng)[6]。通過JLINK模擬器支持的SWD調(diào)試模式,完成了在線調(diào)試和仿真,大大提高了編程和調(diào)試的效率。
4 電控系統(tǒng)功能測(cè)試
根據(jù)設(shè)計(jì)好的電路圖,利用Altium Designer軟件的自動(dòng)布線功能可生成初步的草圖,通過手工修改或調(diào)整進(jìn)行PCB圖的繪制,然后選擇相應(yīng)的元器件,之后可以進(jìn)行打樣、焊接、貼片、調(diào)試等一些列操作。
電路板制作好后,接上電源、電位器、開關(guān)等,利用ST-link下載程序時(shí)一定注意,ST-link的SWD接4條線(GND、DCLK、DIO、VCC),并且注意ST-link的VCC為輸入引腳,不能向電路板供電。線連接完后,要進(jìn)行相關(guān)的配置才能正確下載。程序燒寫進(jìn)去之后,通過CAN-USB轉(zhuǎn)接裝置連接上位機(jī)和制作好的電路板。連接并打開硬件板后便可監(jiān)控?cái)?shù)據(jù),首先把CAN總線連接到硬板上,并可以看到LED燈在閃爍,此時(shí)已接收到數(shù)據(jù)。由于篇幅所限,這里主要展示ADC采集信號(hào)的圖像,點(diǎn)擊“+”添加1根曲線,修改ID、date的偏移值和數(shù)據(jù)類型,并勾上前面的“方框”,點(diǎn)擊“Start”即可顯示數(shù)據(jù),ADC電壓采集曲線如圖8所示。
圖8 ADC電壓采集曲線圖
結(jié)果與預(yù)期相吻合,整個(gè)設(shè)計(jì)達(dá)到預(yù)期設(shè)計(jì)目的。
本文所設(shè)計(jì)的基于CAN協(xié)議的操縱手柄電控系統(tǒng),具有低功耗、信號(hào)傳輸穩(wěn)定、抗干擾能力強(qiáng)、通信可靠、測(cè)試編程簡(jiǎn)便等優(yōu)點(diǎn),通過實(shí)驗(yàn)測(cè)試及功能分析測(cè)試,完全滿足預(yù)期效果。
另外,本文比較系統(tǒng)、完整地介紹了STM32的CAN總線的應(yīng)該過程,包括控制器、收發(fā)器外圍電路的設(shè)計(jì),也提供了詳細(xì)的軟件、硬件設(shè)計(jì)方案,可供STM32或CAN總線初學(xué)者或者相關(guān)工程技術(shù)人員借鑒。
[1]牛躍聽,周立功,方丹,等.CAN總線嵌入式開發(fā)[M].北京:北京航空航天大學(xué)出版社,2016.
[2]李冀辰,高鳳岐,王廣,等.基于CAN總線的智能車伺服控制系統(tǒng)[J].傳感器與微系統(tǒng),2013,32(5):99-101.
[3]胡家華,付文廣,郜事成,等.STC15F2K60S2單片機(jī)與CAN總線接口的實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2014,33(17):55-58.
[4]夏澤中,郝鐵偉,王生勝,等.分布式變流控制系統(tǒng)中的控制單元設(shè)計(jì)[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2007,23(6):55-57.
[5]陽俊,王文虎.觸摸式遠(yuǎn)程控制終端設(shè)計(jì)[J].湖南文理學(xué)院學(xué)報(bào)(自然科學(xué)版),2016,28(3):34-37.
[6]王璐.C語言實(shí)現(xiàn)W78E365普通IO口的UART傳輸[J].電子工藝技術(shù),2009,30(4):239-241.
張寧寧(1992—),男,陜西渭南人,碩士研究生,主要從事機(jī)電控制、嵌入式軟硬件開發(fā)方面的研究。韓嘉驊(1974—),男,博士學(xué)位,副教授,碩士生導(dǎo)師,研究方向?yàn)闄C(jī)電一體化、嵌入式軟硬件開發(fā)。
2095-6835(2020)06-0054-04
TP24
A
10.15913/j.cnki.kjycx.2020.06.018
〔編輯:張思楠〕