0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FLASH架构实现SoC数据采集与交互系统的设计与解决方案

电子设计 来源:网络整理 作者:佚名 2020-02-04 08:07 次阅读

引言

Internet的快速发展和成功促进了以太网(Ethernet)技术的发展和应用的扩展,所涉及的领域十分广泛,如传统的工业控制信息家电、智能家居、安全监控、楼宇自动化、医疗、环境监测等。大多数的数据采集设备的通信接口符合UART通信标准。这种通信方式的数据传输半径十分有限,并不能满足远距离传输的需求,并且不能接入Internet.因此数据的交互接入Internet就显得非常重要了。

1、系统的总体方案及各主要模块设计

系统以Microsemi(Actel)公司的基于FLASH架构的SoC FPGA产品Smart Fusion2器件为核心。系统通过Fabric架构实现多路UART对外相应数据进行采集,进行并/串转换写入Fabric的双端口RAM.SmartFusion2的ARM Cortex-M3子系统经过AHB/APB总线矩阵以AHB/APB方式访问Fabric的RAM,将得到的数据经过Ethernet以网页的形式在PC上显示。反之,以同样的路径将主控的指令传输到外部的终端设备。PC机端以网页形式实现数据交互。网页存放于SmartFusion2内部FLASH,内核Cortex-M3基于实时操作系统(FreeRTOS)管理任务,IP采用静态方式,内核Cortex-M3与Fabric采用AHB方式通信.系统设计结构框图如图1所示。

基于FLASH架构实现SoC数据采集与交互系统的设计与解决方案

图1 系统设计结构框图

系统硬件的设计可分为三个主要模块,分别为PHY物理层模块,SoC的Cortex-M3内核及FPGA系统,UART模块的数据采集系统。

1.1 PHY模块

PHY即物理层(Physical Layer)。物理层协议可定义电气信号标准、连线的状态、时钟信号的要求、数据编码的格式和数据传输所用的连接器等。物理层通过一个定义好的接口与数据链路层进行通信。比如MAC可以利用标准的介质无关性接口( MII接口)与PHY进行数据交换通信。PHY还有个重要的功能就是实现以太网的CSMA/CD部分功能,这是硬件上实现的。它可以检测网络链路上是否有数据正在传送,如果有数据在传送中则进行等待,当检测到网络空闲,就再等待一定的时间(不同的PHY会有不同)后对数据进行传送。倘若两块网卡碰巧是同时发送数据,这将造成冲突,这时PHY内部的冲突检测结构可以检测到冲突的发生,然后两边各自等待一定的时间进行重发数据。

基于FLASH架构实现SoC数据采集与交互系统的设计与解决方案

图2 PHY电路连接图

PHY的电路图连接图如图2所示。KSZ8051采用MII与SmartFusion2相连,由于MII兼容RMII接口,因此程序也可配置为RMII模式。Management采用2个引脚连接,分别为MDC和MDIO,MII的时钟由PHYKSZ8051提供,KSZ8051的时钟来自外部25 MHz晶振。媒体连接采用RJ 45,兼容10 Mb/s和100 Mb/s.

1.2 SoC中的Cortex-M3模块

系统使用Cortex-M3中的MAC模块,如图3所示。

通过AHB控制Ethernet MAC模块,对于MAC的配置是使用其内部的寄存器,可以配置不同的接口模式,不同的速度。本系统配置为MII接口,100 Mb/s速度。

基于FLASH架构实现SoC数据采集与交互系统的设计与解决方案

图3 Cortex-M3的MAC

MAC(Media Access Control,媒体访问控制子层协议),主要负责控制和连接物理层。在发送数据的时候,MAC协议可以事先判断现在是否可以发送数据,如果可以发送则将给数据加上一些控制信息,最终将数据及附带的控制信息以规定的格式发送到物理层;在接收数据的时候,MAC协议首先判断输入的信息是否发生传输错误,如果没有错误,则去掉控制信息发送至逻辑链路层(LLC)层。以太网MAC协议由IEEE 802.3以太网标准定义。

PHY与MAC的接口方式有多种,如:

MII,RMII,SMII,SSMII,GMII,SGMII,TBI等。目前常见的PHY都提供标准的MII接口,RMII信号是对PHY内部的MII的信号进行编码和解码,这就是说支持MII接口的PHY内部都含有RMII信号,也就是支持RMII接口。具体使用何种接口的PHY则必须根据MAC芯片对应的功能和接口的标准来决定。

采用FreeRTOS实时操作系统管理整个系统的运行。FreeRTOS使用Cortex-M3内核的定时器以10 ms时间片进行任务的调度和切换。创建WebServer进程和网页进行通信,网页编辑语言HTML是不需要编译的,因此将需要显示的数据全部发送给网页。这些数据存储在FLASH中,目前测试是存储在片内FLASH,网页发来的控制数据进行实时的处理。网页的数据需要用LwIP协议栈进行打包,LwIP协议栈是把所有的协议封装到一个单一的过程(进程)中,从而与操作系统内核分开。应用程序可能也驻留在LwIP处理过程中,或者在单独的过程中。TCP/IP栈和应用程序之间的通信可以通过函数调用实现,也可以通过更为抽象的API[4-5].本设计的应用层使用常用的IPv4协议,DHCP和静态IP都进行测试,传输层和网络层使用TCP/IP.

打包之后的需要介质层MAC进行处理,此MAC为Cortex-M3内核自带的,支持多种MAC接口,本设计采用MII接口,所采用的PHY芯片也是MII接口,采用Micrel公司的KSZ8051,支持MII、RMII接口,10 Mb/s和100Mb/s传输速度,设计时采用100Mb/s传输。

网页的数据需要实时更新,设计网页每隔500 ms发一次更新的命令,Cortex- M3再将更新的数据发送给网页。而这些数据来自APB3上,Cortex-M3通过FIC_0和APB3进行双向通信,从而发送和接收数据。FPGA中Fabric和APB3进行双向通信,数据存储在双端口SRAM中,多路UART和SRAM进行双向通信。SRAM在系统起缓存的作用,用来解决两端读写速度的不同。

而对于UART的数据也定义了协议,这些协议是区分数据的格式和内容。对于UART的个数可以进行增加,系统UART的同步使用FPGA硬件实现,不受个数的限制。

1.3 FPGA的UART模块

本系统的主要功能是UART数据的采集与交互,使用网页进行人机交换,实现数据的实时更新和控制,并且把采样点的采样时间也传输过去,使用户知道数据的具体时间,便于以后的查看。

在本设计中需要在SmartFusion2片内的FPGA部分设计多路串口数据采集与存储的控制器,实现对终端的多路串口数据进行采集。使用的多路串口数据采集方法是在SmartFusion2片内的FPGA中设计一个UART控制器去采集多路数据[6].控制器并不完成串转并控制,而是实时监测多路串口数据状态,并将多路串行数据实时切换送入RAM控制器,串行的数据经过RAM控制器串行的进入RAM中去。如图4所示。

基于FLASH架构实现SoC数据采集与交互系统的设计与解决方案

图4 串口复用数据采集

当多路串口中任何一路,任何时候到来数据的时候,UART控制器都能感知这次串行数据,并开通相应的信道,将某一路的串口数据送到RAM控制器。然后RAM控制器将该信道的串行数据写入RAM中。这样就可以完成对多路串口数据的采集工作。

在该方案中,需要在SmartFusion2片上的FPGA内设计一个UART控制器作为查询机制中的主机,各个终端串口作为从机,提供串口数据。主机会定时的在SEL总线上发出从机的片选信号,用于选通从机设备。当从机被选中之后,从机自己会做出判断,如果该从机有数据需要发送,则该从机立刻将串行的数据发出。如果从机没有数据需要发送,则从机对该选择信号SEL不做任何反应,定时时间到,主机会自动的去选通下一路从机,从机工作原理与之类似。这样的做法同样可以完成对多路串口数据的采集工作。

2、系统软件设计

本设计采用FreeRTOS操作系统,通过创建WebServer进程实现数据的交互。在初始化完成后,执行WebServer进程,WebServer进程发送网页的数据、更新网页的数据、得到采集的数据。而关于以太网的协议则使用LwIP协议栈实现。对于硬件层则使用Cortex-M3内部的MAC和外部的PHY进行传输。实现物理层的传输[7].因此本设计的思路是发送接收数据给网页和接收发送APB3上对应的地址的数据。将UART的数据格式和网页HTTP数据格式互换。

软件设计框图如图5所示,WebServer进程和网页进行通信,通信的协议采用LwIP协议,对于LwIP协议使用其中的IPv4应用层,使用TCP/IP传输,DHCP动态获取IP,数据链路层使用内部的MAC,采用100 Mb/s的MII接口和PHY通信,PHY在物理层上和PC机通信[8].

基于FLASH架构实现SoC数据采集与交互系统的设计与解决方案

图5 软件设计框图

采用自动连接的方式与以太网相连,对于HTTP数据采用监听的方式,有HTTP数据则执行相应的操作。在网页上显示实时的日期和时间,这个日期和时间不是来自PC机的,而是来自SmartFusion2的,能够达到显示数据的采样时间,方便用户查看和保存带有时间的数据。

以太网的初始化首先是MAC的初始化,将MAC初始化为MII接口,半字节,100 Mb/s模式。MAC初始化后就是对于协议的选择,本系统选择TCP/IP协议,通过tcpip_input调用初始化网络的配置。对于网络的配置,首先是MAC地址、IP地址、网关、子网掩码的配置(如果为DHCP则只有MAC地址有效),可以配置为静态IP和DHCP两种模式。静态IP使用netif_set_up函数,DHCP使用dhcp_star函数来开始。

WebServer是系统的主任务,负责网页和APB3上数据的交互。首先是使用netconn_bind函数新建一个80端口(HTTP)的网络,建立好后就一直处于监听状态的netconn_listen函数。

有网络连接时则发送相应的数据。如果有网页打开数据的请求,则开始发送网页的数据头和主界面的数据,同时将网页的运行的程序也发送过去,这样内核就可以方便和网页进行通信。

对于网页的刷新和数据请求命令都是已经发送给网页了,如果有网页的刷新请求则将更新的检测数据和日期时间数据发送给网页。有点击控制命令,处理器则马上响应,将控制命令转换并发送给APB3,也就发送给了UART.当然,这里面所有的数据都是加了相应的通信协议。

如发送数据给网页时则需要使用netconn_write函数,首先是网页数据头,然后是相应的数据。如果无网络连接、无网页请求、请求完成等都是使用netconn_close函数关闭网络,使用netbuf_delete函数删除网络,然后又去监听是否有新的网络存在并连接。

基于FLASH架构实现SoC数据采集与交互系统的设计与解决方案

图6 软件设计流程图

智能家居数据采集与交互为例,系统软件设置流程图如图6所示,首先是时钟和外设的初始化,再是以太网相关的初始化,包括MAC和PHY的初始化,IP的获取方式,设置MAC地址、IP地址、子网掩码、网关,设置传输的协议等。硬件层、传输层设置以后就是应用层,创建WebServer应用程序。此应用程序也是主应用程序,在FreeRTOS中的优先级是最高的,堆栈大小也是最大的。WebServer任务就是与网页通信,实现网页的刷新。任务的调度和切换时通过定时器实现,10 ms为一个时间片,调度函数为vTaskStartScheduler函数实现。

3、结语

本文利用源代码开放的TCP/IP协议栈LwIP和简单实用的操作系统FreeRTOS软件平台和SmartFusion2的硬件平台构建了基于SoC的数据采集与交互系统,完成设备数据信息的采集及处理并实现远程数据交流与共享。通过实际运行测试,系统性能稳定可靠,具有一定推广使用价值。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • soc
    soc
    +关注

    关注

    38

    文章

    4034

    浏览量

    217277
  • 数据采集
    +关注

    关注

    38

    文章

    5574

    浏览量

    113201
  • 智能家居
    +关注

    关注

    1924

    文章

    9413

    浏览量

    182786
收藏 人收藏

    评论

    相关推荐

    SoC FPGA的数据采集如何解决与系统交互问题

    。大多数的数据采集设备的通信接口符合 UART 通信标准。这种通信方式的数据传输半径十分有限,并不能满足远距离传输的需求,并且不能接入 Internet. 因此数据交互接入 Inte
    发表于 03-02 16:18 1281次阅读
    <b class='flag-5'>SoC</b> FPGA的<b class='flag-5'>数据采集</b>如何解决与<b class='flag-5'>系统</b>的<b class='flag-5'>交互</b>问题

    工业能源采集及监管系统数据采集及传输方案

    、城市热/水/燃气管网监测等;欢迎与硬件厂商、自动化工程公司共同合作,为客户提供工业数据采集、监测、分析应用的一体解决方案。  欢迎访问http://www.bohaidata.com或致电0411-62906166Mob: *** 咨询。  在线咨询QQ:1996599
    发表于 05-29 10:55

    高速数据采集卡的中子检测解决方案

    高速数据采集采集光电倍增管输出的电脉冲信号。2) 初步的中子检测高速数据采集实现现场搭建时,高速数据采集部分选择了北京坤驰科技有限公司的一
    发表于 03-28 15:11

    基于FPGA与SRAM数据采集系统设计

    24期摘  要:传统的数据采集系统大都是由ARM+DSP实现的,虽然DSP的优势在于数据处理,但是随着FPGA技术的发展,很多FPGA已经可以取代DSP的作用了。尤其是在高速实时的
    发表于 05-09 12:09

    工厂生产数据采集系统解决方案及应用

    工厂!工厂生产数据采集系统架构图 二、工厂生产数据采集系统解决方案第一步:工厂现场调研 当匠兴科
    发表于 08-02 16:14

    怎样通过SoC实现数据采集系统

    怎样通过SoC实现数据采集系统
    发表于 05-12 07:00

    请问怎样去设计一种数据采集交互系统

    怎样去设计数据采集交互系统的软件部分?怎样去设计数据采集交互系统的硬件部分?
    发表于 05-24 06:55

    基于无线传输的数据采集系统及智能管理

    针对传统分布式数据采集系统数据传输上存在的困难,提出一种基于SMS 短信交互的无线传输解决方案。应用嵌入TC35i 模块,通过GSM 公共
    发表于 01-18 14:21 19次下载

    一种新型数据采集与监控系统实现

    文章根据 物联网 的三种应用架构并结合数据采集与监控系统的体系结构,设计了一种新型数据采集与监控系统方案
    发表于 09-27 11:25 2230次阅读
    一种新型<b class='flag-5'>数据采集</b>与监控<b class='flag-5'>系统</b>的<b class='flag-5'>实现</b>

    远程数据采集交互系统设计

    为了提高大型实验设备的利用率,在此提出利用Matlab、数据库、FPGA和服务器等软硬件设施,实现远程实验系统数据采集方案。该
    发表于 05-17 09:41 2210次阅读
    远程<b class='flag-5'>数据采集</b>与<b class='flag-5'>交互</b><b class='flag-5'>系统</b>设计

    完整传感器数据采集解决方案简化工业数据采集系统设计

    完整传感器数据采集解决方案简化工业数据采集系统设计
    发表于 01-04 17:41 0次下载

    基于FPGA高速数据采集解决方案

    基于FPGA高速数据采集解决方案,下来看看
    发表于 05-11 09:46 13次下载

    基于PXI架构的高速数据采集系统设计_黄宇

    基于PXI架构的高速数据采集系统设计_黄宇
    发表于 02-07 15:17 6次下载

    如何实现PLC数据采集与MES系统的通信交互

    生产管理是设备制造商迈向数字化转型的重要一步。 物通博联工业智能网关能够实现PLC设备的数据采集并于MES系统进行通信交互,以下介绍工业智能网关的特点和优势,以及如何借助其功能
    的头像 发表于 10-10 14:02 1509次阅读
    如何<b class='flag-5'>实现</b>PLC<b class='flag-5'>数据采集</b>与MES<b class='flag-5'>系统</b>的通信<b class='flag-5'>交互</b>

    网关数据采集解决方案

    数据采集的高效性、准确性和安全性。 一、网关数据采集解决方案概述 本解决方案主要围绕网关设备展开,通过优化数据采集流程、提升数据传输效率和确
    的头像 发表于 03-08 16:05 465次阅读
    网关<b class='flag-5'>数据采集解决方案</b>