一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

英創(chuàng)信息技術工控主板PWM應用于步進電機控制介紹

英創(chuàng)信息技術 ? 來源:英創(chuàng)信息技術 ? 作者:英創(chuàng)信息技術 ? 2020-02-03 09:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

工業(yè)控制中,許多場合都可以看到電機的身影。特別是步進電機,以其精度高,運行可靠等優(yōu)勢,廣泛地應用于數(shù)字控制系統(tǒng)中。像這一類步進電機的控制,通常都是使用的脈沖信號來實現(xiàn)的。當步進電機接收到一個脈沖信號,會轉動一個固定的角度,所以可以通過控制脈沖的個數(shù)來控制轉動的角度,從而實現(xiàn)精確定位的目的;同時可以通過控制脈沖頻率來控制電機轉動的速度,從而實現(xiàn)控制速度的目的。

英創(chuàng)嵌入式工控板提供了兩種控制步進電機的方法給用戶,第一種方法是使用GPIO發(fā)出脈沖來實現(xiàn)控制電機的目的,根據(jù)需要轉動的角度和速度,通過調用GPIO的API函數(shù)來發(fā)出相應個數(shù)和頻率的脈沖就能夠達到這一目的。但是如果控制電機的實時性要求比較高,需要達到10ms以內的精度,那么第一種方法可能就不能滿足要求了,因為控制GPIO是通過了操作系統(tǒng)來執(zhí)行的,這樣程序就涉及到了系統(tǒng)調度等因素,在實時性方面肯定就不能滿足太高的需求。于是英創(chuàng)公司推出了另外一種實時性較高的方法,即使用PWM脈沖來控制電機。

英創(chuàng)工控主板EM928x系列上共有4路PWM輸出,其最高輸出頻率可達12MHz,但如果希望保證一定精 度的占空比(1%的精度),則輸出最高頻率只能到240KHz。而EM335x系列上也有4路PWM輸出,其最高輸出頻率可達50MHz,但如果希望保證一定精度的占空比(1% 的精度),則輸出最高頻率只能到1MHz。從頻率和占空比上看,應該是完全滿足控制速度的要求,但是如果要實現(xiàn)精確定位的功能,還需要控制脈沖的個數(shù),所以英創(chuàng)公司修改了PWM脈沖驅動,在原來的基礎上增加了對PWM波個數(shù)控制和計數(shù)的功能,使應用程序能控制發(fā)出的脈沖個數(shù),從而精確步進電機的動作。

本文以下部分將介紹這一新增加的功能以及在應用程序中的調用方法。

實現(xiàn)這一功能是通過利用CPU內部的計數(shù)器來記錄PWM脈沖的個數(shù),當達到預定的值,就產(chǎn)生中斷將PWM脈沖停止,這樣就能夠對PWM脈沖的計數(shù)并且產(chǎn)生指定個數(shù)的脈沖,這一部分的功能英創(chuàng)公司已經(jīng)在驅動中完成,用戶只需要在應用程序中通過接口調用,就可以啟用、停止計數(shù)功能,并且實時查詢脈沖數(shù)。支持這一功能的PWM波有兩路:PWM1和PWM2,能產(chǎn)生的最小波形數(shù)為2。對PWM的操作可歸為2種基本操,在原有的普通使能和停止功能基礎上加入了計數(shù)功能的操作,所對應的命令參數(shù),定義如下:

#define EM9280_COUNT_START 12//啟動帶計數(shù)功能的PWM脈沖輸出
#define EM9280_COUNT_STOP 13//強制停止帶計數(shù)功能的PWM脈沖輸出

接下來來看頭文件中定義的PWM 的數(shù)據(jù)結構,包括頻率、占空比以及極性等參數(shù):

struct pwm_config_info
{
unsigned int cmd;//= 0, 1, 2, ....
unsigned int freq;/* in Hz */
unsigned int duty;/* in % */
unsigned int polarity;
unsigned int count;
};

cmd表示指令:就是上面說的兩種操作。
freq表示輸出的脈沖頻率,單位為 Hz。Freq 的取值范圍 和板卡的最高支持頻率有關。
duty表示輸出脈沖的占空比,單位為%。
Duty的取值范圍:1 – 99。
Polarity表示輸出脈沖的極性,選擇 0 或者 1。
count是新加入的參數(shù),表示需要生成的PWM波的個數(shù)。

進行PWM操作時,首先打開相應的設備節(jié)點文件,然后再調用 write( )函數(shù)進行 pwm 的設置、啟動計數(shù)等操作,以下為啟動計數(shù)功能的相關應用代碼:

int PWM_COUNT_Start(int fd, int freq, int duty, unsigned int count)
{
int rc;
struct pwm_config_info conf;
conf.cmd = EM9280_COUNT_START;
conf.freq = freq;
conf.duty = duty;
conf.polarity = POLARITY;
conf.count = count;
rc = write(fd, &conf, sizeof(struct pwm_config_info));
return rc;
}

這樣就只需要調用PWM_COUNT_Start()這個函數(shù),并將參數(shù)帶入即可,我們就以產(chǎn)生5個占空比為1KHZ的波形為例:

int npwm = 1;
int fd;
char device[32];
unsigned int freq = 1000;
unsigned int duty = 50;
unsigned int count = 5;
sprintf( device, '/dev/em9280_pwm%d', npwm );
fd = open(device, O_RDWR);
if ( fd < 0)
{
printf('can not open /dev/em9280_pwm%d device file!\n', npwm);
return -1;
}
printf( 'Open %s\n', device );
PWM_COUNT_Start( fd, freq, duty, count );

在脈沖輸出的過程中,可以調用read函數(shù)讀取已經(jīng)輸出的脈沖數(shù),如果到達某一個值的時候需要停止輸出,就調用write( )函數(shù)進行pwm的停止,詳細的代碼如下:

int PWM_COUNT_Stop(int fd )
{
int rc;
struct pwm_config_info conf;
memset( &conf, 0, sizeof(struct pwm_config_info));
conf.cmd = EM9280_COUNT_STOP;
rc = write(fd, &conf, sizeof(struct pwm_config_info));
return rc;
}
//讀取已發(fā)送脈沖數(shù)
read(fd, &buf, sizeof(buf));
if( buf>=5 )//當輸出脈沖數(shù)到達某個值則停止
PWM_COUNT_Stop( fd );

生成5個占空比為1KHz的波形的程序運行的結果如下圖:

通過對PWM脈沖計數(shù)功能的實現(xiàn),就可以對電機進行精確的控制了,詳細的代碼請參考光盤中的例程。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6101

    瀏覽量

    36306
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    創(chuàng)浪潮下,國產(chǎn)主板有什么新的發(fā)展機遇?

    信息技術應用創(chuàng)新浪潮的推動下,國產(chǎn)主板迎來了諸多新的發(fā)展機遇。信創(chuàng)產(chǎn)業(yè)旨在實現(xiàn)信息技術領域的自主可控,這一戰(zhàn)略目標為國產(chǎn)主板的發(fā)展提供了廣
    的頭像 發(fā)表于 05-09 09:24 ?219次閱讀
    信<b class='flag-5'>創(chuàng)</b>浪潮下,國產(chǎn)<b class='flag-5'>主板</b>有什么新的發(fā)展機遇?

    步進電機控制實現(xiàn)方法

    電機能夠實現(xiàn)高精度的位置控制和速度控制。本文將詳細介紹步進電機
    的頭像 發(fā)表于 01-21 16:43 ?1355次閱讀
    <b class='flag-5'>步進</b><b class='flag-5'>電機</b>的<b class='flag-5'>控制</b>實現(xiàn)方法

    步進電機的詳解解答

    步進電機,別名脈沖馬達,是一種將電脈沖信號轉變?yōu)榻俏灰苹蚓€位移的開環(huán)控制電機。它是現(xiàn)代數(shù)字程序控制系統(tǒng)中的主要執(zhí)行元件,廣泛
    的頭像 發(fā)表于 12-29 09:41 ?930次閱讀

    如何使用PWM控制電機

    : 一、準備工作 確定電機類型 : 根據(jù)應用場景選擇合適的電機類型,如直流電機、步進電機、無刷直流電機
    的頭像 發(fā)表于 11-28 16:30 ?4172次閱讀

    國產(chǎn)工控主板,信創(chuàng)產(chǎn)業(yè)發(fā)展新引擎

    在當今科技飛速發(fā)展的時代,信創(chuàng)產(chǎn)業(yè)正成為國家戰(zhàn)略的重要支撐。而我們的國產(chǎn)工控主板,以其卓越的性能和可靠的品質,為信創(chuàng)產(chǎn)業(yè)的發(fā)展注入強大動力。國產(chǎn)工控
    的頭像 發(fā)表于 11-06 10:29 ?673次閱讀

    步進電機如何自適應控制?步進電機如何細分驅動控制?

    步進電機是一種將電脈沖信號轉換為角位移或線位移的電機,廣泛應用于各種自動化控制系統(tǒng)中。為了提高步進
    的頭像 發(fā)表于 10-23 10:04 ?1633次閱讀

    步進電機如何在加減速過程中控制技術?

    步進電機是一種將電脈沖信號轉換為角位移或線位移的電機,廣泛應用于各種自動化控制系統(tǒng)中。在加減速過程中,
    的頭像 發(fā)表于 10-23 10:02 ?1306次閱讀

    淺談步進電機控制策略方式有哪些?

    步進電機是一種將電脈沖信號轉換為角位移或線位移的電機,廣泛應用于各種自動化控制系統(tǒng)中。步進
    的頭像 發(fā)表于 10-22 11:53 ?1249次閱讀

    步進電機控制技術及發(fā)展概況有哪些?

    步進電機是一種將電脈沖信號轉換為角位移或線位移的執(zhí)行元件,廣泛應用于各種自動化控制系統(tǒng)中。步進電機
    的頭像 發(fā)表于 10-22 11:50 ?683次閱讀

    工控主板有哪些特點?

    ?工控主板用于工業(yè)控制領域的專用主板,具有以下特點: 穩(wěn)定性:工控
    的頭像 發(fā)表于 10-10 08:55 ?848次閱讀

    創(chuàng)國產(chǎn)化背景下的工控主板發(fā)展現(xiàn)狀

    創(chuàng),是信息技術應用創(chuàng)新產(chǎn)業(yè)的簡稱,于2016年“信創(chuàng)工委會”(信息技術應用創(chuàng)新工作委員會)提出,目的就是要推動我們國內軟硬件關鍵技術的研發(fā)
    的頭像 發(fā)表于 09-21 16:15 ?880次閱讀

    步進電機伺服控制系統(tǒng)的作用

    步進電機伺服控制系統(tǒng)是一種精密的電機控制系統(tǒng),它通過精確控制
    的頭像 發(fā)表于 09-04 09:46 ?1222次閱讀

    絲桿步進電機步進電機有什么區(qū)別?

    的線圈時,它會使電機的軸產(chǎn)生一個微小的旋轉,從而使得電機的位置逐步改變。這種電機廣泛應用于各種開環(huán)控制系統(tǒng)中,如打印機、機器人和機床等。
    的頭像 發(fā)表于 08-23 10:09 ?850次閱讀

    pwm的頻率對電機有什么影響

    PWM(脈沖寬度調制)是一種廣泛應用于電機控制領域的技術,通過調整脈沖的占空比來實現(xiàn)對電機的精確
    的頭像 發(fā)表于 08-08 16:12 ?7339次閱讀

    如何使用pwm實現(xiàn)對直流電機控制

    PWM(Pulse Width Modulation,脈沖寬度調制)是一種廣泛應用于電機控制領域的技術,通過調節(jié)脈沖的占空比來實現(xiàn)對
    的頭像 發(fā)表于 08-08 15:18 ?2480次閱讀