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

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

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

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

如何在i.MX RT1050使用FlexIO模塊模擬XY2-100振鏡通信協(xié)議接口

恩智浦MCU加油站 ? 來源:恩智浦MCU加油站 ? 2023-05-18 09:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、概述

本文介紹了如何使用i.MX RT系列芯片上的FlexIO實(shí)現(xiàn)XY2-100激光振鏡控制協(xié)議。FlexIO模塊是NXP Kinetis和i.MX RT系列MCU的片上外設(shè)。

FlexIO是一個(gè)高度可配置模塊,能夠模擬多種常見的通信協(xié)議:UARTI2C、SPI、I2S、SSI等,還可以使用FlexIO模擬實(shí)現(xiàn)XY2-100振鏡控制協(xié)議。

二、XY2-100振鏡協(xié)議簡介

XY2-100是數(shù)字化激光掃描振鏡的通信接口協(xié)議,被廣泛地使用在大多振鏡激光掃描控制系統(tǒng)。在振鏡的運(yùn)動(dòng)控制中XY2-100是數(shù)字化激光掃描振鏡的接口定義及通信協(xié)議。

XY2-100協(xié)議包括四路信號(hào)

SECLOCK(時(shí)鐘信號(hào))

SYNC(同步信號(hào))

CHANNELX(X 通道數(shù)據(jù))

CHANNELY(Y 通道數(shù)據(jù))

這四路信號(hào)是一種同步串行傳輸?shù)倪^程,數(shù)據(jù)時(shí)序圖如下所示。

1aef31c0-f51a-11ed-90ce-dac502259ad0.png

其中時(shí)鐘信號(hào)CLOCK為2MHz,其上升沿時(shí)位置數(shù)據(jù)被寫入,下降沿時(shí)位置數(shù)據(jù)被振鏡采樣。SYNC信號(hào)用于提供數(shù)據(jù)轉(zhuǎn)換的同步信息,當(dāng)它從低電平到高電平時(shí)第一位數(shù)據(jù)被發(fā)送,從高電平到低電平時(shí)最后一位校驗(yàn)位被發(fā)送;CHANNELX/Y是數(shù)據(jù)信號(hào),它有20位組成,其中C2、C1、C0是振鏡運(yùn)動(dòng)方向值,默認(rèn)值為001,D15—D0是16位的二進(jìn)制數(shù),用來控制振鏡偏轉(zhuǎn)的角度大??;最后一個(gè)bit(P)是偶校驗(yàn)位。 XY2-100協(xié)議的時(shí)鐘速率高達(dá)2MHz。如果使用普通MCU的GPIO以4MHz的頻率中斷響應(yīng)模擬實(shí)現(xiàn)協(xié)議,系統(tǒng)消耗資源過大,難以保證協(xié)議的實(shí)時(shí)性,影響激光振鏡的控制效果?,F(xiàn)有系統(tǒng)大部分采用CPLD/FPGA實(shí)現(xiàn)XY2-100協(xié)議,存在造價(jià)高,系統(tǒng)復(fù)雜的缺點(diǎn)。 使用NXPi.MX RT10xx系列MCU上的FlexIO模塊,可以方便實(shí)現(xiàn)XY2-100協(xié)議,并保證系統(tǒng)的實(shí)時(shí)性。

三、利用FlexIO模擬XY2-100

本節(jié)主要介紹如何使用FlexIO模擬XY2-100的主機(jī)協(xié)議,將會(huì)詳細(xì)闡述FlexIO模塊的相關(guān)配置項(xiàng)。

由于XY2-100數(shù)據(jù)格式與SPI接口類似,所以在FlexIO的配置上,XY2-100部分與模擬SPI相似。

可使用兩個(gè)FlexIO定時(shí)器、兩個(gè)Shifter移位器和四個(gè)引腳(FlexIO D5~D8)實(shí)現(xiàn)XY2-100協(xié)議接口。

FlexIO Timer0用于產(chǎn)生2MHz CLOCK時(shí)鐘信號(hào),Timer1用于產(chǎn)生19位的SYNC同步信號(hào)。Shifter0連接到CHANNEL_X引腳,Shifter1連接到CHANNEL_Y引腳,并在CLOCK的每個(gè)上升沿發(fā)送數(shù)據(jù)。用戶軟件實(shí)現(xiàn)中允許在中斷、輪詢和DMA模式下發(fā)送振鏡坐標(biāo)數(shù)據(jù)。

下圖顯示了FlexIO模擬XY2-100接口的內(nèi)部連接關(guān)系。

1b111ec0-f51a-11ed-90ce-dac502259ad0.png

Timer0配置為雙8位計(jì)數(shù)器,在觸發(fā)事件高電平時(shí)被使能,在比較事件到來時(shí)禁用。Timer0的觸發(fā)源連接到內(nèi)部Shifter0和Shifter1,作為這二個(gè)移位器的觸發(fā)時(shí)鐘源。Timer0的計(jì)數(shù)遞減源配置為FlexIO Clock時(shí)鐘,Shifter0和Shifter1移位時(shí)鐘則由來自Timer0的每一次計(jì)時(shí)輸出。Timer0 需要被配置為能夠被Shifter0的狀態(tài)標(biāo)志位觸發(fā),當(dāng)Shifter0寫入數(shù)據(jù)則使能Timer0開始工作。

在XY2-100協(xié)議中,由于傳輸頻率為2MHz,因此Timer0的Compare比較寄存器的值經(jīng)計(jì)算得到需配置為0x2702。

Timer1被配置為16位計(jì)數(shù)器模式,由Timer0觸發(fā)。Timer1的計(jì)數(shù)遞減源設(shè)置為觸發(fā)信號(hào)的兩個(gè)邊沿。由于XY2-100的同步信號(hào)為19位高電平,1位低電平,所以Timer1的Compare比較寄存器的值需配置為19 * 2。

Shifter0配置為Transmit模式,并在移位器時(shí)鐘的上升沿移位,使能移位器起始位并將其設(shè)置為邏輯低電平。通過FlexIO寄存器SHIFTBUFBIS[0]寫入CHANNEL_X的數(shù)據(jù)。

Shifter1配置為Transmit模式,并在移位器時(shí)鐘的上升沿移位,使能移位器起始位并將其設(shè)置為邏輯低電平。通過FlexIO寄存器SHIFTBUFBIS[1]寫入CHANNEL_Y的數(shù)據(jù)。

下面給出了在MIMXRT1050-EVK上實(shí)現(xiàn)XY2-100協(xié)議接口詳細(xì)的寄存器配置:

FlEXIO02.TIMCTL[0] = 0x01C30701

FlEXIO02.TIMCFG[0] = 0x00002220

FlEXIO02.TIMCMP[0] = 0x00002702

FlEXIO02.TIMCTL[1] = 0x03430603

FlEXIO02.TIMCFG[1] = 0x02102100

FlEXIO02.TIMCMP[1] = 0x00000026

FlEXIO02.SHIFTCTL[0] = 0x00030802

FlEXIO02.SHIFTCFG[0] = 0x00000030

FlEXIO02.SHIFTCTL[1] = 0x00030502

FlEXIO02.SHIFTCFG[1] = 0x00000030

四、XY2-100協(xié)議實(shí)際測試運(yùn)行

參照上面FlexIO的配置,以MIMXRT1050-EVK板為例進(jìn)行實(shí)際運(yùn)行測試。將四個(gè)XY2-100信號(hào)引腳連接到邏輯分析儀,運(yùn)行代碼后抓取i.MX RT1050的通信數(shù)據(jù),其波形如下圖所示。CHANNELX/Y數(shù)據(jù)與圖中的波形匹配,達(dá)到FlexIO模擬XY2-100的效果。

1b2ead64-f51a-11ed-90ce-dac502259ad0.png1b4d0b2e-f51a-11ed-90ce-dac502259ad0.png

小結(jié)

以上介紹了如何在i.MX RT1050使用FlexIO模塊來模擬XY2-100振鏡通信協(xié)議接口。通過FlexIO的硬件Timer定時(shí)器和Shifter移位寄存器可以大大減輕CPU內(nèi)核的負(fù)荷,滿足協(xié)議的實(shí)時(shí)性要求。 除了本文給出的Timer和Shifter的配置外,用戶也可以利用其它FlexIO配置模擬XY2-100協(xié)議接口,這個(gè)方法不是唯一的。

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

    關(guān)注

    28

    文章

    1028

    瀏覽量

    41129
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5433

    瀏覽量

    124263
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11073

    瀏覽量

    216835
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8990

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    深入淺出Cortex-M7——i.MX RT1050

    深入淺出Cortex-M7——i.MX RT1050
    發(fā)表于 03-06 08:39

    【大聯(lián)大品佳 NXP i.MX RT1050試用申請(qǐng)】語音識(shí)別評(píng)測

    項(xiàng)目名稱:語音識(shí)別評(píng)測試用計(jì)劃:申請(qǐng)理由本人有多年從事嵌入式系統(tǒng)/單片機(jī)軟件開發(fā)的經(jīng)驗(yàn),原計(jì)劃是想申請(qǐng)NXP i.MX RT1050這個(gè)板子參加今年的聯(lián)大杯“智能AI芯生活”設(shè)計(jì)大賽的,只是很可惜
    發(fā)表于 08-10 17:59

    【大聯(lián)大品佳 NXP i.MX RT1050試用申請(qǐng)】基于 NXP i.MX RT1050工業(yè)機(jī)器人開發(fā)

    項(xiàng)目名稱:基于 NXP i.MX RT1050工業(yè)機(jī)器人開發(fā)試用計(jì)劃:1,熟悉板子硬件,RT1050驅(qū)動(dòng)板子硬件,做GPIO測試,串口測試,SPI測試,IIC測試,PWM測試,每種出一片報(bào)告。
    發(fā)表于 08-10 18:23

    【大聯(lián)大品佳 NXP i.MX RT1050試用申請(qǐng)】i.MX RT1050 3D打印機(jī)控制器

    項(xiàng)目名稱:i.MX RT1050 3D打印機(jī)控制器試用計(jì)劃:申請(qǐng)理由本人在開源硬件行業(yè)有五年多的學(xué)習(xí)和開發(fā)經(jīng)驗(yàn),曾設(shè)計(jì)多款FDM,SLA,LCD 3D打印機(jī)控制板,參與公司3D打印機(jī)的開發(fā),對(duì)打
    發(fā)表于 08-10 18:23

    【大聯(lián)大品佳 NXP i.MX RT1050試用申請(qǐng)】使用NXP i.MX RT1050開發(fā)板設(shè)計(jì)一款低成本CAN數(shù)據(jù)采集儀

    項(xiàng)目名稱:使用NXP i.MX RT1050開發(fā)板設(shè)計(jì)一款低成本CAN數(shù)據(jù)采集儀試用計(jì)劃:目前的CAN數(shù)據(jù)采集儀通常使用的是CAN采集儀+上位機(jī)的方法,這種方案非常不便捷,需要帶電腦到現(xiàn)場去作業(yè)
    發(fā)表于 08-10 18:24

    i.MX RT1050平臺(tái)的相關(guān)資料推薦

    SylixOS 正式支持 i.MX RT1050平臺(tái)發(fā)布于2018年06月22日什么是 i.MXRT1050i.MX RT1050 是 N
    發(fā)表于 11-29 07:19

    i.MX RT1050的功耗和測量資料分享

    i.MX RT1050的功耗和測量
    發(fā)表于 12-12 07:23

    i.MX RT1050跨界處理器產(chǎn)品數(shù)據(jù)手冊

    i.MX RT1050跨界處理器(消費(fèi)級(jí))數(shù)據(jù)手冊
    發(fā)表于 12-12 07:03

    i.MX RT系列(例如 RT1050/1060)有多少個(gè)PWM通道?

    i.MX RT 系列(例如 RT1050/1060)有多少個(gè) PWM 通道? 我可以像在 KV58 MCU(兩個(gè) flexPWM 模塊)上做同樣的事情嗎?
    發(fā)表于 05-18 07:07

    【044】SylixOS 正式支持 i.MX RT1050平臺(tái)

    SylixOS 正式支持 i.MX RT1050平臺(tái)發(fā)布于2018年06月22日什么是 i.MXRT1050?i.MX RT1050 是 N
    發(fā)表于 11-19 12:51 ?14次下載
    【044】SylixOS 正式支持 <b class='flag-5'>i.MX</b> <b class='flag-5'>RT1050</b>平臺(tái)

    RT-Thread & NXP 發(fā)布 i.MX RT 系列 BSP 新框架

    前言i.MX RT 是 NXP 推出的跨界處理器系列。該系列下又包括 i.MX RT1020、i.MX
    發(fā)表于 12-07 13:06 ?2次下載
    <b class='flag-5'>RT</b>-Thread & NXP 發(fā)布 <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b> 系列 BSP 新框架

    移植Arm-2D到i.MX RT1050-EVKB并繪制圖形界面

    眾所周知,i.MX RT系列是MCU中的性能強(qiáng)者,超高的主頻、豐富的外設(shè)以及足夠大的存儲(chǔ)使其能輕松應(yīng)用于各類領(lǐng)域。其中,在圖像視頻方面,i.MX RT1050及以上系列,集成了PXP圖
    的頭像 發(fā)表于 07-12 10:05 ?2694次閱讀

    i.MX RT10xx使用FlexIO實(shí)現(xiàn)XY2-100控制協(xié)議

    本文介紹了如何使用i.MX RT系列芯片上的FlexIO實(shí)現(xiàn)XY2-100激光控制
    的頭像 發(fā)表于 05-18 09:21 ?6759次閱讀
    在<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>10xx使用<b class='flag-5'>FlexIO</b>實(shí)現(xiàn)<b class='flag-5'>XY2-100</b><b class='flag-5'>振</b><b class='flag-5'>鏡</b>控制<b class='flag-5'>協(xié)議</b>

    基于 NXP i.MX RT1050 的 3D 打印機(jī)方案

    MCU-Healer 是基于 NXP i.MX RT1050 做的 3D 打印機(jī)方案,該方案主控 MCU i.MX RT1050是一顆 Cortex-M7 內(nèi)核的高性能 MCU,主頻達(dá)
    的頭像 發(fā)表于 04-06 15:06 ?1653次閱讀
    基于 NXP <b class='flag-5'>i.MX</b> <b class='flag-5'>RT1050</b> 的 3D 打印機(jī)方案

    i.MX RT1050上如何實(shí)現(xiàn)雙大容量存儲(chǔ)(MSC)設(shè)備

    i.MX RT1050上如何實(shí)現(xiàn)雙大容量存儲(chǔ)(MSC)設(shè)備
    的頭像 發(fā)表于 10-30 17:08 ?933次閱讀
    在<b class='flag-5'>i.MX</b> <b class='flag-5'>RT1050</b>上如何實(shí)現(xiàn)雙大容量存儲(chǔ)(MSC)設(shè)備