国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于CAN總線的基站式智能儀表設計

2011-07-05 12:24
儀器儀表用戶 2011年5期
關鍵詞:寄存器儀表總線

馮 晗

(東華大學信息科學與技術學院,上海206120)

0 引言

隨著數(shù)字通信技術的進步及電子技術的飛速發(fā)展,儀器儀表在技術上向數(shù)字化、智能化、網(wǎng)絡化、微型化方向發(fā)展,逐步實現(xiàn)通用功能的模塊化、通信的網(wǎng)絡化、人機對話界面的人性化,同時自動化水平不斷提高,具備智能數(shù)字式控制算法、自補償、故障診斷及處理等功能[1]。本文結(jié)合國內(nèi)外智能儀器儀表的發(fā)展方向,設計了基于現(xiàn)場總線的智能儀表,利用DS18B20實現(xiàn)溫度補償功能,采用分段線性插值實現(xiàn)非線性校正,具備量程整定、參數(shù)設置等功能。同時智能儀表以非集成方式實現(xiàn),具備較強的靈活性與適應性。整個智能儀表功率低,性價比高,具有廣闊的應用前景。

1 系統(tǒng)組成

智能儀表系統(tǒng)的硬件電路由單片機、信號調(diào)理電路、A/D及D/A轉(zhuǎn)換電路,CAN通信電路,DS18B20數(shù)字式溫度傳感器,鍵盤顯示屏及基準電壓源等模塊組成。單片機是整個智能系統(tǒng)的核心,負責各種信號運算處理及控制功能。鍵盤及顯示屏模塊完成儀表工作初始化,設定儀表的參數(shù),包括量程、非線性補償算法參數(shù)及CAN通信參數(shù)等,并實時就地顯示被測參數(shù)數(shù)值。CAN通信模塊用于同上位機及其他CAN智能節(jié)點進行通信,實時接收上位機發(fā)送的命令,并向上位機及其他節(jié)點傳輸工業(yè)現(xiàn)場參數(shù)。DS18B20數(shù)字式溫度傳感器用于進行溫度校正,實現(xiàn)自動補償?shù)戎悄芄δ?。模?shù)轉(zhuǎn)換電路及數(shù)模轉(zhuǎn)換電路(利用PWM及斬波電路實現(xiàn))模塊用于采集現(xiàn)場模擬量信號并輸出模擬量的控制信號。電源模塊為整個智能系統(tǒng)提供電源。系統(tǒng)整體結(jié)構如圖1所示。

圖1 系統(tǒng)結(jié)構圖

2 輸入信號的采集與處理

2.1 輸入信號采集

智能傳感器系統(tǒng)的實現(xiàn)方式有集成實現(xiàn)與非集成實現(xiàn)。為了提高此設計儀表的靈活性,采用非集成的方式設計,即只提供經(jīng)典傳感器4-20mA信號接口,這樣可以使儀表適應于更多的場合。儀表使用時只需根據(jù)測量要求接入合適的傳感器,調(diào)整數(shù)字儀表的量程及精度。

信號調(diào)理電路實現(xiàn)信號的濾波,消除干擾信號,并完成4-20mA信號到1-5V信號的轉(zhuǎn)換。

PIC16F877內(nèi)置10位精度的A/D轉(zhuǎn)換器。設計中采用單片機的RA0和RA1引腳作為模擬量的輸入引腳,即設計2通道的模擬量輸入信號。為提高精度,減小量化誤差,軟件設置參考電壓范圍由RA2及RA3引腳給定(需要相應設置 PIC內(nèi)部寄存器ADC0N1的PCFG3:0位為1101)。其中,RA2為參考電壓負極,由分壓電路及反饋電路給出穩(wěn)定的1V電壓,RA3為參考電壓正極,直接接至系統(tǒng)的5V穩(wěn)壓工作電源。經(jīng)過適當?shù)呐渲肁/D轉(zhuǎn)換速度,設置相應引腳功能后,即可通過軟件命令進行A/D轉(zhuǎn)換并獲得輸入信號的數(shù)字值。

2.2 量程設定及補償算法

為提高儀表的適用范圍,設計時并沒有指定具體的量程范圍以及待測參數(shù)單位。在儀表初始化工作時,根據(jù)實際情況配置YMIN和YMAX,同時,指定待測物理量的單位。

本設計中采用分段線性插值法進行非線性校正,根據(jù)精度要求對反非線性曲線進行分段,用若干段折線逼近曲線,將折點坐標值存入數(shù)據(jù)表中,測量時首先要明確對應輸入被測量x的電壓值u是在哪一段;然后根據(jù)那一段的斜率進行線性插值,即得輸出值[2]。采用分段線性插值進行非線性校正的通式為:

本軟件設計中,折點個數(shù)最大可為50個,可以根據(jù)實際應用進行輸入選擇。同時,折點坐標也可以根據(jù)實際的輸入-輸出特性曲線,在線性度較差的曲線段上選擇較多的折點。所有折點數(shù)據(jù)在儀表初始化時進行設置。程序流程圖如圖2所示。

DS18B20是數(shù)字式溫度傳感器[3],安裝在儀表內(nèi)部用于實現(xiàn)溫度補償,以消除傳感器的交叉靈敏度,克服溫度對傳感器輸出的影響。DS18B20采用單總線協(xié)議,數(shù)據(jù)線上的所有信號傳輸,包括復位存在脈沖,位讀位寫信號均由2種電平模式在精確的時間控制下完成。本設計中,DS18B20與PIC16F877的RC1引腳相連接。由PIC16F877控制DS18B20的時序,主要是實現(xiàn)單總線上的電平時序控制:總線釋放時的操作為設置RC1為輸入引腳(TRISC1=1),總線電平自動由上拉電阻拉高;主機拉低總線電平需設置RC1為輸出口,并同時輸出低電平(TRISC1=0;RC1=0)。同時在精確地時間控制下,即可讀取DS18B20的溫度值。

圖2 非線性校正程序流程圖

PIC16F877寫入溫度補償程序,算法實現(xiàn)采用如下3階多項式公式:

式中,T為DS18B20獲得的進行溫度補償?shù)沫h(huán)境溫度,k0-k3系數(shù)均可在儀表工作時根據(jù)不同的傳感器設定并由鍵盤輸入,S0為溫度補償值。經(jīng)過補償計算后,獲得精確的測量值,作為控制模塊的輸入及通過CAN接口向上位機發(fā)送實時數(shù)據(jù)。

3 控制模塊的設計

由于一般工程上采用PID即可獲得較為滿意的控制性能,為實現(xiàn)低成本高效能的設計,本儀表采用數(shù)字式PID控制算法??刂扑惴ǖ钠頴由給定信號(可由儀表鍵盤設定,亦可通過CAN由上位機給定)與經(jīng)補償處理的測量信號相減給定。數(shù)字式PID控制算法如下:

式中,PID的3個參數(shù)均在儀表初始化中由面板鍵盤設定,具備了適應不同被控對象的靈活性。

此儀表控制信號的輸出采用2種可選信道。其中之一為PWM信號,適用調(diào)節(jié)裝置為PWM型信號的設備;另一路信號采用獨特的D/A轉(zhuǎn)換方式,即在脈沖寬度調(diào)制電路的基礎上增加直流斬波電路及濾波電路,通過設定合適的參數(shù),可輸出1-5V的標準控制信號。

PIC16F877的CCP模塊具備PWM輸出功能[4]。脈寬調(diào)制中,信號周期和高電平的持續(xù)時間(脈寬)是兩個非常重要的指標,其計算方法與構成要素如下:

2)PWM輸出信號的脈寬

計算PWM高電平(脈寬)的公式如下:

式中,CCPR1L∶CCP1CON為10位的脈寬寄存器,TOSC為系統(tǒng)時間;TMR2為預分頻值可取1、4、或16。

在控制算法設計中,CCPR1L的值是根據(jù)PID控制算法的輸出而實時變化的,即PWM的占空比隨不同的偏差e變化。

4 CAN通信模塊設計

CAN協(xié)議規(guī)范的具體實現(xiàn)主要由CAN總線控制器完成。該芯片完整的實現(xiàn)CAN協(xié)議,單片機只需要通過接口設置相關CAN協(xié)議的參數(shù),發(fā)送及接收數(shù)據(jù)[5]。

本設計中CAN控制器采用Microchip公司的帶有SPI接口的獨立CAN控制器MCP2515,CAN收發(fā)器采用Microchip公司的MCP2551。MCP2515相比于SJA1000 CAN控制器,采用SPI接口傳輸數(shù)據(jù)及命令,避免了并行傳輸數(shù)據(jù)占用過多I/O引腳,具有較多的接收及發(fā)送緩沖器,內(nèi)部設置了2個屏蔽寄存器及6個濾波寄存器,滿足了更多的匹配條件[6]。

本設計中,MCP2515的片選信號與MCU的RC7相連,SPI通信接口對應與PIC連接。MCP2515的3個發(fā)送控制引腳與2個接收中斷引腳未用。MCP2515所有中斷通過INT引腳接至RB0引腳(PIC16F877的RB引腳具有各種觸發(fā)中斷功能)。PIC16F877與MCP2515的硬件連接簡圖如圖3所示。

MCP2515與PIC16F877的數(shù)據(jù)交換主要通過SPI接口。利用PIC16F877內(nèi)置的MSSP模塊,可以方便的實現(xiàn)SPI通信,無需用I/O專門模擬通信時序,只需將待發(fā)送的數(shù)據(jù)放入特殊功能寄存器SSPBUF,設置相應SPI傳輸速率等參數(shù)即可完成。

通過SPI接口訪問MCP2515內(nèi)部寄存器以及發(fā)送接收數(shù)據(jù)都是通過特定的9條命令組成。將9條命令封裝成函數(shù),其中每個函數(shù)都調(diào)用SPI通信子函數(shù)發(fā)送相應指令代碼,地址,數(shù)據(jù)等信息。MCP2515所有工作均可在相應的命令下完成。

圖3 PIC16F877與MCP2515的硬件連接簡圖

CAN通信設置中最重要的參數(shù)是標稱位速率。在同一個CAN系統(tǒng)里,CAN速率是唯一固定的。因此,無論儀表是應用到某個具體的已有CAN網(wǎng)絡中,還是與其它智能節(jié)點組成新的CAN網(wǎng)絡,都需要對相應的位時間參數(shù)進行設置。

此儀表設計中采用20MHz的并聯(lián)晶體振蕩器,則tOSC=50ns。根據(jù)系統(tǒng)要求的CAN位速率,可求出相應的位時間。在較高位速率的應用場合當中,需要進一步考慮邏輯回路延時、傳播延時及振蕩器誤差等因素后,結(jié)合時間段長度設置基本要求,計算出合適的時間參數(shù),在儀表上電工作前進行設置,包括:波特率預分頻器值BRP(用以確定時間額度TQ);傳播段、相位緩沖段1、相位緩沖段2、同步跳轉(zhuǎn)寬度(均以TQ為單位)的長度,經(jīng)過邏輯運算后,賦值給CF1、CF2、CF3寄存器,可實現(xiàn)位定時的配置。

儀表的報文發(fā)送只需往相應的寄存器寫入上位機能接收的ID值以及待發(fā)送的數(shù)據(jù),然后調(diào)用RTS命令即可將數(shù)據(jù)發(fā)送到CAN總線上。儀表的報文接收設計需要設置屏蔽寄存器及濾波寄存器,使儀表能接收上位機及其它節(jié)點的報文。同時,設置CANINTE寄存器的RX1IE位和RX0IE位為1,啟動中斷功能,使接收到報文時MCP2515中斷引腳有中斷信號輸出。相應的,PIC16F877亦應進行相應設置,開啟全局中斷和INT外部觸發(fā)中斷使能位(INTCON寄存器的GIE位及INTE位置1)。當有報文接收時,觸發(fā)PIC中斷,MCU能及時處理接收到的報文。

5 結(jié)束語

PIC16F877內(nèi)部具有E2PROM,可以實現(xiàn)參數(shù)的備份以及重要工業(yè)現(xiàn)場參數(shù)的存儲。當儀表在CAN網(wǎng)絡中固定工作時,第一次設定CAN參數(shù)、PID參數(shù)及其它參數(shù)后,可選擇將參數(shù)存儲在E2PROM中,以后儀表運作時可直接從E2PROM中讀取儀表工作參數(shù)。同時,也可以記錄現(xiàn)場參數(shù)的重要信息,如越限報警數(shù)值等。

最后,設計高精度的穩(wěn)壓電源,為整個系統(tǒng)供電。鍵盤電路采用普通矩陣鍵盤,可以節(jié)約I/O引腳。液晶顯示屏采用工業(yè)液晶,可以在高干擾下工作。為保證儀表弱電系統(tǒng)不受干擾,在MCP2551與MCP2515中間加入光電隔離器,防止系統(tǒng)受到外界干擾。

此儀表經(jīng)現(xiàn)場測試,可以精確地獲得現(xiàn)場數(shù)據(jù),實現(xiàn)智能補償,給出合適的控制輸出,能同時滿足工業(yè)就地顯示和利用CAN總線向上位機實時發(fā)送數(shù)據(jù),亦能通過上位機接收命令,具有運行穩(wěn)定、抗干擾能力強、性價比低等優(yōu)點,滿足設計預期,可以應用在中小型工業(yè)生產(chǎn)現(xiàn)場,實時交換數(shù)據(jù)不多的場合,獲得滿意的效果。

[1]周浩敏,錢政.智能傳感技術與系統(tǒng)[M].北京:北京航空航天大學出版社,2008:5-6.

[2]劉君華,湯曉君,張勇,等.智能傳感器系統(tǒng)[M].西安:西安電子科技大學出版社,2010:120-123.

[3] Dallas Semiconductors.DS18B20 data sheet.http://www.maxim-ic.com

[4]李榮正,劉啟中,陳學軍.PIC單片機原理及應用[M].北京航空航天大學出版社,2006:146-148.

[5]饒運濤,鄒繼軍,王進宏,等.現(xiàn)場總線CAN原理與應用技術[M].北京航空航天大學出版社,2007:93-97.

[6]Microchip Technology Inc.Stand-Alone CAN Controller with SPI Interface.http://www.microchip.com

猜你喜歡
寄存器儀表總線
時間觸發(fā)通信總線監(jiān)控技術研究
浙江中控自動化儀表有限公司
浙江中控自動化儀表有限公司
關于CAN總線的地鐵屏蔽門控制思路論述
Lite寄存器模型的設計與實現(xiàn)
常用電子測速法在某數(shù)字信號處理器中的應用*
移位寄存器及算術運算應用
奔馳E260車行駛過程中儀表燈熄滅
寶馬745Li車制動燈常亮且組合儀表上多個故障燈點亮
PCI9030及其PCI總線接口電路設計
新营市| 清镇市| 嘉祥县| 离岛区| 遵义市| 二连浩特市| 乾安县| 唐海县| 民县| 麟游县| 南陵县| 怀化市| 聂荣县| 灵寿县| 漳州市| 雅江县| 永靖县| 缙云县| 永新县| 涟源市| 上思县| 城口县| 许昌县| 禹州市| 鄄城县| 兴国县| 平潭县| 清水河县| 柳河县| 丰台区| 天峨县| 莆田市| 天柱县| 武平县| 丘北县| 天津市| 渝中区| 铜川市| 五峰| 银川市| 明星|