一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于EMS的物联网系统的制作方法

2021-10-24 10:29:00 来源:中国专利 TAG:联网 用于 系统 新能源 ems

用于ems的物联网系统
技术领域
1.本发明涉及新能源技术领域,尤其涉及用于ems的物联网系统。


背景技术:

2.随着光伏技术的发展,越来越多的家庭安装光伏发电装置,该光伏发电装置不仅能够给家庭提供电能,还能够将多余的电能输送到电网中,即向电网售电。
3.光伏发电装置通常包含有储能系统和能量管理系统(ems,energy management system),该储能系统能够将多余的电能存储起来,且还能够根据需要向家用电器和/或电网输送电能;能量管理系统通常具有以下功能:数据采集和监控、自动发电控制、经济调度控制、电力系统状态估计和安全分析等。在实际中,为了便于对能量管理系统进行优化和改进,厂商通常都会设置有一个服务器,该服务器能够收集每个能量管理系统所发送的信息等。为了节约成本,通常都是使用一个嵌入式的ems终端设备来运行该能量管理系统。
4.为了节约成本,该服务器通常为一个云服务器,其中,阿里云是一个比较有实力的云服务厂商,在使用部署于阿里云的服务器时,通常都是在服务器和ems终端设备上都安装有c

sdk软件包,该c

sdk模块是基于tcp(transmission control protocol,传输控制协议)协议的。于是,服务器和ems终端设备都可以通过c

sdk规定的协议进行通信,但是,对于某些ems终端设备来说,其运行的操作系统(例如,ucos等)中不适配c

sdk软件包。
5.因此,如何让这些操作系统适配c

sdk软件包,就成为一个亟待解决的问题。


技术实现要素:

6.有鉴于此,本发明的主要目的在于提供一种用于ems的物联网系统。
7.为达到上述目的,本发明的技术方案是这样实现的:一种用于ems的物联网系统,包括:ems终端设备和部署于阿里云的服务器,所述ems终端设备和服务器通过互联网通信;所述ems终端设备包括:处理器、网卡、第一c

sdk模块和ems客户端模块,所述处理器与网卡电连接;所述云服务器包括:第二c

sdk模块和ems服务器模块;所述处理器用于:在确定ems客户端模块需要向所述云服务器发送第一数据时,控制第一c

sdk模块处理第一数据得到第一mqtt数据,并控制网卡基于tcp协议、将第一mqtt数据发送给服务器;所述服务器用于:基于tcp协议、接收所述第一mqtt数据,并控制第二c

sdk模块处理第一mqtt数据得到第一数据,并控制所述ems服务器端模块处理第一数据。
8.作为本发明实施例的一种改进,所述服务器还用于:在确定ems服务器端模块需要向所述终端设备发送第二数据时,控制第二c

sdk模块处理第二数据得到第二mqtt数据,基于tcp协议、将第二mqtt数据发送给所述网卡;所述处理器还用于:控制所述网卡基于tcp协议,接收第二mqtt数据,控制第一c

sdk模块处理第二mqtt数据、并得到第二数据,控制第一c

sdk模块处理第二数据。
9.作为本发明实施例的一种改进,所述处理器为mcu,所述网卡为w5500芯片;所述mcu中的scsn引脚与w5500芯片的scsn引脚电连接,所述mcu中的sclk引脚与w5500芯片的
sclk引脚电连接,所述mcu中的mosi引脚与w5500芯片的mosi引脚电连接,所述mcu中的miso引脚与w5500芯片的miso引脚电连接。
10.作为本发明实施例的一种改进,所述“控制网卡基于tcp协议、将第一mqtt数据发送给服务器”具体包括:设置定时器,所述定时器会在预设时间之后超时;控制网卡将第一mqtt数据转换成若干tcp数据包,持续将所述若干tcp数据包发送给所述服务器;在所述若干tcp数据包被发送完、且所述定时器处于未超时状态,向所述处理器反馈发送成功的信息;在所述若干tcp数据包未被发送完、且所述定时器处于超时状态,向所述处理器反馈发送失败的信息。
11.作为本发明实施例的一种改进,所述ems终端设备上运行的操作系统是ucos。
12.作为本发明实施例的一种改进,所述服务器上运行的操作系统是linux。
13.作为本发明实施例的一种改进,所述处理器和网卡之间使用spi通信协议。
14.本发明实施例所提供的控制系统具有以下优点:本发明实施例公开了一种用于ems的物联网系统,包括ems终端设备和部署于阿里云的服务器,ems终端设备包括:处理器、网卡、第一c

sdk模块和ems客户端模块,处理器与网卡电连接;服务器包括:第二c

sdk模块和ems服务器模块;处理器用于:在确定ems客户端模块需要向服务器发送数据时,控制第一c

sdk模块处理数据得到mqtt数据,并控制网卡基于tcp协议、将mqtt数据发送给服务器;服务器用于:基于tcp协议、接收mqtt数据,并控制第二c

sdk模块处理mqtt数据得到数据,并控制ems服务器端模块处理数据。该ems终端设备能够和服务器进行网络通信。
附图说明
15.图1为实施例提供的物联网系统的结构示意图;
16.图2为实施例中mcu和w5500芯片的连接关系图。
具体实施方式
17.以下将结合附图所示的实施方式对本发明进行详细描述。但该实施方式并不限制本发明,本领域的普通技术人员根据该实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
18.以下描述和附图充分地示出本文的具体实施方案,以使本领域的技术人员能够实践它们。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本文的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。本文中,术语“第一”、“第二”等仅被用来将一个元素与另一个元素区分开来,而不要求或者暗示这些元素之间存在任何实际的关系或者顺序。实际上第一元素也能够被称为第二元素,反之亦然。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的结构、装置或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种结构、装置或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的结构、装置或者设备中还存在另外的相同要素。本文中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
19.本文中的术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水
平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本文和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。在本文的描述中,除非另有规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
20.本发明实施例提供了一种用于ems的物联网系统,如图1,包括:
21.ems终端设备1和部署于阿里云的服务器2,所述ems终端设备1和服务器2通过互联网通信;所述ems终端设备1包括:处理器11、网卡12、第一c

sdk模块13和ems客户端模块14,所述处理器11与网卡12电连接;所述服务器2包括:第二c

sdk模块21和ems服务器模块22;所述处理器11用于:在确定ems客户端模块14需要向所述服务器2发送第一数据时,控制第一c

sdk模块13处理第一数据得到第一mqtt数据,并控制网卡12基于tcp协议、将第一mqtt数据发送给服务器2;所述服务器2用于:基于tcp协议、接收所述第一mqtt数据,并控制第二c

sdk模块21处理第一mqtt数据得到第一数据,并控制所述ems服务器端模块22处理第一数据。
22.这里,第一、第二c

sdk模块为对阿里云所提供的c

sdk软件包进行编译而得到的软件包,c

sdk软件包是基于mqtt(message queuing telemetry transport,消息队列遥测传输)协议的,mqtt协议是工作在tcp/ip协议族上;这里,第一、第二c

sdk模块均能够将数据a(例如,第一数据等)转换为mqtt数据,也能够将mqtt数据转换成数据a(例如,第一数据等)。
23.这里,ems客户端模块14为实现ems客户端的功能的模块,可以为软件模块,也可以为硬件模块,或者软硬结合的模块;网卡12为一个实现了transmission control protocol,传输控制协议)/ip(internet protocol,网际互连协议)协议栈的硬件模块,即无需在软件的支持下,网卡12就能够基于tcp/ip协议发送、接收数据;ems服务端模块22为一个实现ems服务端的功能的模块,可以为软件模块,也可以为硬件模块,或者软硬结合的模块。ems客户端模块14和ems服务器端模块22共同实现了能量管理系统中的功能,例如,ems客户端模块14负责收集数据,而ems服务器端模块22用于对数据进行处理,并向ems客户端模块14发送控制指令,ems客户端模块14在接收控制指令时,会执行相应的动作。
24.这里,在该服务器2中,可以使用aliyun linux等操作系统。
25.这里,在ems终端设备1中,当ems完成板级初始化、操作系统运行后,第一c

sdk模块13只需要将第一数据转换成mqtt数据,然后只需要将该mqtt数据包发送给网卡12即可,网卡12能够将该mqtt数据转换成若干tcp数据包,然后通过互联网发送给服务器2,可以理解的是,在ems终端设备1既集成了c

sdk,又无需在使用软件来实现tcp/ip协议栈(即直接使用网卡12),可以理解的是,这能够极大的降低研发成本。可选的,在ems终端设备1中,需要安装有网卡12的驱动程序,因此,研发人员可以基于该驱动程序所提供的的接口、来重写c

sdk中的网络接口函数(例如,socket函数等)。
26.本实施例中,所述服务器2还用于:在确定ems服务器端模块22需要向所述终端设备1发送第二数据时,控制第二c

sdk模块13处理第二数据得到第二mqtt数据,基于tcp协议、将第二mqtt数据发送给所述网卡12;
27.所述处理器11还用于:控制所述网卡12基于tcp协议,接收第二mqtt数据,控制第一c

sdk模块13处理第二mqtt数据、并得到第二数据,控制第一c

sdk模块13处理第二数据。。
28.本实施例中,如图2所示,所述处理器11为mcu(microcontroller unit,微控制单元),所述网卡12为w5500芯片;
29.所述mcu中的scsn引脚与w5500芯片的scsn引脚电连接,所述mcu中的sclk引脚与w5500芯片的sclk引脚电连接,所述mcu中的mosi引脚与w5500芯片的mosi引脚电连接,所述mcu中的miso引脚与w5500芯片的miso引脚电连接。
30.这里,w5500芯片是一款集成全硬件tcp/ip协议栈的嵌入式以太网控制器,同时也是一颗工业级以太网控制芯片。
31.这里,通过scsn引脚,mcu可以对w5500芯片进行片选操作,当scsn引脚低电平有效,即当为低电平,该w5500芯片被选用,当为高电平,该w5500芯片不选用。sclk引脚可以作为始终输入,即w5500芯片可以通过sclk引脚接收mcu发送的时钟信号。该mcu通过mosi引脚向w5500芯片输出数据,该w5500芯片通过mosi引脚向mcu输出数据。
32.可选的,该mcu的型号可以为stm32f429igt6。
33.本实施例中,所述“控制网卡12基于tcp协议、将第一mqtt数据发送给服务器2”具体包括:设置定时器,所述定时器会在预设时间之后超时;控制网卡12将第一mqtt数据转换成若干tcp数据包,持续将所述若干tcp数据包发送给所述服务器2;在所述若干tcp数据包被发送完、且所述定时器处于未超时状态,向所述处理器11反馈发送成功的信息;在所述若干tcp数据包未被发送完、且所述定时器处于超时状态,向所述处理器11反馈发送失败的信息。这里,在发送第一数据时,是需要设定定时器的,即第一数据必须在规定的时间内发送完毕,如果没有在规定的时间内完成发送,则说明发送失败。
34.本实施例中,所述ems终端设备1上运行的操作系统是ucos。
35.本实施例中,所述服务器2上运行的操作系统是linux。
36.本实施例中,所述处理器11和网卡12之间使用spi(serial peripheral interface,串行外设接口)通信协议。
37.这里,在该用于ems的物联网系统的具体实现时,使用w5500芯片对应的驱动程序来实现,w5500芯片所能够提供的读写接口包括:(1)用于读一个字节的函数,u8 spi2_readbyte(u8 txdata);(2)用于写一个字节的函数,void spi2_writebyte(u8 txdata);(3)用于片选w5500芯片的函数,void spi2_cs_select();(3)取消片选w5500芯片的函数,void spi2_cs_deselect()。
38.w5500芯片对应的驱动程序能够提供接口有:
39.(1)打开一个socket,int8_t socket(uint8_t sn,uint8_t protocol,uint16_t port,uint8_t flag);
40.(2)关闭socket,int8_t close(uint8_t sn);
41.(3)监听socket,int8_t listen(uint8_t sn);
42.(4)发起与远端地址端口连接,int8_t connect(uint8_t sn,uint8_t*addr,uint16_t port);
43.(5)断开连接,int8_t disconnect(uint8_t sn);
44.(6)发送数据,int32_t send(uint8_t sn,uint8_t*buf,uint16_t len);
45.(7)接受数据,int32_t recv(uint8_t sn,uint8_t*buf,uint16_t len);
46.(8)向目的端口发送数据,int32_t sendto(uint8_t sn,uint8_t*buf,uint16_t len,uint8_t*addr,uint16_t port);
47.(9)接收目的端口的数据,int32_t recvfrom(uint8_t sn,uint8_t*buf,uint16_t len,uint8_t*addr,uint16_t*port)。
48.该mcu初始化w5500芯片的步骤包括:
49.(1)将w5500芯片的供电控制引脚打开,w5500_power_on(),即打开w5500芯片的供电控制引脚,使得w5500芯片得电,这是通过mcu控制一个mos管实现的w5500芯片电源的通断;
50.(2)w5500芯片的中断/复位引脚初始化,w5500_gpio_init(),把w5500芯片的w5500_int引脚配置为中断输入引脚,复位引脚初始化为推挽上拉输出;
51.(3)复位w5500芯片,w5500_reset();
52.(4)spi接口初始化,spi2_init();
53.(5)注册spi片选信号函数,reg_wizchip_cs_cbfunc(spi2_cs_select,spi2_cs_deselect),即将mcu片选w5500芯片关联到w5500芯片的库文件;
54.(6)注册读写函数,reg_wizchip_spi_cbfunc(spi2_readbyte,spi2_writebyte),使得mcu读写数据关联到w5500芯片的库文件;
55.(7)socket内存初始化,ctlwizchip(cw_init_wizchip,(void*)memsize),使用memsize[2][8]={{1,1,4,4,2,2,1,1},{1,1,4,4,2,2,1,1}},初始化w5500芯片的收发缓冲区大小;
[0056]
(8)w5500芯片的工作参数配置,network_init()并使用默认ip、子网掩码、网关、初始化w5500芯片,ctlnetwork(cn_set_netinfo,(void*)&l_st_net_info),写w5500芯片的shar寄存器设置mac地址,gar寄存器设置网关地址,subr寄存器设置子网掩码,sipr设置ip地址;
[0057]
(9)初始化w5500芯片的网卡超时时间,ctlnetwork(cn_set_timeout,(void*)&l_st_net_timeout_info);
[0058]
(10)设置w5500芯片的rcr寄存器设置重试次数,设置rtr寄存器设置超时时间,设置w5500芯片发送定时器的保活时间
[0059]
for(l_u8_socket_n=0;l_u8_socket_n<8;l_u8_socket_n )
[0060]
{
[0061]
setsockopt(l_u8_socket_n,so_keepaliveauto,&l_u8_keep_alive);
[0062]
}
[0063]
(11)设置w5500芯片的sn_ir寄存器设置超时时间,打开w5500芯片的socket中断,ctlwizchip(cw_set_intrmask,&l_st_sn_int_kind),即设置w5500芯片的imr和simr寄存器;
[0064]
(12)设置中断类型为接收中断,如果有数据收到,就会发生接收中断
[0065]
for(l_u8_socket_n=0;l_u8_socket_n<8;l_u8_socket_n )
[0066]
{
[0067]
ctlsocket(l_u8_socket_n,cs_set_intmask,&l_st_sock_int);
[0068]
}
[0069]
(13)设置中断间隔时间
[0070]
ctlwizchip(cw_set_intrtime,&l_u8_int_intervel),即设置w5500芯片的intlevel寄存器
[0071]
(14)dhcp初始化
[0072]
reg_dhcp_cbfunc(my_ip_assign,my_ip_update,my_ip_conflict);
[0073]
dhcp_init(net_sock_dhcp,g_u8_dhcp_buf);
[0074]
即设置shar、sipr、sipr和gar寄存器。
[0075]
此外,为了适配c

sdk适配工作还需要实现以下函数:(1)配置mqtt服务器域名地址;(2)配置mqtt客户端;(3)配置mqtt服务器ip地址;(4)配置mqtt服务器端口;(5)配置设备productkey;(6)配置设备devicename;(7)配置设备devicesecret;(8)配置网络连接的安全凭据;(9)配置mqtt默认消息接收回调函数;(10)配置mqtt事件回调函数;(11)配置mqtt的心跳间隔;(12)配置mqtt的最大允许的心跳丢失次数;(13)配置mqtt是否clean session;(14)配置mqtt是否使能mqtt自动重连。
[0076]
此外,还需要实现以下函数:(1)销毁1个网络会话的函数;(2)根据cred加密策略选择不同销毁函数;(3)不加密销毁的函数;(4)加密销毁的的函数;(5)生成随机数的函数;(6)创建互斥锁的函数,可以通过调用ucos的osmutexcreate(prio,&l_u8_err)函数来实现;(7)申请互斥锁的函数,可以通过调用ucos的osmutexpend函数来实现;(8)释放互斥锁的函数,可以通过调用ucos的osmutexpost函数来实现;(8)销毁互斥锁的函数,可以通过调用ucos的osmutexdel函数来实现。
[0077]
应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
[0078]
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜