微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 利用SmartFusion2的SoC的数据采集与交互系统应用设计

利用SmartFusion2的SoC的数据采集与交互系统应用设计

时间:03-14 来源:3721RD 点击:

1.3 FPGA的UART模块

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

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


图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].


图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函数删除网络,然后又去监听是否有新的网络存在并连接。


图6 软件设计流程图

以智能家居数据采集与交互为例,系统软件设置流程图如图6所示,首先是时钟和外设的初始化,再是以太网相关的初始化,包括MAC和PHY的初始化,IP的获取方式,设置MAC地址、IP地址、子网掩码、网关,设置传输的协议等。硬件层、传输层设置以后就是应用层,创建WebServer应用程序。此应用程序也是主应用程序,在FreeRTOS中的

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top