• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      淺談基于STM32的CANopen協(xié)議棧的實現(xiàn)

      2021-01-28 10:04:54
      關(guān)鍵詞:字典報文總線

      桂林理工大學(xué)博文管理學(xué)院 廣西 桂林 541006

      在計算機軟硬件技術(shù)和集成電路工藝不斷發(fā)展的過程中,有關(guān)計算機的控制從傳統(tǒng)的模式化已經(jīng)逐漸發(fā)展成現(xiàn)場總線控制方式。這種技術(shù)的發(fā)展良好的推動了工業(yè)控制領(lǐng)域的進步,使工業(yè)控制技術(shù)的發(fā)展進入了新的時代。在這樣的背景下,CAN總線由于數(shù)據(jù)通信中的高效處理能力以及通信靈活性而逐漸受到推廣應(yīng)用。

      1 系統(tǒng)設(shè)計原理

      基于STM32的CANopen通信網(wǎng)絡(luò)的實現(xiàn)主要是通過1個主控制節(jié)點和多個從節(jié)點,相互之間通過CAN總線進行連接,從而形成一個網(wǎng)絡(luò),通過CANopen協(xié)議來實現(xiàn)對系統(tǒng)運行和通信的整體管理。主控制節(jié)點和從節(jié)點的核心處理器都是使用STM32F107,用戶在使用時,能夠通過主控節(jié)點將控制命令發(fā)送到從節(jié)點,進而對整體系統(tǒng)進行控制。通過CAN總線,從節(jié)點接收到主控節(jié)點發(fā)送的指令,完成相應(yīng)的處理后發(fā)送有關(guān)指令到CANopen設(shè)備中,實現(xiàn)對其行為的控制。

      2 系統(tǒng)軟件設(shè)計

      在系統(tǒng)軟件設(shè)計中,代碼的編寫主要是在KEIL編譯環(huán)境中進行,這種軟件編譯環(huán)境中有多項目工作區(qū),能夠使操作項目得到簡化,而且具備實時監(jiān)控的管理系統(tǒng)。通過代碼編寫,能夠完成操作系統(tǒng)、系統(tǒng)功能以及CANopen協(xié)議的設(shè)計,在編寫代碼完成后,經(jīng)過編譯再下載到控制網(wǎng)絡(luò)的主從機控制芯片中。

      2.1 對象字典 這主要是指有序的對象組,單個對象地址的尋找主要是通過16位的主索引和子索引值進行,CANopen的設(shè)備需要通過一個對象字典對其相關(guān)的參數(shù)進行描述,而這些對象集合起來就是對象字典。能夠?qū)π枰獙ふ业膬?nèi)容進行快速的查找,查找方法和查找目錄也需要設(shè)置,在C語言程序中進行定義。通過一個特定的數(shù)組將全部的對象目錄進行定義,包括所有對象的索引值、大小以及位置,用戶在查找時,通過對數(shù)組的掃描就可以很快查找到需要的內(nèi)容。

      2.2 網(wǎng)絡(luò)管理對象NMT 網(wǎng)絡(luò)管理對象NMT最主要的功能是進行狀態(tài)監(jiān)測和網(wǎng)絡(luò)節(jié)點狀態(tài)控制。CANopen的從節(jié)點中都包含一個狀態(tài)機,主節(jié)點主要對其轉(zhuǎn)換進行有效控制,節(jié)點會在不同的狀態(tài)下實施相應(yīng)的任務(wù)。對CANopen的節(jié)點狀態(tài)程序給與了4種定義,系統(tǒng)在接通電源后,就能夠?qū)崿F(xiàn)自動跳轉(zhuǎn),待主節(jié)點發(fā)送狀態(tài)轉(zhuǎn)換的指令給從節(jié)點后,通過函數(shù)proceed NMT執(zhí)行相應(yīng)的命令,使有關(guān)功能模塊發(fā)揮作用。對于節(jié)點狀態(tài)監(jiān)測來講,主要包含節(jié)點監(jiān)控和心跳報文,具體執(zhí)行是通過從節(jié)點發(fā)送心跳報文到主節(jié)點,從而對從節(jié)點的運行狀態(tài)進行明確。系統(tǒng)初始化中,程序通過特定函數(shù)設(shè)置心跳報文的周期,然后從節(jié)點就進行周期性的發(fā)送,假設(shè)在規(guī)定的時間沒有接收到,就會自動通過執(zhí)行命令通知系統(tǒng)中的某節(jié)點問題,進而通過對應(yīng)措施進行解決。

      2.3 過程數(shù)據(jù)對象PDO 這個的主要功能是傳輸實時短幀過程數(shù)據(jù),程序需要實現(xiàn)PDO的接收和發(fā)送相應(yīng)功能。在發(fā)送前,結(jié)合PDO的有關(guān)參數(shù)利用函數(shù)設(shè)置需要發(fā)送的報文,再通過特定函數(shù)將PDO報文發(fā)送到總線。如果是同步報文,程序會對函數(shù)進行調(diào)節(jié),使用調(diào)節(jié)函數(shù)將同步報文發(fā)送后再發(fā)送PDO報文。節(jié)點接收到PDO報文后,通過函數(shù)對其進行解析處理。

      2.4 服務(wù)數(shù)據(jù)對象SDO 這個模塊的主要功能是對實時性要求較低、數(shù)據(jù)量大的低優(yōu)先級數(shù)據(jù)進行傳輸。傳輸?shù)姆绞绞欠?wù)器-用戶,SDO的服務(wù)器一般是從節(jié)點,而其用戶端是主節(jié)點,用戶端利用索引對服務(wù)器對象字典中的任何對象都可以進行訪問,從而完成下載、上傳數(shù)據(jù)。在程序中,通過特定的函數(shù),用戶端向服務(wù)器發(fā)送下載、上傳數(shù)據(jù)的請求,在服務(wù)器接收到請求后,通過函數(shù)解析SDO報文,判斷報文屬于服務(wù)協(xié)議中的哪一種,接著按照協(xié)議開展相應(yīng)的處理。

      2.5 其他通信對象 通信對象的報文還包括緊急事件報文、同步報文以及Boot-up報文等,這些在程序中都有被定義。緊急事件報文是網(wǎng)絡(luò)管理NMT中的組成部分,如果節(jié)點發(fā)生突發(fā)緊急情況,比如過壓問題,就會通過相應(yīng)的函數(shù)發(fā)送緊急報文到總線中,其他的節(jié)點在接收到相應(yīng)的緊急報文后通過特定函數(shù)進行處理。同步報文主要是通過函數(shù)周期性的向同步消費者傳播,生產(chǎn)同步報文者接收到同步報文后使用調(diào)用函數(shù),將同步報文作為同步PDO報文對相應(yīng)參數(shù)進行處理。Boot-up報文主要是從節(jié)點在通電初始化后利用函數(shù)發(fā)送報文到主節(jié)點,使主節(jié)點做好準備狀態(tài)。

      2.6 系統(tǒng)通信實現(xiàn) 對CANopen通信的正確性進行驗證,主要是通過截取STM32和PC機通信的CANopen報文,而這主要是通過CAN通信監(jiān)測軟件和CAN-USB轉(zhuǎn)換器來實現(xiàn)。通過分析通信報文可以得知,控制器的從站能夠?qū)χ髡镜腟DO報文進行響應(yīng),對PDO的數(shù)據(jù)也能進行傳輸處理,主站和從站之間能夠通過NMT管理良好的進行報文通信,對于系統(tǒng)中的相應(yīng)功能都可以很好的實現(xiàn),完成主從機CANopen通信。

      結(jié)束語

      綜上所述,CAN總線技術(shù)在如今工業(yè)控制領(lǐng)域的多個行業(yè)中得到了推廣應(yīng)用,本文通過以STM32為硬件平臺實現(xiàn)了CANopen協(xié)議通信,使設(shè)備之間的連接具有更好的通用性以及功能擴展性。在CAN總線不斷普及應(yīng)用的過程中,CANopen協(xié)議也在逐漸完善,在CANopen協(xié)議下,不同的CAN設(shè)備通信都有標準化的方式,提高了設(shè)備相互之間的可操作性。

      猜你喜歡
      字典報文總線
      開心字典
      家教世界(2023年28期)2023-11-14 10:13:50
      開心字典
      家教世界(2023年25期)2023-10-09 02:11:56
      基于J1939 協(xié)議多包報文的時序研究及應(yīng)用
      汽車電器(2022年9期)2022-11-07 02:16:24
      CTCS-2級報文數(shù)據(jù)管理需求分析和實現(xiàn)
      淺析反駁類報文要點
      中國外匯(2019年11期)2019-08-27 02:06:30
      基于PCI Express總線的xHC與FPGA的直接通信
      機載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計
      我是小字典
      正版字典
      讀者(2016年14期)2016-06-29 17:25:50
      ATS與列車通信報文分析
      泾阳县| 连南| 梁平县| 西乌珠穆沁旗| 福安市| 天全县| 福贡县| 侯马市| 眉山市| 兴安盟| 那曲县| 乐亭县| 册亨县| 烟台市| 三门县| 伊春市| 漯河市| 闸北区| 体育| 夏津县| 湖口县| 繁昌县| 和硕县| 读书| 胶州市| 湟中县| 中山市| 平定县| 灵宝市| 崇义县| 通化县| 东兴市| 漳平市| 丹棱县| 武隆县| 阳东县| 修武县| 闽侯县| 通海县| 金秀| 晴隆县|