多协议物联网关的方案测试-基于米尔全志T536开发板

本文将介绍基于米尔电子MYD-LT536开发板(米尔基于全志T536开发板)的多协议物联网关方案的开发测试。

摘自优秀创作者-ALSET

米尔基于全志T536开发板

为了充分的应用该开发板,结合T536处理器的特点,这里进一步的进行软件开发,充分利用开发板的硬件资源,完成业务产品的需求。这里以物联网多协议网关应用为研究为目的,首先建立基础的从各个硬件设读取硬件端口的数据,并且通过SOCKET由网络收发的过程。在一般开发物联网网关时可以采用MQTT,MODBUS等协议库,作为标准的通讯,来解决硬件型号采集和对TCP/IP网络发送的过程。但有些业务则需要专有的通信协议来进行通讯,比如TCP、IP或者UDP的方式进行网络收发。

在米尔的官方资料中已经提供了全套的开发资料,可以参考开发板的资料,来搭建所需要的开发环境。开发资料中提供了系统固化镜像、Bootloader源码、内核驱动源码,以及丰富的Demo程序,阅读资料有助于快速的构建开发环境。这里将在此开发板上进行验证和测试。

1.主机硬件端口读取

米尔在T536开发板上支持了丰富的端口并且开发板上做了型号的隔离,非常适合工业物联网型号采集和控制。首先查看一下开发板的端口硬件资源:

开发板的物联网接口资源丰富,它引出2路RS485、1路RS232、2路CAN、3路Ethernet、5路USB、Local Bus等通信接口,同时引出LVDS,HP OUT/MIC IN等音视频多媒体接口,内置2TOPS NPU、8M@30fps ISP,并支持4K@25fps H.264视频编码。

这里首先进行读取RS232和485端口数据,这里设计可配置的数据参数读物方式,端口配置保存在板子用户目录下。

2.端口配置文件

通过使用端口配置,可以方便的在实施时配置与业务对应的参数,符合应用场景。这样不必修改程序即可投入使用,这里配置端口文件如下

3.进程间通讯程序RPC

为了使读取的数据,能多重的使用,这里使用多线程的方式,其中一个线程负责读取线程,并把读取的数据压入系统的队列中。另外一个线程则可以检查和处理数,比如对数据做异常值检查,对数据做平滑,抽稀,均值等处理,通信线程则把需要的数据向另外的进程通过进程通讯的方式进行发送,RPC线程程序设计如下:

4.交叉编译环境脚本编写

编写好编译脚本,即完成整体工程的创建,并传输到编译环境主机中进行编译。把工程项目传到主机交叉编译环境中:

然后直接make 进行编译:

很顺利的编译成功。

5. 开发http服务程序

在物联网网关设备中,通常采用web的管理界面,用户监控系统应用的工作状态,以及进行的必要的配置和设置等工作。这里设计一个嵌入式的http服务程序,考虑服务程序和硬件紧密结合,这里不使用nginx等这样的独立的web服务程序,而是使用httpd开源的小型http服务工程,进行二次开发,好处是可以方便的加入对硬件的访问以及特别的应用功能,不如获取端口的数据,并做处理,通过web网关传到页面前端,通过动态html脚本,完成灵活的页面和底层访问的功能。这里使用httpd开源工程进行二次开发:

工程主代码如下:

工程目录如下:

其中需要创建几个运行目录,tmpl是前端页面模板目录,里面可以放入html模板,供http服务器程序渲染输出最终的html页面。

www目录则放置静态资源文件,如图片,样式表文件,js前端脚本文件等。

这几个目录也需要在开发板上创建。

对工程进行编译,编译如下:

可见成功的编译出httpd板上执行程序。

6.设计并开发前端页面

为了使这个物联网网关根直观可用,这里还需要设计一组前端页面,方便观察网关的运行装填,以及对响应的配置文件等进行配置。因为前端页面不是开发板主要的开发目标,这里我们使用AI辅助设计前端页面,顺便也看一下AI前端页面设计的能力。这里使用字节跳动的coze spzce智能体来设计物联网网关的前端页面,首先打开扣子空间页面:

在提示词中详细描述我们的页面设计内容,提示词内容如下:

再点击生成,经过大约5分钟的时间,生成了页面代码和样式表文件以及相关js代码,生成内容如下:

输出的页面内容如下:

7.手动调整修改HTML前端页面

由智能体生成的页面,通过检查,发现页面中有不少错误和缺失,首先对页面进行人工检查错误和修改,对页面中的实例数据进行删除,并修改为全局模板变量,对访问的静态资源文件位置进行修改,对访问数据的XRH方式进行jquery方式进行修改。

8.服务程序和前端页面模板部署

把端口数据服务程序以及WEB后台服务程序httpd都传输到开发板上,并且把页面模板也传输到开发板httpd的同级目录下:

前端页面的部署:

9.服务启动运行

部署好服务程序后,即可开始启动相关服务程序,首先启动

multi-serial-monitor

打开浏览器,输入开发板的IP,访问WEB页面,显示出来:

总结

通过初步的通讯多端口数据的采集与收发,和使用多线程的的工作方式,以及多进程的任务服务方式,实现了T536数据采集与收发的程序测试。并且开发了嵌入式的http服务,提供一个简单明了的客户端管理界面,整个开发过程整体非常顺畅。很容易建立好开发板的使用环境。同时通过开发板的多协议网关程序,也可以进一步将该数据网关用户智能生产控制领域,如智慧楼宇,智慧工厂等。通过开板的完备的功能以及各个子系统的紧凑联系,使得面向物联数据开发过程游刃有余,对进一步开发复杂的业务逻辑和定制化业务流程也很有帮助。

相关推荐
美好的事情总会发生2 小时前
FPGA的LVDS接口电压
嵌入式硬件·fpga开发·硬件工程·智能硬件
kaka❷❷2 小时前
STM32中 ESP8266 MQTT ModBus RS482 介绍
stm32·嵌入式硬件·智能路由器
hazy1k4 小时前
51单片机基础-TFT LCD 显示(ILI9341,SPI 4线)
c语言·stm32·单片机·嵌入式硬件·51单片机
brave and determined5 小时前
硬件-内存学习DAY14——3DXPoint:存储技术的革命与终结
嵌入式硬件·intel·3d xpoint·内存创新·内存设计·内存应用·内存新技术
QQ12958455046 小时前
ThingsBoard部件数据结构解析
数据结构·数据库·物联网·iot
TDengine (老段)7 小时前
TDengine 数学函数 ASCII 用户手册
java·大数据·数据库·物联网·时序数据库·tdengine·涛思数据
陌上花开缓缓归以7 小时前
phy降速自愈到100M重试流程分析
arm开发
凉、介8 小时前
ARM 总线技术 —— APB
arm开发·笔记·学习
物联网牛七七8 小时前
单片机中的中断
单片机·嵌入式硬件
TDengine (老段)12 小时前
TDengine 数学函数 TRUNCATE 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据