|
產(chǎn)品搜索
產(chǎn)品分類
聯(lián)系方式
![]() 聯(lián)系人:上海自動(dòng)化儀表四廠 電 話: 021-6363 2619-104 傳 真:021-6363 2619-106 郵 箱:shyb1004@163.com |
新聞詳情
基于三線制壓力變送器HART接口通信的軟件流程發(fā)表時(shí)間:2021-11-18 13:37作者:上海自動(dòng)化儀表四廠 上海自動(dòng)化儀表四廠的壓力變送器HART接口通信的軟件流程,可以分成數(shù)據(jù)接收、命令處理、數(shù)據(jù)發(fā)送3個(gè)階段。數(shù)據(jù)接收階段,是對(duì)AD5700解調(diào)的串口數(shù)據(jù)進(jìn)行接收,有兩種方式: 先接收整幀的數(shù)據(jù)并保存,再進(jìn)行后續(xù)處理; (2)每接收一個(gè)字節(jié)就進(jìn)行相應(yīng)處理,處理成功再保存。由于HART一個(gè)字節(jié)的時(shí)間大約10ms,時(shí)間較長(zhǎng),故采用第2種方式效率會(huì)高很多。串口每接收一個(gè)字節(jié)的中斷處理流程如圖3所示,先判斷CD載波檢測(cè)是否有效,再根據(jù)標(biāo)志“當(dāng)前狀態(tài)”判斷,“空閑”表示可以對(duì)該字節(jié)進(jìn)行處理,否則表示正在處理前一條命令而需忽略此時(shí)的信號(hào)。 根據(jù)HART鏈路層規(guī)定,同一幀的字節(jié)與字節(jié)之間時(shí)間不能超過10ms,超過10ms則認(rèn)為是下一幀數(shù)據(jù),即切換“字節(jié)類型”為“前導(dǎo)符”。之后根據(jù)HART協(xié)議幀的格式,通過標(biāo)志“字節(jié)類型”來選擇壓力變送器當(dāng)前串口字節(jié)數(shù)據(jù)的處理方式。 例如,標(biāo)志“字節(jié)類型”為“前導(dǎo)符”,那么串口接收的非常好個(gè)字節(jié)送入“前導(dǎo)符”處理方式,若該字節(jié)為0xFF,進(jìn)行計(jì)數(shù),繼續(xù)接收下個(gè)字節(jié)進(jìn)行相同處理,直到出現(xiàn)界定符0x02和0x82字節(jié),且此時(shí)0xFF的個(gè)數(shù)為2~20個(gè),則切換“字節(jié)類型”為“地址”,以便下一個(gè)字節(jié)按照“地址”處理方式,期間任何環(huán)節(jié)出現(xiàn)幀格式不匹配時(shí),就切換“字節(jié)類型”為“前導(dǎo)符”。這樣能保證壓力變送器每接收的一幀數(shù)據(jù)是基本正確的。命令處理階段,如圖4所示,標(biāo)志“當(dāng)前狀態(tài)”為“接收完成”,表示一幀數(shù)據(jù)已經(jīng)被完整接收,然后依次進(jìn)行校驗(yàn),命令處理和相應(yīng)的數(shù)據(jù)處理,非常后組建響應(yīng)幀并準(zhǔn)備發(fā)送,期間任何一步出現(xiàn)錯(cuò)誤,都應(yīng)當(dāng)組建相應(yīng)的錯(cuò)誤幀數(shù)據(jù)以通知主機(jī)。 另外根據(jù)HART鏈路層規(guī)定,主機(jī)請(qǐng)求之后,必須在255ms之內(nèi)從機(jī)應(yīng)答,所以整個(gè)命令處理階段必須限制在該時(shí)間內(nèi)。之后切換HART芯片進(jìn)入發(fā)送狀態(tài),上海自動(dòng)化儀表四廠將已經(jīng)組建好的響應(yīng)幀或錯(cuò)誤幀送入串口發(fā)送即可,發(fā)送完后將標(biāo)志“當(dāng)前狀態(tài)”切換為“空閑”,以便從壓力變送器進(jìn)入接收等待狀態(tài)。 |