基于CAN總線的智能控制器設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:隨著計(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的STM32 F103RC處理器進(jìn)行深入研究,并以它為核心部件進(jìn)行CAN控制器軟硬件的設(shè)計(jì),該控制器兼容模擬量數(shù)字量的輸入,保證了通用性并具有較大的應(yīng)用范圍。在采集與輸出通道數(shù)量方面也得到了保障。例如由于工業(yè)需求要增加監(jiān)測點(diǎn)或執(zhí)行點(diǎn),本控制器可以解決此問題。從長遠(yuǎn)考慮會降低用戶的投資成本,本控制器可以與其他CAN節(jié)點(diǎn)及上位機(jī)組成CAN總線遠(yuǎn)程監(jiān)控系統(tǒng),實(shí)現(xiàn)儀表網(wǎng)絡(luò)化,智能化。
關(guān)鍵詞: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)場控制器的性能也提出了更高的要求。在現(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ā)具有非?,F(xiàn)實(shí)的意義。
本課題設(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)行研究。
1 總體方案設(shè)計(jì)
本課題針對工業(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所示。
2 系統(tǒng)硬件電路設(shè)計(jì)
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.2 系統(tǒng)數(shù)字量采集電路
本設(shè)計(jì)的數(shù)字采集模塊共涉及了4個(gè)數(shù)字量。由于該控制器應(yīng)用于工業(yè)現(xiàn)場,所以會受到較大的外界干擾,為了增強(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í)間將有所減短。
2.3 系統(tǒng)模擬信號輸出電路
本設(shè)計(jì)將設(shè)計(jì)2路模擬量輸出,主控制芯片內(nèi)嵌了DAC,可以將數(shù)字量轉(zhuǎn)換成模擬量電壓信號傳輸?shù)浆F(xiàn)場,由于電壓信號在傳輸過程中會造成衰減,于是增加了V/I轉(zhuǎn)換電路,在輸出模擬信號時(shí),常以電壓信號為準(zhǔn),但針對傳輸距離較長會導(dǎo)致電壓信號有所衰減,通常改進(jìn)的辦法是增加信號接收端的輸入電阻,可是輸入電阻的增加會對線路的抗干擾性產(chǎn)生降低的影響。所以在此我們將電壓傳輸變?yōu)殡娏鱾鬏?,其中V/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í)行器前,會受到外部干擾,此處采用了光電隔離處理,選用了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)通。最終得到低電平信號。
3 測試系統(tǒng)軟件設(shè)計(jì)
為了使系統(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)換程序等??偭鞒倘鐖D6所示。
4 通訊設(shè)計(jì)
制定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)。
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)文處理流程。
5 結(jié)論
本設(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ù)正常采集輸出。