<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 串行通信在永磁同步電機(jī)控制系統(tǒng)中的應(yīng)用

          串行通信在永磁同步電機(jī)控制系統(tǒng)中的應(yīng)用

          作者: 時(shí)間:2016-12-16 來源:網(wǎng)絡(luò) 收藏


            2.2 上位機(jī)程序設(shè)計(jì)
            Delphi是一種面向?qū)ο蟮目梢暬幊坦ぞ?,擁有功能?qiáng)大的集成開發(fā)環(huán)境和速度極快的編譯器,兼具Visual C++的強(qiáng)大功能和VB易學(xué)易用的特點(diǎn)。通過安裝MSComm控件,可在Delphi環(huán)境下方便地實(shí)現(xiàn)[2]。MSComm提供了兩種處理通信問題的方法:一種是事件驅(qū)動(dòng)法,一種是查詢法。本系統(tǒng)選用事件驅(qū)動(dòng)法,該方法程序響應(yīng)及時(shí),可靠性高。只要了解使用MSComm的屬性及事件的用法就可以實(shí)現(xiàn)對(duì)串口的操作。
            其主要屬性有 :
            (1)eommport屬性,用于設(shè)置并返回連接的串行端口號(hào);
            (2)settings屬性,以字符形式設(shè)置并返回串口的波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位參數(shù);
            (3)po~open屬性,用于設(shè)置或返回通信連接端口的狀態(tài);
            (4)input屬性,用于從輸入緩沖區(qū)返回并刪除字符;
            (5)output屬性,用于將要發(fā)送的數(shù)據(jù)輸入傳輸緩沖區(qū);
            (6)inputlen屬性,用于指定由串行端I:I讀入的字符串長度或字節(jié)數(shù);
            (7)handshaking屬性,用于指定通信雙方的握手協(xié)議;
           ?。?)rthreshold屬性,用于設(shè)置或返回引發(fā)接收事件的字節(jié)數(shù);
           ?。?)sthreshold屬性,用于設(shè)置并返回傳輸緩沖區(qū)中允許的最小字符數(shù);
           ?。?0)commevent屬性,在通信錯(cuò)誤或事件發(fā)生時(shí)都會(huì)產(chǎn)生oncomm事件;
           ?。?1)inbufercount屬性,用于接收緩沖區(qū)中的字符數(shù);
           ?。?2)inputmode屬性,用于設(shè)置或返回input屬性取回?cái)?shù)據(jù)的類型。
            程序設(shè)計(jì)中首先要對(duì)MSComm進(jìn)行初始化,可以雙擊MSComm控件設(shè)置,也可以在程序中修改。
            本系統(tǒng)根據(jù)需要自行設(shè)計(jì)了通信協(xié)議。
            (1)幀分為兩類,即控制幀和數(shù)據(jù)幀。控制幀為上位機(jī)發(fā)出的控制命令,數(shù)據(jù)幀為上、下位機(jī)的實(shí)時(shí)數(shù)據(jù)。
            (2)上位機(jī)對(duì)下位機(jī)通信中的控制幀,格式都是一個(gè)字節(jié),定義如下:AA為下位機(jī)發(fā)送數(shù)據(jù);AB為下位機(jī)接收數(shù)據(jù);AC為下位機(jī)停止發(fā)送
           ?。?)數(shù)據(jù)幀為兩個(gè)字節(jié),數(shù)據(jù)范圍是0~65535,滿足了數(shù)據(jù)要求。
            例如,把電機(jī)磁鏈設(shè)置為200,該通信命令由4個(gè)字節(jié)組成,數(shù)據(jù)格式為AB0400C8。其中:AB為控制幀,04代表磁鏈,00C8為數(shù)據(jù)幀。每個(gè)字節(jié)包含1個(gè)起始位、1個(gè)停止位、8個(gè)數(shù)據(jù)位,這些都是隱藏在底層程序中的,在實(shí)際應(yīng)用中用戶只需在通信界面上設(shè)置磁鏈值200,然后單擊&ldquo;n發(fā)送&rdquo;按鈕即可實(shí)現(xiàn)該命令。圖3為PC機(jī)發(fā)送數(shù)據(jù)流程圖。

          本文引用地址:http://www.ex-cimer.com/article/201612/330933.htm

            



            2.3 下位機(jī)程序設(shè)計(jì)
            TMS320LF2407中包含一個(gè)模塊(SCI),SCI的寄存器是8位的。可編程的SC1支持CPU和其他使用標(biāo)準(zhǔn)非歸零(NRZ)格式的異步外設(shè)之間的串行數(shù)字通信,SCI的接收器和發(fā)送器是雙緩沖的,每個(gè)都有它自己的獨(dú)立使能和中斷位。波特率可以通過一個(gè)16位的波特率選擇寄存器進(jìn)行編程 。為了保證的成功,在通信前必須對(duì)DSP的SCI模塊進(jìn)行初始化,設(shè)置通信的波特率、奇偶校驗(yàn)、停止位及每個(gè)字節(jié)包含的位數(shù)等,這些參數(shù)的設(shè)置必須與PC機(jī)上的設(shè)置一致,否則會(huì)引起傳輸錯(cuò)誤。在DSP與PC機(jī)的通信中,對(duì)于DSP來說,通信的主要功能是接收Pc機(jī)傳來的數(shù)據(jù)和發(fā)送數(shù)據(jù)給Pc機(jī)??刹捎貌樵兒椭袛鄡煞N方式接收數(shù)據(jù),查詢方式需要程序循環(huán)檢測(cè)通信端口,浪費(fèi)DSP資源,因此本系統(tǒng)接收數(shù)據(jù)時(shí)采用中斷方式;但在發(fā)送數(shù)據(jù)時(shí)由于要發(fā)送的數(shù)據(jù)比較多,如果也用中斷方式就會(huì)干擾到電機(jī)的控制,電機(jī)不能平穩(wěn)運(yùn)行,因此采用查詢方式。在中斷子程序中設(shè)置發(fā)送標(biāo)志位,通過在主程序中查詢?cè)摌?biāo)志位來決定是否發(fā)送數(shù)據(jù)。在發(fā)送數(shù)據(jù)過程中,下位機(jī)需要發(fā)送多組數(shù)據(jù),每組數(shù)據(jù)對(duì)應(yīng)不同的電機(jī)參數(shù),如何正確區(qū)分這些數(shù)據(jù)是通信能否成功的關(guān)鍵。本系統(tǒng)利用已設(shè)定的下位機(jī)發(fā)送參數(shù)的順序、MSComm控件的inputlen屬性及rthreshold屬性的配合使用來解決這個(gè)問題。另外下位機(jī)接收和發(fā)送寄存器是8位的,需要設(shè)定標(biāo)志變量來區(qū)分、合并高低字節(jié)。圖4為下位機(jī)通信程序框圖。

            




          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();