《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 解決方案 > PROFIBUS-DP總線I/O設備的開發

PROFIBUS-DP總線I/O設備的開發

——基于XGate-DPS10的應用——下篇(軟件設計)
2010-11-03
作者:廣州致遠
關鍵詞: SOC PROFIBUS-DP I/O

    如果說硬件是設備的軀體,那么軟件則是設備的靈魂。上期文章中詳細介紹了基于XGate-DPS10的總線I/O設備硬件設計,至此,已構建了一個完整的設備軀體。但是,這個設備還不能正常運行,因為它還沒有靈魂,不知道自己該做什么,怎么做。本期文章將介紹如何使用XGate-DPS軟件庫設計設備軟件,通過下面的介紹,您可以快速地讓您的設備具有思想,最終成為一個功能完整的設備。
1 XGate-DPS軟件庫結構
    XGate-DPS系列模塊都提供了軟件庫,用戶使用該軟件庫可以快速開發出設備軟件。圖 1是該軟件庫的結構圖,整個軟件架構將XGate-DPS的資源展示給用戶,這些資源包括輸入數據、輸出數據、用戶參數數據、配置數據、診斷數據等等。圖中,灰色背景部分表示需要用戶編程。軟件庫針對8051、ARM平臺做了硬件相關的接口驅動,一般不需要做任何更改,如果使用新的硬件平臺, 用戶需要修改UART驅動。

    軟件庫自行完成UART數據傳輸控制、命令發送和接收及相關分析處理,即圖中的“XGate數據處理”部分;在“XGate數據處理”的上層,提供了用戶接口函數API,用戶使用這些函數完成對XGate-DPS的操作;一些基于事件的操作,如DP-V1的讀寫和數據傳輸請求,“XGate數據處理”將通過回調方式獲取應答和處理;用戶應用程序APP可以直接訪問XGate資源,但是,必須使用API來更新這些資源。
2 XGate-DPS軟件設計步驟
    用戶使用該軟件庫對XGate-DPS10的操作其實就是完成回調函數、使用API更新資源、訪問資源數據。整個設計遵循圖2所示的5個步驟,每個步驟需要完成的工作在圖中作了注釋,其中,大多數場合不需要步驟3;在不使用DP-V1的情況下步驟4幾乎也是可以忽略的。

3 總線I/O設備的GSD文件
    GSD文件是設備描述文件,當一個設備確定了其功能和參數后,GSD文件也就確定了。設備的GSD文件一般是通過修改示例GSD文件生成,示例GSD文件中的大部分關鍵字和參數已經確定而不需要修改。本例中修改示例如下:
    Vendor_Name="ZY Ltd. Co.";//公司名,用戶自行修改
    Model_Name="總線I/O";//設備名稱,也是組態時該產品的名稱
    OrderNumber="I/O20100801";//產品序列號,可按用戶名修改
    Module= "DO8 LEDs" 0x20;//模塊描述,組態數據0x20
表示1個字節輸出,對應了8位輸出開關量
    1
    Ext_Module_Prm_Data_Len=1
    Ext_User_Prm_Data_Ref(0)=2
    EndModule
    ……
    修改的內容一部分是設備的名稱、序列號等信息,另一部分是設備組態數據和用戶參數數據部分。設備組態數據指示了設備的輸入輸出大小,決定了通信數據結構,組態數據的設置可以查看XGate-DPS10數據手冊的附錄;用戶參數數據是為了限定或指示設備數據的范圍或意義的,更詳細的信息請參考《XGate-DPS10數據手冊》。
4 APP設計及回調函數
    軟件庫提供了demo示例代碼,一個軟件庫基礎操作單元如圖3所示。

    在使用軟件包前,首先要配置cfg.h頭文件的宏定義,這包括與硬件相關的寄存器、緩沖區大小、設備屬性等的定義。
    使用軟件包,用戶沒有必要去考慮如何與模塊通信,也不必了解PROFIBUS技術細節,只需要關心設備功能的實現及如何組織數據。一個典型的前后臺用戶程序框圖如圖4所示。

    軟件包中有兩個非常重要的函數DataUpdate()和RecvProcess(),調用這兩個函數實現數據的交換。接收到的交換數據在sys.Out_data[]數組中,要發送的數據需要放到sys.In_data[]中。例如:
    sys.In_data[0] = redDI();//將數字量輸入讀回放到
sys.In_data緩沖區中
    DataUpdate();//上傳輸入數據
    RecvProcess();//獲取輸出數據
    DriveDO(sys.Out_data[0]);//將來自主站的輸出數據DO
輸出到開關輸出
    放到sys數組中的數據順序與GSD文件描述的設備信息順序是一致的。在本例中,8位開關輸入量在sys.In_data[0]中,而16位(2 B)計數器占用sys.In_data[1…2];8位開關輸出在sys.Out_data[0]中。來自主站的用戶參數數據放在sys.User_para[]數組中,用戶可以根據這些數據的意義設置設備相關功能。
    XGate-DPS10支持用戶診斷,用戶可以調用SetDiag_Channel()、SetDiag_Identifier()、SetDiag_Device()等函數來完成用戶診斷的發送,在發送這些診斷前,需要將診斷信息賦值到定義好的結構體中,例如:
    STRUCT_Diag_Channel diag_channel;//通道相關診斷
    diag_channel.Channel_ByteType=ChannelByte_In;//字節、
輸入通道
    diag_channel.Channel_Number=2;//通道號
    diag_channel.Channel_Type=ChannelTpye_byte;//類型為字節
    diag_channel.EerrType=STATUS_OVERVOLTAGE;
//錯誤為過壓
    diag_channel.Module_Number=2;//通道所屬模塊
    SetDiag_Channel(0, &Diagbuf, &diag_channel);
//發送診斷數據
    當XGate-DPS收到DP-V1讀寫請求,也將產生一個中斷,軟件庫將調用相應的回調函數。在這些回調函數中應首先判斷訪問的slot_num、index的合法性,基本格式如下:
    switch(slot_num)
    {
    case允許的:
        允許的處理;//在這里使用同樣格式進一步對
index的合法性判斷;完全合法則應答請求數據
    break;
    case不允許的:
        返回訪問錯誤;
    break;
    }
    PROFIBUS-DP從站應用廣泛,使用通信接口模塊來開發總線I/O設備可以有效地縮短開發周期、節省成本投入,并在可靠性上得到保障。XGate-DPS10符合大多數應用場合,其高可靠性、方便性、低成本性使其成為開發DP從站設備的首選。
    廣州致遠電子有限公司致力于嵌入式系統、工業通信網絡的技術研發與應用推廣,自主研發了一系列PROFIBUS-DP網絡產品,包括嵌入式模塊、通訊卡、調試工具、PC軟件、OPC服務器等,并提供基于PROFIBUS總線的整套組網方案及應用集成。

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
日韩亚洲国产精品| 久久成人精品电影| 午夜精品网站| 一区二区电影免费在线观看| 亚洲精品久久久久中文字幕欢迎你 | 精品白丝av| 黄色日韩精品| 韩国一区电影| 海角社区69精品视频| 国内精品一区二区| 黑人巨大精品欧美黑白配亚洲 | 久久久一二三| 久久久久久久网站| 久久人人爽爽爽人久久久| 久久久精品tv| 久久一区精品| 玖玖玖国产精品| 女人色偷偷aa久久天堂| 欧美成人dvd在线视频| 欧美jizz19性欧美| 欧美精品在线视频观看| 欧美日韩亚洲三区| 国产精品成人一区二区网站软件 | 精久久久久久| 在线观看精品| 亚洲国产综合视频在线观看| 亚洲人体偷拍| 中文在线资源观看网站视频免费不卡 | 亚洲女人天堂成人av在线| 亚洲欧美中文日韩v在线观看| 午夜欧美精品| 久久久久一区二区| 欧美成人日韩| 国产精品成人午夜| 国产小视频国产精品| 国产一区二区三区奇米久涩| 亚洲国产成人久久综合一区| 99视频有精品| 欧美一区二区精美| 91久久精品一区二区三区| 99re热精品| 亚洲欧美日韩在线观看a三区 | 亚洲综合色婷婷| 欧美一区二区三区免费在线看| 亚洲高清在线播放| 亚洲无线一线二线三线区别av| 午夜精品在线视频| 免播放器亚洲一区| 国产精品电影在线观看| 国产一区二区看久久| 亚洲国产综合91精品麻豆| 一区二区日韩伦理片| 欧美影片第一页| 日韩亚洲综合在线| 久久精品人人| 欧美日本韩国一区二区三区| 国产日韩精品一区二区| 亚洲国产aⅴ天堂久久| 亚洲网站啪啪| 亚洲国产高清自拍| 亚洲欧美日韩中文播放| 欧美成人官网二区| 国产精品亚洲精品| 亚洲国产综合91精品麻豆| 亚洲男人的天堂在线| 亚洲美女精品成人在线视频| 欧美一区二区三区四区夜夜大片| 欧美国产日韩视频| 国产亚洲成年网址在线观看| 99re66热这里只有精品3直播 | 国产精品蜜臀在线观看| 亚洲电影免费观看高清完整版在线| 一区二区三区精品| 亚洲黑丝在线| 欧美一区国产二区| 欧美日韩色一区| 伊人天天综合| 亚洲欧美中文在线视频| 一区二区不卡在线视频 午夜欧美不卡'| 久久精品欧美日韩| 国产精品激情电影| 亚洲人体一区| 亚洲国产精品久久久久| 欧美一级淫片播放口| 欧美日韩国产系列| 亚洲国产精品va在线看黑人动漫| 先锋影音久久久| 亚洲视频免费在线| 欧美xxxx在线观看| 国产综合自拍| 欧美亚洲午夜视频在线观看| 亚洲一二三四区| 欧美另类女人| 亚洲国产精品成人综合色在线婷婷 | 在线不卡中文字幕播放| 欧美在线一区二区三区| 午夜精品理论片| 欧美日一区二区三区在线观看国产免| 伊人色综合久久天天| 久久成人av少妇免费| 欧美综合国产| 国产区日韩欧美| 亚洲欧美日韩国产另类专区| 亚洲小说春色综合另类电影| 欧美人成免费网站| 亚洲国产精品成人综合| 亚洲啪啪91| 欧美国产91| 亚洲欧洲精品成人久久奇米网 | 激情五月综合色婷婷一区二区| 午夜精品999| 性高湖久久久久久久久| 国产精品黄视频| 一区二区三区波多野结衣在线观看| 一区二区三区免费网站| 欧美日韩国产成人在线| 亚洲精品一线二线三线无人区| 日韩午夜高潮| 欧美日韩亚洲综合在线| av成人免费观看| 亚洲欧美99| 国产精品三级久久久久久电影| 亚洲一本大道在线| 欧美一区二区三区精品电影| 国产欧美精品一区二区三区介绍| 亚洲在线播放| 欧美影片第一页| 国产真实乱偷精品视频免| 欧美在线播放高清精品| 久久天堂av综合合色| 精品白丝av| 日韩视频在线观看一区二区| 欧美日韩性视频在线| 在线视频欧美日韩精品| 亚洲欧美日韩精品久久| 国产精品亚洲成人| 久久激情网站| 欧美成人xxx| 一本久道久久综合狠狠爱| 亚洲欧美一区二区三区极速播放 | 伊人婷婷欧美激情| 亚洲欧洲三级| 欧美日本一区| 一区二区精品在线| 香蕉成人啪国产精品视频综合网| 国产亚洲欧美日韩日本| 亚洲激情视频在线| 欧美日韩三级| 午夜天堂精品久久久久| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲黄色三级| 亚洲欧美另类在线观看| 国产一区二区三区黄视频| 91久久线看在观草草青青| 欧美日韩一区三区| 亚洲欧美日韩国产综合| 久久综合伊人77777麻豆| 亚洲精品婷婷| 欧美在线国产精品| 91久久精品国产91久久性色tv| 亚洲特级毛片| 国产一区二区中文| 一本色道精品久久一区二区三区| 国产精品国产三级国产专区53 | 男同欧美伦乱| 一本色道久久综合亚洲精品小说| 欧美在线一区二区三区| 有坂深雪在线一区| 亚洲一区在线免费| 韩国av一区二区三区| 一区二区三区四区五区精品视频 | 亚洲精品乱码久久久久久久久| 性欧美超级视频| 在线欧美不卡| 性欧美xxxx大乳国产app| 亚洲国产乱码最新视频| 性久久久久久久久| 亚洲人成网在线播放| 久久精品女人的天堂av| 99国产精品久久久| 久久久久久久综合日本| 亚洲乱码国产乱码精品精可以看 | 欧美一区二区三区在| 亚洲国产日韩一区| 久久国产精品久久国产精品| 亚洲精品久久视频| 久久免费黄色| 亚洲无人区一区| 欧美激情一区二区久久久| 亚洲综合色丁香婷婷六月图片| 欧美日韩成人在线观看| 欧美一级黄色网| 欧美日韩亚洲91| 亚洲精品中文字幕有码专区| 国产老肥熟一区二区三区| 99视频一区二区| 在线观看成人一级片| 久久久久久一区二区三区| 亚洲一区二区视频在线| 欧美精品一区二|