PROFI BUS-DP/MODBUS的網(wǎng)關(guān)結構設計
(2)協(xié)議數據映射層
負責將I/O模塊映射為標準PROFIBUS-DP I/O模塊的工作,包括對下掛的I/O模塊類(lèi)型和通信接口控制字的檢查;各輸入模塊通道輸入數據在PROFIBUS-DP輸入數據中起始位置及所占長(cháng)度的管理;PROFIBUS-DP輸出數據向各輸出模塊通道輸出數據上的映射關(guān)系管理。
(3)MODBUS通信層
負責完成和下掛MODBUS從站I/O模塊的所有通信,包括讀取I/O模塊類(lèi)型、讀取通道輸出值、設定通道輸出值和參數設置等工作;根據映射層提供的輸出數據映射關(guān)系,將PROFIBUS-DP的輸出數據在CPU存儲器里的映射數據更新到輸出模塊的相應通道上;讀取各輸入模塊的通道輸入值,給映射層提供輸入數據資源。
3.3 PROFIBUS-DP總線(xiàn)驅動(dòng)
此網(wǎng)關(guān)PROFIBUS-DP部分采用協(xié)議芯片VPC3+C,其內部含有4KB RAM,用戶(hù)可根據需要對其進(jìn)行設置;有兩種微處理器接口,數據/地址總線(xiàn)復用或單獨操作。因為ARM核對外部RAM操作的速度較快,時(shí)序不能滿(mǎn)足VPC3+C的操作時(shí)序,因此這里不采用數據/地址總線(xiàn)復用的方式,而是用ARM的GPIO口來(lái)模擬VPC3+C的操作時(shí)序。在這里模擬的是其在Intel模式下內部寄存器的讀寫(xiě)時(shí)序。此驅動(dòng)主要提供了以下功能:nxp_vpc3_read、nxp_vpc3_write、nxp_vpc3_init、nxp_vpc3_reset、nxp_vpc3_isr。這些函數分別向上層應用提供了讀寫(xiě)VPC3+C寄存器、對其初始化、復位操作及中斷的處理功能。其中對寄存器的讀寫(xiě)操作是關(guān)鍵部分,函數原型如下:
unsigned char nxp_vpc3_read(unsigned int addr);
void nxp_vpc3_write(unsigned int addr,unsigned char data);
其中,addr為要讀寫(xiě)的寄存器地址,data為要寫(xiě)入的數據。
3.4 MODBUS協(xié)議的實(shí)現
為增加信號傳輸的距離并提高抗干擾能力,MODB-US物理層采用標準的RS485通信。MODBUS協(xié)議實(shí)現軟件的流程如圖5所示。本文引用地址:http://dyxdggzs.com/article/181148.htm
為了提高協(xié)議處理報文的效率,并提供良好的擴展性能,定義了函數指針數組,用于MODBUS應用層的數據處理。函數指針數組指針按照模塊類(lèi)型進(jìn)行信息處理的導向。
3.5 協(xié)議數據的映射處理
此網(wǎng)關(guān)的主要任務(wù)是完成PROFIBUS-DP的數據和MODB-實(shí)現的流程US數據的相互轉換,為了保證數據的實(shí)時(shí)性采用單緩沖區技術(shù)來(lái)實(shí)現信息的及時(shí)更新。所謂“單緩沖區”,即不管是PROFIBUS-DP還是MODBUS中待轉換的數據,只保留當前最新的一幀??紤]到現場(chǎng)通信的數據主要是數據的采集或模擬量的輸出,采用單個(gè)緩沖區不僅僅大大降低了對內存的需求,而且可以保證通信的實(shí)時(shí)性。因為PROFIBUS-DP的正常通信需要組態(tài)的軟件和下掛模塊的硬件一致,才能保證系統的可靠運行。因此如何將MODBUS從站模塊合理地映射成PROFIBUS-DP的標準模塊很關(guān)鍵。這里根據模塊特點(diǎn)(類(lèi)型、數字量/模擬量、通道數量等)定義了不同的通信接口控制字(CFG_DAT)。系統上電后,網(wǎng)關(guān)通過(guò)MODBUS功能碼0x11對下掛從站模塊進(jìn)行類(lèi)型及狀態(tài)查詢(xún),并根據類(lèi)型得到對應不同模塊的CFG_DAT。在PROFIBUS-DP進(jìn)行通信接口配置(CFG_CHK)的過(guò)程中檢查下掛模塊的CFG_DAT和對主站硬件組態(tài)的模塊對應的CFG_DAT,并根據此來(lái)填充診斷數據。如果檢查通過(guò),控制PROFIBUS-DP從站協(xié)議芯片進(jìn)入數據交換狀態(tài);否則主站在進(jìn)行診斷數據請求(DIAG-REQ)的時(shí)候,將診斷數據報告給主站。此網(wǎng)關(guān)判斷的診斷信息包括:對應CFG_DAT錯誤的模塊地址、模擬量輸入MODBUS模塊的通道斷線(xiàn)標志。
評論