ETA104模擬數(shù)據(jù)采集模塊(下文簡稱:ETA104模塊)是基于英創(chuàng)公司SBC840工控應用底板、符合DM5028標準應用擴展模塊。ETA104模塊上的模數(shù)轉(zhuǎn)換功能,采用ADS7871模擬信號轉(zhuǎn)換芯片,占用ESMARC工控主板的SPI總線進行通訊,最高可實現(xiàn)48K的數(shù)據(jù)轉(zhuǎn)換率,最大支持8路14bit模擬信號轉(zhuǎn)換。
ETA104模塊的A/D轉(zhuǎn)換芯片的數(shù)據(jù)轉(zhuǎn)換啟動方法有2種,一種方法是使用軟件寫入指令啟動數(shù)據(jù)轉(zhuǎn)換,第二種方法是使用引腳“ADConvert”啟動數(shù)據(jù)轉(zhuǎn)換:在該引腳上產(chǎn)生一個由低到高的上升沿,便可根據(jù)最近一次的A/D輸入端口配置,啟動一次數(shù)據(jù)轉(zhuǎn)換,同時引腳“ADBUSY”由低電平變?yōu)楦唠娖?;當前?shù)據(jù)轉(zhuǎn)換完成后,引腳信號“ADBUSY”會產(chǎn)生一個由高到低的下降沿,表示當前數(shù)據(jù)已經(jīng)轉(zhuǎn)換好。
根據(jù)ETA104模塊的這種特點,可以很方便地實現(xiàn)波形數(shù)據(jù)采樣,基本思路如下:1、配置A/D轉(zhuǎn)換芯片,以滿足需要采集的模擬信號輸入端口與輸入方式;2、根據(jù)數(shù)據(jù)采樣率需求,配置PWM輸出參數(shù),然后啟動PWM信號,經(jīng)由ADConvert信號引腳觸發(fā)啟動A/D數(shù)據(jù)轉(zhuǎn)換;3、當數(shù)據(jù)轉(zhuǎn)換完成以后,由ADBUSY信號觸發(fā)系統(tǒng)IRQ中斷;4、系統(tǒng)中斷后,啟動SPI總線進行當前數(shù)據(jù)讀取。
ADConvert信號通過ETA104的J1.P25腳接入,連接到ESMARC工控主板的PWM1信號端口;ADBUSY信號通過ETA104的J1.30腳輸出,連接到ESMARC工控主板的IRQ1信號端口。ETA104數(shù)據(jù)采樣控制信號所占用的相關引腳,如下表所示:
引腳 | 信號名稱 | 功能 | 描述 |
J1.25 | GPIO6 | PWM1信號輸出 | 用于等時采樣時,啟動AD轉(zhuǎn)換,該信號連接到ADConvert |
J1.30 | GPIO24 | 中斷輸入IRQ1 | 數(shù)據(jù)轉(zhuǎn)換完成,通過ADBUSY信號輸出下降沿到IRQ1 |
J1.38 | GPIO28 | SPI_MISO | 控制ADC器件的SPI總線信號 |
J1.40 | GPIO29 | SPI_MOSI | |
J1.42 | GPIO30 | SPI_CLK | |
J1.44 | GPIO31 | SPI_CSn |
模擬信號采樣流程參考圖如下:
程序流程說明:
1、初始化A/D,主要是配置模擬信號輸入方式、模擬信號輸入通道、A/D片內(nèi)增益。
2、要得到高精度的等時采集點的數(shù)據(jù),因此使用PWM信號來啟動A/D的數(shù)據(jù)轉(zhuǎn)換,以達到非常高的時間要求精度。
3、系統(tǒng)使用A/D芯片的BUSY信號的下降沿,觸發(fā)系統(tǒng)中斷,通知系統(tǒng),當前數(shù)據(jù)已經(jīng)準備好。
4、以上資源初始化好以后,就可以開始啟動A/D轉(zhuǎn)換了。直接啟動PWM信號輸出即可。
5、等待IRQ中斷消息,即表示當前數(shù)據(jù)轉(zhuǎn)換完成。
6、利SPI總線讀取A/D已轉(zhuǎn)換好的數(shù)據(jù)并存貯。
7、檢查要采樣的數(shù)據(jù)個數(shù)是否已達到,則關閉PWM輸出,停止數(shù)據(jù)采樣。然后關才IRQ、PWM相關設備。
以下是基于ESM9287-WinCE6.0環(huán)境的例子程序。由于ESM9287的IRQ響應速度限制,該環(huán)境最大數(shù)據(jù)采樣率只能到2Kbps。
// 申請一個數(shù)據(jù)Buff空間,用于存放采樣數(shù)據(jù)結果
AD_DataBuff = new DWORD[AD_CovCount];
if(AD_DataBuff == NULL)
return ;
// 初始化A/D,配置A/C采樣通道與信號輸入模式
MyADC_Test.ADS7871_ConfigREG(ADS7818_REG_GainMux,AD_Channel);
// 初始化IRQ,配置中斷源IRQ1作為系統(tǒng)觸發(fā)
hIRQ1 = CreateFile(_T("IRQ1:"),
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_FLAG_RANDOM_ACCESS,
NULL);
if(hIRQ1==INVALID_HANDLE_VALUE)
{
printf("Open IRQ1 false!\r\n");
return ;
}
// 初始化PWM信號,使用PWM1作為A/D轉(zhuǎn)換啟動信號
hPWM = CreateFile( _T("PWM1:"),
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_FLAG_RANDOM_ACCESS,
NULL);
if(hPWM==INVALID_HANDLE_VALUE)
{
printf("Open PWM false!\r\n");
return ;
}
PwmInfo.dwFreq = AD_CovRate; //設置PWM輸出頻率為數(shù)據(jù)采樣率,如1000Hz
PwmInfo.dwDuty = 10;
PwmInfo.dwResolution = 1;
dwNumberOfBytesWritten = 0;
bRet = WriteFile(hPWM, &PwmInfo, sizeof(PWM_INFO), &dwNumberOfBytesWritten, NULL);
if(!bRet)
{
printf("WriteFile failed\n");
CloseHandle(hPWM);
}
i1 = 0;
while(1) //數(shù)據(jù)采樣循環(huán)控制
{
dwTimeout = 5; //timeout 5ms
if (!DeviceIoControl(hIRQ1, //等待中斷觸發(fā)信號
IOCTL_WAIT_FOR_IRQ,
&dwTimeout,
sizeof(DWORD),
&dwReturn,
sizeof(DWORD),
NULL,
NULL))
{
dwReturn = WAIT_FAILED;
}
if(dwReturn == WAIT_OBJECT_0)
{
i1++;
MyADC_Test.ADS7871_Read( &AD_DataBuff[i1] );//讀取AD采樣好的數(shù)據(jù)
if(i1>=AD_CovCount) //判斷數(shù)據(jù)采樣個數(shù)是否已達到設置值
break;
}
}
PwmInfo.dwFreq = 0;
PwmInfo.dwDuty = 10;
PwmInfo.dwResolution = 1;
dwNumberOfBytesWritten = 0;
bRet = WriteFile(hPWM, &PwmInfo, sizeof(PWM_INFO), &dwNumberOfBytesWritten, NULL); //停止PWM輸出
CloseHandle(hPWM);//關閉PWM設備
CloseHandle(hIRQ1); //關閉IRQ設備
//數(shù)據(jù)復制/轉(zhuǎn)移到用戶數(shù)據(jù)BUFF
//......
delete[] AD_DataBuff;//清理申請的運態(tài)數(shù)據(jù)空單
-
嵌入式主板
+關注
關注
7文章
6099瀏覽量
36236
發(fā)布評論請先 登錄
科普|信創(chuàng)是什么?一文讀懂“信息技術應用創(chuàng)新”戰(zhàn)略

PLC數(shù)采網(wǎng)關和PLC通信模塊如何選擇

OPC UA數(shù)采網(wǎng)關實現(xiàn)西門子PLC數(shù)據(jù)采集到MES平臺

5G工廠標準數(shù)采網(wǎng)關是什么?有什么功能?
除了數(shù)控機床外,CNC數(shù)采網(wǎng)關還能采集哪些設備

CNC數(shù)采網(wǎng)關(機床采集網(wǎng)關)有哪些參數(shù)

5G智能工廠如何應用標準數(shù)采網(wǎng)關和CNC數(shù)采網(wǎng)關

CNC數(shù)采網(wǎng)關的應用場景與使用功能

能源數(shù)采網(wǎng)關實現(xiàn)IEC104協(xié)議對接到能源管理平臺中
無線采發(fā)儀 振弦、溫度及多類型信號采集 多種數(shù)據(jù)傳輸方式
數(shù)采網(wǎng)關與采集卡有哪些區(qū)別?
中科創(chuàng)達榮獲2024年軟件和信息技術服務優(yōu)秀企業(yè)
智慧園區(qū)能耗數(shù)采網(wǎng)關是什么

智慧園區(qū)能源數(shù)采網(wǎng)關是什么

評論