郑美芳,余 波,魏海生,潘加琴
(成都工业学院 网络与通信工程学院,成都 611730)
采矿企业需大量工矿设备,如矿用变频器、风机、传送带、球磨机等设备。这些设备多采用独立控制模式,数据传输量少,对设定参数需要实时响应,所以这些设备多采用现场总线。现场总线具有实时性好、稳定及抗干扰能力强的特点,形成真正分散在现场的完整控制系统,提高了控制系统运行的可靠性。采矿企业通常选用短帧方式的控制器局域网络(Controller Area Network,CAN)总线作为现场总线。
随着物联和智能控制的需要,设备联动控制技术被采矿企业采用。但是,各设备布局位置相距较远,短帧方式的CAN 总线无法满足各设备远程联动控制的需要,而以太网能满足此需求。因此,需要对协议进行转换的物联网关、现场控制设备之间与管理层网络之间建立联系,实现管控网络与数据网络的结合,实现信号远程传送与异地远程控制。本文设计的网关可对数据进行处理及可视化分析,通过文件系统对数据信息进行记录,通过便携式储存器下载所记录的数据,通过外接电容触摸屏查看存储的数据信息,通过以太网下载储存在本地的数据等。
根据应用需求,本设计可实现CAN 局域网络与以太网之间的数据交互,并在此基础上添加更多人性化的设计,以满足不同的需求,对系统功能分析后,确定系统的整体结构如图1所示。用户可在此基础上,进行二次开发,对数据进行处理及可视化分析,文件系统对接收数据信息进行记录,可通过便携式存储器下载所记录的数据。
CAN 总线由BOSCH 公司开发,CAN 总线任意两个节点间最大传输距离和通信速率成反比,例如,理论上波特率为100 k时,最大总线长度620 m;波特率为250 k 时,最大总线长度为270 m。但是实际应用中,CAN 总线的传输距离还将受到电磁干扰、传输介质特性等因素的影响。
CAN 总线根据不同的波特率范围采用两种不同网络结构,本系统中波特率在125 k 以上,所以采用国际标准化的串行通信协议ISO 11898。
CAN 协议控制器和物理总线之间需要接口转换CAN,为总线提供差分传输能力,为CAN 控制器提供差分接收能力。
本系统中采用STM32F767 作为主控芯片,STM32F767 芯片带有2 个CAN 通信协议控制器,完全可配置CAN2.0 A 模式和2.0 B 模式,支持时间触发通信,具备3 个发送邮箱,3 级深度的2 个接收先入先出队列(First Input First Output,FIFO)。可实现对节点1 到节点N的数据通信,实现对带CAN 总线节点终端设备的监控。
CAN 转换芯片类型众多,常见有NXP 公司的TJA 系列芯片,如TJA1050、ADM3053BRWZ 等,经过性能测试后,选定ADM3053BRWZ 作为转换接口芯片。
STM32F767 芯片自带以太网模块,用户可配置多址接入信道(Multiple Access Channel,MAC)控制器及直接存储器访问(Direct Memory Access,DMA)控制器的工作模式和功能。
STM32F767 必须外接以太网物理层芯片才能进行通信,支持使用SMI(MDIO&MDC)接口的Physica 芯片,采用介质无关接口(Media Independent Interface,MII)/简化媒体独立接口(Reduced Media Independent Interface,RMII)与其进行物理连接。在本设计中,外接物理层芯片通过RMII 接口与主芯片通信,物理层芯片采用了LAN8720A。
本设计要保证足够快的响应速度以处理CAN 报文中的数据,数据处理任务较为繁重,若以中断服务作为后台服务程序,实现简单的前后台操作系统,虽然简化了程序设计,对系统资源消耗得更少,但每次程序的运行时间不确定、系统响应速度慢和程序运行状态得不到保证等问题也暴露无遗,故需要一个稳定的操作系统对线程进行管理,实现多线程的切换,达到设备的快速响应等要求。
CMSIS 全称“Cortex Microcontroller Software Interface Standard”,定义了基于Cortex-M 构架的微控制器标准的实时操作系统(Real Time Operating System,RTOS)应用程序接口。本设计先对CMSIS-RTOS 操作系统进行配置,并完成周围硬件接口的驱动编写,其中包括实时时钟(Real_Time Clock,RTC)系统时钟驱动、CAN 局域网控制器驱动、以太网控制器驱动、块设备控制器驱动、液晶屏幕驱动,并编写相应的测试程序以测试驱动程序的稳定性,使系统底层性能更加强健。
根据需求系统功能组件确定为网络功能组件、文件系统组件和emWin 图形界面组件,网络功能组件采用RTNet 网络协议栈,其与LwIP 协议栈都是在嵌入式设备上使用的微型协议栈,能满足项目的开发需求;文件系统是在FAT32 文件系统上演变而来的,增加了对随机存取存储器(Random Access Memory,RAM)文件、NOR Flash 的支持;emWin 图形界面组件为本设计中7 寸触摸屏提供了图形化窗体控件以及丰富的图形用户界面(Graphical User Interface,GUI)控件。
在内存中将数据记录下来后,在数据中添加时间戳、校验等固定字节后便可通过设计的网络接口,向外部发送以太网数据。本设计希望不仅设计出数据流转发的功能,还设计出一个能对系统进行管理的程序或网页服务器,以达到采用网页的方式控制设备运行的目的。这样控制设备可以是个人计算机、手机、局域网终端设备等,实现多平台访问,管理人员操作更加方便、简单。设置CAN 接收数据帧类型,开启一个消息队列可以方便CAN 报文数据在系统中安全高效传输,在进行线程设计时应满足事件原子化的原则,即一个线程的任务单一,从而压缩任务的处理时间,加快系统响应速度。故在本线程中,仅等待激活线程的信号,其余时间处于阻塞状态,将系统资源分配给其他线程。基于CMSIS 操作系统进行应用程序设计,应尽量避免在CAN 接收中断时对数据进行处理,而要在中断时对线程发出事件信号,并退出中断处理函数,将系统的控制权交还给操作系统,而事件信号经过操作系统的传递用于激活处于阻塞状态的CAN 总线控制线程,并在线程中实现对数据的接收与处理,接下来便是通过以太网转发该报文。
系统开机后会进行自检及挂载文件系统,并在串口调试终端中打印出初始化信息,表示设备启动完成,之后便可输入命令进行调试。
CAN 总线数据到以太网数据功能测试分为两种,一种为用户数据包协议(User Datagram Protocol,UDP)数据发送测试,在个人计算机端使用网络调试助手作为显示终端,在软件中设置协议类型为UDP,接收的端口号为1 000,在网络数据接收区中可以清晰地看到由网关(192.168.5.100)所发送的数据,其数据与本地文件中保存的内容一致,说明UDP 发送网络数据的功能是正常工作的。
系统上电后,一旦接收到CAN 报文便会在本地磁盘中创建一个以当前日期为文件名的文件,用于记录当前的设备数据,使用Ls命令将会输出本地磁盘中所保存的所有文件,使用Type命令,便可将其中内容打印在调试终端上,通过以上3 个测试,显示的数据均是相同的,故设备在存储及转发上不存在错误或误码。
本设计在参考了市面上部分产品的基础上,确定了工业物联网关的设计思路,以使系统设计更加紧凑,并在同一个网关上实现了嵌入式网页服务器、CAN 报文转以太网报文、文件转储功能及触摸屏界面设计,使系统功能更加强大。本设计相对于市面上的产品成本较低,功能更加丰富,设计更加紧凑,二次开发周期短,能实现对不同应用场景的适配。