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

?

基于IEC 1158 標(biāo)準(zhǔn)的現(xiàn)場(chǎng)總線芯片設(shè)計(jì)*

2022-04-19 10:49張立國李福昆吳鵬飛
電子技術(shù)應(yīng)用 2022年4期
關(guān)鍵詞:狀態(tài)機(jī)寄存器極性

張立國 ,劉 強(qiáng) ,嚴(yán) 偉 ,李福昆 ,吳鵬飛 ,王 博

(1.燕山大學(xué) 電氣工程學(xué)院,河北 秦皇島 066000;2.北京大學(xué) 軟件與微電子學(xué)院,北京 100871)

0 引言

現(xiàn)場(chǎng)總線(Field bus)是一種工業(yè)數(shù)據(jù)總線,主要解決工業(yè)現(xiàn)場(chǎng)的智能化儀器儀表、控制器、執(zhí)行機(jī)構(gòu)等現(xiàn)場(chǎng)設(shè)備間的數(shù)字通信以及這些現(xiàn)場(chǎng)控制設(shè)備和高級(jí)控制系統(tǒng)之間的信息傳遞問題[1-6]。

IEC 1158 標(biāo)準(zhǔn)定義的現(xiàn)場(chǎng)總線通信模型由物理層、數(shù)據(jù)鏈路層、應(yīng)用層、用戶層四部分構(gòu)成[7]。其中,物理層負(fù)責(zé)數(shù)據(jù)傳輸并可為現(xiàn)場(chǎng)設(shè)備供電,總線數(shù)據(jù)采用曼徹斯特編碼技術(shù)進(jìn)行編碼[8-15]。本文所設(shè)計(jì)的現(xiàn)場(chǎng)總線芯片主要實(shí)現(xiàn)物理層功能以及部分?jǐn)?shù)據(jù)鏈路層功能,實(shí)現(xiàn)現(xiàn)場(chǎng)設(shè)備與總線連接。并內(nèi)置AXI4 總線接口,實(shí)現(xiàn)與CPU 高速、安全的數(shù)據(jù)交互。

目前已有的符合IEC1158 標(biāo)準(zhǔn)的現(xiàn)場(chǎng)總線芯片有中科博微的FBC0409、美國Smar 公司的FB3050、日本Yamaha公司的YTZ420 等。但上述芯片均不具備協(xié)議擴(kuò)展能力,僅能應(yīng)用于符合IEC 1158 標(biāo)準(zhǔn)的特定現(xiàn)場(chǎng)總線系統(tǒng)中,應(yīng)用領(lǐng)域單一。且由于與CPU 交互時(shí)均使用私有協(xié)議,導(dǎo)致通用性較差。此外,受私有協(xié)議帶寬限制,以及這些私有協(xié)議不具備突發(fā)傳輸能力,導(dǎo)致芯片與CPU 進(jìn)行數(shù)據(jù)交互的時(shí)延較大。

為了解決上述問題,本文設(shè)計(jì)了一種符合IEC 1158現(xiàn)場(chǎng)總線標(biāo)準(zhǔn)的現(xiàn)場(chǎng)總線芯片。采用標(biāo)準(zhǔn)AXI 總線接口與CPU 進(jìn)行數(shù)據(jù)交互,總線位寬為32 位,總線頻率100 MHz,提供3.2 Gb/s 總線帶寬,實(shí)現(xiàn)芯片與CPU 的高速且安全數(shù)據(jù)傳輸。同時(shí),芯片內(nèi)置豐富的控制寄存器和狀態(tài)寄存器,可通過AXI 總線配置芯片工作模式或監(jiān)控芯片運(yùn)行狀態(tài),包括實(shí)現(xiàn)協(xié)議擴(kuò)展。此外,對(duì)于使用雙絞線作為現(xiàn)場(chǎng)總線傳輸介質(zhì)的現(xiàn)場(chǎng)總線協(xié)議,本芯片設(shè)計(jì)有極性糾正電路,可自動(dòng)偵測(cè)雙絞線載波變化,并在必要情況下進(jìn)行實(shí)時(shí)極性糾正,使得現(xiàn)場(chǎng)設(shè)備接入總線時(shí),即使正負(fù)極顛倒也能正常工作。

1 IEC 1158 現(xiàn)場(chǎng)總線模型

IEC 1158 標(biāo)準(zhǔn)的通信模型基于ISO(International Organization for Standardization,國際標(biāo)準(zhǔn)化組織)的OSI(Open System Interconnection Reference Model,開放式系統(tǒng)互聯(lián)通信參考模型)7 層模型,取其物理層、數(shù)據(jù)鏈路層、應(yīng)用層,并增加用戶層[9-13]。

其中,物理層為現(xiàn)場(chǎng)設(shè)備供電,且采用Manchester 編碼技術(shù)對(duì)數(shù)據(jù)進(jìn)行編碼傳輸,支持點(diǎn)對(duì)點(diǎn)、總線型、菊花鏈型、樹型拓?fù)浣Y(jié)構(gòu),數(shù)據(jù)傳輸速率為32.25 kb/s。

數(shù)據(jù)鏈路層為系統(tǒng)管理內(nèi)核和總線訪問子層訪問總線媒體提供服務(wù),負(fù)責(zé)鏈路活動(dòng)調(diào)度、數(shù)據(jù)的接收與發(fā)送、活動(dòng)狀態(tài)的探測(cè)與響應(yīng)以及總線上各設(shè)備間的鏈路時(shí)間同步。

應(yīng)用層定義在設(shè)備間交換數(shù)據(jù)、命令、事件信息以及請(qǐng)求應(yīng)答中的信息格式。

用戶層組成用戶所需的應(yīng)用程序,如規(guī)定的功能塊、設(shè)備描述,實(shí)現(xiàn)網(wǎng)絡(luò)管理、系統(tǒng)管理等。

目前符合IEC 1158 標(biāo)準(zhǔn)的現(xiàn)場(chǎng)總線協(xié)議主要有基金會(huì)現(xiàn)場(chǎng)總線(Foundation Fieldbus,F(xiàn)F)和PROFIBUS-PA 等。

2 芯片架構(gòu)設(shè)計(jì)

本文所設(shè)計(jì)的芯片架構(gòu)如圖1 所示,實(shí)現(xiàn)了IEC 1158 物理層規(guī)范及部分鏈路層功能,如CRC 校驗(yàn)等。

圖1 芯片架構(gòu)設(shè)計(jì)圖

芯片結(jié)構(gòu)主要包括AXI 總線接口模塊、中斷控制器、直接存儲(chǔ)器訪問控制器(Direct Memory Access,DMA)、隨機(jī)存取存儲(chǔ)器(Random Access Memory,DMA)、寄存器堆棧、CRC 校驗(yàn)?zāi)K、地址識(shí)別模塊、幀編解碼模塊、曼徹斯特(Manchester)編解碼模塊、總線收發(fā)模塊以及時(shí)鐘模塊。

3 CPU 交互方式

AXI 總線協(xié)議是ARM 公司提出的先進(jìn)微控制器總線體系結(jié)構(gòu)(Advanced Microcontroller Bus Architecture,AMBA)總線協(xié)議中最重要的部分。AXI 總線協(xié)議由AXIFull、AXI-Lite、AXI-Stream 協(xié)議構(gòu)成。其中AXI-Full 適用于大量數(shù)據(jù)隨機(jī)讀寫,且支持突發(fā)傳輸;AXI-Lite 用于數(shù)據(jù)量較小的隨機(jī)讀寫,適用于操作寄存器;AXIStream 適用于無地址的順序讀寫。

AXI 總線有5 個(gè)獨(dú)立傳輸通道,分別是地址通道(寫地址通道、讀地址通道)、數(shù)據(jù)通道(寫數(shù)據(jù)通道、讀數(shù)據(jù)通道)以及應(yīng)答通道。每次進(jìn)行數(shù)據(jù)傳輸之前,CPU 先通過地址通道告知AXI 從機(jī)設(shè)備需要操作的存儲(chǔ)器地址,隨后CPU 或AXI 從設(shè)備將數(shù)據(jù)傳輸數(shù)據(jù)通道。在傳輸完成后,接收方通過應(yīng)答通道回復(fù)發(fā)送方,從而確保數(shù)據(jù)透明傳輸。

本課題芯片采用AXI-Full 總線進(jìn)行數(shù)據(jù)傳輸、使用AXI-Lite 總線進(jìn)行芯片配置和狀態(tài)反饋。

其中,AXI-Full 總線通過雙通道DMA 控制器掛載發(fā)送緩存RAM 和接收緩存RAM,緩存RAM 與AXI-Full總線的總線位寬均為32 位,AXI 總線工作頻率為100 MHz,提供3.2 Gb/s 帶寬,保證CPU 與芯片間高速低時(shí)延的數(shù)據(jù)傳輸。AXI-Full 總線地址通道為10 位,擁有1 KB的RAM 尋址能力。

AXI-Lite 總線位寬同樣為32 bit,與芯片內(nèi)部的控制寄存器和狀態(tài)寄存器相連,用于配置芯片的地址、工作模式、中斷響應(yīng)、測(cè)試模式等功能,并將芯片的工作狀態(tài)如地址信息、所處的工作模式、中斷屏蔽信息等傳輸給CPU,以便實(shí)時(shí)監(jiān)控芯片工作狀態(tài)。

4 現(xiàn)場(chǎng)總線數(shù)據(jù)傳輸

符合IEC 1158 協(xié)議規(guī)范的現(xiàn)場(chǎng)總線的數(shù)據(jù)幀一般由前導(dǎo)碼、數(shù)據(jù)和特征碼(起始符、結(jié)束符)構(gòu)成[8],其中,前導(dǎo)碼由8 位二進(jìn)制數(shù)10101010 構(gòu)成,接收端通過檢測(cè)前導(dǎo)碼進(jìn)行判斷數(shù)據(jù)傳輸起始;起始符表示幀數(shù)據(jù)開始,數(shù)據(jù)幀中的數(shù)據(jù)緊跟在起始符之后;結(jié)束符標(biāo)志著一幀的結(jié)束,芯片檢測(cè)到結(jié)束符后復(fù)位接收狀態(tài)。

考慮到符合1158 規(guī)范的現(xiàn)場(chǎng)總線協(xié)議的特征碼各不相同,因此,本文所設(shè)計(jì)的芯片設(shè)計(jì)有特征碼寄存器,CPU 可配置相應(yīng)寄存器以使芯片能夠識(shí)別不同現(xiàn)場(chǎng)總線協(xié)議的特征碼,實(shí)現(xiàn)協(xié)議擴(kuò)展。

4.1 數(shù)據(jù)發(fā)送過程

發(fā)送數(shù)據(jù)時(shí),CPU 將需要發(fā)送的數(shù)據(jù)編碼成位寬為32 位的數(shù)據(jù),隨后通過AXI-Full 總線發(fā)送給芯片內(nèi)部的發(fā)送緩存RAM。通過32 位AXI 總線傳輸數(shù)據(jù)到RAM中后,將有效數(shù)據(jù)字節(jié)數(shù)寫入芯片內(nèi)部相應(yīng)寄存器,芯片可根據(jù)寄存器值將RAM 中相同字節(jié)的數(shù)據(jù)發(fā)送到總線。配置完數(shù)據(jù)字節(jié)數(shù)后,CPU 配置芯片內(nèi)部控制寄存器的發(fā)送使能位使能芯片發(fā)送。芯片若偵測(cè)到發(fā)送使能信號(hào),則向DMA 請(qǐng)求數(shù)據(jù),DMA 根據(jù)發(fā)送數(shù)據(jù)總量寄存器的值從發(fā)送緩存RAM 中讀取相應(yīng)字節(jié)的數(shù)據(jù),之后數(shù)據(jù)進(jìn)入數(shù)據(jù)處理流水線,為數(shù)據(jù)添加特征碼、計(jì)算CRC 校驗(yàn)碼、添加CRC 幀尾,對(duì)數(shù)據(jù)進(jìn)行Manchester 編碼以及數(shù)據(jù)串行化發(fā)送等。

發(fā)送行為由發(fā)送狀態(tài)機(jī)控制,發(fā)送狀態(tài)機(jī)各狀態(tài)符號(hào)及說明如表1 所示。

表1 發(fā)送狀態(tài)機(jī)符號(hào)說明

發(fā)送狀態(tài)機(jī)狀態(tài)轉(zhuǎn)移圖如圖2 所示。狀態(tài)機(jī)輸入信號(hào)有發(fā)送使能信號(hào)send_en、DMA 控制器輸出的數(shù)據(jù)有效信號(hào)din_v、CRC 幀尾計(jì)算模塊輸出的CRC 有效信號(hào)crc_v。

圖2 發(fā)送狀態(tài)機(jī)狀態(tài)轉(zhuǎn)移圖

IDLE 狀態(tài)下,若收到來自CPU 的發(fā)送使能能信號(hào),狀態(tài)機(jī)進(jìn)入RQ 狀態(tài);在RQ 狀態(tài)下,發(fā)送器向DMA 控制器發(fā)送數(shù)據(jù)請(qǐng)求信號(hào),并進(jìn)入PR 狀態(tài)。在PR 狀態(tài)下,若偵測(cè)到輸入數(shù)據(jù)有效信號(hào)為高電平,則將來自DMA的數(shù)據(jù)及數(shù)據(jù)有效信號(hào)延遲2 個(gè)時(shí)鐘周期;并讀取前導(dǎo)碼寄存器值,對(duì)其進(jìn)行Manchester 編碼后傳輸?shù)浆F(xiàn)場(chǎng)總線上,發(fā)送完成后進(jìn)入FS 狀態(tài)。在FS 狀態(tài)下,讀取起始符寄存器,進(jìn)行Manchester 編碼后將起始符傳輸?shù)浆F(xiàn)場(chǎng)總線上,隨后進(jìn)入DT 狀態(tài)。在DT 狀態(tài)下開始發(fā)送經(jīng)過延時(shí)的數(shù)據(jù),同時(shí)啟動(dòng)閑談定時(shí)器。數(shù)據(jù)發(fā)送完成則進(jìn)入FE 狀態(tài),或閑談定時(shí)器溢出后,恢復(fù)到IDLE 狀態(tài);FE 狀態(tài)下發(fā)送經(jīng)過Manchester 編碼的幀結(jié)束符,發(fā)送完成后回到IDLE 狀態(tài)。

4.2 數(shù)據(jù)接收過程

芯片的總線數(shù)據(jù)接收模塊偵測(cè)現(xiàn)場(chǎng)總線的載波變化,若偵測(cè)到電平變化為10101010,則認(rèn)為現(xiàn)場(chǎng)設(shè)備與總線為正接狀態(tài),則直接將接收到的數(shù)據(jù)輸入到后續(xù)處理模塊;若偵測(cè)到01010101,則認(rèn)為現(xiàn)場(chǎng)設(shè)備與現(xiàn)場(chǎng)總線反接,芯片將接收到的數(shù)據(jù)輸入到極性糾正電路。然后對(duì)糾正后的數(shù)據(jù)進(jìn)行Manchester 解碼,進(jìn)行地址識(shí)別以及CRC 校驗(yàn),并將數(shù)據(jù)輸送給DMA 控制器。DMA 控制器將8 位數(shù)據(jù)封裝成32 位數(shù)據(jù)寫入接收緩存RAM,同時(shí),將接收到的字節(jié)數(shù)寫入接收數(shù)據(jù)總量寄存器中,并在數(shù)據(jù)全部寫入RAM 后,根據(jù)目的地址匹配結(jié)果和CRC 校驗(yàn)結(jié)果判斷是否為本機(jī)數(shù)據(jù)以及數(shù)據(jù)是否正確。符合判斷要求則產(chǎn)生中斷信號(hào),并將中斷類型寫入中斷類型寄存器,否則不產(chǎn)生中斷信號(hào)。CPU 檢測(cè)到中斷后讀中斷類型寄存器的值,若為數(shù)據(jù)就緒中斷,則CPU 讀接收數(shù)據(jù)總量寄存器,并將字節(jié)數(shù)轉(zhuǎn)化為AXI 總線讀取次數(shù),將數(shù)據(jù)讀取到內(nèi)存,并還原數(shù)據(jù)。

數(shù)據(jù)接收過程由接收狀態(tài)機(jī)控制,接收狀態(tài)機(jī)各狀態(tài)符號(hào)及說明如表2 所示。

表2 接收狀態(tài)機(jī)符號(hào)說明

接收狀態(tài)機(jī)狀態(tài)轉(zhuǎn)移圖如圖3 所示。狀態(tài)機(jī)輸入信號(hào)為接收引腳電平信號(hào)rx。

圖3 接收狀態(tài)轉(zhuǎn)移圖

系統(tǒng)啟動(dòng)后狀態(tài)機(jī)處于IDLE 狀態(tài),當(dāng)偵測(cè)到接收引腳rx 有載波時(shí),接收狀態(tài)機(jī)和結(jié)束符狀態(tài)機(jī)分別進(jìn)入PR 狀態(tài)和FE 狀態(tài)。在PR 狀態(tài)下,對(duì)接收的數(shù)據(jù)進(jìn)行Manchester 解碼并與前導(dǎo)碼比較并判斷是否極性反接。若極性反接,則將后續(xù)數(shù)據(jù)數(shù)據(jù)極性糾正電路后進(jìn)行解碼,若所有位全部與前導(dǎo)碼匹配,則結(jié)束符狀態(tài)機(jī)進(jìn)入FS 狀態(tài),接收狀態(tài)機(jī)進(jìn)入FE,否則,均回到IDLE狀態(tài)。FE 狀態(tài)下,狀態(tài)機(jī)匹配幀結(jié)束符,若匹配錯(cuò)誤回到IDLE 狀態(tài),否則在匹配完成后恢復(fù)到IDLE 狀態(tài)。在FS狀態(tài)下,狀態(tài)機(jī)按位匹配幀起始符,若全部匹配,則進(jìn)入DT 狀態(tài),否則,回到RX 狀態(tài)。在DT 狀態(tài)下,當(dāng)檢測(cè)到閑談超時(shí)、結(jié)束符匹配狀態(tài)機(jī)已檢測(cè)到結(jié)束符和檢測(cè)到數(shù)據(jù)幀的目的地址與本機(jī)地址不符,都恢復(fù)到IDLE 狀態(tài),否則繼續(xù)接收數(shù)據(jù)。

考慮到不同現(xiàn)場(chǎng)總線協(xié)議幀格式不同,無法對(duì)全部現(xiàn)場(chǎng)總線協(xié)議進(jìn)行地址識(shí)別,因此,本芯片僅支持對(duì)基金會(huì)現(xiàn)場(chǎng)總線(Foundation Fieldbus,簡稱FF)協(xié)議進(jìn)行數(shù)據(jù)幀類型識(shí)及與地址識(shí)別,對(duì)于其他符合IEC 1158 標(biāo)準(zhǔn)的現(xiàn)場(chǎng)總線協(xié)議,芯片將數(shù)據(jù)提交給CPU 后由CPU進(jìn)行地址識(shí)別,數(shù)據(jù)幀丟棄與否由CPU 裁決。

5 關(guān)鍵技術(shù)實(shí)現(xiàn)

5.1 Manchester 編碼技術(shù)的硬件實(shí)現(xiàn)

IEC 1158 協(xié)議規(guī)定物理層數(shù)據(jù)需要使用Manchester編碼技術(shù)進(jìn)行編碼及解碼,本文芯片設(shè)計(jì)有全雙工Manchester 編碼及解碼電路,如圖4 所示。采用雙相L Manchester 編碼方式,由8 路并行非門電路及插值電路負(fù)責(zé)數(shù)據(jù)編碼,單周期可完成1 字節(jié)數(shù)據(jù)編碼工作。16 位采樣電路負(fù)責(zé)對(duì)接收端的數(shù)據(jù)進(jìn)行解碼,單周期可解碼2 字節(jié)Manchester 碼。

圖4 Manchester 編、解碼電路原理圖

5.2 CRC 校驗(yàn)的硬件實(shí)現(xiàn)

現(xiàn)場(chǎng)設(shè)備所處的電磁環(huán)境復(fù)雜,影響現(xiàn)場(chǎng)總線上的數(shù)據(jù)傳輸,導(dǎo)致接收方接收到的數(shù)據(jù)發(fā)生錯(cuò)誤,為了確保接收方能對(duì)數(shù)據(jù)準(zhǔn)確性做出正確的判斷,IEC1158 規(guī)定發(fā)送方需在數(shù)據(jù)之后添加16 位CRC 校驗(yàn)碼。因此,本文芯片設(shè)計(jì)有8 位并行模2 運(yùn)算電路,單周期即可完成1 字節(jié)數(shù)據(jù)的CRC 計(jì)算任務(wù)。為發(fā)送的數(shù)據(jù)計(jì)算16位CRC 校驗(yàn)碼,為接收到的數(shù)據(jù)進(jìn)行CRC 校驗(yàn)。

5.3 極性糾正

所謂的極性糾正是指,當(dāng)現(xiàn)場(chǎng)總線以雙絞線作為傳輸介質(zhì)時(shí),芯片有能力通過偵測(cè)雙絞線上的信號(hào)載波變化判斷現(xiàn)場(chǎng)設(shè)備是否與雙絞線反接,若判斷為反接,芯片須具備對(duì)雙絞線傳輸?shù)臄?shù)據(jù)進(jìn)行實(shí)時(shí)電平糾正的能力,實(shí)現(xiàn)不論現(xiàn)場(chǎng)設(shè)備如何掛載于雙絞線上,設(shè)備都能從總線上正確地接收并解析數(shù)據(jù)。如圖5 所示,左側(cè)為正接,右側(cè)為反接。

圖5 現(xiàn)場(chǎng)設(shè)備掛載情況示意圖

當(dāng)現(xiàn)場(chǎng)設(shè)備與現(xiàn)場(chǎng)總線極性反接時(shí),現(xiàn)場(chǎng)設(shè)備從總線上接收到的電平為正接時(shí)的取反,因此,本芯片內(nèi)置極性偵測(cè)電路,當(dāng)偵測(cè)到數(shù)據(jù)幀前導(dǎo)碼為10101010 時(shí)判斷為正接。當(dāng)偵測(cè)到前導(dǎo)碼為01010101 時(shí)判斷為反接,此時(shí)調(diào)整門控電路,將芯片的數(shù)據(jù)輸入端口接入同步反相電路進(jìn)行極性糾正。

此外,本文芯片設(shè)置有極性糾正測(cè)試模式寄存器控制位,CPU 可通過AXI-Lite 總線配置此控制位,使能極性糾正測(cè)試模式,芯片接收到的數(shù)據(jù)將兩次通過極性糾正電路,模擬反接情況,以便進(jìn)行芯片功能測(cè)試。

5.4 協(xié)議擴(kuò)展

對(duì)于符合IEC 1158 規(guī)范的各種現(xiàn)場(chǎng)總線協(xié)議,區(qū)別主要在數(shù)據(jù)鏈路層、應(yīng)用層和用戶層,而物理層的數(shù)據(jù)編碼方式及傳輸速率均相同。各現(xiàn)場(chǎng)總線協(xié)議在物理層的差異僅在于數(shù)據(jù)幀的特征碼(起始符和結(jié)束符)不同,以及數(shù)據(jù)的長度不同。為使本芯片通用于符合IEC 1158規(guī)范的各現(xiàn)場(chǎng)總線系統(tǒng),芯片內(nèi)部設(shè)置有可配置的特征碼寄存器。用戶可根據(jù)所使用的現(xiàn)場(chǎng)總線協(xié)議規(guī)定,配置特征碼以實(shí)現(xiàn)對(duì)不同現(xiàn)場(chǎng)總線協(xié)議的支持,同時(shí)可通過閑談寄存器配置滿足不同協(xié)議的總線占用時(shí)間要求。

6 FPGA 原型驗(yàn)證

驗(yàn)證平臺(tái)硬件選用黑金基于FPGA 芯片的ZYNQ-7015開發(fā)板,軟件環(huán)境為Vivado 以及Vivado SDK,圖6 為芯片測(cè)試架構(gòu)圖,芯片運(yùn)行在FPGA 上,CPU 為ARM 處理器,驗(yàn)證所用現(xiàn)場(chǎng)總線協(xié)議為基金會(huì)現(xiàn)場(chǎng)總線協(xié)議(FF)。

圖6 芯片測(cè)試架構(gòu)

測(cè)試流程如圖7 所示,左側(cè)為CPU 驅(qū)動(dòng)現(xiàn)場(chǎng)總線芯片發(fā)送數(shù)據(jù)的流程圖,右側(cè)為CPU 等待現(xiàn)場(chǎng)總線芯片中斷信號(hào)進(jìn)行相應(yīng)數(shù)據(jù)處理流程圖。系統(tǒng)啟動(dòng)后,主站及從站CPU 通過AXI-Lite 總線配置現(xiàn)場(chǎng)總線芯片工作模式,主站CPU 將指令通過AXI-Full 總線發(fā)送給現(xiàn)場(chǎng)總線芯片并使能發(fā)送,現(xiàn)場(chǎng)總線芯片偵測(cè)到使能信號(hào)后采用流水線模式對(duì)數(shù)據(jù)進(jìn)行數(shù)據(jù)處理并發(fā)送到現(xiàn)場(chǎng)總線上。從站現(xiàn)場(chǎng)總線芯片偵測(cè)到載波后進(jìn)行數(shù)據(jù)解碼等處理后產(chǎn)生中斷信號(hào),CPU 響應(yīng)中斷后通過AXI-Lite 總線讀取現(xiàn)場(chǎng)總線芯片的中斷類型寄存器。若為數(shù)據(jù)就緒中斷,則通過AXI-Full 總線讀取現(xiàn)場(chǎng)總線新品內(nèi)部的數(shù)據(jù)緩存。從站CPU 進(jìn)行裁決后采用與主站相同的工作流程驅(qū)動(dòng)從站現(xiàn)場(chǎng)總線芯片發(fā)送回復(fù)數(shù)據(jù)。

圖7 芯片測(cè)試流程圖

測(cè)試所用協(xié)議為符合IEC 1158 標(biāo)準(zhǔn)的基金會(huì)現(xiàn)場(chǎng)總線(FF)協(xié)議,通過CPU 配置芯片為內(nèi)部回環(huán)模式后采集到的發(fā)送(主機(jī))與接收(從機(jī))時(shí)序。圖8 為測(cè)試過程中上位機(jī)軟件的部分打印信息,包括讀取的芯片配置信息、工作模式和發(fā)送(TX)及接收(RX)的數(shù)據(jù)。圖9 為芯片測(cè)試時(shí)抓取的部分波形圖。

圖8 上位機(jī)打印的測(cè)試過程信息

圖9 芯片測(cè)試波形圖

7 結(jié)論

本文介紹了一種支持在IEC 1158 現(xiàn)場(chǎng)總線標(biāo)準(zhǔn)范圍內(nèi)進(jìn)行協(xié)議擴(kuò)展的現(xiàn)場(chǎng)總線芯片架構(gòu),擁有AXI 高速CPU 接口、Manchester 編解碼電路、CRC 校驗(yàn)電路、極性偵測(cè)及糾正電路。擁有豐富的控制寄存器及狀態(tài)寄存器,可配置芯片運(yùn)行模式,如中斷屏蔽模式、回環(huán)模式,極性糾正測(cè)試模式等。并基于ZYNQ-7015 開發(fā)板進(jìn)行了芯片功能驗(yàn)證,驗(yàn)證結(jié)果顯示本文所設(shè)計(jì)的芯片達(dá)到了設(shè)計(jì)要求。

猜你喜歡
狀態(tài)機(jī)寄存器極性
Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
基于有限狀態(tài)機(jī)的交會(huì)對(duì)接飛行任務(wù)規(guī)劃方法
跟蹤導(dǎo)練(四)
二進(jìn)制翻譯中動(dòng)靜結(jié)合的寄存器分配優(yōu)化方法
基于Spring StateMachine的有限狀態(tài)機(jī)應(yīng)用研究
移位寄存器及算術(shù)運(yùn)算應(yīng)用
雙極性壓縮觀測(cè)光譜成像技術(shù)研究
Lx5280模擬器移植設(shè)計(jì)及實(shí)施
基于反熔絲FPGA的有限狀態(tài)機(jī)加固設(shè)計(jì)
基于VHDL的一個(gè)簡單Mealy狀態(tài)機(jī)