李 博,李曉強(qiáng)
(1.西安工業(yè)大學(xué) 北方信息工程學(xué)院,陜西 西安710025;2.西安晚報(bào)社 陜西 西安710002)
基于CAN總線的智能控制器設(shè)計(jì)
李 博1,李曉強(qiáng)2
(1.西安工業(yè)大學(xué) 北方信息工程學(xué)院,陜西 西安710025;2.西安晚報(bào)社 陜西 西安710002)
隨著計(jì)算機(jī)技術(shù)、微處理器技術(shù)以及通訊技術(shù)的不斷發(fā)展,傳統(tǒng)儀表己經(jīng)不能適應(yīng)工控的要求。而CAN總線控制器的出現(xiàn)為工業(yè)控制系統(tǒng)向分散化、網(wǎng)絡(luò)化發(fā)展等開辟了新的空間。CAN控制器具有良好的穩(wěn)定性、高可靠性、較快的通訊速率以及低成本等特點(diǎn),且能夠有效支持實(shí)時(shí)、分布式控制,從而應(yīng)用于許多領(lǐng)域,本設(shè)計(jì)針對內(nèi)嵌CAN的STM32F103RC處理器進(jìn)行深入研究,并以它為核心部件進(jìn)行CAN控制器軟硬件的設(shè)計(jì),該控制器兼容模擬量數(shù)字量的輸入,保證了通用性并具有較大的應(yīng)用范圍。在采集與輸出通道數(shù)量方面也得到了保障。例如由于工業(yè)需求要增加監(jiān)測點(diǎn)或執(zhí)行點(diǎn),本控制器可以解決此問題。從長遠(yuǎn)考慮會(huì)降低用戶的投資成本,本控制器可以與其他CAN節(jié)點(diǎn)及上位機(jī)組成CAN總線遠(yuǎn)程監(jiān)控系統(tǒng),實(shí)現(xiàn)儀表網(wǎng)絡(luò)化,智能化。
CAN總線;數(shù)據(jù)采集;數(shù)據(jù)處理;數(shù)據(jù)輸出;Stm32F103RC
現(xiàn)如今工業(yè)生產(chǎn)針對現(xiàn)場數(shù)據(jù)的采集與控制的要求在日益提高,生產(chǎn)實(shí)現(xiàn)自動(dòng)化處理,若繼續(xù)使用傳統(tǒng)的一對一連線式或“各自為戰(zhàn)”式集散系統(tǒng),企業(yè)的生存和發(fā)展將面臨著極大的挑戰(zhàn)。
為實(shí)現(xiàn)整個(gè)系統(tǒng)設(shè)備之間以及系統(tǒng)與外界之間的信息交換,就必須搭建一種性能優(yōu)越、可靠性高、造價(jià)低廉的通信系統(tǒng),并且要求該系統(tǒng)可運(yùn)行于工業(yè)環(huán)境中,實(shí)現(xiàn)底層系統(tǒng)與外界信息的交換,再者工業(yè)的發(fā)展也對現(xiàn)場控制器的性能也提出了更高的要求[1]。在現(xiàn)場總線控制系統(tǒng)中,各個(gè)分散的測控設(shè)備作為獨(dú)立的網(wǎng)絡(luò)節(jié)點(diǎn),通過現(xiàn)場總線聯(lián)系起來,進(jìn)而實(shí)現(xiàn)信息互通,共同完成自動(dòng)化控制任務(wù)。工業(yè)CAN控制器的發(fā)展,推進(jìn)儀器儀表系統(tǒng)的數(shù)字化、智能化、網(wǎng)絡(luò)化進(jìn)程,所以基于CAN總線的現(xiàn)場總線控制器的研究與開發(fā)具有非常現(xiàn)實(shí)的意義[2]。
本課題設(shè)計(jì)的CAN總線控制器,由技術(shù)角度出發(fā)可以總結(jié)為儀表系統(tǒng)。儀表系統(tǒng)是由各個(gè)功能模塊集合而成,但也可以分離組合,其由結(jié)構(gòu)劃分為集成式、混合式和模塊式3種形式。其中集成式儀表是將傳感器與微處理器、信號調(diào)理電路做在同一塊芯片上。集成度高、體積小,此傳感器在目前技術(shù)水平上實(shí)現(xiàn)較難。而混合式集成儀表系統(tǒng)是將傳感器的微處理器、信號調(diào)理電路做在不同芯片上,目前此結(jié)構(gòu)儀表系統(tǒng)結(jié)構(gòu)較多。而初級智能儀表系統(tǒng)可用相互獨(dú)立的模塊組成,如將微計(jì)算機(jī)、信號調(diào)理電路模塊,輸出電路模塊,顯示電路模塊與傳感器裝配在同一殼體內(nèi),組成模塊式傳感器,本系統(tǒng)將對模塊化的控制器進(jìn)行研究。
本課題針對工業(yè)現(xiàn)場的數(shù)據(jù)采集設(shè)計(jì)了基于STM32的CAN總線的控制器,根據(jù)功能結(jié)構(gòu)的不同,該控制器將分為四大部分即現(xiàn)場數(shù)據(jù)采集、數(shù)據(jù)輸出、實(shí)時(shí)數(shù)據(jù)處理以及CAN總線控制器。 此系統(tǒng)CAN總線控制器采用STM32F103RC為主芯片,作為數(shù)據(jù)處理、存儲及控制部分,考慮該控制器的通用性,在數(shù)據(jù)輸入部分設(shè)計(jì)采集8路模擬量和4路數(shù)字量信號,8路模擬量通道可以接收由現(xiàn)場傳感器信號經(jīng)調(diào)理電路傳輸過來的標(biāo)準(zhǔn)電壓電流信號。輸出部分設(shè)計(jì)了4路模擬量和2路數(shù)字量輸出通道,其中4路模擬量的輸出通道,考慮到電壓輸出信號在傳輸過程中的損耗,這里采用了V/I轉(zhuǎn)換電路,在第一章已經(jīng)說明Stm32f103rc內(nèi)嵌CAN控制器,只需在外部接入CAN收發(fā)器,就可以完成與上位機(jī)通訊功能。系統(tǒng)硬件框圖如圖1所示。

圖1 系統(tǒng)總體結(jié)構(gòu)圖Fig.1 Structure diagram of the power control unit test system
2.1 系統(tǒng)模擬量采集電路
本設(shè)計(jì)要求做成通用的CAN控制器,設(shè)計(jì)中要采集8路模擬信號(電壓信號0~5 V,電流信號4~20 mA),經(jīng)過對模擬信號的處理再傳輸?shù)街餍酒腁DC進(jìn)行轉(zhuǎn)換,STM32F103RC的電壓輸入范圍在2.4~3.3 V之間,所以在采集電壓信號時(shí)我們要經(jīng)過分壓電阻進(jìn)行分壓處理,針對電流信號,要將電流轉(zhuǎn)換為電壓,所以在此引入精密電阻,即R= 250 Ω,經(jīng)過轉(zhuǎn)換處理得到理想的電壓符合AD的輸入范圍。考慮到STM32F103RC芯片內(nèi)部有2個(gè)12位的A/D轉(zhuǎn)換模塊,是一種逐次逼近式A/D轉(zhuǎn)換器,在模擬信號輸入時(shí)將分別用2個(gè)A/D模塊各采集4路模擬信號。
在選取運(yùn)放的時(shí)候還要注意參數(shù)的選擇要與芯片的ADC之間的誤差匹配問題,在此由計(jì)算得到滿量程3.3 V時(shí)(控制器ADC為12位轉(zhuǎn)換,得到對應(yīng)的LSB為0.8 mV),在選取運(yùn)放時(shí)要特別注意該運(yùn)放所引起的誤差是否在允許的范圍之內(nèi),本設(shè)計(jì)采用低功耗精密運(yùn)算放大器TLV2231CDBV,該運(yùn)放為單電源供電,工作電壓范圍在2.7~10 V之內(nèi),輸入失調(diào)電壓為0.45 mV,失調(diào)漂移在0.55 μV/℃,共模抑制比最小在60 dB,具體電路如圖2所示。

圖2 A/D輸入模擬信號調(diào)理電路Fig.2 The conditioning circuit of AD imput signal
2.2 系統(tǒng)數(shù)字量采集電路
本設(shè)計(jì)的數(shù)字采集模塊共涉及了4個(gè)數(shù)字量。由于該控制器應(yīng)用于工業(yè)現(xiàn)場,所以會(huì)受到較大的外界干擾,為了增強(qiáng)其干擾特性,在數(shù)字信號進(jìn)入微控制器之前加入了光電隔離電路。我們這里采用高速晶體管光耦HCPL0531進(jìn)行隔離,針對光耦的傳輸特性而言,在邏輯低電平時(shí),R=1.9 kΩ時(shí)的傳播延遲時(shí)間達(dá)到0.45 μs,最大為0.8 μs,上述計(jì)算中取得R=1.2 kΩ隨著R的減少延遲時(shí)間將有所減短。

圖3 數(shù)字量采集模塊原理圖Fig.3 Structure diagram of the hardware system
2.3 系統(tǒng)模擬信號輸出電路
本設(shè)計(jì)將設(shè)計(jì)2路模擬量輸出,主控制芯片內(nèi)嵌了DAC,可以將數(shù)字量轉(zhuǎn)換成模擬量電壓信號傳輸?shù)浆F(xiàn)場,由于電壓信號在傳輸過程中會(huì)造成衰減,于是增加了V/I轉(zhuǎn)換電路,在輸出模擬信號時(shí),常以電壓信號為準(zhǔn),但針對傳輸距離較長會(huì)導(dǎo)致電壓信號有所衰減,通常改進(jìn)的辦法是增加信號接收端的輸入電阻,可是輸入電阻的增加會(huì)對線路的抗干擾性產(chǎn)生降低的影響。所以在此我們將電壓傳輸變?yōu)殡娏鱾鬏敚渲蠽/I設(shè)計(jì)中用到運(yùn)放TLV223 CDBV,該運(yùn)放采用單電源直流5 V供電。經(jīng)過V/I電路實(shí)現(xiàn)0~20 mA電流的輸出。
2.4 系統(tǒng)數(shù)字信號輸出電路
針對此模塊設(shè)計(jì),本設(shè)計(jì)包括4路數(shù)字量輸出,產(chǎn)生的數(shù)字信號由處理器產(chǎn)生頻率信號經(jīng)過主控芯片I/O輸出。對此本設(shè)計(jì)考慮到兩點(diǎn):將產(chǎn)生的二進(jìn)制0或1直接輸出到執(zhí)行器前,會(huì)受到外部干擾,此處采用了光電隔離處理,選用了H11A817A作為光電隔離器件,集電極輸出電流為50 mA;再者由于數(shù)字輸出口的驅(qū)動(dòng)能力較低,所以在此選用高耐壓,大電流達(dá)林頓陣列,由7個(gè)硅NPN達(dá)林頓管組成的ULN2003AD,該器件電流增益高,灌電流可達(dá)500mA,工作電壓較大,具有較寬的溫度范圍,所以選取該器件來提高數(shù)字輸出端口的驅(qū)動(dòng)能力。
該電路的工作原理:對于第一路數(shù)字量輸出來說,第一種情況若DO0端輸出電壓信號為低電平時(shí),則H11A817A的發(fā)光二極管導(dǎo)通發(fā)光,致使光敏三極管端導(dǎo)通,輸出信號接在光敏三極管集電極,隔離后得到高電平信號。第二種情況若DO0端輸出高電平。光敏三極管不導(dǎo)通。最終得到低電平信號。

圖4 模擬量輸出原理圖Fig.4 The schematic of analogue outputs

圖5 數(shù)字量輸出原理圖Fig.5 The schematic of digital outputs
為了使系統(tǒng)實(shí)現(xiàn)需要的功能,還必須有軟件的支持。在此主要用C語言編寫單片機(jī)的軟件程序,軟件部分主要完成對傳感器信號A/D,D/A轉(zhuǎn)換處理,CAN總線的通信等工作。該控制器實(shí)現(xiàn)是通過微處理器把信號調(diào)理電路輸出的信號進(jìn)行轉(zhuǎn)換,以便于進(jìn)一步處理、傳輸?shù)取K泄δ芏荚谶@個(gè)主循環(huán)里面實(shí)現(xiàn),只需調(diào)用這個(gè)主循環(huán)以外所定義的功能函數(shù)。根據(jù)不同的值執(zhí)行與之對應(yīng)的處理程序,A/D,D/A在系統(tǒng)初始化后,啟動(dòng)并不斷轉(zhuǎn)換采樣通道并根據(jù)采樣值不斷更新顯示,當(dāng)有中斷發(fā)生時(shí)執(zhí)行中斷服務(wù)程序。
對于整個(gè)設(shè)計(jì)框架,主程序尤為重要,系統(tǒng)開啟時(shí),主程序調(diào)用各個(gè)模塊的功能子函數(shù)進(jìn)行初始化,主函數(shù)將各個(gè)子程序連接起來,處理各個(gè)事件,等到程序運(yùn)行結(jié)束后,再還原系統(tǒng)環(huán)境。本系統(tǒng)的軟件部分主要包括:STM32自帶ADC寄存器設(shè)置,AD轉(zhuǎn)換程序,CAN通訊收發(fā)程序,DA轉(zhuǎn)換程序等。總流程如圖6所示。

圖6 軟件設(shè)計(jì)的流程圖Fig.6 Flow chart the software design
制定iCAN協(xié)議的思路源于為中國中小型CAN應(yīng)用網(wǎng)絡(luò)提供一種簡單、可靠、穩(wěn)定的應(yīng)用層協(xié)議。在充分汲取了DeviceNet協(xié)議和CANopen協(xié)議之精萃的基礎(chǔ)上,優(yōu)先保障通信數(shù)據(jù)的可靠性與實(shí)時(shí)性,以相對簡單的方式進(jìn)行數(shù)據(jù)通信,從而有效降低了硬件實(shí)現(xiàn)成本,這就是iCAN協(xié)議的巨大優(yōu)勢。系統(tǒng)iCAN所具備的特點(diǎn)結(jié)構(gòu)簡單,靈活構(gòu)建、低成本,而且由于采用CAN總線還具有良好的可靠性和穩(wěn)定性,同時(shí)iCAN系統(tǒng)具有易于組態(tài),安裝、運(yùn)行、維護(hù)簡便的特點(diǎn)[5]。
iCAN協(xié)議規(guī)范中,I/O數(shù)據(jù)單元分為7個(gè)不同的空間,占用0x00-0xdf數(shù)據(jù)空間:數(shù)字量輸入單元DI、數(shù)字量輸出單元DO、模擬量輸入單元AI、模擬量輸出單元AO、串行接口0單元、串行接口1單元以及保留部分。iCAN協(xié)議中資源節(jié)點(diǎn)占用256字節(jié)空間:對于任意I/O數(shù)據(jù)需訪問指定資源節(jié)點(diǎn)地址,但對于配置資源中的IO配置單元要通過資源節(jié)點(diǎn)地址以及子地址的方式訪問,如圖7所示說明報(bào)文處理流程。

圖7 iCAN報(bào)文處理流程Fig.7 The processing of Ican packet flow
本設(shè)計(jì)的CAN控制器具備運(yùn)行速度快、體積、性能可靠、功耗低等特性,實(shí)現(xiàn)了工業(yè)現(xiàn)場的數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)輸出以及CAN控制器與上位機(jī)通訊等功能。在模擬量與數(shù)字量的采集基礎(chǔ)上,CAN控制節(jié)點(diǎn)上也有很大余量。本設(shè)計(jì)主要是針對當(dāng)前工業(yè)控制的需求和現(xiàn)有工業(yè)設(shè)備接口單一、傳輸距離有限、數(shù)據(jù)網(wǎng)絡(luò)化程度較低等多方面的缺點(diǎn)而開發(fā)設(shè)計(jì)的,設(shè)計(jì)出了這款接口種類多、體積小、可靠性高、易操作的新型CAN智能控制器設(shè)備。達(dá)到預(yù)期效果。采用STM32F103RC平臺控制板進(jìn)行軟件模擬測試,數(shù)據(jù)正常采集輸出。
[1]陳培植,基于CAN總線的監(jiān)控系統(tǒng)[J].上海第二工業(yè)大學(xué)學(xué)報(bào),2005,22(z1):222-236.CHEN Pei-zhi.Based on the CAN bus of monitoring system [J],Journal of Shanghai Second Polytechnic University, 2005,22(z1):222-236.
[2]楚紅雨,李磊明,黃玉青.基于ARM的嵌入式通信控制器設(shè)計(jì)與應(yīng)用[J].微計(jì)算機(jī)信息,2005(092):79-81.Chu?Hong-yu,Li Lei-ming,Huang Yu-qing.The design and application of embedded communication controller based on ARM[J].Microcomputer Information,2005(092):79-81.
[3]梁為民,劉愛琴,朱宗勝.智能儀表系統(tǒng)設(shè)計(jì)中的抗干擾問題的研究[J].電子技術(shù),2001,27(9):38-40.LIANG Wei-min,LIU Ai-qin,ZHU Zong-sheng.The anti interference problem in the design of Intelligent Instrument SystemResearch[J].Electronic technology,2001,27(9):38-40.
[4]張濤,智能儀表可靠性設(shè)計(jì)的研究[J].自動(dòng)化儀表,2008(12): 68-89.ZHANG Tao.Research on intelligent instrument reliability design[J].Automation Instrument,2008(12):68-89.
[5]周立功.嵌入式SOC智能平臺開發(fā)指南(基于LPC2300)[S].廣州致遠(yuǎn)電子有限公司,2008:468-489.
[6]李文剛,梁楚華,周建平,基于PCI總線的運(yùn)動(dòng)控制卡硬件系統(tǒng)設(shè)計(jì)[J].流體傳動(dòng)與控制,2010(3):89-94.LI Wen-gang,LIANG Chu-hua,ZHOU Jian-ping.PCI bus motion control card based on the hardware system design[J].Fluid Drive and Control,2010(3):89-94.
Factory-base can bus intelligent controller
LI Bo1,LI Xiao-qiang2
(1.Xi'an University of Technological Information,Xi’an 710025,China; 2.Xi'an Evening News Agency,Shanxi 710002,China)
With the continuous development of computer technology,microprocessor technology and communications technology,the traditional instrumentation already can not meet the requirements of the IPC.CAN bus controller for the industrial control system to a decentralized,network development has opened a new space.CAN controller has a good stability, high reliability,faster communication speed and low cost,and can effectively support real-time,distributed control,and thus used in many fields,This design in-depth study of embedded CAN STM32F103RC processors and it is the core component of the CAN controller hardware and software design from a structural point of view,The controller is compatible with analog digital input,to ensure versatility and has a large range of applications.Also guaranteed in the acquisition and the number of output channels.For example,the industry needs to increase the monitoring point or point of execution,the controller can solve this problem.Will reduce the investment cost of the user's long-term consideration,and CAN bus controller can be composed with other CAN nodes and PC remote monitoring system to achieve the instrument network and intelligent.
CAN bus;data acquisition;data processing;data output;Stm32F103RC
TN98
A
1674-6236(2015)10-0121-04
2014-09-10 稿件編號:201409080
李 博(1985—),男,山西大同人,碩士,助教。研究方向:工業(yè)自動(dòng)化控制與通訊設(shè)計(jì)。