《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業(yè)界動態(tài) > 基于ARM的PROFIBUS-PA遠程I/O從站設計

基于ARM的PROFIBUS-PA遠程I/O從站設計

2009-05-12
作者:張永德, 文莉輝

??? 摘??要: 分析了總線遠程I/O應用現(xiàn)狀,提出以ARM為平臺開發(fā)PROFIBUS-PA遠程I/O從站設計思想。以AT91SAM7SE32為管控CPU,基于協(xié)議芯片DPC31和西門子公司的SIM1-2,給出其硬件設計方案。分析PA協(xié)議的層次結構,給出PA從站的軟件組成。充分利用ARM的快速性實現(xiàn)了PA總線要求的高實時性、高可靠性。?

??? 關鍵詞: PROFIBUS-PA; ARM; 遠程I/O

?

??? 總線遠程I/O是基于現(xiàn)場總線控制系統(tǒng)FCS中的主要設備。據(jù)統(tǒng)計,目前典型的FCS系統(tǒng)中可直接接入現(xiàn)場總線的儀表、設備不超過22%;其余超過78%的現(xiàn)場儀表、設備是由總線遠程I/O或Hart協(xié)議接入現(xiàn)場總線的。總線遠程I/O的主要功能分為輸入、輸出兩部分。輸入是將采集到的現(xiàn)場模擬信號(如4 mA~20 mA)和數(shù)字量信號(如24 VDC)轉換成數(shù)據(jù)報文,并按照通信協(xié)議傳送到現(xiàn)場總線中。輸出是將現(xiàn)場總線通信數(shù)據(jù)轉換成模擬量輸出和數(shù)字量信號輸出。?

??? PROFIBUS-PA是專為過程控制應用而設計的,它是PROFIBUS-DP的延伸和擴展,其通信協(xié)議以DP-V1為基礎,是一種非循環(huán)通信,與DP-V0循環(huán)通信同時存在于一個系統(tǒng)中。由于PA設備必須由DP段的主站控制,所以PA網(wǎng)段總是嵌入在DP網(wǎng)絡中。?

1設計要求與實現(xiàn)方案?

1.1 設計要求?

??? 總線遠程I/O作為PA從站連接到PROFIBUS-PA網(wǎng)段中,處理收集到的外部數(shù)字量/模擬量數(shù)據(jù),通過PROFIBUS-PA現(xiàn)場總線傳送這些數(shù)據(jù),同時能夠獲取一類主站與二類主站的輸出數(shù)據(jù)進行相應處理后輸出。?

1.2 實現(xiàn)方案?

??? 使用ProfiScript(軟件)+ProfiCore(硬件)來充當主站。ProfiScript是經(jīng)過PROFIBUS認證,能夠測試DP、DP-V1和PA設備協(xié)議功能的分析工具,通過PC機的USB端口和PROFIBUS-DP總線之間的通信管理機(ProfiCore)與DP/PA耦合器相接,形成完整的PA通信通道。編寫ProfiScript的腳本文件,可形成用戶想要的PROFIBUS運行機制,單步或連續(xù)地發(fā)送各種報文。?

??? (1) 硬件設計上,主體部分由完全集成了PROFIBUS的V0狀態(tài)機制及部分V1機制的專用協(xié)議芯片DPC31、SIEMENS最新推出的SIM1-2信號調(diào)制芯片及ATMEL公司的基于ARM7內(nèi)核的AT91SAM7SE32芯片構成。?

??? (2) 外部8點數(shù)字量輸入,8點數(shù)字量輸出,輸入/輸出使用LED顯示。?

??? (3) 外部8路模擬量輸入。?

??? (4) ARM+Firmware軟件實現(xiàn)CPU與專用ASIC芯片結合。?

??? (5) 編寫相應產(chǎn)品的GSD文件,對該從站的特性與性能進行說明,包括用戶自定義的參數(shù)值(如擴展報警信息,擴展診斷信息等)。?

2 硬件設計?

??? 電路設計的主體示意圖如圖1所示。?

?

?

2.1 微處理芯片AT91SAM7SE32?

??? AT91SAM7SE32是由ATMEL公司推出的AT91SAM7SE系列芯片,具有ARM7TDMI內(nèi)核。其優(yōu)點是:高運算速度,低功耗,3.3 V低電壓供電,內(nèi)部具有32 KB的可在線調(diào)試Flash,8 KB的SRAM,保證程序運行的需求。具有外部總線接口EBI,EBI擁有8個片選信號,可同時接8個片外設備。EBI是與協(xié)議芯片DPC31通信所必須的接口,它支持NAND Flash,和SDRAM接口,方便片外Flash與SDRAM的擴展。同時片內(nèi)還集成了8路最高10位轉換精度的A/D轉換器,從而免去了外部再接A/D轉換電路,降低了硬件成本。多達3個PIO控制器共88個可編程I/O口,這對多路的數(shù)字量輸入/輸出是極有好處的,避免了因I/O口不足而需要加入的鎖存電路。?

2.2 協(xié)議芯片DPC31?

??? DPC31內(nèi)部已經(jīng)集成了PROFIBUS中的V0機制,從而減少了產(chǎn)品開發(fā)的難度,并集成部分PROFIBUS的V1機制。內(nèi)部共8 KB可尋RAM地址,用戶可用部分RAM(大約為5.5 KB)。由于其集成了V0機制,所以在V0工作方面,從DPC31的初始化至正常工作,都由其內(nèi)部狀態(tài)機制進行控制完成,不需要太多的人為干預。而重點在于將DPC31中的寄存器及數(shù)據(jù)緩沖區(qū)進行正確的配置,對DPC31內(nèi)部RAM的讀寫操作即相當于完成了主站與從站間的通信工作。而對于V1機制,還需要對其進行軟件設計建立其工作機制,包括在DPC31的RAM內(nèi)建立SAP類型,同樣需要進行數(shù)據(jù)緩沖區(qū)的相應設置等工作。?

??? DPC31使用8 MHz晶振,取其2分頻4 MHz作為ARM的時鐘輸入,再經(jīng)過ARM內(nèi)部的分頻/倍頻后,得到期望的內(nèi)部時鐘(如48 MHz)。DPC31與CPU的通信類型,可通過設置DPC31的“BUS TYPE”相應引腳使其工作在INTEL或MOTOROLA方式。對于本設計,應設為“000”,即異步INTEL方式。需要指出的是,DPC31上的“RAEDY”信號與AT91SAM7SE32上使用EBI時的“NWAIT”信號運行時序機制是不匹配的,不可使用。應該分析DPC31在此模式下對其進行讀寫的信號時序,從而在ARM中EBI的時序設置寄存器(SMC_CSRx)中對相應的值進行正確的設置,來完成對DPC31雙口RAM的讀寫。?

2.3 Modem芯片SIM1-2 ?

??? SIEMENS公司繼SIM1-1之后最新推出了SIM1-2芯片,與SIM1-1功能相同,接收PROFIBUS-PA上的IEC61158-2信號,解調(diào)成可與DPC31通信的四線制RXS、RXE、TXS、TXE信號,同樣反方向調(diào)制成PA總線上的IEC61158-2信號。相比而言,SIM1-2采用了MLPQ封裝,具有更小的體積,同時去掉了SIM1-1中的本地供電功能,即SIM1-2上的電源只能從PA總線上獲取,而不能再由外部對其進行供電,但SIM1-2通過內(nèi)部電源轉換功能,可作為外部芯片電源。通過設置相應電阻阻值,可使其對外供電電流設定在2 mA~50 mA之間,避免了原SIM1-1供電電流不可設定存在的隱患:因PA從站出現(xiàn)某種故障,使得從站耗電量大幅增長,從而造成總線供電不足影響其他設備工作。SIM1-2對外可供電壓也由原來的恒定3.3?V更改為可設置在2~5 V之間,這顯然為外部芯片的選擇提供了更大的空間。SIM1-2時鐘晶振為固定值2 MHz。?

??? 由于SIM1-2芯片自身電源電流只能從PA總線上獲取,最大為50 mA,而I/O設計中有多路數(shù)字量輸入/輸出的LED顯示,產(chǎn)品化時需要考慮到對輸入/輸出進行的光電隔離,再加上模擬量輸入電路的電流消耗以及各芯片的電流消耗,因此芯片電源電流單從總線上獲取是滿足不了要求的。這就需要將供電電路分成兩個部分:SIM1-2部分電路從PA總線上汲取電流,其他電路全由外部電源供電。因而在DPC31與SIM1-2之間的四線通信線路需要光電隔離(見圖1)。?

??? 圖2所示是SIM1-2與PA總線的連接圖。需要特別指出的是,對PNP三極管Q1的選擇要注意它的“最大消散功率”指標,由于PA總線上電壓較高(9~32 V之間,由用戶選擇的DP/PA Link決定),再加上如果用戶設置的汲取電流較高,將造成開關三極管的消散功耗較大。若此三極管選擇不當,不但極易燒毀且將損壞SIM1-2芯片,其最大消散功率應大于1 W。?

?

?

2.4 模擬量輸入部分?

??? PA適用于過程控制領域,其中有大量的模擬量數(shù)據(jù)處理,硬件設計中可充分利用AT91SAM7SE32上自帶的8路最高10位分辨率的逐次逼近式A/D轉換控制器來實現(xiàn)數(shù)據(jù)采集,該ADC給每路A/D轉換配置一個相應數(shù)據(jù)寄存器,以減少CPU的中斷開銷。每個通路可單獨允許和禁止,多種觸發(fā)方式:硬件或軟件觸發(fā)、外部觸發(fā)引腳觸發(fā)、利用定時器/計數(shù)器輸出進行觸發(fā)。電路設計中,采用外部取穩(wěn)定3.3 V作為轉換的參考電壓,通過電位器變化輸入電壓的方式,來實現(xiàn)外部模擬量輸入。如圖3所示,為一路模擬量輸入的電路原理圖,其余7路與此路相同。其中AD5~AD8與PIO復用,在CPU程序初始化時應將它們分配給A/D外設。?

?

?

3 軟件設計?

3.1 Firmware 結構?

??? PROFIBUS-PA通信基于DP-V1,包含了循環(huán)通信與非循環(huán)通信,在非循環(huán)通信中,又分為從站與一類主站、二類主站間的通信,即MS1與MS2之間的通信。程序軟件運行于ARM7中,稱為Firmware,根據(jù)用戶具體的硬件條件編寫。圖4是本設計的Firmware的整體結構圖。軟件中,DPC31的驅(qū)動為其通信底層,其上層為C0 Firmware和C2 Firmware,其中,C0 Firmware 包含一類主站循環(huán)通信MSCY1S、非循環(huán)通信中的MSAC1S(數(shù)據(jù)讀/寫)、MSAL1S(報警確認功能);C2 Firmware 包含相比而言有其特殊性的二類主站通信MSAC2S。可以根據(jù)實際需要,在程序的宏定義中設定本遠程I/O所希望支持的通信功能。?

?

?

3.2? 程序主體結構?

??? 整個總線遠程I/O的通信,是通過對DPC31的內(nèi)部寄存器、內(nèi)部雙口RAM的讀寫過程來實現(xiàn)的。在DPC31中,已經(jīng)對PROFIBUS相應的狀態(tài)機制進行了集成,分配了相應的讀/寫寄存器的物理地址。為了方便ARM對DPC31相應寄存器的訪問,應該將整個DPC31已經(jīng)定義的寄存器結構,再加上用戶所想加入的“指示隊列”結構、SAP訪問存取點結構、用戶初始化數(shù)據(jù)結構,歸于一個較為龐大的結構體中,再定義一指向此類型結構體的指針,并將此指針強制定義到DPC31內(nèi)部RAM基地址處。其基地址與ARM上所選用的片選信號有關,本設計中選擇為CS0,其絕對基地址為0x10000000,其代碼為:?

??? #pragma pack(1)????? //字節(jié)必須對齊?

??? Typedef struct?

??? {…?

??? ?.. .???????????????? ? //DPC31內(nèi)部結構?

??? } *V1SLPS_STRUC_PBC_DPC31;?

??? #pragma pack()?

??? #define DPC31_BASE_STR ((V1SLPS_STRUC_PBC_DPC31)?0x10000000)?

??? V1SLPS_STRUC_PBC_DPC31??? dpc31=DPC31_BASE_STR;?

??? 至此對DPC31的訪問通過“dpc31->”的方式來進行。?

??? 如圖5所示為整個Firmware 的流程圖。?

?

?

3.3 中斷處理?

??? 在程序進入永久循環(huán)后,對中斷事件的響應處理是進行通信的關鍵所在,程序設計中采用了在永久循環(huán)中不斷查詢中斷寄存器,根據(jù)判斷相應位的值進入中斷處理程序的方法。由于ARM擁有快速處理能力,從而能夠保證中斷響應的及時性。雖然循環(huán)與非循環(huán)對中斷事件的處理都在中斷查詢中進行,但其中斷產(chǎn)生是不一樣的。對循環(huán)通信,當從站接收到相應的V0報文,判斷其正確后將會給中斷寄存器相應位進行置位。而非循環(huán)通信中斷的產(chǎn)生,是經(jīng)過請求“指示隊列”來完成。對主站的非循環(huán)通信請求,不要求從站像循環(huán)通信那樣迅速得到所請求的內(nèi)容,當接收到非循環(huán)報文時,DPC31會自動生成一個條目(Entry),一個條目占3 B,分別為:Command_Code、Value1、Value2,Value值根據(jù)不同命令代碼(Command_Code)而定。眾多條目構成“指示隊列”,讀/寫指針指向“指示隊列”,用戶只需要對隊列讀指針進行操作,寫指針由MAC進行管理,中斷只在讀/寫指針不一致時產(chǎn)生。因此,在“Passive Idle”模式下“指示隊列”的合理初始化是很重要的。一次非循環(huán)通信的完成可能要經(jīng)過好幾個總線周期,在主站得到想要的數(shù)據(jù)前會不斷地進行輪詢。圖6所示為查詢方式中的中斷程序流程。?

?

?

??? 二類主站與一類主站不同,它不像一類主站有一個上電初始化過程,通過這個過程(參數(shù)設置、組態(tài)和診斷),來識別和鎖定屬于它的從站。二類主站沒有這個過程,所以在和從站進行數(shù)據(jù)交換之前,它必須先和相應的從站建立聯(lián)系,即初始化數(shù)據(jù)通道,同時根據(jù)內(nèi)存設定可與二類主站通信的數(shù)目。MS1與MS2均會用到“Req_Pdu_Ind”(接收到請求報文)、“Poll_End_Ind”(已經(jīng)對請求進行了應答)和“SAP_Act_Deact”(FDL_SAP激活或非激活)三個條目類型,由于MS2通信擁有數(shù)據(jù)通道超時放棄功能,因此它比MS1多一個“FDL_Timer_Expired”(FDL監(jiān)視計時器溢出)條目類型。?

3.4 運行測試?

??? 如圖7所示,配置S7-300的CPU314+CP342-5為主站對遠程I/O進行測試,使用ProfiTrace 監(jiān)測到的進入數(shù)據(jù)交換循環(huán)通信部分報文結果。?

?

?

??? PROFIBUS是目前應用最為廣泛的現(xiàn)場總線,在國內(nèi)對其開發(fā)的主要產(chǎn)品是DP,由于PA必須加入非循環(huán)通信,并需實現(xiàn)相應設備的PA行規(guī),開發(fā)難度較大,對PA產(chǎn)品的開發(fā)還較為鮮見。文中具體介紹了PROFIBUS-PA從站遠程I/O設備的實現(xiàn)方案,經(jīng)測試達到了良好的通信效果。但在開發(fā)設計中,由于外部電源引入時未考慮其本安特性,所以此PA從站設備是不符合本質(zhì)安全要求的,這將是未來的改進方向。?

參考文獻?

[1] 王永華,VERWER A.現(xiàn)場總線技術及應用教程——從PROFIBUS到AS-i[M].北京:機械工業(yè)出版社,2007.?

[2] SIEMENS AG.DPC31 hardware description of step C[EB/CD],Version 2.1,April 2004.?

[3] SIEMENS AG.ASIC SIM1-2 function manual[EB/CD],F(xiàn)eb. 2007.?

[4] ATMEL.User manual of AT91SAM7SE series[EB/CD],Mar. 2007. ?

[5] 陽憲惠.現(xiàn)場總線技術及其應用[M].北京:清華大學出版社,1999.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權者。如涉及作品內(nèi)容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
性欧美长视频| 亚洲调教视频在线观看| 日韩亚洲国产精品| 亚洲第一福利社区| 一区免费观看| 在线观看成人av电影| 国产一区av在线| 国产一区二区成人久久免费影院| 国产精品美女www爽爽爽| 欧美日韩在线大尺度| 欧美了一区在线观看| 欧美成人精品高清在线播放| 欧美 日韩 国产精品免费观看| 卡通动漫国产精品| 久久综合国产精品| 老司机午夜免费精品视频| 久久亚洲一区二区| 免费成人在线观看视频| 欧美成年人视频网站欧美| 免费日韩av| 欧美搞黄网站| 欧美日本一道本| 欧美日韩亚洲成人| 欧美性色综合| 国产麻豆精品在线观看| 国产日韩欧美三级| 国语自产精品视频在线看一大j8| 激情国产一区二区| 亚洲第一中文字幕在线观看| 亚洲国产乱码最新视频| 亚洲狼人综合| 亚洲香蕉成视频在线观看| 亚洲欧美激情一区| 久久99伊人| 亚洲日本电影| 亚洲神马久久| 欧美一二区视频| 久久精品一区二区三区不卡| 噜噜爱69成人精品| 欧美日韩伦理在线| 国产精品网站在线观看| 韩国亚洲精品| 91久久黄色| 中日韩美女免费视频网站在线观看| 在线视频精品一区| 午夜在线视频一区二区区别| 久久精品五月| 在线亚洲成人| 久久成人免费日本黄色| 欧美国产日韩一区二区| 国产精品激情av在线播放| 国际精品欧美精品| 亚洲茄子视频| 亚洲综合日韩中文字幕v在线| 久久精品官网| 亚洲桃色在线一区| 久久久美女艺术照精彩视频福利播放 | 亚洲福利在线看| 亚洲视频在线观看免费| 亚洲高清视频一区| 在线一区二区日韩| 久久久久久**毛片大全| 欧美日产在线观看| 国产一区在线播放| 一本色道久久综合亚洲91| 久久精品99国产精品酒店日本| 中日韩美女免费视频网址在线观看 | 欧美先锋影音| 国内久久婷婷综合| 一区二区不卡在线视频 午夜欧美不卡在| 午夜精品久久久久久久99热浪潮 | 国产一区二区三区在线观看精品| 亚洲欧洲精品一区二区精品久久久 | 久久成人国产精品| 欧美久久久久久蜜桃| 国产一区二区三区网站| 夜夜嗨av一区二区三区四季av| 久久9热精品视频| 亚洲一区国产精品| 你懂的国产精品| 国产日韩精品一区| 亚洲美女少妇无套啪啪呻吟| 欧美在线在线| 亚洲欧美日韩专区| 欧美日本韩国一区二区三区| 国产一区二区三区的电影| 99v久久综合狠狠综合久久| 亚洲国产精品www| 久久国产精品99国产| 欧美午夜在线视频| 91久久黄色| 亚洲黄色成人| 久久精品中文| 国产精品一卡二卡| 中文日韩在线| 中文亚洲欧美| 欧美黄在线观看| 黄色成人av网| 欧美亚洲免费高清在线观看| 亚洲一区成人| 欧美日韩免费观看一区二区三区| 在线免费观看一区二区三区| 欧美一区二区三区四区在线| 性欧美精品高清| 国产精品av免费在线观看| 亚洲精品日韩综合观看成人91| 亚洲国产精品第一区二区| 久久精品国产99| 国产日产欧美a一级在线| 亚洲午夜激情免费视频| 亚洲一区二区伦理| 欧美日韩一卡| 日韩一级在线| 一区二区三区高清不卡| 欧美精品一区二区在线播放| 亚洲电影网站| 亚洲美女啪啪| 欧美精品www| 亚洲七七久久综合桃花剧情介绍| 亚洲精品偷拍| 欧美电影电视剧在线观看| 亚洲精品1234| 一区二区三区国产在线| 欧美日韩p片| 99精品国产高清一区二区| 一区二区三区黄色| 欧美三级网页| 99视频超级精品| 亚洲一级片在线观看| 国产精品久久久久久久7电影| 中日韩美女免费视频网站在线观看| 亚洲一区二区影院| 国产精品一区二区你懂得| 午夜视频在线观看一区二区| 欧美在线观看视频一区二区三区 | 中文精品一区二区三区| 欧美午夜电影网| 亚洲一区自拍| 久久精品噜噜噜成人av农村| 韩国成人精品a∨在线观看| 亚洲国产成人一区| 欧美国产成人在线| 一本色道久久综合一区| 午夜精品一区二区三区在线| 国产视频一区免费看| 久久精品久久99精品久久| 欧美成人免费网站| 99av国产精品欲麻豆| 亚洲欧美日韩综合aⅴ视频| 国产日韩欧美一区二区| 亚洲国产天堂久久综合网| 欧美日本国产一区| 亚洲影院在线| 久久久噜久噜久久综合| 亚洲电影专区| 亚洲一区视频在线| 国产亚洲精品美女| 亚洲精品视频在线观看网站| 国产精品v日韩精品| 午夜视频一区在线观看| 欧美1区2区3区| 亚洲视频观看| 久久一二三四| 一区二区高清在线| 久久亚洲视频| 一区二区三区四区五区精品视频| 久久国内精品自在自线400部| 在线观看91精品国产麻豆| 在线一区亚洲| 韩国精品主播一区二区在线观看| 99精品热视频| 国产一区二区三区久久悠悠色av| 亚洲日韩第九十九页| 国产精品久久久久久久久免费桃花| 久久精品理论片| 欧美午夜视频| 亚洲激情综合| 国产精品嫩草影院一区二区| 亚洲国产成人精品女人久久久| 国产精品h在线观看| 亚洲国产日韩在线一区模特| 国产精品毛片一区二区三区 | 久久成人精品无人区| 最新日韩欧美| 久久免费国产精品| aⅴ色国产欧美| 裸体一区二区| 午夜精品久久久久久久99热浪潮| 欧美激情导航| 欧美一级网站| 欧美午夜精品久久久| 亚洲国产成人久久| 国产精品一区三区| 这里只有精品视频在线| 在线不卡免费欧美| 性欧美videos另类喷潮| 亚洲免费观看高清完整版在线观看熊| 久久av一区| 中日韩美女免费视频网址在线观看| 美女主播一区|