MSP430的HART從機控制器的設(shè)計
摘要:為了應(yīng)對傳統(tǒng)現(xiàn)場儀表的功能升級需求,增強現(xiàn)場儀表與控制主機之間的通信能力,設(shè)計并實現(xiàn)了一款以MSP430單片機為主控芯片,使用HART調(diào)制解調(diào)器DS8500和環(huán)路供電型4~20 mA數(shù)/模轉(zhuǎn)換器AD421搭建HART通信協(xié)議物理層的HART從機控制器。
引言
現(xiàn)代工業(yè)生產(chǎn)活動的正常進行離不開現(xiàn)場設(shè)備和與之配套的控制主機,為了充分發(fā)揮現(xiàn)場設(shè)備的性能,控制主機和現(xiàn)場設(shè)備之間必須要有一套高效可靠的通信協(xié)議。傳統(tǒng)工業(yè)控制領(lǐng)域多使用4~20 mA模擬信號來完成現(xiàn)場設(shè)備與控制主機之間的通信,但是模擬信號傳輸數(shù)據(jù)具有傳輸方向單一、傳輸數(shù)據(jù)量少等諸多不足。為了解決這些問題,在20世紀80年代中期,美國Rosemount公司提出了高速可尋址遠程傳感器協(xié)議(Highway Addressable Remote Transducer,HART)用來增強現(xiàn)場設(shè)備與控制主機之間的通信能力。
HART協(xié)議是一種用于現(xiàn)場智能設(shè)備與控制主機或監(jiān)測系統(tǒng)之間的通過模擬線路傳輸數(shù)字信號的通信協(xié)議,在20世紀90年代初移交給HART基金會HCF,由其負責修訂更新并向外界發(fā)布。
與其他總線技術(shù)相比,由于HART協(xié)議無需額外的通信線路就能夠通過傳統(tǒng)的4~20 mA模擬通信線路提供數(shù)字信號,使得設(shè)備廠商花費很小的代價就能對傳統(tǒng)設(shè)備升級改造,為用戶提供更多的功能,因此HART協(xié)議在當前的工業(yè)控制領(lǐng)域中得到了廣泛的應(yīng)用,發(fā)展至今已經(jīng)成為全球智能儀表通用的工業(yè)標準。本文提出了一種基于TI公司的低功耗的MSP430處理器的HART從機控制器。
1 HART協(xié)議簡介
HART協(xié)議是一種雙路、半雙工、對傳統(tǒng)4~20 mA模擬通信網(wǎng)絡(luò)進行增強的向后兼容型通信協(xié)議,為儀表、控制和自動化系統(tǒng)制定了一個雙向現(xiàn)場通信協(xié)議標準。HART協(xié)議利用貝爾202頻移鍵控(FSK)技術(shù),將低電平的數(shù)字通信信號疊加到傳統(tǒng)的4~20 mA模擬信號上,來實現(xiàn)雙向現(xiàn)場通信,數(shù)字通信與現(xiàn)存的模擬通信體制完全兼容,并支持點對點或多點模式的網(wǎng)絡(luò)配置,為用戶提供了一種易于使用和配置的低成本、高可靠性的現(xiàn)場通信解決方案。
HART協(xié)議目前參照并實現(xiàn)了OSI(開放系統(tǒng)互連)模型的1~4層和第7層。在本設(shè)計的實現(xiàn)中只需考慮簡化的3層模型,即第1層物理層、第2層數(shù)據(jù)鏈路層和第7層應(yīng)用層。
HART協(xié)議物理層規(guī)定了HART信號的傳輸方法、信號電平、設(shè)備阻抗和傳輸介質(zhì)等一系列指標。HART協(xié)議采用頻移鍵控(FSK)技術(shù),在低頻的4~20 mA模擬信號上疊加幅度為0.5 mA的不同頻率的正弦電流調(diào)制波信號來實現(xiàn)數(shù)字通信,信號傳輸速率為1200 bps,頻率為1200Hz代表“1”,頻率為2200Hz代表“0”。如圖1所示。
由于數(shù)字FSK信號是相位連續(xù)的,正弦信號平均值為0,所以HART協(xié)議的數(shù)字通信不會對4~20 mA模擬信號造成干擾,在實現(xiàn)數(shù)字通信的同時,保證了對傳統(tǒng)模擬信號的兼容。因此HART協(xié)議在通信過程中可以提供兩個通信信道:4~20 mA模擬信號和數(shù)字信號,如圖2所示。
4~20 mA模擬信號可以利用4~20 mA電流回路快速地傳輸現(xiàn)場設(shè)備的主要測量值。此外,HART協(xié)議可以通過疊加在模擬線路上的數(shù)字信號來傳輸其他更為詳細的設(shè)備信息,如設(shè)備狀態(tài)、診斷信息、附加計算值等。兩個通信信道的結(jié)合大大提高了現(xiàn)場設(shè)備與主機之間的通信能力。
HART數(shù)據(jù)鏈路層定義了一項主從協(xié)議,正常使用時,現(xiàn)場設(shè)備只有接到主機的信號時才產(chǎn)生應(yīng)答。最多可以有兩個主機,通常是控制系統(tǒng)為第一主機,手持控制器為第二主機,兩個主機通信互不干擾。同時,數(shù)據(jù)鏈路層規(guī)定了HART協(xié)議的通信數(shù)據(jù)結(jié)構(gòu),對HART協(xié)議在進行通信時的數(shù)據(jù)幀格式進行了詳細的定義,并采用縱向奇偶檢驗,根據(jù)檢錯碼結(jié)果采取自動重復請求發(fā)送機制,能夠有效地消除線路上的偶然噪聲干擾,為數(shù)據(jù)傳輸提供了一個可靠的通信路徑。HART協(xié)議通信數(shù)據(jù)幀的格式如圖3所示。
HART協(xié)議數(shù)據(jù)幀格式中每個字符包含一個8位的編碼數(shù)據(jù)以及一個起始位、一個奇偶校驗位和一個停止位,通常使用串口來完成字符的傳輸。現(xiàn)場儀表作為從機接收HART指令并產(chǎn)生響應(yīng)時,要嚴格遵照HART協(xié)議的數(shù)據(jù)幀格式。由于HART協(xié)議數(shù)據(jù)幀的前導符長度不同、數(shù)據(jù)幀中包含數(shù)據(jù)長度不確定,因此 HART數(shù)據(jù)幀的總長度也是不固定的,最長為25字節(jié)。
HART協(xié)議應(yīng)用層定義了協(xié)議所支持的命令、響應(yīng)、數(shù)據(jù)狀態(tài)和狀態(tài)報告。在應(yīng)用層,HART協(xié)議為用戶提供了HART命令集,命令集中的命令分為3大類,即通用命令、常用命令和設(shè)備特定命令。通用命令是所有支持HART協(xié)議的設(shè)備均支持的命令,最常見的如讀取產(chǎn)品生產(chǎn)廠商及型號等信息。常用命令對于大部分設(shè)備適用,這些命令提供的功能并不是所有設(shè)備都支持,如寫變量阻尼值、標定等。設(shè)備特定命令只針對某種具體設(shè)備的特殊性設(shè)立,由儀器制造商指定。
2 HART控制器硬件設(shè)計
HART協(xié)議是通過在傳統(tǒng)的4~20 mA電流環(huán)路上疊加±0.5 mA的電流波信號來進行數(shù)字通信,對于搭載了HART模塊的現(xiàn)場設(shè)備來說,只有整個設(shè)備的自身功耗控制在3.5 mA以下,才能夠保證模擬信號和數(shù)字信號均能正常進行通信,因此在設(shè)計系統(tǒng)時低功耗是首先要考慮的問題。MSP430系列單片機是TI公司的16位超低功耗單片機,為降低功耗專門為芯片設(shè)計了靈活的時鐘系統(tǒng)、多種低功耗模式、即時喚醒功能;同時,該系列單片機具有16位RISC結(jié)構(gòu),運算能力較強,并擁有豐富的片內(nèi)外設(shè),已經(jīng)在工業(yè)控制領(lǐng)域得到了廣泛的應(yīng)用。因此,在本設(shè)計中采用MSP430單片機系列中的MSP430F149作為HART從機控制器的主控芯片。
4~20 mA的模擬信號通過使用ADI公司的AD421搭建外圍電路來實現(xiàn),AD421是一款完整的環(huán)路供電型4~20 mA數(shù)字轉(zhuǎn)換器,這款DAC采用∑-△結(jié)構(gòu),可保證16位分辨率和單調(diào)性,積分非線性只有±0.01%。同時,AD421完全兼容標準HART電路或者其他類似的FSK協(xié)議,與HART協(xié)議FSK通信電路結(jié)合使用時不會使額定性能受到影響,是一款非常適合用來實現(xiàn)HART協(xié)議的DAC。AD421及其外圍電路設(shè)計原理圖如圖4所示。
AD421通過鎖存線LATCH、時鐘線CLOCK、數(shù)據(jù)線DATA與MSP430的I/O口連接,MCU通過三線接口向AD421傳輸數(shù)據(jù)來調(diào)整輸出的 4~20 mA模擬信號值,AD421的C3引腳接收HART模塊耦合過來的FSK信號,再將信號疊加到電流輸出環(huán)路中完成數(shù)字信號傳輸,LOOP+和LOOP-分別為4~20 mA電流回路的兩個端口。
DS8500是一款由Maxim公司推出的單芯片HART兼容調(diào)制解調(diào)器IC,滿足HART協(xié)議物理層規(guī)范要求。該器件內(nèi)部集成了1200 Hz/2 200 Hz FSK信號調(diào)制、解調(diào)功能和數(shù)字信號處理功能,僅需很少的外部器件就能完成HART通信電路的搭建,大大降低了電路設(shè)計難度。工作時,HART輸入信號首先通過ADC采樣,然后進行數(shù)字濾波、解調(diào),保證在干擾環(huán)境下信號測量的可靠性。輸出DAC產(chǎn)生正弦波,并提供一路可以在1200 Hz和2200 Hz之間連續(xù)切換的低噪信號。接收時通過禁用發(fā)送電路實現(xiàn)低功耗,發(fā)送時同理,是一款理想的低功耗HART調(diào)制解調(diào)器。DS8500及其外圍電路設(shè)計原理圖如圖5所示。
DS8500的數(shù)字輸入腳D_IN、數(shù)字輸出腳D_OUT與MSP430的串口連接。載波檢測引腳OCD,發(fā)送請求引腳RTS與MCU的I/O口相連。接收數(shù)據(jù)時,MCU拉高RTS引腳,使能DS8500的解調(diào)模塊,環(huán)路上的HART信號經(jīng)過外圍電路的濾波后從DS8500的FSK_IN引腳輸入,接收到有效HART信號后,DS8500的載波檢測引腳OCD輸出高電平,并將解碼后的數(shù)據(jù)通過D_OUT引腳串行輸出,MSP430通過串口中斷接收數(shù)據(jù)并進行處理。發(fā)送數(shù)據(jù)時,MSP430拉低RTS引腳電平,使能DS8500的調(diào)制模塊,MSP430將要發(fā)送的數(shù)據(jù)通過串口從D_IN引腳發(fā)送給 DS8500,調(diào)制后的HART信號由FSK_OUT引腳輸出,并通過一個電容耦合到AD421的C1引腳,最終疊加到4~20 mA環(huán)路路中完成通信。
3 HART控制器軟件程序設(shè)計
HART從機控制器軟件程序設(shè)計主要包括3大部分:AD421驅(qū)動程序?qū)崿F(xiàn)、HART協(xié)議通信幀的正確接收與分析、HART應(yīng)用層命令的應(yīng)答實現(xiàn)。其中,AD421驅(qū)動程序比較簡單,官方網(wǎng)站已經(jīng)提供相應(yīng)驅(qū)動包。而HART命令的應(yīng)答實現(xiàn)依賴于對數(shù)據(jù)幀的正確分析,因此整個控制器軟件程序的核心部分就是如何確保正確接收到完整的HART數(shù)據(jù)幀,并從數(shù)據(jù)幀中提取出有效的信息加以分析,生成相應(yīng)的應(yīng)答數(shù)據(jù)幀。
HART設(shè)備在進行通信時,首先由主機(上位機或手操器)向從機發(fā)送命令,從機(現(xiàn)場設(shè)備)接收到主機的命令后執(zhí)行相應(yīng)動作并返回應(yīng)答數(shù)據(jù)。由于HART 協(xié)議通信數(shù)據(jù)幀長度不定,最長為25字節(jié),只擁有固定的前導符而沒有固定的結(jié)束標識符,因此在本控制器的程序設(shè)計中使用MSP430的定時器來判斷主機不足25字節(jié)的一幀數(shù)據(jù)是否發(fā)送完畢,由于HART協(xié)議通信速率為1200 bps,傳輸每位數(shù)據(jù)的時間約為833μs,因此可以定義一個大于833μs的延時時間T,當從機最后一次接收到數(shù)據(jù)后,經(jīng)過T時間沒有接收到新數(shù)據(jù)就可以認為已經(jīng)接收完一幀完整的數(shù)據(jù)。
系統(tǒng)上電穩(wěn)定,經(jīng)過一系列初始化操作后,MSP430控制DS8500打開解調(diào)模塊,處于接收等待狀態(tài)。當上位機有數(shù)據(jù)發(fā)送過來時,DS8500將解調(diào)后的數(shù)據(jù)通過串口發(fā)送給MSP 430,若接收到的第一個字符為0xFF(前導符開頭字節(jié))則啟動定時器,定時5ms(根據(jù)需要調(diào)整),并將接收字符送入接收緩沖區(qū),此后每接收到一個字符立刻將該字符存入接收緩沖區(qū),并重置定時器計數(shù)器,直到定時器溢出(5 ms沒有接到新數(shù)據(jù))或者25字節(jié)的接收緩沖區(qū)已被填滿。此時,認為主機已經(jīng)發(fā)送完一幀完整的數(shù)據(jù),接下來調(diào)用HART數(shù)據(jù)處理函數(shù),判斷接收者地址為本機后,對接收緩沖區(qū)內(nèi)的數(shù)據(jù)進行校驗,校驗通過后提取出主機發(fā)送的命令和數(shù)據(jù),根據(jù)命令執(zhí)行相應(yīng)操作并生成應(yīng)答數(shù)據(jù)存入發(fā)送緩沖區(qū)中。MSP 430打開DS8500的調(diào)制模塊,將應(yīng)答數(shù)據(jù)從串口傳送給DS8500,經(jīng)過調(diào)制后通過4~20 mA環(huán)路發(fā)送給主機,然后關(guān)閉DS8500的調(diào)制器,打開解調(diào)器,繼續(xù)等待下一次命令的到來。控制程序核心部分流程圖如圖6所示。
HART協(xié)議應(yīng)用層命令的實現(xiàn)依賴于具體的設(shè)備,不同的設(shè)備需要實現(xiàn)的命令不盡相同,本控制器軟件程序使用了一個switch結(jié)構(gòu)來判斷從接收數(shù)據(jù)幀中提取出來的主機命令。因此,當本控制器應(yīng)用于不同的設(shè)備時,應(yīng)用層部分只需根據(jù)設(shè)備需求添加case判斷語句和動作執(zhí)行代碼,就可完成對新的命令的支持,具有很好的可復用性。
結(jié)語
與其他總線技術(shù)相比,HART協(xié)議并不能算是嚴格意義上的現(xiàn)場總線(模擬信號與數(shù)字信號混合),這使得難以為其開發(fā)統(tǒng)一的通信接口芯片,同時HART協(xié)議作為模擬系統(tǒng)向數(shù)字系統(tǒng)進行轉(zhuǎn)變的過渡協(xié)議,在智能化、通信速率等方面又與真正的現(xiàn)場總線存在一定的差距,但這些方面的不足并不影響HART協(xié)議在世界范圍得到廣泛的應(yīng)用。
由于HART協(xié)議實現(xiàn)簡單、成本低廉、工作可靠,在未來的很長一段時間內(nèi),HART協(xié)議仍將作為事實上的工業(yè)標準活躍在工業(yè)領(lǐng)域,這也是本文提出該HART從機控制器設(shè)計的原因所在。
HART從機控制器在硬件上使用了很少的元件就完成了HART通信所必需的物理層搭建,具有電路結(jié)構(gòu)簡單、成本低廉、穩(wěn)定性好等優(yōu)點。與現(xiàn)有設(shè)備結(jié)合時,可以利用MSP430單片機來實現(xiàn)設(shè)備原有功能,HART通信模塊實現(xiàn)HART協(xié)議通信,或者根據(jù)設(shè)備具體情況直接將HART模塊加載于原設(shè)備之上,軟件程序只需針對設(shè)備所使用的單片機型號更改相應(yīng)的初始化代碼,并根據(jù)實際需要實現(xiàn)HART應(yīng)用層的命令應(yīng)答。目前,該設(shè)計已經(jīng)應(yīng)用在實際產(chǎn)品上,成功地將一款原本只支持4~20mA模擬通信的兩線制超聲波液位計升級改造,使其支持HART協(xié)議通信,并且經(jīng)過一段時間的測試觀察,通信穩(wěn)定,完全滿足了低成本限制下對傳統(tǒng)現(xiàn)場設(shè)備升級改造的需求,具有一定的參考價值。