色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

如何從嵌入式系統(tǒng)收集數(shù)據(jù)以用于MATLAB

星星科技指導(dǎo)員 ? 來源:ADI ? 作者:ADI ? 2023-02-21 12:07 ? 次閱讀

本應(yīng)用筆記和支持源代碼提供了一個簡單的便攜式框架,用于使用串行傳輸(如RS-232)在嵌入式系統(tǒng)和運行MATLAB的PC之間實現(xiàn)實時數(shù)據(jù)傳輸。

介紹

嵌入式控制和測量系統(tǒng)通常可以從使用諸如此類工具的高級算法開發(fā)中受益 作為 MATLAB。為此,有必要將數(shù)據(jù)從嵌入式系統(tǒng)導(dǎo)出到PC。雖然數(shù)學(xué)作品 提供便于嵌入式算法開發(fā)的附加包,這些包可能很昂貴。 通常,只需要一種從嵌入式系統(tǒng)收集數(shù)據(jù)以進行基本分析的簡單方法。?

本應(yīng)用筆記和支持源代碼為完成 使用串行傳輸在嵌入式系統(tǒng)和運行 MATLAB 的 PC 之間實時傳輸數(shù)據(jù),例如 RS-232.

要求

本應(yīng)用筆記所述架構(gòu)的實現(xiàn)已在MAX35103EVKIT2#PCB上進行了測試,該PCB是MAX35103EVKIT2評估板軟件的一部分。 但它可以很容易地移植到其他平臺。建議使用MAX35103EVKIT2進行初始評估和 參考。

本應(yīng)用筆記假設(shè)用戶對 MATLAB、MATLAB MEX、C 語言和 Win32 API。在基于 IAR 系統(tǒng)的技術(shù)、基于 ARM 的系統(tǒng)和視覺C++方面的經(jīng)驗也是 有益的。????

全面評估需要以下工具:

Maxim MAX35103EVKIT2評估板

微軟視覺C++

MATLAB(無需額外的軟件包)

適用于 ARM 的 IAR 嵌入式工作臺

Microsoft Visual C++ Community Edition 可從 Microsoft 網(wǎng)站免費下載。IAR ARM 是 可從IAR系統(tǒng)進行評估。提供MAX35103EVKIT2評估板軟件 來自Maxim以及Digi-Key貿(mào)澤電子等許多電子分銷商。MATLAB 可從 The Mathworks, Inc. 獲得。

MAX35103EVKIT2實現(xiàn)示例

MAX35103EVKIT2評估板軟件 被選中用于本應(yīng)用筆記中描述的框架的初始實現(xiàn)。 MAX35103EVKIT2板由MAX32620(ARM Cortex M4)和MAX35103(超聲波時間數(shù)字轉(zhuǎn)換器)組成。 這些組件共同支持通過超聲波流體收集液體流量測量值。 這些測量結(jié)果被格式化并傳輸?shù)竭\行 MATLAB 的主機 PC。?

基本了解MAX35103EVKIT2評估板軟件 MAX35103有助于理解框架傳輸?shù)臄?shù)據(jù)和主機/目標的格式 協(xié)議數(shù)據(jù)包。請參考MAX35103EVKIT2文檔,了解嵌入式平臺的詳細信息

MAX35103EVKIT2嵌入式目標向運行MATLAB的主機PC傳輸?shù)臄?shù)據(jù)是 MAX35103時間數(shù)字轉(zhuǎn)換器該數(shù)據(jù)流是超聲波脈沖發(fā)射和接收之間的時間測量數(shù)組。test.m MATLAB腳本(詳見本文檔后面)為從MAX35103EVKIT2板收集數(shù)據(jù)提供了快速起點。圖1所示如何從MAX35103EVKIT2板檢索和訪問前<>個上游時間測量值。

pYYBAGP0Q52Abw4NAAA8IArQyyI979.png?imgver=1

圖1.使用 test.m 的 MATLAB 數(shù)據(jù)收集示例

系統(tǒng)架構(gòu)

使用此框架進行數(shù)據(jù)收集需要能夠運行 MATLAB 的主機 PC 和具有 串行接口。此處提供的框架專門支持 RS-232,但可以輕松移植以支持其他接口(參見圖 2)。

pYYBAGP0Q52Abw4NAAA8IArQyyI979.png?imgver=1

圖2.主機/目標體系結(jié)構(gòu)。

該框架跨越電腦主機和嵌入式目標。C 代碼針對目標嵌入式系統(tǒng)編譯為 以及主機系統(tǒng)。當前的主機實現(xiàn)需要 Win32 平臺,但可以將其移植到 另一個操作系統(tǒng),如Linux。?

嵌入式目標硬件必須提供某種串行接口。當前框架實現(xiàn) 支持 UART,但設(shè)計為可移植到其他傳輸。目標微控制器必須有足夠的 支持框架數(shù)據(jù)和代碼要求的資源,但也有足夠的吞吐量來移動數(shù)據(jù),而無需 過度影響嵌入式系統(tǒng)的性能。框架不需要RTOS,但它確實需要 不排除使用一個。

當前的框架實現(xiàn)是使用96MHz Cortex-M4處理器開發(fā)的,可以在 UART 接近最大吞吐量,處理器開銷很小。較小的系統(tǒng)可能需要調(diào)整 框架可以接受地工作。

圖 3 描述了主機和目標上的軟件組件。藍色組件是 C 語言模塊 在主機上運行。紅色組件是在目標上運行的 C 語言模塊。綠色組件是 兩個域通用。紫色的 MATLAB 腳本是標準的 m 腳本,可與 特定于應(yīng)用程序的接口。此處描述的嵌入式框架實現(xiàn)是為在 MAX35103EVKIT2評估板軟件,超聲波水流量測量平臺

灰色組件是特定于外部平臺的組件。

pYYBAGP0XIKAL4NfAABgHpBEYeQ888.png

圖3.系統(tǒng)架構(gòu)。

可以使用 C/C++ 和 4GL 語言與 Win32 DLL(如 C#Python)交互,使用 “Win32 DLL I/F”模塊。這允許輕松支持可能不需要 MATLAB 的自定義主機應(yīng)用程序。

“COM”模塊實現(xiàn)基本主機/目標協(xié)議。這是數(shù)據(jù)包定義特定于 找到嵌入式應(yīng)用程序。“序列化”模塊實現(xiàn)了二進制數(shù)據(jù)的基于轉(zhuǎn)義的分組。 這兩個模塊都可以使用與通信API(主機)或嵌入式接口的回調(diào)輕松移植 外圍設(shè)備(嵌入式目標)。

“COM”模塊中的定義驅(qū)動“主機端協(xié)議”和“設(shè)備端”中的實現(xiàn) 協(xié)議“組件。這些實現(xiàn)是特定于主機和目標的命令/響應(yīng)所在的位置 實現(xiàn)并且通常具有很多共性。

以下各節(jié)從上到下詳細介紹了從主機開始的每個主要體系結(jié)構(gòu)模塊。

電腦主機架構(gòu)

圖 2 中描述的架構(gòu)的主機端主要由 MATLAB 和特定于操作系統(tǒng)的接口組成, 并在以下各節(jié)中詳細介紹。

MATLAB 腳本

主機堆棧的頂部是執(zhí)行特定于應(yīng)用程序的數(shù)據(jù)收集和控制的 MATLAB 腳本。 代碼清單 1 中顯示的腳本 test.m 是如何使用 MATLAB MEX 接口打開、設(shè)置 參數(shù),并從MAX35103EVKIT2評估板軟件收集數(shù)據(jù)。

h_flow = svflow('open',6);
if( h_flow )
svflow('start',h_flow,100);
samples = flow('get_samples',h_flow,1000);
svflow('stop',h_flow);
svflow('close',h_flow);
clear h_flow;
plot(samples.timestamp,samples.toff_diff)
hold on
transit = (samples.up.average + samples.down.average) ./ 2
yyaxis right
plot(samples.timestamp,transit)
hold off
else
error('failed to open com port');
end

代碼清單 1.測試.m.

MEX 接口模塊中只能存在一個公共函數(shù)。在本例中,它是 svflow()。這個函數(shù)是怎么 MATLAB 腳本調(diào)用 MEX 模塊。函數(shù)的名稱是任意的,但選擇“svflow”作為 MAX35103EVKIT2評估軟件上實現(xiàn)的整體主機/目標協(xié)議的名稱值 (水流量測量平臺)。

svflow() 的第一個參數(shù)是一個文本字符串,指示要調(diào)用的子函數(shù)。第二個參數(shù)是 引用特定流對象的處理對象。此對象由 svflow('open',...) 返回。這是基本的 框架用于適應(yīng) MEX 同時支持面向?qū)ο蟮捏w系結(jié)構(gòu)的方法。

代碼清單 1 中的 test.m 腳本調(diào)用子函數(shù) 'open' 來打開 Windows 主機上的 COM6。下一個 調(diào)用“start”以指定 100Hz 的采樣率并開始樣本收集。然后調(diào)用“get_samples” 以定義的采樣率收集 1000 個樣本。此同步集合完成后,流對象 已停止并關(guān)閉。MATLAB plot() 函數(shù)用于顯示數(shù)據(jù)集和派生數(shù)據(jù)。

MATLAB MEX 接口

用于MAX35103EVKIT2評估板軟件的MATLAB MEX接口元件 在一組 C 語言文件中實現(xiàn)。它可以訪問內(nèi)部 MATLAB 函數(shù)并公開一個標準 MATLAB 腳本可以調(diào)用的接口。所有特定于 MEX 的功能都包含在 mex.c 中,它提供了 特定于 MATLAB 的核心協(xié)議功能的包裝器,用于在 flow.c 中實現(xiàn),該功能也用作 Win32 DLL 接口和 serialize.c/com.c,這是主機和嵌入式目標通用的。

該模塊是使用 MATLAB mex() 函數(shù)創(chuàng)建的。代碼清單 2 中的 compile.m 腳本編譯 將 C 文件托管為 MATLAB 可用的表單。此命令的輸出是 MATLAB MEX 可執(zhí)行文件。馬特實驗室 必須先前配置為使用本機工具鏈。訪問 The Mathworks 網(wǎng)站以獲取有關(guān) 如何設(shè)置用于編譯 MEX 模塊的工具鏈。

mex -g -output svflow -I'dll' -I'..' dll/mex.c dll/svflow.c ../serialize.c ../com.c

代碼清單 2.編譯.m.

MAX35103EVKIT2評估板軟件專用的MATLAB MEX接口在mex.c中實現(xiàn)。MATLAB 要求所有 MEX 模塊實現(xiàn)函數(shù) mexFunction() 作為唯一函數(shù) 模塊提供的功能的接口。為了給單個 MEX 模塊提供一種提供多個面向?qū)ο蟪蓡T函數(shù)的方法,使用了子函數(shù)機制。在代碼清單 3 中,mexFunction() 引用函數(shù)調(diào)用表用于調(diào)度子函數(shù)。調(diào)用表本身如代碼清單 4 所示。

for (i = 0; i < ARRAY_COUNT(s_function_table); i++)
{
if (!lstrcmpA(s_function_table[i].p_name, func))
{
s_function_table[i].p_func(nlhs, p_lhs, nrhs - 1, p_rhs + 1);
return;
}
}

代碼清單 3.mexFunction() 子函數(shù)調(diào)度。

static const function_table_t s_function_table[] =
{
{ "get_samples", mex_get_samples },
{ "open", mex_open },
{ "close", mex_close },
{ "start", mex_start },
{ "stop", mex_stop }
};

代碼清單 4.子函數(shù)調(diào)用表。

調(diào)用表中引用的 mex_* 函數(shù)是 Win32 DLL 函數(shù)的精簡包裝器,詳見下文 部分。

MATLAB MEX 接口還以與 MATLAB的雙矩陣定向性質(zhì)。MATLAB MEX 接口返回的頂級對象是 MATLAB 具有以下字段的結(jié)構(gòu):

poYBAGP0Q6qAFEsBAADuZeR36Xw310.png?imgver=1

圖4.頂級 MATLAB 數(shù)據(jù)對象。

雙精度數(shù)組時間戳和toff_diff的大小是可變的。

向上和向下成員是具有以下格式的 MATLAB 結(jié)構(gòu):

pYYBAGP0Q6-AZwcBAADPxBdRwO0569.png?imgver=1

圖5.包含MAX35013時間測量值的MATLAB結(jié)構(gòu)。

同樣,每個數(shù)組的長度是可變的。該數(shù)據(jù)與MAX35103EVKIT35103評估板上MAX2輸出的數(shù)據(jù)直接對應(yīng)。

在 mex.c 中,函數(shù) mex_get_samples() 使用 MATLAB mx* 格式化嵌入式目標接收的數(shù)據(jù) 功能。

static void mex_get_samples(int nlhs, mxArray *p_lhs[], int nrhs, const mxArray *p_rhs[])
{
char * sample_fieldnames[] =
{
"timestamp",
"up",
"down",
"toff_diff"
};
svflow_sample_t sample;
void **pp = (void*)mxGetData(p_rhs[0]); uint32_t sample_count = (uint32_t)mxGetScalar(p_rhs[1]);
mxArray *p_sample_struct = mxCreateStructMatrix( 1, 1, ARRAY_COUNT(sample_fieldnames), sample_fieldnames );
mxArray *p_timestamp = mxCreateNumericMatrix( 1, sample_count, mxDOUBLE_CLASS, mxREAL );
mxSetField( p_sample_struct, 0, "timestamp", p_timestamp );
mxSetField( p_sample_struct, 0, "up", create_direction_struct( sample_count, &sample.up ) );
mxSetField( p_sample_struct, 0, "down", create_direction_struct( sample_count, &sample.down ) );
mxArray *p_toff_diff = mxCreateNumericMatrix( 1, sample_count, mxDOUBLE_CLASS, mxREAL );
mxSetField( p_sample_struct, 0, "toff_diff", p_toff_diff );
sample.p_timestamp = (double_t*)mxGetData( p_timestamp );
sample.p_tof_diff = (double_t*)mxGetData( p_toff_diff );
svflow_get_samples( *pp, &sample, sample_count );
p_lhs[0] = p_sample_struct;
}

代碼清單 5.mex_get_samples() 在墨西哥

“up”和“down”結(jié)構(gòu)成員在 mex.c 的 create_direction_struct() 函數(shù)中構(gòu)造。

Win32 DLL 接口

Win32 DLL 接口在 svflow.c 中實現(xiàn),其中還包含大部分協(xié)議和平臺 特定代碼。與此應(yīng)用筆記關(guān)聯(lián)的源代碼包包含一個 Visual Studio 項目,該項目可以是 用于生成 DLL。但是,MATLAB 不需要 DLL。它只是為了幫助那些對 使用可與 DLL 交互的語言編寫自定義數(shù)據(jù)分析代碼。?

下面的代碼清單6顯示了MAX35103EVKIT2評估板軟件支持的DLL接口功能。這些函數(shù)與代碼清單 1 中所示的 MATLAB 腳本中調(diào)用的子函數(shù)完全對應(yīng)。

void* svflow_open( uint32_t comport);
void svflow_close(void *pv_context);
uint32_t svflow_get_samples(void *pv_context, flow_sample_t
*p_flow_sample, uint32_t sample_count);
void svflow_start( void *pv_context, float_t sample_rate_hz );
void svflow_stop( void *pv_context );

代碼 6.- flow.h.

svflow_open () 返回與給定 Win32 COM 端口關(guān)聯(lián)的不透明流通信上下文對象或 如果發(fā)生錯誤,則為 NULL。

svflow_close() 使用 svflow_open() 返回的上下文對象關(guān)閉通信并釋放資源。

svflow_start() 告訴嵌入的目標開始以指定的采樣率收集流樣本。

svflow_stop() 告訴嵌入式目標結(jié)束數(shù)據(jù)收集。

這些功能特定于MAX35103EVKIT2評估板軟件, 它們可以很容易地被適合其他嵌入式應(yīng)用程序的功能所取代。

主機協(xié)議

主機和嵌入式目標使用的協(xié)議基于 com.c/h 中的通用定義和函數(shù)構(gòu)建,并且 序列化.c/h.體系結(jié)構(gòu)支持的協(xié)議通常由命令/響應(yīng)和指示事件組成。 主機協(xié)議在 svflow.c 中實現(xiàn),依賴于 com.c 和 serialize.c,這對于 主機和嵌入的目標。

主機端協(xié)議使用 com_* 函數(shù)發(fā)出命令并解碼響應(yīng)和指示。例如,在 代碼清單 6, com_tx() 用于向嵌入式目標發(fā)送 'com_host_start_sampling_t' 命令數(shù)據(jù)包。

請務(wù)必注意,所有協(xié)議函數(shù)都是單線程阻塞調(diào)用。

void svflow_start( void *pv_context, float_t sample_rate_hz )
{
context_t *p_context = (context_t*)pv_context;
if( p_context )
{
com_host_start_sampling_t cmd;
cmd.sample_rate_hz = sample_rate_hz;
com_tx( &p_context->com, &cmd, COM_ID_HOST_START_SAMPLING,
sizeof( com_host_start_sampling_t ) );
}
}

代碼清單 7.flow_start() 在 flow.c.

主機協(xié)議模塊還定義了與傳輸通信的數(shù)據(jù)類型相對應(yīng)的數(shù)據(jù)類型 鏈接,但與它們不完全相同。這種差異允許對 此模塊和上述模塊。具體來說,它將數(shù)據(jù)包格式解耦(簡潔的單精度浮點數(shù)) 來自用于容納 MATLAB(詳細、面向矩陣的雙精度)的數(shù)據(jù)格式。這意味著翻譯 代碼必須存在于 flow.c 中,如代碼清單 7 中的序列化回調(diào)函數(shù)所示。

static bool serialize_cb(void *pv_context, const void *pv_data, uint16_t length)
{
context t * p_context = (context_t *)pv_context;
const com_union_t *p_packet = (const com_union_t*)pv_data;
if (p_packet->hdr.id == COM_ID_DEVICE_FLOW_SAMPLE )
{
com_device_flow_sample_t *p_com_sample =
(com_device_flow_sample_t*)&p_packet->flow_sample;
if (!p_context->sample_ndx )
{
p_context->time_offset = p_com_sample->timestamp;
}
svflow_sample_t *p_flow_sample = p_context>p_flow_sample;
uint32_t ndx = p_context->sample_ndx;
direction( &p_flow_sample->up, &p_com_sample->up, ndx );
direction( &p_flow_sample->down, &p_com_sample->down, ndx );
p_flow_sample->p_timestamp[ndx] = ( (double_t)( p_com_sample->timestamp –
p_context->time_offset ) ) / 96000000.0;
p_flow_sample->p_tof_diff[ndx] = p_com_sample->tof_diff;
p_context->sample_ndx++;
if( p_context->sample_ndx >= p_context->sample_count )
return true;
}
return false;
}

代碼清單 8.flow.c 中的數(shù)據(jù)轉(zhuǎn)換

svflow.c 還包含初始化和回調(diào)函數(shù),以便在 Win32 平臺上使用 comports 所需的函數(shù),如下所示 在代碼清單 8 中。

static uint16_t uart_write(com_t *p_com, void *pv, uint16_t length)
{
DWORD written;
context_t *p_context = (context_t*)p_com;
WriteFile(p_context->hComm, pv, length, &written, NULL);
return (uint16_t)written;
}
static uint16_t uart_read(com_t *p_com, void *pv, uint16_t length)
{
DWORD read;
context_t *p_context = (context_t*)p_com;
ReadFile(p_context->hComm, pv, length, &read, NULL);
return (uint16_t)read;
}

代碼清單 9.flow.c 中的 Win32 串口回調(diào)。

COM 模塊實現(xiàn)抽象串行傳輸?shù)睦獭om_init() 初始化抽象 調(diào)用對象和 com_read() 來反序列化和調(diào)度特定的命令/響應(yīng)和指示。

嵌入式目標架構(gòu)

嵌入式目標體系結(jié)構(gòu)在概念上很簡單,并且反映了主機端體系結(jié)構(gòu),不包括 平臺和 MATLAB 特定組件。

嵌入式應(yīng)用程序包含支持 svflow.c 中定義的主機端 svflow_* 調(diào)用的函數(shù)。這些 功能包括MAX35103EVKIT2特有的回調(diào)和配置,可在board.c中找到。

與主機端的 comport 抽象一樣,嵌入式目標具有串行端口回調(diào),如 Code 所示 清單 9.讀回調(diào)調(diào)用芯片支持庫 (CSL) 函數(shù)調(diào)用,以將長度字節(jié)寫入 UART。 返回值是實際寫入的字節(jié)數(shù)。讀回調(diào)使用 CSL 函數(shù)調(diào)用來讀取端口上當前可用的所有字節(jié)(最多長度)。

static uint16_t uart_write(com_t * p_com, void * pv, uint16_t length)
{
return UART_Write(MXC_UART0, (uint8_t *)pv, length);
}
static uint16_t uart_read(com_t * p_com, void * pv, uint16_t length)
{
return UART_Read(MXC_UART0, (uint8_t *)pv, length, NULL);
}

代碼 10.main.c 中的串行端口回調(diào)。

嵌入式目標使用 COM 模塊從主機調(diào)度命令。com_read() 從主節(jié)點調(diào)用 轉(zhuǎn)換循環(huán)和命令在代碼清單 10 中列出的 serialize_cb() 中調(diào)度。

main.c包含MAX35103EVKIT2評估軟件上用于流量測量的嵌入式應(yīng)用,使用: MAX3510x.c模塊,用于與MAX35103芯片接口。Board.c 包含特定于板的初始化和 中斷調(diào)度代碼。

雖然本示例針對MAX35103EVKIT2評估板軟件, COM 和序列化模塊不是特定于平臺的,可以輕松移植到大多數(shù)現(xiàn)代微控制器 和電路板設(shè)計。

static bool serialize_cb(void *pv_context, const void *pv_packet, uint16_t length)
{
const com_union_t *p_com = (const com_union_t*)pv_packet;
switch( p_com->hdr.id )
{
case COM_ID_HOST_START_SAMPLING:
{
if( p_com->start_sampling.sample_rate_hz > 0.0F &&
p_com->start_sampling.sample_rate_hz <= 200.0F )
{
s_sampling_underflow = 0;
s_sampling_overrun = 0;
s_sample_state = sample_state_idle;
s_send_samples = true;
SYS_SysTick_Config( (uint32_t)((float_t)SYS_SysTick_GetFreq() /
p_com>start_sampling.sample_rate_hz), 1);
}
break;
}
case COM_ID_HOST_STOP_SAMPLING:{
{
SYS_SysTick_Config( (uint32_t)((float_t)SYS_SysTick_GetFreq() / 10.0F), 1);
s_send_samples = false;
break;
}
}
return false;
}

代碼 11.Serialize_cb在主

軟件包內(nèi)容

目標固件和Windows主機軟件可從Maxim網(wǎng)站下載。它以拉鏈形式提供 檔案。將存檔解壓縮到計算機上方便的目錄中。圖 6 顯示了 目標固件和主機軟件實現(xiàn)。?

poYBAGP0Q7GAbxbsAAB6fbcyi58474.png?imgver=1

圖6.軟件目錄結(jié)構(gòu)。

根目錄包含 main() 以及 COM 和序列化模塊。此外,傳感器 c/h 包含 MAX35103EVKIT2評估軟件附帶的超聲傳感器參數(shù)

電路板目錄包含 MATLAB 示例固件應(yīng)用程序支持的每個開發(fā)板的子目錄。 可以在此處添加對自定義用戶板的支持。

csl和MAX3510x目錄包含MAX35103EVKIT2評估板軟件微控制器和外設(shè)的專用代碼。

IAR目錄包含用于構(gòu)建和調(diào)試MAX35103EVKIT2評估板軟件固件的項目文件。 可以添加新的項目配置以支持自定義用戶板。最簡單的方法是 復(fù)制配置,然后對其進行修改以適應(yīng)新目標。

主機dll 目錄包含生成 Win32 DLL 和 MEX 接口模塊所需的所有源代碼。 此外,還提供了用于編譯 MEX 接口模塊的 MATLAB 腳本以及 中詳述的測試腳本 代碼清單 1.

構(gòu)建目標固件

MATLAB 示例固件可以使用 IAR ARM 構(gòu)建。IAR 項目文件位于 iar 目錄中。加載后 項目中,請務(wù)必檢查調(diào)試器配置是否正確(請參閱圖 4)。微控制器上的 MAX35103EVKIT2評估板軟件 可以使用 IAR 支持的任何 ARM JTAG 適配器使用 10 引腳 ARM 接頭 (J1) 進行編程

poYBAGP0Q7WALhhKAADystP_Mmk972.png?imgver=1

圖7.IAR 調(diào)試器選項。

Project.out 是在生成項目時創(chuàng)建的固件映像。

pYYBAGP0Q72ARDCoAAFq7Gmf5aU112.png?imgver=1

圖8.使用 IAR 構(gòu)建固件。

構(gòu)建主機軟件

MATLAB MEX 接口可以使用位于主機目錄中的 compile.m 腳本從 MATLAB 內(nèi)部構(gòu)建。 如圖 6 所示。構(gòu)建的輸出是 flow.mexw64

要使用 compile.m,您必須安裝 MATLAB 支持的 C 編譯器。請訪問 The Mathworks 網(wǎng)站了解詳情 這可能會從一個版本的 MATLAB 更改為下一個版本。

在撰寫本文時,MATLAB 2016a 可以使用 Microsoft Visual C++ 的免費版本來生成 MEX 文件。

poYBAGP0Q7-AMFmgAACmf0hmqRk130.png?imgver=1

圖9.構(gòu)建 MEX 接口。

主機軟件也可以內(nèi)置到 DLL 模塊中,供知道如何與 DLL 通信的非 MATLAB 程序使用。用于生成 DLL 的 Microsoft Visual C++ 項目文件可以在 dll 目錄中找到。

硬件配置

MAX35103EVKIT2 PCB必須連接到超聲波流體,如MAX35103EVKIT2評估板數(shù)據(jù)資料中所述。圖 10 顯示了 上可用的連接 MAX35103EVKIT2電路板

電源應(yīng)連接到6-24V AC或能夠提供200mA的直流電源。

閥門可以保持未連接狀態(tài)。

PIEZO UP±應(yīng)連接到其中一個流體傳感器

PIEZO DOWN±應(yīng)與另一流動體換能器連接。

RTD/熱敏電阻可以保持未連接狀態(tài)。

固件不使用旋轉(zhuǎn)開關(guān)。

pYYBAGP0Q8GAYgzdAABW7LGP_7o857.png?imgver=1

圖 10.MAX35103EVKIT2 J12引腳排列

結(jié)論

MATLAB 為數(shù)據(jù)分析和算法開發(fā)提供了一個很好的平臺。本應(yīng)用筆記介紹了一種簡單、可定制的軟件架構(gòu),可用于將數(shù)據(jù)導(dǎo)入 MATLAB,而無需成本和 市售附加模塊的復(fù)雜性。

審核編輯:郭婷

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

    關(guān)注

    185

    文章

    2977

    瀏覽量

    230645
  • 嵌入式
    +關(guān)注

    關(guān)注

    5086

    文章

    19143

    瀏覽量

    306095
  • 源代碼
    +關(guān)注

    關(guān)注

    96

    文章

    2946

    瀏覽量

    66800
收藏 人收藏

    評論

    相關(guān)推薦

    一種嵌入式系統(tǒng)用于多媒體實時數(shù)據(jù)的網(wǎng)絡(luò)傳輸設(shè)計

    (內(nèi)存管理單元),很適合于許多低端的、沒有MMU的嵌入式處理器。本文設(shè)計了一種嵌入式系統(tǒng)用于多媒體實時數(shù)據(jù)的網(wǎng)絡(luò)傳輸。ARM內(nèi)核處理器與
    發(fā)表于 06-19 05:00

    嵌入式系統(tǒng)基本問題

    大家好,我需要一些重新保證,我理解嵌入式系統(tǒng)數(shù)據(jù)流方面的工作原理。讓我畫一幅我正在拍的照片。我有一個Virtex 6開發(fā)板,用于Anal
    發(fā)表于 03-16 07:04

    基于MBD的嵌入式系統(tǒng)設(shè)計

    【STM32F407+matlab+STM32CubeMX】基于MBD的嵌入式系統(tǒng)實現(xiàn)基于STM32CubeMX和HAL的嵌入式系統(tǒng)編程通過
    發(fā)表于 08-17 07:08

    用于嵌入式系統(tǒng)的操作系統(tǒng)

    嵌入式操作系統(tǒng)(Embedded Operating System,簡稱:EOS)是指用于嵌入式系統(tǒng)的操作
    發(fā)表于 10-28 06:30

    嵌入式開發(fā)流程是怎樣的?

    本篇文章整理下嵌入式開發(fā)中一些入門的基礎(chǔ)技能,都是根據(jù)以往的工程經(jīng)驗整理,適用于之前沒做過嵌入式開發(fā)的新手。嵌入式開發(fā)流程一般如下,一般是在
    發(fā)表于 11-08 06:24

    淺析MATLAB和Simulink嵌入式視覺應(yīng)用

    MATLAB 和 Simulink 工具,為嵌入式視覺系統(tǒng)設(shè)計算法和系統(tǒng)模型。借助用于采集攝像機和其他傳感器實時圖像和視頻
    發(fā)表于 12-04 08:00

    MATLAB/SIMULINK生成嵌入式代碼有哪些步驟

    生成嵌入式代碼生成主要利用的是MATLAB中自帶的MATLAB Coder模塊,MATLAB Coder可以MATLABcode產(chǎn)生可讀且
    發(fā)表于 12-16 07:16

    物聯(lián)網(wǎng)與嵌入式系統(tǒng)體系結(jié)構(gòu)有怎樣的聯(lián)系呢

      概念上講,物聯(lián)網(wǎng)代表了通過大規(guī)模網(wǎng)絡(luò)通信最大化利用大量不同嵌入式設(shè)備效用的努力。物聯(lián)網(wǎng)設(shè)備與更普通的嵌入式系統(tǒng)的區(qū)別在于每個設(shè)備與一個或多個中心節(jié)點之間存在通信路徑。這些節(jié)點
    發(fā)表于 12-17 07:32

    實時仿真與嵌入式系統(tǒng)

    實時仿真與嵌入式系統(tǒng):Matlab 和VxWorks 是當今工業(yè)流行的仿真軟件和嵌入式操作系統(tǒng), 二者之間的結(jié)合極大的方便了程序在
    發(fā)表于 09-13 10:44 ?21次下載

    MATLAB平臺的DSP嵌入式應(yīng)用程序設(shè)計的研究

    MATLAB平臺的DSP嵌入式應(yīng)用程序設(shè)計的研究
    發(fā)表于 10-19 13:22 ?7次下載
    <b class='flag-5'>MATLAB</b>平臺的DSP<b class='flag-5'>嵌入式</b>應(yīng)用程序設(shè)計的研究

    基于MATLAB平臺的DSP嵌入式應(yīng)用程序設(shè)計的研究

    基于MATLAB平臺的DSP嵌入式應(yīng)用程序設(shè)計的研究
    發(fā)表于 10-20 15:09 ?5次下載
    基于<b class='flag-5'>MATLAB</b>平臺的DSP<b class='flag-5'>嵌入式</b>應(yīng)用程序設(shè)計的研究

    什么是嵌入式系統(tǒng)?有什么作用?

    機器人系統(tǒng)的傳感器用于環(huán)境中收集數(shù)據(jù)嵌入式系統(tǒng)用于
    的頭像 發(fā)表于 09-23 17:29 ?7739次閱讀

    淺析MATLAB和Simulink嵌入式視覺應(yīng)用

    嵌入式視覺是什么? 嵌入式視覺是指將圖像處理和計算機視覺應(yīng)用到嵌入式系統(tǒng)嵌入式視覺開發(fā)工作流程的主要環(huán)節(jié)包括視覺算法的算法設(shè)計、
    的頭像 發(fā)表于 11-22 14:04 ?3905次閱讀
    淺析<b class='flag-5'>MATLAB</b>和Simulink<b class='flag-5'>嵌入式</b>視覺應(yīng)用

    如何嵌入式系統(tǒng)收集數(shù)據(jù)以用于 MATLAB

    發(fā)表于 11-17 08:22 ?1次下載
    如何<b class='flag-5'>從</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)收集數(shù)據(jù)以</b><b class='flag-5'>用于</b> <b class='flag-5'>MATLAB</b>

    什么是嵌入式系統(tǒng)嵌入式系統(tǒng)的具體應(yīng)用

    嵌入式,一般是指嵌入式系統(tǒng)用于控制、監(jiān)視或者輔助操作機器和設(shè)備的裝置。
    的頭像 發(fā)表于 12-20 13:33 ?2524次閱讀
    主站蜘蛛池模板: 老师的丝袜脚| 色久天| 一二三四韩国免费观看| 亚洲 无码 在线 专区| 乌克兰少妇大胆大BBW| 婷婷午夜影院| 亚洲精品嫩草研究院久久| 亚洲区视频在线观看| 在线观看免费av网| 69xx欧美| 扒开校花粉嫩小泬喷潮漫画| 成人国产在线视频| 国产传媒18精品免费1区| 国产免费福利在线视频| 好色女博士| 看美女大腿中间的部分| 女人张腿让男人桶免费| 日韩免费精品视频| 性欧美sexovideotv| 亚洲一卡二卡三卡四卡无卡麻豆 | 成人在线免费看片| 国产ZZJJZZJJ视频全免费| 国产最新进精品视频| 久久理论片| 欧美国产在线一区| 兔费看少妇性L交大片免费| 亚洲九九视频| 4hu四虎免费影院www| 草比比过程图| 国产亚洲精品久久久久久无码网站| 精品人伦一区二区三区潘金莲| 免费看欧美xxx片| 善良的女房东味道2在线观看| 亚洲精品无码不卡| 95国产精品人妻无码久| 俄罗斯人xxx| 黃色带三级a级| 欧美精品XXXXBBBB| 亚洲国产在线2020最新| 97人人碰免费视频公开| 国产精品99久久久精品无码|