摘要:隨著計算機技術(shù)、微處理器技術(shù)以及通訊技術(shù)的不斷發(fā)展,傳統(tǒng)儀表已經(jīng)不能適應工控的要求。而CAN總線控制器的出現(xiàn)為工業(yè)控制系統(tǒng)向分散化、網(wǎng)絡化發(fā)展等開辟了新的空間。CAN控制器具有良好的穩(wěn)定性、高可靠性、較快的通訊速率以及低成本等特點,且能夠有效支持實時、分布式控制,從而應用于許多領域,本設計針對內(nèi)嵌CAN的STM32 F103RC處理器進行深入研究,并以它為核心部件進行CAN控制器軟硬件的設計,該控制器兼容模擬量數(shù)字量的輸入,保證了通用性并具有較大的應用范圍。在采集與輸出通道數(shù)量方面也得到了保障。例如由于工業(yè)需求要增加監(jiān)測點或執(zhí)行點,本控制器可以解決此問題。從長遠考慮會降低用戶的投資成本,本控制器可以與其他CAN節(jié)點及上位機組成CAN總線遠程監(jiān)控系統(tǒng),實現(xiàn)儀表網(wǎng)絡化,智能化。
關(guān)鍵詞:CAN總線;數(shù)據(jù)采集;數(shù)據(jù)處理;數(shù)據(jù)輸出;Stm32F103RC
現(xiàn)如今工業(yè)生產(chǎn)針對現(xiàn)場數(shù)據(jù)的采集與控制的要求在日益提高,生產(chǎn)實現(xiàn)自動化處理,若繼續(xù)使用傳統(tǒng)的一對一連線式或“各自為戰(zhàn)”式集散系統(tǒng),企業(yè)的生存和發(fā)展將面臨著極大的挑戰(zhàn)。
為實現(xiàn)整個系統(tǒng)設備之間以及系統(tǒng)與外界之間的信息交換,就必須搭建一種性能優(yōu)越、可靠性高、造價低廉的通信系統(tǒng),并且要求該系統(tǒng)可運行于工業(yè)環(huán)境中,實現(xiàn)底層系統(tǒng)與外界信息的交換,再者工業(yè)的發(fā)展也對現(xiàn)場控制器的性能也提出了更高的要求。在現(xiàn)場總線控制系統(tǒng)中,各個分散的測控設備作為獨立的網(wǎng)絡節(jié)點,通過現(xiàn)場總線聯(lián)系起來,進而實現(xiàn)信息互通,共同完成自動化控制任務。工業(yè)CAN控制器的發(fā)展,推進儀器儀表系統(tǒng)的數(shù)字化、智能化、網(wǎng)絡化進程,所以基于CAN 總線的現(xiàn)場總線控制器的研究與開發(fā)具有非?,F(xiàn)實的意義。
本課題設計的CAN總線控制器,由技術(shù)角度出發(fā)可以總結(jié)為儀表系統(tǒng)。儀表系統(tǒng)是由各個功能模塊集合而成,但也可以分離組合,其由結(jié)構(gòu)劃分為集成式、混合式和模塊式3種形式。其中集成式儀表是將傳感器與微處理器、信號調(diào)理電路做在同一塊芯片上。集成度高、體積小,此傳感器在目前技術(shù)水平上實現(xiàn)較難。而混合式集成儀表系統(tǒng)是將傳感器的微處理器、信號調(diào)理電路做在不同芯片上,目前此結(jié)構(gòu)儀表系統(tǒng)結(jié)構(gòu)較多。而初級智能儀表系統(tǒng)可用相互獨立的模塊組成,如將微計算機、信號調(diào)理電路模塊,輸出電路模塊,顯示電路模塊與傳感器裝配在同一殼體內(nèi),組成模塊式傳感器,本系統(tǒng)將對模塊化的控制器進行研究。
1 總體方案設計
本課題針對工業(yè)現(xiàn)場的數(shù)據(jù)采集設計了基于STM32的CAN總線的控制器,根據(jù)功能結(jié)構(gòu)的不同,該控制器將分為四大部分即現(xiàn)場數(shù)據(jù)采集、數(shù)據(jù)輸出、實時數(shù)據(jù)處理以及CAN總線控制器。此系統(tǒng)CAN總線控制器采用STM32F103RC為主芯片,作為數(shù)據(jù)處理、存儲及控制部分,考慮該控制器的通用性,在數(shù)據(jù)輸入部分設計采集8路模擬量和4路數(shù)字量信號,8路模擬量通道可以接收由現(xiàn)場傳感器信號經(jīng)調(diào)理電路傳輸過來的標準電壓電流信號。輸出部分設計了4路模擬量和2路數(shù)字量輸出通道,其中4路模擬量的輸出通道,考慮到電壓輸出信號在傳輸過程中的損耗,這里采用了V/I轉(zhuǎn)換電路,在第一章已經(jīng)說明 Stm32f103rc內(nèi)嵌CAN控制器,只需在外部接入CAN收發(fā)器,就可以完成與上位機通訊功能。系統(tǒng)硬件框圖如圖1所示。
2 系統(tǒng)硬件電路設計
2.1 系統(tǒng)模擬量采集電路
本設計要求做成通用的CAN控制器,設計中要采集8路模擬信號(電壓信號0~5 V,電流信號4~20 mA),經(jīng)過對模擬信號的處理再傳輸?shù)街餍酒腁DC進行轉(zhuǎn)換,STM32F103RC的電壓輸入范圍在2.4~3.3 V之間,所以在采集電壓信號時我們要經(jīng)過分壓電阻進行分壓處理,針對電流信號,要將電流轉(zhuǎn)換為電壓,所以在此引入精密電阻,即R=250 Ω,經(jīng)過轉(zhuǎn)換處理得到理想的電壓符合AD的輸入范圍??紤]到STM32F103RC:芯片內(nèi)部有2個12位的A/D轉(zhuǎn)換模塊,是一種逐次逼近式A/D轉(zhuǎn)換器,在模擬信號輸入時將分別用2個A/D模塊各采集4路模擬信號。
在選取運放的時候還要注意參數(shù)的選擇要與芯片的ADC之間的誤差匹配問題,在此由計算得到滿量程3.3 V時(控制器ADC為12位轉(zhuǎn)換,得到對應的LSB為0.8 mV),在選取運放時要特別注意該運放所引起的誤差是否在允許的范圍之內(nèi),本設計采用低功耗精密運算放大器TLV2231CDBV,該運放為單電源供電,工作電壓范圍在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ù)字采集模塊共涉及了4個數(shù)字量。由于該控制器應用于工業(yè)現(xiàn)場,所以會受到較大的外界干擾,為了增強其干擾特性,在數(shù)字信號進入微控制器之前加入了光電隔離電路。我們這里采用高速晶體管光耦HCPL0531進行隔離,針對光耦的傳輸特性而言,在邏輯低電平時,R=1.9 kΩ時的傳播延遲時間達到0.45μs,最大為0.8μs,上述計算中取得R=1.2 kΩ隨著R的減少延遲時間將有所減短。
2.3 系統(tǒng)模擬信號輸出電路
本設計將設計2路模擬量輸出,主控制芯片內(nèi)嵌了DAC,可以將數(shù)字量轉(zhuǎn)換成模擬量電壓信號傳輸?shù)浆F(xiàn)場,由于電壓信號在傳輸過程中會造成衰減,于是增加了V/I轉(zhuǎn)換電路,在輸出模擬信號時,常以電壓信號為準,但針對傳輸距離較長會導致電壓信號有所衰減,通常改進的辦法是增加信號接收端的輸入電阻,可是輸入電阻的增加會對線路的抗干擾性產(chǎn)生降低的影響。所以在此我們將電壓傳輸變?yōu)殡娏鱾鬏敚渲蠽/I設計中用到運放TLV223 CDBV,該運放采用單電源直流5 V供電。經(jīng)過V/I電路實現(xiàn)0~20 mA電流的輸出。
2.4 系統(tǒng)數(shù)字信號輸出電路
針對此模塊設計,本設計包括4路數(shù)字量輸出,產(chǎn)生的數(shù)字信號由處理器產(chǎn)生頻率信號經(jīng)過主控芯片I/O輸出。對此本設計考慮到兩點:將產(chǎn)生的二進制0或1直接輸出到執(zhí)行器前,會受到外部干擾,此處采用了光電隔離處理,選用了H11A817A作為光電隔離器件,集電極輸出電流為50 mA;再者由于數(shù)字輸出口的驅(qū)動能力較低,所以在此選用高耐壓,大電流達林頓陣列,由7個硅NPN達林頓管組成的ULN2003AD,該器件電流增益高,灌電流可達500mA,工作電壓較大,具有較寬的溫度范圍,所以選取該器件來提高數(shù)字輸出端口的驅(qū)動能力。
該電路的工作原理:對于第一路數(shù)字量輸出來說,第一種情況若DO0端輸出電壓信號為低電平時,則H11A817A的發(fā)光二極管導通發(fā)光,致使光敏三極管端導通,輸出信號接在光敏三極管集電極,隔離后得到高電平信號。第二種情況若DO0端輸出高電平。光敏三極管不導通。最終得到低電平信號。
3 測試系統(tǒng)軟件設計
為了使系統(tǒng)實現(xiàn)需要的功能,還必須有軟件的支持。在此主要用C語言編寫單片機的軟件程序,軟件部分主要完成對傳感器信號A/D,D/A轉(zhuǎn)換處理,CAN總線的通信等工作。該控制器實現(xiàn)是通過微處理器把信號調(diào)理電路輸出的信號進行轉(zhuǎn)換,以便于進一步處理、傳輸?shù)?。所有功能都在這個主循環(huán)里面實現(xiàn),只需調(diào)用這個主循環(huán)以外所定義的功能函數(shù)。根據(jù)不同的值執(zhí)行與之對應的處理程序,A/D,D/A在系統(tǒng)初始化后,啟動并不斷轉(zhuǎn)換采樣通道并根據(jù)采樣值不斷更新顯示,當有中斷發(fā)生時執(zhí)行中斷服務程序。
對于整個設計框架,主程序尤為重要,系統(tǒng)開啟時,主程序調(diào)用各個模塊的功能子函數(shù)進行初始化,主函數(shù)將各個子程序連接起來,處理各個事件,等到程序運行結(jié)束后,再還原系統(tǒng)環(huán)境。本系統(tǒng)的軟件部分主要包括:STM32自帶ADC寄存器設置,AD轉(zhuǎn)換程序,CAN通訊收發(fā)程序,DA轉(zhuǎn)換程序等??偭鞒倘鐖D6所示。
4 通訊設計
制定iCAN協(xié)議的思路源于為中國中小型CAN應用網(wǎng)絡提供一種簡單、可靠、穩(wěn)定的應用層協(xié)議。在充分汲取了DeviceNet協(xié)議和 CANopen協(xié)議之精萃的基礎上,優(yōu)先保障通信數(shù)據(jù)的可靠性與實時性,以相對簡單的方式進行數(shù)據(jù)通信,從而有效降低了硬件實現(xiàn)成本,這就是iCAN協(xié)議的巨大優(yōu)勢。系統(tǒng)iCAN所具備的特點結(jié)構(gòu)簡單,靈活構(gòu)建、低成本,而且由于采用CAN總線還具有良好的可靠性和穩(wěn)定性,同時iCAN系統(tǒng)具有易于組態(tài),安裝、運行、維護簡便的特點。
iCAN協(xié)議規(guī)范中,I/O數(shù)據(jù)單元分為7個不同的空間,占用0x00—0xdf數(shù)據(jù)空間:數(shù)字量輸入單元DI、數(shù)字量輸出單元DO、模擬量輸入單元 AI、模擬量輸出單元AO、串行接口0單元、串行接口1單元以及保留部分。iCAN協(xié)議中資源節(jié)點占用256字節(jié)空間:對于任意I/O數(shù)據(jù)需訪問指定資源節(jié)點地址,但對于配置資源中的IO配置單元要通過資源節(jié)點地址以及子地址的方式訪問,如圖7所示說明報文處理流程。
5 結(jié)論
本設計的CAN控制器具備運行速度快、體積、性能可靠、功耗低等特性,實現(xiàn)了工業(yè)現(xiàn)場的數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)輸出以及CAN控制器與上位機通訊等功能。在模擬量與數(shù)字量的采集基礎上,CAN控制節(jié)點上也有很大余量。本設計主要是針對當前工業(yè)控制的需求和現(xiàn)有工業(yè)設備接口單一、傳輸距離有限、數(shù)據(jù)網(wǎng)絡化程度較低等多方面的缺點而開發(fā)設計的,設計出了這款接口種類多、體積小、可靠性高、易操作的新型CAN智能控制器設備。達到預期效果。采用 STM32F103RC平臺控制板進行軟件模擬測試,數(shù)據(jù)正常采集輸出。