《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計應(yīng)用 > 基于MSP430單片機的Profibus-DP通信接口開發(fā)
基于MSP430單片機的Profibus-DP通信接口開發(fā)
現(xiàn)代電子技術(shù)
宋清昆 林森 馮金超
摘要: Profibus是開放的、與制造商無關(guān),、無知識產(chǎn)權(quán)保護的標準,。因此世界上任何人都可以獲得該標準并設(shè)計各自的軟硬件解決方案。Pro-fibus-DP通信接口的開發(fā)有兩種方案選擇:單片機+軟件;單片機+Profibus通信芯片ASIC,。
Abstract:
Key words :

     0 引言

  Profibus是開放的,、與制造商無關(guān)、無知識產(chǎn)權(quán)保護的標準,。因此世界上任何人都可以獲得該標準并設(shè)計各自的軟硬件解決方案,。Pro-fibus-DP通信接口的開發(fā)有兩種方案選擇:單片機+軟件;單片機+Profibus通信芯片ASIC。

  方案2中Profibus-DP協(xié)議完全由Profibus通信ASIC來實現(xiàn),,單片機主要處理用戶程序,。因此方案2開發(fā)周期相對少很多,本文將采用單片機+Profibus通信ASIC來實現(xiàn)Profibus通信接口的設(shè)計,。

  1 Profibus-DP基本特性

  Profibus包括三個兼容系列:Profibus-FMS,,Profibus-DP,Profibus-PA,。FMS提供大量的通信服務(wù)用于完成以中等傳輸速度進行的循環(huán)和非循環(huán)的通信服務(wù);DP是一種經(jīng)過優(yōu)化的高速廉價的通信連接,,適用于實時性要求較高的場合,主要用于自動控制與分散式外設(shè)之間的通信;PA是專為過程自動化而設(shè)計,,具有本質(zhì)安全性,,用于安全性要求較高的場合及總線供電的站點。

  1.1 協(xié)議結(jié)構(gòu)

  Profibus-DP協(xié)議采用了ISO/OSI模型的第1層(物理層),、第2層(數(shù)據(jù)鏈路層),,除去了3~7層,并自定義了用戶接口層,,這種協(xié)議結(jié)構(gòu)保證了數(shù)據(jù)傳輸?shù)目焖儆行А?/p>

  1.2 報文結(jié)構(gòu)

  Profibus-DP數(shù)據(jù)編碼采用異步不歸零制,,傳輸線的空載電平為“1”,。為了避免數(shù)據(jù)傳輸中發(fā)生沖突而導(dǎo)致數(shù)據(jù)丟失,在每個請求報文發(fā)送前必須保證33位(同步時間)的空載狀態(tài),。在單個字符間所有數(shù)據(jù)傳送時沒有間隙,,即無縫。各種報文的格式如圖1所示,。

  1.3 Profibus-DP從站狀態(tài)機

  圖2為DP從站狀態(tài)機的簡單圖示,。各種橢圓表示不同的狀態(tài),帶箭頭的連線表示狀態(tài)間的轉(zhuǎn)換,,連線上的文字表示狀態(tài)轉(zhuǎn)換所需滿足的條件。

  只有在Power_on狀態(tài),,從站可以接收來自二類主站的“Set_Slave_Address"報文,,從而改變從站地址,從站應(yīng)具有非易失性存儲器來存儲從站地址,。內(nèi)部啟動后,,從站進入wait_Prm狀態(tài),等待“Wait_Prm”報文,。參數(shù)化報文由用戶組態(tài)時給定,,包括一些標準的信息,如識別號,、同步鎖定能力,,還包括了一些用戶特別定義的數(shù)據(jù),另外,,在此狀態(tài)從站還可以接收“Get_Cfg”報文,、“Slave_Diag”報文,但拒絕處理其他報文,,不能進行數(shù)據(jù)通信,。如果Set_Prm正確,從站進入wait_Cfg狀態(tài),,等待“Check_Cfg”報文,,該報文規(guī)定主站對它的配置信息,即數(shù)據(jù)交換中的輸入輸出字節(jié)數(shù),。此外,,也可接收“Get_Cfg”報文、“Slave_Diag”的報文,。當參數(shù)化與配置正確通信,,在此狀態(tài),從站可以接收以下報文:Data_Exchange_Ok,、Writing_outputs,,Reading_Inputs,Global_Control,Slave_Diag,,Get_Cfg等,。從站接收主站的狀態(tài)請求后,以高優(yōu)先級的診斷報文作為應(yīng)答,。診斷信息包括了標準診斷信息和與用戶有關(guān)的信息,。

  2 通信接口硬件設(shè)計

  本文選用的Profibus-DP的通信協(xié)議芯片為SPC3。SPC3集成了全部的Profibus-DP協(xié)議,。SPC3在DP方式下將完成所有DP-SAP的設(shè)置,。SPC3內(nèi)部集成了1.5 KB的雙口RAM,包括參數(shù)寄存器,、方式寄存器,、狀態(tài)寄存器,中斷控制器等,。SPC3內(nèi)部集成的看門狗定時器有3種工作狀態(tài):波特率檢測,、波特率控制和從站控制。內(nèi)部的USART可實現(xiàn)并行數(shù)據(jù)流和串行數(shù)據(jù)流的相互轉(zhuǎn)換,。微順序控制器控制整個工作過程,。空閑定時器直接控制串行總線的時序,。

  考慮到Profibus對速率的要求本文選用高速率,,低功耗的16位MSP430單片機,采用Intel工作方式,。CPU與SPC3接口電路如圖3所示,。對于MSP430單片機而言,SPC3相當于它擴張的一個外部RAM,。單片機可以通過訪問外部RAM的方法訪問SPC3的寄存器,。RS 485驅(qū)動器的一端與SPC3相連,另一端通過9針D型插頭與總線相連,。RS 485驅(qū)動器選擇SN75SLS176來滿足高速的數(shù)據(jù)通信,。

  3 通信接口軟件設(shè)計

  軟件設(shè)計是開發(fā)Profibus-DP通信接口的一個重要環(huán)節(jié)。由于SPC3集成了完整的DP協(xié)議,,因此在進行通信時,,MSP430單片機不用參與處理DP狀態(tài)機。主要任務(wù)是根據(jù)SPC3產(chǎn)生的中斷,,對SPC3接收到數(shù)據(jù)轉(zhuǎn)存,,組織要通過SPC3發(fā)給的數(shù)據(jù),并根據(jù)要求組織外部診斷,。

  主程序流程圖如圖4所示,,在SPC3正常工作之前,,需要進行初始化,以配置需要的寄存器,,包括設(shè)置協(xié)議芯片的中斷允許,,寫入從站識別號和地址,設(shè)置SPC3方式寄存器,,設(shè)置診斷緩沖區(qū),,配置緩沖區(qū),地址緩沖區(qū),,初始化長度,,并根據(jù)以上初始值得出各個緩沖區(qū)的指針和輔助緩沖區(qū)的指針。根據(jù)確定輸出緩沖區(qū),、輸入緩沖區(qū)及指針,,初始化流程圖如圖5所示,初始化包括:SPC3硬件復(fù)位,、硬件模式,、設(shè)置SPC3中斷屏蔽寄存器,、SPC3內(nèi)部看門狗,、設(shè)備標識號、緩沖區(qū)初始化,。

  中斷程序流程圖如圖6所示,,在Profibus-DP中最主要處理以下的中斷事件:新的參數(shù)報文事件,全局控制命令報文事件,,進入或退出數(shù)據(jù)交換狀態(tài)事件,,新的配置報文事件,新的地址設(shè)置報文事件,,檢測到波特率事件,,看門狗事件。

  4 結(jié)語

  選用的MSP430單片機具有高速率,、低功耗的特點,,SPC3芯片則集成了Profibus-DP全部協(xié)議內(nèi)容,整系統(tǒng)功能相對完善,,使用方法簡單,。本方案用于Profibus-DP通信接口的開發(fā),可以減少開發(fā)周期,,實現(xiàn)開發(fā)的簡化,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。