快捷搜索:  as  www.ymwears.cn  test  1111  as aNd 8=8

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

小序

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所示。

图1 系统设计布局框图

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

1.1 PHY模块

PHY即物理层(Physical Layer)。物理层协议可定义电气旌旗灯号标准、连线的状态、时钟旌旗灯号的要求、数据编码的款式和数据传输所用的连接器等。物理层经由过程一个定义好的接口与数据链路层进行通信。比如MAC可以使用标准的介质无关性接口( MII接口)与PHY进行数据互换通信。PHY还有个紧张的功能便是实现以太网的CSMA/CD部分功能,这是硬件上实现的。它可以检测到收集链路上是否稀有据正在传送,假如稀有据在传送中则进行等待,当检测到收集余暇,就再等待必然的光阴(不合的PHY会有不合)后对数据进行传送。假使两块网卡可巧是同时发送数据,这将造成冲突,这时PHY内部的冲突检测布局可以检测到冲突的发生,然后两边各自等待必然的光阴进行重发数据。

图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速率。

图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所示。

图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中的优先级是最高的,客栈大年夜小也是最大年夜的。WebServer义务便是与网页通信,实现网页的刷新。义务的调整和切换时经由过程准时器实现,10 ms为一个光阴片,调整函数为vTaskStartScheduler函数实现。

3、结语

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

责任编辑:gt

您可能还会对下面的文章感兴趣: