ERTEC200P-2 PROFINET设备完全开发手册(4-1)

这篇具有很好参考价值的文章主要介绍了ERTEC200P-2 PROFINET设备完全开发手册(4-1)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ERTEC200P-2作为应用处理器,既可以单独使用,通过GPIO扩展实现基本的IO功能。也可以配合外部主机(例如单片机)实现更复杂的应用。ERTEC200P-2与外部主机接口的示意图如下。常用的接口包括UART,SPI,XHIF接口。从通讯速率来看,UART最低,XHIF最高。所以如果在主机和200P之间有大量的周期数据交换(例如伺服驱动器),建议使用XHIF。

ERTEC200P-2 PROFINET设备完全开发手册(4-1)

 评估板支持两种方式的主机接口:SPI和XHIF。由于UART和SPI属于常见的外设,使用起来比较简单,可以参考对应的代码,所以这里不做过多介绍。接下来重点介绍一下XHIF。

4.1 XHIF接口说明

外部的处理器可以使用XHIF以静态存储的方式访问芯片内部的地址空间。XHIF可以通过AHB总线访问EMC,APB… 等片上资源。一般情况下,可以把EMC(SDRAM)配置为XHIF访问地址空间,这样就可以通过XHIF与主机共享SDRAM中的数据。由于主机和200P会同时访问相同的片上资源,因此XHIF会通过插入等待或就绪(WAIT/RDY)信号控制读写访问的周期,因此在配合XHIF的CPU选型时,一定选则支持WAIT/RDY信号的CPU。

ERTEC200P-2 PROFINET设备完全开发手册(4-1)

首先,XHIF必须在芯片复位时通过CONFIG引脚使能和配置,因此需要在对应的配置管脚上添加上拉、下拉电阻使能和配置主机接口。

ERTEC200P-2 PROFINET设备完全开发手册(4-1) 

当前评估板的配置是:XHIF=on,16位模式,XHIF_XRD和XHIF_XWR分开,XHIF_XRD高有效。模式的选择需要和主机的外设一致。需要注意的是,XHIF_XRDY是开漏输出,因此需要根据其有效方式添加上拉、下拉电阻。一般情况下XHIF_XRDY低有效加下拉电阻、高有效加上拉电阻。参考设计板采用的模式为高有效加上拉电阻。如果主机为其他型号单片机可以参考如下时序:

读操作,XHIF_XRDY时序:

ERTEC200P-2 PROFINET设备完全开发手册(4-1)

 ERTEC200P-2 PROFINET设备完全开发手册(4-1)

 

接下来需要初始化XHIF,在200P用户程序中指定SDRAM中的一个区域用于XHIF访问,

static PNIO_UINT16    xhif_mem[XHIF_SIZE_WORD] __attribute__((section(".xhif_mi_cyclic_in_buf")));

".xhif_mi_cyclic_in_buf"是在target.ld文件中定义的(注意:主机接口的起始地址必须对齐到0x100000)。这样xhif_mem的起始地址就被编译器分配到0x21000000

接下来初始XHIF寄存器,由于评估板已经将XHIF_PAGE[0-2]固定配置为011b

ERTEC200P-2 PROFINET设备完全开发手册(4-1)

因此单片机访问的是PAGE3。当然,自己设计电路时可以任意选择PAGE。XHIF初始化函数为:

static void xhifInit(void)

在该函数中,首先使能REMAP REG32(0x4000F030) = 0x01; REMAP之后SDRAM会被重新映射到0x00000000,这样0x21000000起始的数据与0x01000000起始的数据是一致的。通过实验表明,只有访问REMAP之后的数据才能保证XHIF的数据更新(具体原因不明,芯片手册中也没写)。通过XHIF_0_P3_OF寄存器配置页面3(PAGE3)的起始地址。例如:

REG32(U_HOSTIF__XHIF_0_P3_OF) = (PNIO_UINT32)xhif_mem;

这样,200P通过读写0x01000000起始的数据,就可以实现与单片机共享数据。

单片机STM32F407通过FSMC访问XHIF,具体配置如下下图,注意Wait信号的使能。其中读写时间要与200P数据手册保持一致。

ERTEC200P-2 PROFINET设备完全开发手册(4-1)

这里FSMC使用片选信号NE1, 起始地址为0x60000000。单片机读写0x60000000相当于读写200P 0x21000000。200P的用户程序通过访问0x01000000也可以读写0x21000000。这样就实现了在两个处理器之间共享程序。

ERTEC200P-2 PROFINET设备完全开发手册(4-1) 

在示例程序中,XHIF前32个WORD(64 bytes)用于存放输出数据,后32个WORD (64 bytes)用于存放输入数据。需要注意的是,尽管当前XHIF为16位模式,在单片机写操作时,必须对齐32位才能生效。举了例子:uint16_t xhif_buffer_out_data[32]映射到主机接口,如果依次执行以下程序:

xhif_buffer_out_data[0] = 0x0001;
xhif_buffer_out_data[1] = 0x0002;
xhif_buffer_out_data[2] = 0x0003;

如果执行完第三行,其实0x0003并没有写入到SDRAM,0x0001和0x0002会被写入到SDRAM。如果再执行:xhif_buffer_out_data[3] = 0x0004; 0x0003 0x0004才会被写入到SDRAM。因此在开发时一定要注意写操作对齐的问题。

在200P上,示例程序在通讯结束回调函数(PnUsr_cbf_IoDatXch)中通过调用IODataToXHIF 将周期输出数据缓存 OutData[2][1] (对应64bytes output) 拷贝到xhif_mem_remap [0 - 63]  (xhif_mem_remap 类型是byte[]);并且将xhif_mem_remap [64 - 127] 拷贝到周期输入数据缓存InData [1][1] (对应64bytes input)

这样,在407上,单片机程序就可以从xhif_buffer[ 0 – 31 ] (xhif_buffer 类型是 short[]) 读取输出数据,更新到外设的输出上(GPIO 或者 DAC);或者读取外设(GPIO或ADC)的输入值写入到xhif_buffer[ 32 –  63]。举例来说:在接收到EXIT0(连接在200P的同步输出SYNC上)中断后,中断服务程序将数据从xhif_buffer读出,然后将xhif_data[0] bit 0-7 (OutData [2][1][0]) 设置为GPIOG的输出。

for(tmpIdx = 0 ; tmpIdx < 32 ; tmpIdx++)
{
   xhif_data[tmpIdx] = xhif_buffer[tmpIdx];
   delay_clk(5);
}
set_reg = xhif_data[0];
set_reg <<= 8;
set_reg &= 0x0000ff00;
GPIOG->ODR = set_reg;

 从原理图上看:

ERTEC200P-2 PROFINET设备完全开发手册(4-1)

ERTEC200P-2 PROFINET设备完全开发手册(4-1) 

 

LED分别对应 GPIOG8 – GPIOG15,因此PLC通过写入slot 2 sub 1 字节0,即可设置LED的输出。

同理, 在接收到EXIT0中断后,中断服务程序读取GPIOC的DI输入,将输入值写入到xhif_buffer[32] (对应InData [1][1][0])

input_reg = GPIOC->IDR;
input_reg &= 0xff;
xhif_data[32] = input_reg;
for(tmpIdx = 32 ; tmpIdx < 64 ; tmpIdx++)
{
  xhif_buffer[tmpIdx] = xhif_data[tmpIdx];
  delay_clk(5);
}

 从原理图上看:

ERTEC200P-2 PROFINET设备完全开发手册(4-1)

ERTEC200P-2 PROFINET设备完全开发手册(4-1) 

拨码开关分别对应 GPIOC0 – GPIOC7,因此拨码开关的拨码值,可以通过slot 1 sub 1 字节0由PLC读取。这样,通过XHIF共享数据,实现了主机外围设备与200P的数据交互。

下一篇:XHIF接口实验文章来源地址https://www.toymoban.com/news/detail-410265.html

到了这里,关于ERTEC200P-2 PROFINET设备完全开发手册(4-1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【完全开源】小安派-Cam-D200(AiPi-Cam-D200)200W摄像头开发板

    AiPi-Cam-D200 是安信可科技基于AiPi-Cam-D开发板 开发的一款兼容200W 摄像头的开发板,相当于给AiPi-Cam-D 做了升级迭代。 摄像头型号:GC2145 摄像头尺寸:13*13*21.57 mm(长 宽 高,不含排线) 像素大小:1600*1200 视角:140° 焦距:2米 功耗:180mA(200uA) 接口:DVP(24Pin间距0.5mm) IO名称 功能

    2024年02月19日
    浏览(46)
  • ​Profinet转EtherNET/IP从站连接欧姆龙plc与西门子200smart通讯的配置方法​

    本案例是200smart plc与欧姆龙plc进行通讯的方法,远创智控YC-PNM-EIP网关可以读写全系列西门子 PLC 数据。一般不需要 PLC 里做特殊的设置。只需要把 PLC 的变量地址配置到网关中,网关就可以读取指定地址的数据或者写数据到指定的地址。 PLC 通过网线连接到网关,设备 PLC 和网

    2024年02月08日
    浏览(44)
  • 笑死!这个插件太绝了;AI开发者如何稳赚这一波;MidJourney完完完全手册;零经验开发儿时3D游戏 | ShowMeAI日报

    👀 日报周刊合集 | 🎡 生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 最近一段时间,百度文心大模型团队内的研发人员受到其他公司的疯狂追捧,有 3 年左右相关经验的员工,可以直接给到原先年薪的 2 倍。 一名长期跟踪AI人才的猎头证实这一消息,表示百万年薪

    2023年04月09日
    浏览(65)
  • 移远4G模块 EC200x EC600 系列AT命令手册

    本文是译至移远官方文档 xxx_AT_Commands_Manual 这款芯片的AT命令集是遵循国际标准3GPPTS27.007、3GPPTS27.005以及Quectel开发的专用AT命令的组合。 AT命令要以前缀的“AT”或“at”为每个命令行的开头,以回车符号为每行结尾。命令后面通常会有一个响应,其中包括“”。在本文档中,

    2024年02月09日
    浏览(51)
  • 十分钟玩转3D绘图:WxGL完全手册

    WxGL是一个基于PyOpenGL的跨平台三维数据快速可视化工具包,提供类似Matplotlib风格的应用方式。WxGL也可以集成到wxPython或PyQt6中实现更多的功能和控制。 WxGL提供了一套简洁易用、对用户友好的API,将OpenGL的复杂概念封装起来,使得用户可以更加专注于数据的处理,而无需在3

    2024年01月22日
    浏览(74)
  • 新机开荒攻略及新手电脑使用指南不完全手册:Windows 电脑

    介绍一下 Windows 的新机开荒、使用指南、软件推荐。 如果您没接触过电脑请先于 Bilibili 搜索零基础电脑入门教学,学习电脑基本操作。 我这里介绍的内容较多,有些功能的作用也不是必须,所以您可以酌情学习。 卸载多余的无用UWP应用 您可以使用 Geek Uninstaller工具卸载不需

    2024年02月04日
    浏览(50)
  • 【华为OD统一考试B卷 | 200分】最长的完全交替连续方波信号(C++ Java JavaScript python)

    在线OJ 已购买本专栏用户,请私信博主开通账号,在线刷题!!! 运行出现 Runtime Error 0Aborted,请忽略 华为OD统一考试A卷+B卷 新题库说明 2023年5月份,华为官方已经将的 2022/0223Q(1/2/3/4)统一修改为OD统一考试(A卷)和OD统一考试(B卷)。 你收到的链接上面会标注A卷还是B卷。

    2024年02月11日
    浏览(37)
  • Hi3798MV200 恩兔N2 NS-1 (一): 设备介绍和刷机说明

    Hi3798MV200 恩兔N2 NS-1 (一): 设备介绍和刷机说明 Hi3798MV200 恩兔N2 NS-1 (二): HiNAS海纳思使用和修改 Hi3798MV200 恩兔N2 NS-1 (三): 制作 Ubuntu rootfs Hi3798MV200 恩兔N2 NS-1 (四): 制作 Debian rootfs 恩兔N2是一个家庭存储的系列产品, NS-1 是其中体积最小的一个型号, 基于海思Hi3798MV200. 和其他设备相

    2024年02月14日
    浏览(66)
  • 设备快线客户端软件V1.0用户手册

    1.前言 欢迎使用设备快线客户端软件产品。设备快线客户端软件简称DYClient,DYClient客户端是东用科技有限公司推出的一款用于远程维护的控制软件,主要为客户远程访问现场终端设备提供便捷的接入服务,并且通过DYClient客户端软件用户可以非常方便快捷的访问所有分布现场的

    2024年02月06日
    浏览(85)
  • 快速上手MATLAB:科研、工程、数据分析,MATLAB入门(上)教你基础知识!+分享MATLAB完全学习手册资料(视频+课件+代码

    1、《MATLAB完全学习手册(视频+课件+代码)》 2、《MATLAB入门》 3、《详解MATLAB在科学计算中的应用》 4、《案例二 MATLAB与Excel交互》 5、《MATLAB初学者教程 MATLAB编程-菜鸟入门(清晰版)》 6、《MATLAB常用函数参考 MATLAB函数汇总 精通MATLAB》 7、等等。。。。 编程语言基础:M

    2024年02月06日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包