91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內(nèi)不再提示

英創(chuàng)信息技術脈沖計數(shù)功能在ESM335x-Linux主板上的實現(xiàn)

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

掃碼添加小助手

加入工程師交流群

1、綜述

工業(yè)控制中,經(jīng)常需要獲取脈沖信號計數(shù)值、頻率、周期、占空比等參數(shù)。英創(chuàng)嵌入式主板ESM335X系列 Linux系統(tǒng)現(xiàn)已實現(xiàn)外部輸入脈沖信號的計數(shù)、頻率、周期、占空比測量功能。

主要功能及技術指標如下:

1、讀取一段時間內(nèi)的外部輸入脈沖信號計數(shù)值。

2、外部輸入脈沖信號周期、有效脈寬測量。

3、根據(jù)測得周期計算外部輸入脈沖信號瞬時頻率。

4、根據(jù)測得計數(shù)值和測量時間間隔計算兩次有效信號讀取時間內(nèi)外部輸入脈沖信號重復頻率(平均頻率)。

5、測得誤差200KHz左右時最大,瞬時頻率誤差不超過0.1%,重復頻率誤差不超過0.005%,占空比誤差不超過0.05%,計數(shù)值測量準確無誤差。

2、硬件連接

ESM335X系列嵌入式主板引出了3路PWM輸出,其中兩路(PWM1和PWM2)可以用來進行外界輸入的脈沖信號計數(shù)、頻率、占空比測量,相應的GPIO復用腳為GPIO6和GPIO7, 對應的引腳請參考光盤資料《ESMARC 335x工控主板數(shù)據(jù)手冊》,用戶使用脈沖波輸入計數(shù)功能時可將外來信號接到上述兩個GPIO管腳中的任意一個,并且地線與開發(fā)板接地引腳相連,然后在應用程序中獲得計數(shù)值、頻率、占空比。若用戶啟用了脈沖輸入計數(shù)功能,則相應管腳不能再作為PWM脈沖輸出或GPIO使用。

使用注意事項:

1、GPIO管腳最大只允許輸入3.3V電壓,超過將會導致開發(fā)板損壞!以開發(fā)板接地腳為基準,負值電壓無效,不符合電壓要求時需要設計緩沖放大電路。

2、輸入脈沖波最大頻率不應超過200KHz!超過之后由于硬件限制測量誤差將急劇變大。

3、應用程序

為了簡化用戶使用脈沖計數(shù)功能,內(nèi)部使用了原pwm輸出模塊,Linux系統(tǒng)內(nèi)部沒有增加新的設備節(jié)點,使用設備的計數(shù)功能(capture模式,后文簡稱cap),仍然需要使用pwm模式的設備節(jié)點進行模塊功能設置。

(1)程序中使用到的結構體及常量定義

與內(nèi)核直接交換數(shù)據(jù)讀取設備原始測量值的結構體為cap_config_info,應用于read、write函數(shù):

typedef struct cap_config_info

{

//以下為輸入?yún)?shù)

unsigned intdwPolarity;//設置輸入信號極性

unsigned intdwMaxFreq;//設置輸入信號最大頻率

//以下為輸出參數(shù),輸入無效

unsigned longdwTimeUs;//兩次讀取之間的時間差

unsigned intdwCount;//兩次讀取之間的計數(shù)值

unsigned intdwPeriodNs;//讀取時刻脈沖周期

unsigned intdwWidthNs;//讀取時刻的脈沖有效脈寬

}CAP_INFO, *PCAP_INFO;

1、dwPolarity用于設置輸入脈沖信號極性,可設為PWM_POLARITY_NORMAL和PWM_POLARITY_INVERTED,定義在pwm_api.h頭文件中。

2、dwMaxFreq等于0時用于停止計數(shù)功能,dwMaxFreq不為零時用于設置輸入信號最大頻率,最大頻率不應超過200KHz,輸入單位為Hz。

3、dwTimeUs為輸出參數(shù),讀取獲得上次讀操作(或使能操作)到本次讀操作之間的時間差,單位為us。

4、dwCount為輸出參數(shù),讀取獲得上次讀操作(或使能操作)到本次讀操作之間的計數(shù)值,單位為 個。

5、dwPeriodNs為輸出參數(shù),讀取獲得本次讀操作時脈沖信號周期, 單位為ns。

6、dwWidthNs為輸出參數(shù),讀取獲得本次讀操作時脈沖信號有效脈沖寬度,單位為ns。

7、用戶可根據(jù)dwPeriodNs和dwWidthNs計算占空比。

8、用戶可根據(jù)dwPeriodNs計算讀操作時的脈沖信號頻率。

9、用戶可根據(jù)dwTimeUs和dwCount計算兩次讀操作之間的輸入信號的平均頻率。

(2)函數(shù)及系統(tǒng)調(diào)用

在進行計數(shù)操作時,首先打開相應的設備節(jié)點/dev/em335x_pwmX,X為編號(1或者2),使能設備開始計數(shù)相關代碼:

a)打開設備節(jié)點:

intnpwm = 1;

sprintf( device, "/dev/em335x_pwm%d", npwm );

fd = open(device, O_RDWR);

if ( fd < 0)

{

printf("can not open /dev/em335x_pwm%d device file! ", npwm);

return -1;

}

printf( "Open %s ", device );

b)使能cap模式:

int CAP_Start(int fd, unsigned int polarity, unsigned int maxfreq )

{

int rc;

struct cap_config_infoconf;

memset(&conf, 0 ,sizeof(struct cap_config_info))

conf.dwPolarity = polarity;

conf.dwMaxFreq = maxfreq;

rc = write(fd, &conf, sizeof(struct cap_config_info));

if ( rc == 0 )

return rc;

else

{

printf( " config for cap model failed! ");

exit(1);

}

}

用戶只需要調(diào)用此函數(shù)即可使能脈沖信號計數(shù)功能,并且計數(shù)功能開始計數(shù)。也可自己設置參數(shù)調(diào)用write使能cap模式。如:

#include "pwm_api.h"

unsigned intpolarity = PWM_POLARITY_NORMAL;

unsigned intmaxfreq = 200000000;

CAP_Start( fd, polarity, maxfreq );

c)在計數(shù)過程中可以調(diào)用read函數(shù)或者我們提供的CAP_Read函數(shù)讀取測量數(shù)值:

int CAP_Read(int fd, struct cap_config_info* conf )

{

printf ( "reading^^^^^^^ " );

int rc;

rc = read(fd, conf, sizeof(struct cap_config_info));

return rc;

}

用戶可根據(jù)自己需要在任意時刻選擇調(diào)用此函數(shù)或者直接調(diào)運read獲取測量值。

根據(jù)測量值可以計算脈沖頻率并轉換單位,注意測得dwCount小于2時其他參數(shù)均無效:

doublePeriodUs;//單位us

doubleWidthUs;//單位us

doubleDuty;//單位%

intCount;//個數(shù)

doubleFreq;//單位Hz

doubleAVGFreq;//單位Hz

unsigned int TimeUs;//單位us

CAP_Read ( fd, &conf );

Count = conf.dwCount;

if(Count>1)

{

PeriodUs = (double)conf.dwPeriodNs/1000.0;//單位轉換

WidthUs = (double)conf.dwWidthNs/1000.0;

Duty = (double)conf.dwWidthNs*100000.0/conf.dwPeriodNs;

Freq = CAP_CLK_FREQ/(double)conf.dwPeriodNs;

AVGFreq = (double)conf.dwCount*CAP_CLK_FREQ/(double)conf.dwTimeUs;

}

else

{

PeriodUs = 0;

WidthUs = 0;

Duty = 0;

Freq = 0;

AVGFreq = 0;

}

d)使用完成后需要關閉計數(shù)功能,同樣可以自行設置參數(shù)調(diào)用write或者使用CAP_Stop,也可以直接使用close關閉設備節(jié)點同事停止使用計數(shù)功能:

int CAP_Stop(int fd )

{

printf ( "stopping^^^^^^^ " );

int rc;

struct cap_config_infoconf;

memset( &conf, 0, sizeof(struct pwm_config_info));

conf.dwMaxFreq = 0;

rc = write(fd, &conf, sizeof(struct cap_config_info));

return rc;

}

調(diào)用上述函數(shù):

CAP_Stop( fd);

使用完成后需要關閉設備節(jié)點。

close(fd);

e)觸發(fā)機制(選讀):

如下圖所示,在每一次上升沿或者下降沿處會觸發(fā)硬件捕獲功能,獲得輸入脈沖信號的參數(shù)并保存,應用程序中在任意時刻調(diào)用讀操作得到的數(shù)據(jù)是最近一次上升沿或下降沿處的數(shù)據(jù)。此圖中調(diào)用read1一之后調(diào)用read2,得到的計數(shù)值為2,時間差為(硬件觸發(fā)2-硬件觸發(fā)1)的時間差。用戶使用時請注意輸入信號有效時間段。所得時間不能作為兩次讀操作之間的時間差使用。如果要將讀取的時間值作為兩次讀操作的時間值需要在前一次讀操作后調(diào)用CAP_Start或直接用write函數(shù)傳遞相同參數(shù)清零硬件保存值。

4、實驗測量

由于硬件的限制,測得瞬時頻率、周期、占空比精度有限。硬件操作使用的時鐘信號為100MHz,即周期、有效脈寬時間只能得到高于10ns的數(shù)值。平均頻率的測量需要保證整個測量時間段內(nèi)輸入脈沖信號一直有脈沖輸入!平均頻率的誤差整個測量范圍內(nèi)不超過10Hz。實驗使用RIGOL DG1022 信號發(fā)生器作為外部脈沖信號源,可以調(diào)整信號周期占空比,設置一定時間內(nèi)的脈沖個數(shù)。

頻率測量(kHz):

輸入 200.000 197.000 97.000 1.020
瞬間頻率 200.000 196.850 96.993 1.020
平均頻率 199.992 196.992 96.998 1.020

測得瞬時數(shù)據(jù)誤差隨頻率增加而變大,具體數(shù)據(jù)可根據(jù)測量時間最小值10NS進行計算。

在150KHz時測量的不同占空比值如下表:

輸入% 90.00 50.00 20.00 10.00
測得% 89.96 50.00 19.97 9.91

在100KHz時測量的不同占空比值如下表:

輸入% 90.00 50.00 20.00 10.00
測得% 90.00 50.00 20.00 10.00

在100KHz時連續(xù)測量的1S內(nèi)脈沖個數(shù)如下表(信號源輸入個數(shù)設置模式上限50K個,通過設置信號源取不同輸入值):

輸入% 39 999 23 338 8 766 432
測得% 39 999 23 338 8 766 432

注:當頻率升高時,系統(tǒng)高負荷運轉,實際讀取時間差變化加大,如果連續(xù)讀取,讀到的計數(shù)值要以讀到的時間差為準進行數(shù)值判斷,實際讀取個數(shù)并無誤差。

計數(shù)值在允許輸入頻率內(nèi)無誤差。

如果需要使用此功能或有任何疑問,請和我們聯(lián)系。

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

    關注

    88

    文章

    11760

    瀏覽量

    219046
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6107

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    高速脈沖計數(shù)采集模塊怎么用?485通訊,監(jiān)測頻率、占比、周期

    高速脈沖計數(shù)采集模塊的使用,核心是硬件接線→參數(shù)配置→數(shù)據(jù)讀取與應用三步,關鍵在于信號匹配、模式選擇與抗干擾處理。 一、硬件接線(基礎) 1. 電源接線 - 模塊供電:常見 DC 5V/12V
    的頭像 發(fā)表于 03-05 17:28 ?396次閱讀

    脈沖/頻率計數(shù)采集模塊:高速脈沖+頻率,支持斷電保存

    脈沖/頻率計數(shù)采集模塊是工業(yè)里專門 “數(shù)脈沖、測頻率” 的小硬件,相當于給傳感器、電機、流量計裝了一個高精度計數(shù)器 + 測速儀。 一、主要功能
    的頭像 發(fā)表于 03-04 16:06 ?100次閱讀

    國產(chǎn)金融主板:賦能智慧金融,驅動信創(chuàng)產(chǎn)業(yè)升級

    隨著信息技術的飛速迭代,信創(chuàng)產(chǎn)業(yè)已在全球范圍內(nèi)崛起,成為拉動經(jīng)濟增長、激活創(chuàng)新動能的核心力量。在信創(chuàng)產(chǎn)業(yè)的關鍵布局中,智慧金融建設是重中之重,而國產(chǎn)金融主板的規(guī)?;瘧?,正為智慧金融建
    的頭像 發(fā)表于 12-31 09:03 ?174次閱讀
    國產(chǎn)金融<b class='flag-5'>主板</b>:賦能智慧金融,驅動信<b class='flag-5'>創(chuàng)</b>產(chǎn)業(yè)升級

    國產(chǎn)芯筑基,飛騰主板賦能信創(chuàng)未來

    信息技術自主可控成為國家戰(zhàn)略的今天,信創(chuàng)產(chǎn)業(yè)正從“政策驅動”邁向“市場驅動”的高質(zhì)量發(fā)展新階段。作為信創(chuàng)產(chǎn)業(yè)鏈的核心硬件基石,主板的國產(chǎn)化水平直接決定著整個
    的頭像 發(fā)表于 12-30 09:49 ?206次閱讀
    國產(chǎn)芯筑基,飛騰<b class='flag-5'>主板</b>賦能信<b class='flag-5'>創(chuàng)</b>未來

    龍芯中科助力2025教育信息技術應用創(chuàng)新大賽成功舉辦

    2025年11月13日-15日,由中國教育技術協(xié)會主辦、浙江大學與中國教育技術協(xié)會網(wǎng)絡安全專業(yè)委員會聯(lián)合承辦,中國電子工業(yè)標準化技術協(xié)會信息技術應用創(chuàng)新工作委員會、浙江高校信
    的頭像 發(fā)表于 11-21 16:23 ?792次閱讀

    定時器實現(xiàn)步進電機的正反脈沖計

    的外部時鐘模式 B 和掛起模式,實現(xiàn)步進電機的正反脈沖計數(shù)。 注:本應用筆記對應的代碼是基于雅特力提供的V2.x.x 板級支持包(BSP)而開發(fā),對于其他版本BSP,需要注意使用上的區(qū)別。 支持
    發(fā)表于 09-10 16:40

    由倍訊科技研制的CCLinkIE轉ModbusTCP網(wǎng)關,可達成與脈沖計數(shù)器的連接

    本研究案例展示三菱可編程邏輯控制器(PLC)在工業(yè)自動化控制中的實際應用。應用時,將三菱PLC與脈沖計數(shù)器相連,實現(xiàn)控制與數(shù)據(jù)采集功能。采用CCLinkIE到ModbusTCP的網(wǎng)關轉換方式,解決不
    的頭像 發(fā)表于 08-26 16:58 ?634次閱讀
    由倍訊科技研制的CCLinkIE轉ModbusTCP網(wǎng)關,可達成與<b class='flag-5'>脈沖計數(shù)</b>器的連接

    智慧新核心,龍芯主板助力信創(chuàng)體系再升級

    信息技術飛速發(fā)展的當下,信創(chuàng)體系的自主可控與創(chuàng)新升級已成為國家戰(zhàn)略層面的關鍵任務。作為信創(chuàng)產(chǎn)業(yè)發(fā)展的重要基礎硬件支撐,國產(chǎn)工控主板正發(fā)揮著日益重要的作用。
    的頭像 發(fā)表于 08-11 09:14 ?702次閱讀

    佛瑞亞如何通過信息技術推動業(yè)務增長

    在數(shù)字化、信息化的浪潮下,信息技術已經(jīng)不僅是后臺工具,更成為驅動企業(yè)發(fā)展的關鍵力量。本期Women Inspiring Mobility,我們采訪了佛瑞亞中國區(qū)信息技術總監(jiān)馬瑛,了解她和團隊如何將
    的頭像 發(fā)表于 07-29 14:00 ?909次閱讀

    Texas Instruments CC335x SimpleLink?雙頻Wi-Fi? 6配套IC數(shù)據(jù)手冊

    ) 和Wi-Fi 5 (802.11ac)。這些CC335x是Texas Instruments的第10代連接組合芯片。因此,CC335x基于成熟的技術設計而成。這些器件非常適合配備運行TCP/IP的
    的頭像 發(fā)表于 07-23 11:37 ?1346次閱讀
    Texas Instruments CC<b class='flag-5'>335x</b> SimpleLink?雙頻Wi-Fi? 6配套IC數(shù)據(jù)手冊

    飛騰主板為信創(chuàng)產(chǎn)業(yè)發(fā)展提高硬實力

    信息技術飛速發(fā)展的當下,信創(chuàng)產(chǎn)業(yè)已成為我國實現(xiàn)科技自立自強、保障國家信息安全的關鍵領域。信創(chuàng),即信息技
    的頭像 發(fā)表于 07-22 18:20 ?713次閱讀

    開疆智能CCLinkIE轉ModbusTCP網(wǎng)關連接脈沖計數(shù)器配置案例

    本案例是三菱PLC通過CCLinkIE轉ModbusTCP網(wǎng)關連接脈沖計數(shù)器的配置案例,具體配置如下。 配置過程: 首先設置從站通訊參數(shù) 主要設置IP地址,工作模式以及端口號(Modbus默認502
    的頭像 發(fā)表于 06-25 17:49 ?555次閱讀
    開疆智能CCLinkIE轉ModbusTCP網(wǎng)關連接<b class='flag-5'>脈沖計數(shù)</b>器配置案例

    經(jīng)過光耦之后,脈沖計數(shù)功能為什么不能實現(xiàn)?

    設置PA0為普通定時器,復用推挽輸出,但是發(fā)現(xiàn)信號經(jīng)過光耦之后高電平不到2V,不能進行脈沖計數(shù),如果設置成中斷輸入,高電平是3.3V,請問這是啥原因?現(xiàn)有的電路能否實現(xiàn)脈沖計數(shù)功能?
    發(fā)表于 06-17 06:08

    科普|信創(chuàng)是什么?一文讀懂“信息技術應用創(chuàng)新”戰(zhàn)略

    什么是信創(chuàng)?信創(chuàng),即“信息技術應用創(chuàng)新”,是國家推動IT系統(tǒng)自主可控、安全可控的重要戰(zhàn)略工程。它不僅是技術層面的創(chuàng)新,更承載著保障國家網(wǎng)絡安全、推動產(chǎn)業(yè)升級和
    的頭像 發(fā)表于 06-13 10:06 ?8336次閱讀
    科普|信<b class='flag-5'>創(chuàng)</b>是什么?一文讀懂“<b class='flag-5'>信息技術</b>應用創(chuàng)新”戰(zhàn)略

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

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