亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        串口調(diào)試在CANopen運(yùn)動控制協(xié)議中的應(yīng)用技術(shù)研究

        2018-12-14 12:56:22陳家新
        自動化與儀表 2018年11期
        關(guān)鍵詞:字典上位串口

        錢 城,陳家新

        (東華大學(xué) 機(jī)械工程學(xué)院,上海 201620)

        目前,在伺服驅(qū)動領(lǐng)域中,PLC變頻器控制逐漸被運(yùn)動控制器驅(qū)動器所取代,因此傳統(tǒng)的用來調(diào)試PLC和變頻器的方法已然無法適用。在現(xiàn)今的運(yùn)動控制系統(tǒng)調(diào)試中,往往是通過控制器、驅(qū)動器、伺服電機(jī)三者聯(lián)調(diào)實現(xiàn)的[1]。然而,各廠家為了自身利益,主推自家一體化產(chǎn)品,使得不同廠家的控制器和驅(qū)動器難以直接互換使用,直接增加了研發(fā)的難度,拖慢了研發(fā)的時間。對此,各廠家通過PC模擬控制主機(jī),通過CAN分析儀發(fā)送相關(guān)數(shù)據(jù)給驅(qū)動器,從而調(diào)試伺服電機(jī)。盡管該方法無需專門配備主機(jī)調(diào)試,降低了一部分成本,但是性能強(qiáng)大的CAN分析儀同樣價格不菲,而且使用CAN分析儀進(jìn)行調(diào)試必須保證驅(qū)動器的CANopen協(xié)議通訊正常。

        針對上述調(diào)試問題,在此,利用驅(qū)動器上閑置的串口資源進(jìn)行系統(tǒng)開發(fā),驅(qū)動器直接通過串口與上位機(jī)相連接,將調(diào)試命令與調(diào)試數(shù)據(jù)直接通過串口發(fā)送。這樣不僅無需控制主機(jī)的支持,繞開CAN通訊限制,同時不必經(jīng)常為修改參數(shù)而擦除程序重新下載,因此也在一定程度上延長單片機(jī)壽命[2]。

        1 總體框架

        文中首先在STM32F4芯片上實現(xiàn)了CANopen DS402協(xié)議從站的運(yùn)行,進(jìn)而在從站程序中嵌入了一套基于串口的調(diào)試電機(jī)的系統(tǒng)。其中,DS402協(xié)議從站運(yùn)行的程序框架如圖1所示。

        圖1 CANopen運(yùn)動控制協(xié)議程序框架Fig.1 Program framework of CANopen motion control protoco

        從機(jī)程序首先對波特率、中斷以及CAN控制器等進(jìn)行相關(guān)初始化,再將設(shè)定好的對象字典寫入STM32的內(nèi)存中去,最后初始化CANopen協(xié)議棧。根據(jù)協(xié)議要求,通訊系統(tǒng)首先進(jìn)入未準(zhǔn)備啟動狀態(tài)和預(yù)操作狀態(tài),完成系統(tǒng)自檢之后自動進(jìn)入取消啟動狀態(tài)。此時,通訊系統(tǒng)可以接收主機(jī)的指令,進(jìn)入準(zhǔn)備啟動狀態(tài)、啟動狀態(tài)、允許運(yùn)行狀態(tài)和快速停止?fàn)顟B(tài),并能夠在這些狀態(tài)與取消準(zhǔn)備狀態(tài)之間切換。在任何運(yùn)行狀態(tài)中,一旦出現(xiàn)故障,就會進(jìn)入到故障響應(yīng)狀態(tài),并且通過故障狀態(tài)進(jìn)入到取消準(zhǔn)備狀態(tài)[3]。

        由于在CANopen DS402協(xié)議中從機(jī)的運(yùn)行狀態(tài)復(fù)雜,為便于調(diào)試,在此利用閑置的串口資源設(shè)計了一套調(diào)試電機(jī)狀態(tài)的系統(tǒng),其原理框架如圖2所示。

        圖2 串口調(diào)試系統(tǒng)原理框架Fig.2 Principle frame of serial port debugging system

        PC端可以通過串口調(diào)試工具直接發(fā)送命令消息,串口接收到預(yù)設(shè)的命令之后,會觸發(fā)定時器中斷,導(dǎo)致CANopen主程序暫停,轉(zhuǎn)而執(zhí)行中斷程序。理論上在任何狀態(tài)下,都可以利用中斷程序?qū)崿F(xiàn)修改CANopen設(shè)備的對象字典、切換設(shè)備的運(yùn)行狀態(tài)等功能,但是為了保證運(yùn)動控制的安全性,當(dāng)設(shè)備處于允許運(yùn)行狀態(tài)的時候,調(diào)試功能會被限制在一定的范圍內(nèi)。除了設(shè)備的運(yùn)行狀態(tài)信息之外,串口也會將從站設(shè)備的初始化信息,故障錯誤信息等發(fā)送給上位機(jī),從而使相關(guān)人員能更方便地監(jiān)控設(shè)備運(yùn)行情況、排查錯誤原因。

        2 硬件方案設(shè)計

        STM32F407ZGT6是意法半導(dǎo)體公司開發(fā)的一款32位微處理器。這款芯片擁有非常多的片上外設(shè),在此使用了SRAM,F(xiàn)lash,16位定時器、串口、CAN口等資源[4]。

        CAN口的外圍硬件電路如圖3(a)所示。STM內(nèi)部具有CAN控制器,因此外接1個CAN收發(fā)器就完成了CAN物理層連接。在此,選用TJA1050收發(fā)器;在VCC與GND之間增加1個104電容,可以起到濾波,消除高頻噪聲的作用;在CAN_H和CAN_L之間加上1個終端120 Ω電阻來匹配總線阻抗,以提高數(shù)據(jù)通信的抗干擾性及可靠行[5]。

        由于PC的USB口不遵循TTL電平,因此需要CH340G芯片將USB轉(zhuǎn)換成TTL電平。串口外圍電路設(shè)計如圖3(b)所示。其中,RXD和TXD口分別與STM32的PA9和PA10引腳連接,D+和D-口通過標(biāo)準(zhǔn)的接口與USB相連即可。

        圖3 硬件相關(guān)電路Fig.3 Hardware correlation circuit

        3 調(diào)試平臺程序設(shè)計

        調(diào)試平臺使用串口進(jìn)行通信,串口波特率設(shè)為115200,停止位設(shè)為1 b,數(shù)據(jù)位設(shè)為8 b,奇偶校驗選擇無。上位機(jī)可以使用任意的串口調(diào)試軟件。

        3.1 調(diào)試系統(tǒng)人機(jī)交互設(shè)計

        系統(tǒng)啟動后會顯示調(diào)試的幫助信息,幫助信息中包含2個指令:help和list指令。help指令可以隨時獲得調(diào)試的幫助信息;list指令可以顯示當(dāng)前可用的函數(shù)名和列表。

        函數(shù)中存在常量UART_USE_HELP,其值默認(rèn)設(shè)置為1,這樣一旦系統(tǒng)開始運(yùn)行,幫助信息界面就會顯示;如果對幫助系統(tǒng)比較熟悉,可以將其改為0。另外,list中的函數(shù)并不是要進(jìn)入list界面之中才能使用。在系統(tǒng)啟動之后,隨時可以輸入list中的函數(shù)進(jìn)行調(diào)用。

        3.2 CANopen系統(tǒng)狀態(tài)顯示設(shè)計

        由于CANopen中運(yùn)行狀態(tài)復(fù)雜,顯示當(dāng)前的運(yùn)行狀態(tài)是非常必要的。系統(tǒng)內(nèi)部顯示流程如圖4所示。

        圖4 顯示流程Fig.4 Display flow chart

        一旦STM32外設(shè)初始化之后,會顯示CANopen系統(tǒng)的基本信息。隨著CANopen協(xié)議棧初始化的完成,節(jié)點號、CAN控制器、對象字典以及CANopen各項服務(wù)的初始化信息也會在界面上進(jìn)行顯示。在STM32和協(xié)議棧初始化時,如果程序發(fā)生錯誤,界面上會顯示錯誤信息,程序也會停止運(yùn)行。當(dāng)設(shè)備開始運(yùn)行之后,運(yùn)行狀態(tài)只有改變之后才會才上位機(jī)上顯示。運(yùn)行狀態(tài)出現(xiàn)錯誤會使得設(shè)備進(jìn)入故障響應(yīng)狀態(tài),并不會使程序停止運(yùn)行,上位機(jī)也會及時顯示當(dāng)前的錯誤信息以及運(yùn)行狀態(tài)。

        3.3 電機(jī)狀態(tài)參數(shù)修改

        CANopen DS402協(xié)議的運(yùn)動控制相關(guān)參數(shù)均保存在對象字典里,因此利用串口對相關(guān)的對象字典進(jìn)行寫操作即可修改CANopen運(yùn)行中的參數(shù)。為了方便調(diào)試,可用的修改指令都添加在list指令之下,調(diào)試人員可以按照list所顯示的函數(shù)清單通過編寫好的函數(shù)進(jìn)行相關(guān)參數(shù)的修改。文中針對運(yùn)動控制中一些常用的參數(shù)進(jìn)行了修改程序的編寫,可修改的相關(guān)參見表1。

        表1 常用參數(shù)Tab.1 Common parameter

        4 系統(tǒng)功能驗證

        上位機(jī)通過串口調(diào)試軟件與STM32進(jìn)行串口通訊,實現(xiàn)了初始化顯示、人機(jī)交互以及修改參數(shù)的功能。完成串口程序設(shè)置后打開串口,就會進(jìn)入初始化顯示。

        4.1 系統(tǒng)初始化顯示

        初始化顯示信息如圖5所示。首先顯示項目名稱,使用人信息以及系統(tǒng)版本號。其次顯示初始化節(jié)點信息和CANopen各項服務(wù)的初始化信息,至此就開始等待主機(jī)通訊。在等待主機(jī)通訊的同時進(jìn)行自檢,直至設(shè)置完成PDO,SDO的通道,從機(jī)可對主機(jī)命令進(jìn)行執(zhí)行與應(yīng)答操作,狀態(tài)機(jī)也將從未準(zhǔn)備啟動狀態(tài)切換到準(zhǔn)備啟動狀態(tài)。

        4.2 人機(jī)交互界面

        人機(jī)交互界面中help指令和list指令顯示的信息如圖6所示。在初始化完成之后的任何時間都可以直接使用這2個指令。help指令會呼出幫助界面,方便調(diào)試者了解系統(tǒng)的幫助指令;list指令會呼出系統(tǒng)所有可用的函數(shù)命令以及調(diào)用命令的格式,無需調(diào)試人員記住所有調(diào)用的函數(shù)及其格式。幫助系統(tǒng)并非僅支持這2個指令,使用者還可以按照自己的想法,在程序里定義的結(jié)構(gòu)體變量sys_cmd_tab中,添加幫助指令及其功能。

        4.3 電機(jī)狀態(tài)修改驗證

        修改參數(shù)功能是利用STM32的中斷,對CANopen程序中對象字典的相關(guān)參數(shù)進(jìn)行讀寫操作,從而達(dá)到上位機(jī)直接修改進(jìn)行調(diào)試的目的。因此可以通過讀取對象字典中相應(yīng)的參數(shù)來對此功能進(jìn)行驗證。

        圖5 初始化顯示信息Fig.5 Initialize display information

        圖6 人機(jī)交互顯示信息Fig.6 Human-computer interaction display information

        在系統(tǒng)啟動之后,利用傳統(tǒng)的CAN分析儀通過SDO服務(wù)來讀取相關(guān)對象字典,讀取的各參數(shù)初始值如圖 7(a)所示。

        在CANopen協(xié)議中,數(shù)據(jù)位第1個字節(jié)為功能碼,第2和第3字節(jié)為對象字典主索引,第4字節(jié)為子索引,之后的4個字節(jié)為傳輸?shù)臄?shù)據(jù)位[6]。因此,由圖可見,程序初始化后初值除電機(jī)狀態(tài)、實際轉(zhuǎn)矩、軌跡速度之外全部為0。

        在獲得初值之后,上位機(jī)通過串口調(diào)試軟件,利用調(diào)試系統(tǒng)對相關(guān)參數(shù)進(jìn)行修改,修改界面及相關(guān)參數(shù)值如圖7(b)所示。由于CANopen通訊中所有參數(shù)為16進(jìn)制數(shù),因此在輸入?yún)?shù)時程序中會將輸入的參數(shù)值轉(zhuǎn)換為16進(jìn)制。

        修改結(jié)束后,通過SDO服務(wù)讀取電機(jī)參數(shù)的對象字典,可以發(fā)現(xiàn)參數(shù)值已經(jīng)改變成重新設(shè)定的值,如圖 7(c)所示。

        圖7 電機(jī)控制參數(shù)相關(guān)值Fig.7 Motor control parameter correlation values

        5 結(jié)語

        針對傳統(tǒng)CANopen設(shè)備調(diào)試繁瑣的問題,利用閑置的串口資源,設(shè)計了一個小型的調(diào)試系統(tǒng),實現(xiàn)了上位機(jī)繞過CANopen服務(wù)主機(jī),直接控制從機(jī)對電機(jī)進(jìn)行調(diào)試,免去以往調(diào)試、修改、下載、再次調(diào)試的復(fù)雜操作。目前,該調(diào)試系統(tǒng)已在企業(yè)機(jī)械臂運(yùn)動調(diào)試中投入應(yīng)用,縮短了設(shè)備調(diào)試的時間,提高了工作效率。

        猜你喜歡
        字典上位串口
        開心字典
        家教世界(2023年28期)2023-11-14 10:13:50
        開心字典
        家教世界(2023年25期)2023-10-09 02:11:56
        淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
        特斯拉 風(fēng)云之老阿姨上位
        車迷(2018年12期)2018-07-26 00:42:22
        “三扶”齊上位 決戰(zhàn)必打贏
        基于ZigBee和VC上位機(jī)的教室智能監(jiān)測管理系統(tǒng)
        我是小字典
        正版字典
        讀者(2016年14期)2016-06-29 17:25:50
        USB接口的多串口數(shù)據(jù)并行接收方法探索
        基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實時無線通信
        地礦測繪(2015年3期)2015-12-22 06:27:26
        久久婷婷五月综合色奶水99啪| 凌辱人妻中文字幕一区| 国产成人精品男人的天堂网站| 丰满人妻在公车被猛烈进入电影| 中文字幕 亚洲精品 第1页| 白白在线免费观看视频| 99精品国产综合久久久久五月天 | 88国产精品视频一区二区三区 | 最新中文字幕乱码在线| 亚洲国产成人精品91久久久| 欧美日韩中文国产一区发布 | 国产在线观看免费不卡视频| 免费毛片性天堂| 中文字幕久无码免费久久| 肥老熟妇伦子伦456视频| 亚洲乱码中文字幕三四区| 日韩Va亚洲va欧美Ⅴa久久| 日本一区二区不卡视频| 成人毛片一区二区| 大肉大捧一进一出好爽视频动漫| 偷拍偷窥在线精品视频| 91在线无码精品秘 入口九色十| 国产精品刺激好大好爽视频| 国模欢欢炮交啪啪150| 岳丰满多毛的大隂户| 在线国人免费视频播放| av网站免费在线不卡| 亚洲av影院一区二区三区四区| 伊人久久综合影院首页| 日韩av东京社区男人的天堂| 漂亮人妻洗澡被公强 日日躁| 久久免费精品日本久久中文字幕 | 久久亚洲av成人无码软件| 亚洲 欧美 综合 另类 中字 | 一区二区三区视频免费观看在线| 人妻少妇精品无码专区app| 国内免费AV网站在线观看| 日日碰狠狠躁久久躁9| 久久精品亚洲一区二区三区浴池| 亚洲国产精品美女久久| 美女视频黄a视频全免费网站色|