女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

英創信息技術EM9380多路任意脈沖發生器及應用

英創信息技術 ? 來源:英創信息技術 ? 作者:英創信息技術 ? 2020-01-16 10:12 ? 次閱讀

EM9380是面向實時控制應用的一款工控主板,這里所說的實時控制是指那些控制周期可能短至幾十微妙的控制應用。EM9380通過板上獨立運行的硬件協處理器(Cortex-M3),可很好的滿足這類應用的需求。多路任意脈沖發生器,就是按照用戶預設的流程,按設定的時間間隔(最短25us),同時更新多路(最多8路)數字輸出的電平狀態,從而構成多路任意周期的脈沖信號輸出。多路任意脈沖發生器功能,可用于步進電機的控制,在紡織、印刷設備中有廣泛的應用。本文后續部分將主要介紹在應用程序中實現任意脈沖發生器功能的流程。

接口硬件說明

EM9380中的GPIO0–GPIO15是由其硬件協處理器直接控制的,它們均可作為任意脈沖發生器的輸出,輸出的總數不超過8路。對選定作為意脈沖輸出的GPIO,首先需要設置成輸出模式。因為在EM9380上電或復位啟動后,GPIO0 – GPIO15均處于輸出狀態的,由于內部100KΩ上拉,其電平均為高電平(管腳懸空時)。在實際應用中,若需要脈沖輸出的初始電平為低電平,可在其管腳接10KΩ的下拉電阻至地。

接口軟件說明

為了操作GPIO0–GPIO15這組GPIO,首先需要打開硬件寫處理器的驅動程序,其設備文件名為”MCU2:”(注意是MCU2,而不是MCU1):
#include // 數據類型定義
HANDLE hMCU2;
hMCU2 = CreateFile(_T(“MCU2:”), // name of device
GENERIC_READ|GENERIC_WRITE, // desired access
FILE_SHARE_READ|FILE_SHARE_WRITE, // sharing mode
NULL, // security attributes (ignored)
OPEN_EXISTING, // creation disposition
FILE_FLAG_RANDOM_ACCESS, // flags/attributes
NULL); // template file (ignored)

驅動程序MCU2通過DeviceIoControl,支持以下GPIO命令:
MCU_GENERIC_GPIO_OE // 輸出使能
MCU_GENERIC_GPIO_OD // 輸出禁止,作為數字輸入
MCU_GENERIC_GPIO_SET // 輸出高電平
MCU_GENERIC_GPIO_CLR // 輸出低電平
MCU_GENERIC_GPIO_PIN // 讀取輸入管腳電平狀態
MCU_GENERIC_GPIO_OF // 實時控制輸出流

其中前5個命令通過以下的數據結構來設置相關參數,從而實現GPIO的命令:
typedef struct
{
BYTE ucSize; // 本數據結構大小 = 17字節
BYTE ucCmd; // GPIO命令碼:MCU_GENERIC_GPIO_XXX
DWORD dwPins; // 操作的管腳位
DWORD dwStatus; // 返回的管腳電平狀態
DWORD dwPeriod; // 實時控制周期,單位us;= 0: 常規功能
bool bFlashed; // 保存本配置作為啟動缺省功能
BYTE ucChkSum; // 校驗和
} MCU_GPIO_INFO, *PMCU_GPIO_INFO; // struct for GPIO

對于本應用來說,首先需要把所選擇的GPIO設置為輸出模式,具體代碼如下:
MCU_GPIO_INFO Info; //定義結構對象
memset(&Info, 0, sizeof(MCU_GPIO_INFO));//清零
//填寫所需的參數
Info.ucSize = sizeof(MCU_GPIO_INFO);
Info.ucCmd = MCU_GENERIC_GPIO_OE; //設置為輸出模式
Info.dwPins = GPIO3 | GPIO2 | GPIO1 | GPIO0; //設置4路脈沖輸出
// 生成chksum字節
Info.ucChkSum = ChkSum(&Info, sizeof(MCU_GPIO_INFO)-1);
// 調用DeviceIoControl
if (!DeviceIoControl(hMCU2, // File handle to the driver
MCU_IOCTL_ACCESS, // I/O control code
&Info, // input buffer
sizeof(MCU_GPIO_INFO), // in buffer size
NULL, // out buffer
0, // out buffer size
NULL, // pointer to number of bytes returned
NULL)) // ignored (=NULL)
{
// 出錯處理......
return FALSE;
}

其次是設置脈沖的初始電平及脈沖的更新周期,其主要代碼如下:
memset(&Info, 0, sizeof(MCU_GPIO_INFO));//清零
//填寫所需的參數
Info.ucSize = sizeof(MCU_GPIO_INFO);
Info.ucCmd = MCU_GENERIC_GPIO_SET; //輸出的初始電平為高電平
//Info.ucCmd = MCU_GENERIC_GPIO_CLR; //輸出的初始電平為低電平
Info.dwPins = GPIO3 | GPIO2 | GPIO1 | GPIO0; //設置4路脈沖輸出
Info.dwPeriod = 25; //設置更新周期為25us

接著的生成ChkSum字節和調用DeviceIoControl操作和上一步是一樣的,不再贅述。

設置了更新周期后,硬件協處理器已處于脈沖輸出狀態,只等驅動程序MCU2下傳相應的數據流了。下傳的數據流將按以下數據結構分包逐一下傳:
typedef struct
{
BYTE ucSize; //本數據結構大小 = 64字節
BYTE ucCmd; // = MCU_GENERIC_GPIO_OF
BYTE ucRawDat[60]; // 更新數據字節
BYTE ucChkSum; //
} MCU_GPIO_FLOW, *PMCU_GPIO_FLOW; // struct for GPIO

每一個更新數據字節對應著一次更新,所以一包數據可供60個更新周期使用。數據字節的格式是按GPIO的編號右對齊的,即設置的GPIO中,編號最小的那一路,其更新的bit為更新數據字節的LSB(D0),其他數據按編號遞增,向左排列至MSB(D7)。

下傳數據流,同樣需要做ChkSum,再調用DeviceIoControl:
if (!DeviceIoControl(hMCU2, //File handle to the driver
MCU_IOCTL_ACCESS, // I/O control code
&Flow, // input buffer
sizeof(MCU_GPIO_FLOW), // in buffer size
NULL, // out buffer
0, // out buffer size
NULL, // pointer to number of bytes returned
NULL)) // ignored (=NULL)
{
// 出錯處理......
return FALSE;
}

數據更新流程說明

對任意脈沖發生器功能,EM9380硬件協處理器內部設置有一對256字節的乒乓Buffer。這樣驅動程序MCU2在下傳數據包時,每次可發送4個數據包(第一次下傳1個包即可),這樣可進一步提高主CPU的工作效率。對25us更新周期來說,就表示驅動程序下傳數據的間隔為6ms。一旦第一包數據下傳至硬件協處理器,實質性啟動任意脈沖波形輸出后,當有空閑的乒乓Buffer時,硬件協處理器會立即通知驅動程序MCU2。應用程序可設置專門線程獲取數據請求事件,從而啟動數據下傳。其基本的流程如下:

DWORD dwReturn = 0; // 返回狀態,= 1:數據請求,= 0:超時
DWORD dwTimeout = 12; // 12ms,2倍正常下傳間隔
// 初始下傳一個數據包,然后進入主循環。
// ......
// 主循環:等待下傳數據請求
for(; ;)
{
if (!DeviceIoControl(hMCU2, // File handle to the driver
MCU_IOCTL_WAIT_FOR_DATA, // I/O control code
&dwTimeout, // input buffer
sizeof(DWORD), // in buffer size
NULL, // out buffer
0, // out buffer size
&dwReturn, // pointer to number of bytes returned
NULL)) // ignored (=NULL)
{
// 出錯處理......
}
if(dwReturn)
{
// 下傳數據包(4包)......
dwReturn = 0; // 清標志
}
}

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

    關注

    7

    文章

    6096

    瀏覽量

    36136
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    任意波形發生器在電光調制、量子光學和脈沖激光二極管中的應用

    摘要現在,光學、光子學和激光技術應用越來越流行。最新一代的科學家們正在汽車、醫療、航空航天、國防、量子和激光傳感等領域開辟新天地。這些領域的應用挑戰不斷增加。昊量光電的任意波形和函數發生器
    的頭像 發表于 05-14 11:13 ?208次閱讀
    <b class='flag-5'>任意</b>波形<b class='flag-5'>發生器</b>在電光調制<b class='flag-5'>器</b>、量子光學和<b class='flag-5'>脈沖</b>激光二極管中的應用

    任意波形發生器在電光調制、量子光學和脈沖激光二極管中的應用

    現在,光學、光子學和激光技術應用越來越流行。新一代的科學家們正在汽車、醫療、航空航天、國防、量子和激光傳感等領域開辟新天地。這些領域的應用挑戰不斷增加。昊量電光的任意波形和函數發生器
    的頭像 發表于 04-09 16:59 ?199次閱讀
    <b class='flag-5'>任意</b>波形<b class='flag-5'>發生器</b>在電光調制<b class='flag-5'>器</b>、量子光學和<b class='flag-5'>脈沖</b>激光二極管中的應用

    是德33220A 函數任意波形發生器

    *任意波形發生器符合 LXI C 類標準 波形生成 *20 MHz 正弦波和方波 *斜波、三角波、噪聲、帶有可變邊沿的脈沖生成、直流波形 *14 位、50 MSa/s、64 K 點的任意
    的頭像 發表于 02-07 15:55 ?326次閱讀

    是德任意波形發生器在電力電子測試中的應用

    電力電子技術作為現代電力系統和新能源技術的核心,其可靠性和穩定性至關重要。而精確、高效的測試是保障電力電子設備性能的關鍵環節。是德科技(Keysight)的任意波形發生器憑借其卓越的性
    的頭像 發表于 11-26 16:43 ?407次閱讀
    是德<b class='flag-5'>任意</b>波形<b class='flag-5'>發生器</b>在電力電子測試中的應用

    安捷倫8110A 脈沖碼型發生器

    8110A脈沖碼型發生器,具有精密的邊沿定位和仿真真實世界所產生數字信號的能力,適于和Keysight示波器或邏輯分析儀配合使用。 您可在工作臺上驗證設計,在使模擬成為不確定的頻率下迅速得到可靠
    的頭像 發表于 11-25 14:22 ?501次閱讀

    最新發布!高性能任意波形發生器與快速切換DDS信號發生器

    快訊1.PCIe 旗艦系列任意波形發生器卡TS-M5i.63xx系列正式發布,可生成 10 GS/s 采樣率和 2.5 GHz 帶寬的波形! 科學家和工程師能夠通過TS-M5i.63xx系列產品在
    的頭像 發表于 11-01 11:18 ?539次閱讀
    最新發布!高性能<b class='flag-5'>任意</b>波形<b class='flag-5'>發生器</b>與快速切換DDS信號<b class='flag-5'>發生器</b>!

    Spectrum儀器發布PCIe系列任意波形發生器

    Spectrum儀器近日宣布推出全新的PCIe旗艦系列任意波形發生器卡(AWG),為用戶提供了一種強大的臺式任意波形發生器替代方案。
    的頭像 發表于 10-28 18:07 ?657次閱讀

    泰克信號發生器脈沖模式應用

    泰克信號發生器在工程和科學領域得到了廣泛的應用,其高精度和靈活性使其成為實驗室和生產環境中的重要工具之一。在各種應用中,泰克信號發生器脈沖模式應用尤其值得注意。本文將探討泰克信號發生器
    的頭像 發表于 10-22 17:00 ?519次閱讀
    泰克信號<b class='flag-5'>發生器</b><b class='flag-5'>脈沖</b>模式應用

    任意波形發生器的基本架構

    任意波形發生器(Arbitrary Waveform Generator,AWG)是從信號發生器演進過來的一款信號源,其架構的設計旨在提供高精度、高穩定性和靈活可編程的波形信號輸出。
    的頭像 發表于 10-18 16:29 ?826次閱讀

    是德任意波形發生器應用領域

    在現代電子設計與測試領域,任意波形發生器(AWG)作為一種強大的信號源,扮演著不可或缺的角色。它能夠生成各種復雜的模擬波形,滿足從基礎研究到復雜系統開發的廣泛應用需求。是德科技作為全球領先的電子
    的頭像 發表于 10-18 16:25 ?510次閱讀
    是德<b class='flag-5'>任意</b>波形<b class='flag-5'>發生器</b>應用領域

    1653系列函數任意波形發生器

    1653系列函數任意波形發生器 XLT 簡述 1653系列經濟型函數任意波形發生器,通過多通道、深存儲、高質量的產品設計有效解決教育科研、工業測試、醫療電子等場景中用戶高性價比復雜波形
    的頭像 發表于 10-15 17:13 ?510次閱讀

    可編程按鈕、脈沖檢測脈沖發生器解決方案

    電子發燒友網站提供《可編程按鈕、脈沖檢測脈沖發生器解決方案.pdf》資料免費下載
    發表于 09-18 11:22 ?0次下載
    可編程按鈕、<b class='flag-5'>脈沖</b>檢測<b class='flag-5'>器</b>和<b class='flag-5'>脈沖</b><b class='flag-5'>發生器</b>解決方案

    脈沖發生器的用途有哪些

    脈沖發生器作為一種重要的電子設備,在多個領域發揮著至關重要的作用。其用途廣泛,涵蓋了科學研究、工業檢測、醫學診斷、雷達信號處理、通信調制以及自動化控制等多個方面。
    的頭像 發表于 08-12 17:25 ?2103次閱讀

    多通道任意發生器多路輸出測試中的應用

    通道輸出的靈活控制。 如何解決 : 方案:匹配一臺多通道任意發生器。 測試方案搭配: 方案:四通道任意發生器 測試儀器準備:測試儀器準備: 四通道
    的頭像 發表于 07-10 17:06 ?481次閱讀
    多通道<b class='flag-5'>任意</b>波<b class='flag-5'>發生器</b><b class='flag-5'>多路</b>輸出測試中的應用

    信號發生器的使用方法 信號發生器的幅值是有效值嗎

    表示方式以及相關概念。 一、信號發生器的分類 函數信號發生器 :產生正弦波、方波、三角波等基本波形。 任意波形發生器 :可以產生復雜的波形,如脈沖
    的頭像 發表于 06-03 10:56 ?4611次閱讀