<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

串行通信在永磁同步電機控制系統中的應用

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


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

本文引用地址:http://dyxdggzs.com/article/201612/330933.htm

  



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

  




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>