張立國(guó) ,李福昆 ,嚴(yán) 偉 ,劉 強(qiáng) ,王雪迪
(1.燕山大學(xué) 電氣工程學(xué)院,河北 秦皇島 066000;2.北京大學(xué) 軟件與微電子學(xué)院,北京 100871)
芯片產(chǎn)業(yè)是制造業(yè)的上游,被稱為“工業(yè)糧食”,是制造業(yè)必不可少的核心技術(shù)[1]。我國(guó)目前正大力進(jìn)行制造轉(zhuǎn)型,促進(jìn)高端制造業(yè)的發(fā)展,在這個(gè)過(guò)程中芯片產(chǎn)業(yè)成為極其重要的環(huán)節(jié)。隨著物聯(lián)網(wǎng)互聯(lián)網(wǎng)的發(fā)展,通信技術(shù)也迎來(lái)了科技變革,通信技術(shù)以移動(dòng)接入、實(shí)時(shí)通信、寬帶傳輸、泛在計(jì)算、傳感互聯(lián)等技術(shù)表現(xiàn)形式成為大力發(fā)展的一個(gè)技術(shù)領(lǐng)域[2]。
在現(xiàn)代化工廠中,HART(Highway Addressable Remote Transducer,可尋址遠(yuǎn)程傳感器高速通道的開(kāi)放通信協(xié)議)轉(zhuǎn)置提供具有相對(duì)低的帶寬,適度響應(yīng)時(shí)間的通信[3],經(jīng)過(guò)10 多年的發(fā)展,HART 技術(shù)在國(guó)內(nèi)外已經(jīng)十分成熟,并已成為全球智能儀表的工業(yè)標(biāo)準(zhǔn)[3]。但在工業(yè)以太網(wǎng)與工業(yè)物聯(lián)網(wǎng)的大背景下,傳統(tǒng)的HART 儀器儀表與HART 傳統(tǒng)芯片面臨著變革與挑戰(zhàn),目前HART 協(xié)議芯片存在設(shè)計(jì)種類單一、結(jié)構(gòu)簡(jiǎn)單、所支持的設(shè)備和CPU控制設(shè)備類型有所局限、傳輸速率低下等情況,主要面臨著以下挑戰(zhàn):
(1)傳統(tǒng)HART 芯片單一對(duì)應(yīng)HART 儀器儀表與單一CPU 控制端,在大型廠間內(nèi)布線數(shù)量大,成本高[4-5]。
(2)傳統(tǒng)的HART 芯片無(wú)時(shí)間同步機(jī)制,數(shù)據(jù)延遲不可控。
(3)傳統(tǒng)HART 芯片一個(gè)CPU 對(duì)應(yīng)一個(gè)HART 芯片,只對(duì)所控制的設(shè)備進(jìn)行數(shù)據(jù)讀寫(xiě)單一過(guò)程,智能儀表運(yùn)行時(shí)與控制系統(tǒng)的互動(dòng)有待提高,智能儀表間缺乏互操作[6-7]。
針對(duì)上述問(wèn)題,本文提供一種新型的可互聯(lián)HART通信協(xié)議芯片的架構(gòu)。
本文所設(shè)計(jì)的AXI4 總線模塊是與CPU(Central Processing Unit)進(jìn)行數(shù)據(jù)交互總線接口,該模塊由兩部分構(gòu)成,分別為AXI4-Lite 總線接口和AXI4-Full 總線接口。其中AXI4-Lite 總線接口用于連接CPU 和芯片內(nèi)的寄存器堆棧,傳輸CPU 發(fā)出的START 轉(zhuǎn)態(tài)字節(jié)、ADDR 設(shè)備地址字節(jié)與COM 命令字節(jié)以及波特率等控制信息較短的字節(jié),是HART 芯片與CPU 短字節(jié)信息交互接口。在HART 協(xié)議規(guī)定中,START 轉(zhuǎn)態(tài)字節(jié)占用一個(gè)字節(jié)寬度,決定著HART 芯片使用的結(jié)構(gòu)是“長(zhǎng)”結(jié)構(gòu)模式、“短”結(jié)構(gòu)模式還是“突發(fā)模式”。ADDR 地址字節(jié),則包含了主機(jī)地址和從機(jī)地址,可通過(guò)CPU 寫(xiě)入不同的設(shè)備地址,調(diào)取所需的設(shè)備信息。COM 命令字節(jié),該字節(jié)的范圍為253,用十六進(jìn)制0~FD 表示,31、127、254、255為預(yù)留值,用來(lái)表示主機(jī)需要從機(jī)執(zhí)行的動(dòng)作3。其中AXI4-Full 總線接口模塊實(shí)現(xiàn)與CPU 相連,用于CPU 讀寫(xiě)片內(nèi)RAM 存儲(chǔ)器,實(shí)現(xiàn)數(shù)據(jù)幀結(jié)構(gòu)的信息交互,其中AXI4-Full 總線接口用于連接CPU 和RAM 存儲(chǔ)器,RAM存儲(chǔ)器存儲(chǔ)HART 芯片與CPU 交互的長(zhǎng)字節(jié)DATA 數(shù)據(jù)。AXI4 總線所特有的握手機(jī)制,使CPU 與HART 芯片在數(shù)據(jù)交互上更加穩(wěn)定可靠,大大降低數(shù)據(jù)傳輸?shù)腻e(cuò)誤概率,通過(guò)CPU 分配AXI4 多個(gè)ID,可以實(shí)現(xiàn)一個(gè)CPU掛多個(gè)HART 芯片,并對(duì)不同HART 芯片所連接的設(shè)備節(jié)點(diǎn)進(jìn)行獨(dú)立的數(shù)據(jù)交互或者設(shè)備命令控制。AXI 總線與CPU 數(shù)據(jù)交互流程如圖1 所示。
圖1 AXI4 總線與CPU 數(shù)據(jù)交互傳輸流程
本文增設(shè)的RAM 存儲(chǔ)器模塊為雙端口RAM,有兩個(gè)端口讀寫(xiě),大大增加了對(duì)CPU 和從機(jī)設(shè)備數(shù)據(jù)存儲(chǔ)效率。根據(jù)寄存器堆棧的BCNT 位計(jì)數(shù)器,確定CPU 數(shù)據(jù)字節(jié)位寬,分配出RAM 存儲(chǔ)器地址范圍,按照RAM地址遞增緩存CPU 寫(xiě)入的數(shù)據(jù)字節(jié)。RAM 存儲(chǔ)器的設(shè)計(jì)不僅解決了數(shù)據(jù)存儲(chǔ)問(wèn)題,而且RAM 數(shù)據(jù)存儲(chǔ)模塊也解決了CPU 與HART 芯片通信時(shí)鐘和HART 芯片與HART 設(shè)備節(jié)點(diǎn)通信時(shí)鐘不匹配問(wèn)題,HART 芯片內(nèi)部模塊時(shí)鐘在500 kHz 左右,HART 芯片傳輸速率在1.2 kb/s[4],而傳統(tǒng)的HART 芯片不帶有緩存模塊,CPU 讀寫(xiě)HART芯片數(shù)據(jù)也需要同樣的時(shí)鐘速度,而加入RAM 數(shù)據(jù)存儲(chǔ)模塊之后,CPU 與HART 芯片時(shí)鐘模塊可以根據(jù)需求設(shè)定,使更高效率讀取HART 芯片數(shù)據(jù)。
傳統(tǒng)HART 通信芯片與本文所設(shè)計(jì)的HART 通信芯片傳輸速率對(duì)比如圖2 所示。
圖2 HART 芯片傳輸速度對(duì)比圖
圖2 所示上方為傳統(tǒng)HART 通信芯片傳輸速率圖,由于沒(méi)有RAM 緩存模塊,CPU 必須與HART 通信芯片同步時(shí)鐘,這樣才可以正常通信,通信速度為HART 通信協(xié)議所規(guī)定的1 200 b/s,可到達(dá)毫秒級(jí)的傳輸速度[8],所使用的UART 接口將HART 芯片內(nèi)部并行8 位數(shù)據(jù)轉(zhuǎn)成串行1 位數(shù)據(jù)與CPU 進(jìn)行通信[9]。而下方為本文所設(shè)計(jì)的HART 芯片架構(gòu),由于新增RAM 存儲(chǔ)器模塊,CPU可直接以納秒級(jí)的速度32 位數(shù)據(jù)直接通過(guò)AXI4 總線接口傳輸給RAM 存儲(chǔ)器緩存,HART 通信芯片再以1 200 b/s 的通信速度進(jìn)行調(diào)用,新結(jié)構(gòu)對(duì)芯片的通信效率和傳輸速度的數(shù)量級(jí)改變顯而易見(jiàn)。
與FF 和Modbus 等數(shù)字通信協(xié)議不同,HART 通信協(xié)議并不是直接發(fā)送接收0、1 數(shù)字信息,而是發(fā)送和接收兩種頻率的調(diào)制和待解調(diào)的方波信號(hào),當(dāng)芯片收到方波頻率信號(hào)時(shí),需要將其解調(diào)成可以處理的二進(jìn)制0、1數(shù)字信號(hào),同理,HART 芯片將數(shù)據(jù)發(fā)送給HART 儀器儀表之前需要將二進(jìn)制0、1 數(shù)字信號(hào)調(diào)制成兩種頻率的方波信號(hào)。根據(jù)HART 通信協(xié)議的規(guī)定,兩種方波信號(hào)分別為2 200 Hz 和1 200 Hz 分別代表數(shù)字信號(hào)0、1[10-11]。本文所設(shè)計(jì)的芯片架構(gòu)所處理的調(diào)制解調(diào)過(guò)程如圖3所示。數(shù)據(jù)傳輸波特率為1 200 b/s。
圖3 調(diào)制解調(diào)過(guò)程
具體調(diào)制解調(diào)過(guò)程如下:首先是調(diào)制硬件實(shí)現(xiàn)流程如圖4 所示。
圖4 調(diào)制硬件實(shí)現(xiàn)流程
本文所提出的可互聯(lián)HART 通信協(xié)議芯片架構(gòu)的設(shè)計(jì)及驗(yàn)證是基于FPGA 平臺(tái)進(jìn)行的,F(xiàn)PGA 輸入的時(shí)鐘為50 MHz,將50 MHz 的時(shí)鐘頻率通過(guò)所設(shè)計(jì)的計(jì)數(shù)器模塊降頻,分別降為2 200 Hz 和1 200 Hz 頻率,使降頻的頻率作為載波頻率,通過(guò)接收RAM 存儲(chǔ)器的0、1數(shù)據(jù),通過(guò)二選一選擇器將兩種頻率選擇出來(lái)并輸出。0、1 分別對(duì)應(yīng)2 200 Hz 方波和1 200 Hz 頻率[6]。
其次,解調(diào)硬件實(shí)現(xiàn)流程如圖5 所示。
圖5 解調(diào)硬件實(shí)現(xiàn)流程
解調(diào)過(guò)程主要是將調(diào)制好的兩種頻率的方波信號(hào)解調(diào)成0、1 數(shù)字信號(hào)進(jìn)行數(shù)據(jù)包處理,首先根據(jù)FPGA系統(tǒng)時(shí)鐘50 MHz 進(jìn)行設(shè)計(jì)處理,因HART 通信協(xié)議規(guī)定傳輸速度為1 200 b/s,所以設(shè)計(jì)更新頻率為1 200 Hz,將50 MHz 系統(tǒng)頻率通過(guò)計(jì)數(shù)器分頻降為1 200 Hz,并對(duì)時(shí)鐘上升沿進(jìn)行計(jì)數(shù)處理,在此同時(shí)對(duì)輸入的待解調(diào)信號(hào)同樣進(jìn)行脈沖上升沿計(jì)數(shù),通過(guò)比較器對(duì)比兩個(gè)計(jì)數(shù)器的數(shù)值,若相等則是1 200 Hz 信號(hào),若不相等計(jì)數(shù)值cnt2大于計(jì)數(shù)值cnt1,則被判定輸入頻率為2 200 Hz 信號(hào),每次比較清空計(jì)數(shù)器數(shù)值,每1 200 Hz 更新一次,即每1 200 Hz 輸出一次解調(diào)結(jié)果,根據(jù)2 200 Hz 對(duì)應(yīng)二進(jìn)制0 和1 200 Hz 對(duì)應(yīng)二進(jìn)制1,來(lái)輸出二進(jìn)制結(jié)果。
現(xiàn)在市場(chǎng)上應(yīng)用比較多的HART 芯片結(jié)構(gòu)如圖6所示,主要是通過(guò)URAT 串口進(jìn)行數(shù)據(jù)交換,沒(méi)有緩存,無(wú)法分配芯片地址,結(jié)構(gòu)簡(jiǎn)單,功能單一[12]。
圖6 常用HART 芯片結(jié)構(gòu)
本文所設(shè)計(jì)的可互聯(lián)HART 芯片總體架構(gòu)如圖7所示,該架構(gòu)解決了當(dāng)下HART 芯片所面臨的問(wèn)題,配置信息與數(shù)據(jù)信息獨(dú)立化,以AXI4 總線接口代替UART接口,實(shí)現(xiàn)地址分配,多芯片與CPU 互聯(lián)功能,增設(shè)RAM存儲(chǔ)器,實(shí)現(xiàn)數(shù)據(jù)的緩存功能等。
圖7 可互聯(lián)HART 芯片總體架構(gòu)
本文所設(shè)計(jì)的可互聯(lián)HART 芯片與CPU 進(jìn)行數(shù)據(jù)交互的讀寫(xiě)過(guò)程如圖8、圖9 所示,其中圖8 為數(shù)據(jù)下行過(guò)程,將CPU 數(shù)據(jù)信息傳輸給下位機(jī)。圖9 為從設(shè)備響應(yīng)上位機(jī)過(guò)程的數(shù)據(jù)傳輸過(guò)程。
圖8 數(shù)據(jù)下行過(guò)程
圖9 從設(shè)備響應(yīng)過(guò)程
下面以寫(xiě)過(guò)程介紹本文芯片架構(gòu)通信流程。
首先當(dāng)CPU 向從設(shè)備寫(xiě)入數(shù)據(jù)時(shí),以廣播的形式發(fā)送HART 芯片地址和要寫(xiě)入HART 芯片的數(shù)據(jù),所有HART 芯片通過(guò)AXI4 接口接收數(shù)據(jù),并將CPU 發(fā)送的HART 芯片地址與自己已經(jīng)配置好的地址對(duì)比,如果地址一樣,則該HART 芯片與CPU 建立數(shù)據(jù)交互。
通過(guò)AXI4-Full 將數(shù)據(jù)信息寫(xiě)入RAM 存儲(chǔ)器,通過(guò)AXI4-Lite 將配置信息寫(xiě)入寄存器堆棧,配置信息包括START 轉(zhuǎn)態(tài)字節(jié)、ADDR 設(shè)備地址字節(jié)與COM 命令字節(jié)以及波特率等控制信息。數(shù)據(jù)信息包括HART 芯片與CPU 交互的長(zhǎng)字節(jié)DATA 數(shù)據(jù)。
對(duì)從RAM 存儲(chǔ)器中讀取的DATA 數(shù)據(jù)字節(jié)進(jìn)行縱向奇偶校驗(yàn),得到的校驗(yàn)結(jié)果為CHK 校驗(yàn)字節(jié)。
數(shù)據(jù)打包模塊調(diào)用寄存器堆棧已存入的START 字節(jié)、ADDR 地址字節(jié)和COM 命令字節(jié)以及DATA 數(shù)據(jù)字節(jié)和CHK 校驗(yàn)字節(jié),并將這些字節(jié)按照HART 協(xié)議要求進(jìn)行打包,并加入HART 協(xié)議PREAMBLE 導(dǎo)言字節(jié),導(dǎo)言字節(jié)由5~20 個(gè)十六進(jìn)制FF 所組成,打包完成之后由低位到高位分別為PREAMBLE 導(dǎo)言字節(jié)、START 起始字節(jié)、ADDR 地址字節(jié)、COM 命令字節(jié)、DATA 數(shù)據(jù)字節(jié)、CHK 校驗(yàn)字節(jié),將打包好的數(shù)據(jù)按位發(fā)送到調(diào)制模塊[13]。
調(diào)制模塊由系統(tǒng)時(shí)鐘分頻出來(lái)2 200 Hz 和1 200 Hz載波頻率,通過(guò)0、1 基帶信號(hào)選擇出對(duì)應(yīng)的頻率,當(dāng)接收到數(shù)據(jù)信號(hào)為0 時(shí)調(diào)制成2 200 Hz 方波信號(hào),接收數(shù)據(jù)為1 時(shí)調(diào)制成1 200 Hz 信號(hào)作為HART 芯片輸出[14-15]。
本文所提出的HART 芯片架構(gòu)驗(yàn)證平臺(tái)為FPGA 平臺(tái),通過(guò)搭建主從架構(gòu),驗(yàn)證AXI4 總線數(shù)據(jù)的接收、解包、打包、調(diào)制、解調(diào)等功能,本次以CPU 數(shù)據(jù)傳輸?shù)綇脑O(shè)備端為例進(jìn)行實(shí)驗(yàn)驗(yàn)證。
整體仿真結(jié)構(gòu)框架圖如圖10 所示。
圖10 仿真結(jié)構(gòu)
圖10 介紹了AXI4 端口數(shù)據(jù)、主機(jī)部分以及從機(jī)部分,由圖可直觀顯示運(yùn)行時(shí)間,在1 685 ns 時(shí)已經(jīng)將72 位9字節(jié)數(shù)據(jù)寫(xiě)入RAM 存儲(chǔ),實(shí)現(xiàn)納秒級(jí)別的傳輸速度。
數(shù)據(jù)以32 bit 同時(shí)通過(guò)AXI4 總線端口輸入,而芯片內(nèi)部處理為8 bit 一個(gè)字節(jié)的情況處理,所以輸入端搭建32 bit 轉(zhuǎn)8 bit 的模塊,使數(shù)據(jù)按8 bit 一組緩存到RAM存儲(chǔ)器中。驗(yàn)證整體波形圖,如圖11 所示。
圖11 32 位轉(zhuǎn)8 位算法
將CPU 數(shù)據(jù)存儲(chǔ)到RAM 存儲(chǔ)器并轉(zhuǎn)換成8 bit 數(shù)據(jù)之后,通過(guò)HART 打包模塊進(jìn)行調(diào)用,將數(shù)據(jù)連續(xù)接到導(dǎo)言字節(jié)FF 之后,如圖12 所示。
圖12 數(shù)據(jù)打包
數(shù)據(jù)打包的同時(shí)進(jìn)行發(fā)送,當(dāng)數(shù)據(jù)發(fā)送完成之后進(jìn)行校驗(yàn),校驗(yàn)結(jié)果再打包到數(shù)據(jù)幀結(jié)尾,如圖13 所示。
圖13 縱向奇偶校驗(yàn)幀打包
按照HART 通信協(xié)議打包好之后,由低到高以HART協(xié)議1 200 b/s 通信速率按位發(fā)送給調(diào)制模塊,將二進(jìn)制0、1 數(shù)據(jù)調(diào)制成兩種頻率的方波調(diào)制輸出。從設(shè)備首先通過(guò)解調(diào)模塊接收到調(diào)制的數(shù)字信號(hào),通過(guò)比較器將頻率信號(hào)解調(diào)成二進(jìn)制0、1 數(shù)據(jù)信號(hào),上傳給從設(shè)備接收解包。
本文所設(shè)計(jì)的HART 芯片調(diào)制解調(diào)驗(yàn)證仿真圖如圖14 所示。
由圖14 可清晰看出成功調(diào)制成兩種頻率,通過(guò)從設(shè)備數(shù)據(jù)解調(diào)之后,與主設(shè)備待調(diào)制數(shù)據(jù)相同,數(shù)據(jù)解析成功。
圖14 調(diào)制解調(diào)硬件仿真圖
最后將數(shù)據(jù)進(jìn)行存儲(chǔ),完成數(shù)據(jù)通信過(guò)程,完成實(shí)驗(yàn)驗(yàn)證。
本文介紹了一種HART 調(diào)制解調(diào)芯片高速通信接口設(shè)計(jì),通過(guò)對(duì)比現(xiàn)有的HART 通信芯片,設(shè)計(jì)了一款全新的HART 芯片架構(gòu)。采用AXI4 總線的特征,可實(shí)現(xiàn)單個(gè)CPU 掛載多個(gè)HART 芯片設(shè)備,實(shí)現(xiàn)多芯片互聯(lián)功能,搭配RAM 存儲(chǔ)器,實(shí)現(xiàn)數(shù)據(jù)的緩存處理,實(shí)現(xiàn)高速接收CPU 數(shù)據(jù)的同時(shí),滿足HART 協(xié)議規(guī)范傳輸速度,通過(guò)FPGA 平臺(tái)設(shè)計(jì)兩個(gè)IP 核,實(shí)現(xiàn)兩個(gè)IP 的數(shù)據(jù)交互,由此驗(yàn)證了該設(shè)計(jì)方案的可行性與合理性,可識(shí)別和傳輸滿足HART 協(xié)議規(guī)范的數(shù)據(jù)類型。