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