基于LPC2294的泵舱信号转换电路设计
1680的TPOUT+、TPOUT-、TPIN+、TPIN-相连。如图3所示。
2 软件设计
系统在软件设计中主要进行了操作系统移植、TCP/IP的嵌入式开发环境实现及网络设备驱动程序开发等内容。由于传感器数据是一种少量实时数据,完整的TCP/IP在本系统中并不适用,所以对其进行裁剪来节省资源提高实时性。本部分主要对TCP/IP嵌入式开发环境实现与网络设备驱动程序开发进行简要说明,并对整体程序设计加以介绍。
2.1 系统相关数据报文结构
由于本系统主要是完成对泵组进行压力信息采集并通过以太网向上位机进行发送的过程,所以需处理的数据量较小,因此本泵舱信号转换系统采用自定义的UDP数据报文封装方式对所需传输的数据进行封装,并通过设定控制字来对不同功能的报文加以区分。
图4为自定义UDP报文的具体封装,其中前4字节为固定帧头信息,用以表示本系统内的数据报信息。除此之外,前20 bit还包括双方IP地址、序列号等基本信息,余下20 bit后的内容才是监测数据信息。自定义UDP数据报文的数据域主要是由多个信息单元组成的,具体信息单元结构如图5所示。
信息内容长度为8 bit,其中头6 bit分别以2 bit一组标识3组泵组压力的相关信息,每组信息包括泵组工作状态、通道工作状态以及泵组的实时压力数据,其余2 bit为保留字节。以前2 bit的信息结构为例,如图6所示。
字节0的0~1位表示4种泵组工作状态:泵组未启动(00)、泵组启动(10)、通道未使用实时压力信息置0(10)、通道自检故障实时压力信息置0(11)。
字节0的2~3位表示4种通道工作状态:自检正常(00)、自检状态故障(01)、采集信息超限报警(10)、通道处于检修状态(11)。
其余12位信息表示泵组实时压力,其他3组泵组信息结构与其相同。
2.2 TCP/IP协议栈的裁剪与实现
TCP/IP是目前应用最广泛的网络传输协议,虽该协议并不符合国际标准化组织的制定标准,但其无疑是世界上用户最多的计算机网络协议。TCP/IP是一个4层的协议系统,每个层次均具有不同的协议,实现不同的通信功能。在嵌入式应用环境下,TCP/IP仍保持着该结构,只是在具体协议的实现过程中,根据功能需要进行了相应的调整,可以满足设计需要即可。嵌入式应用环境下的TCP/IP协议结构及各协议间的关系如图7所示。
2.3 DM9000E驱动程序设计
作为以太网的控制器,以太网控制芯片DM9000E的工作就是对报文形式的封装和传输。具体的DM9000E驱动程序设计包括设备的初始化、发送程序设计和接收程序设计。作为以太网的控制器,DM9000E的工作就是负责上面介绍的报文形式的封装和传输。
对于DM9000E的初始化过程,首先调用预设的硬件初始化宏定义来完成各网口的硬复位,然后执行软复位的相关操作,如设置I/O模式、PHY寄存器及控制器工作状态等内容,并最终将MAC地址写入MAC寄存器并激活网卡,初始化过程完成。具体的软件设计流程如图8所示。
当应用程序需经过网络传递数据时,DM9000E配置相关寄存器的信息,并调用函数进行发送。设计时,设定DM9000E对于每包数据发送的最大尝试次数为6,当超过该值时就将该数据报丢弃。且DM9000E还支持双缓冲区发送,能有效提高网络传输数据率。另外,为了提高发送数据的实时性,可使用中断方式启动发送函数,由上层协议来调度。
DM9000E的数据包接收驱动程序相对于发送较为复杂,在设计过程中将代码放在临界段,以防止在接收数据时程序意外中断而产生数据包错误等结果。而实现临界段代码的一个重要手段就是任务锁,当任务上锁之后该进程不允许中断,直至代码运行结束后解锁。若DM9000E顺利接收到数据包,需判断数据的位模式,以进行不同的处理后写入内部缓冲区,若数据长度及状态均符合要求,通过调用以太网收包函数进行下一步处理。
2.4 程序设计
信号转换电路的主要功能是将压力传感器的数据接收并封装经网卡芯片发送至以太网。系统使用μC/OS-II实时操作系统作为系统平台,通过裁剪、移植使其在LPC2294控制器上顺利运行。此外,系统中移植了TCP/IP协议的核心功能函数,并主要编写了5个任务函数,使其完成整个系统的核心功能,并通过μC/OS—II系统的任务调度管理机制来进行系统资源的分配。
程序流程如图9所示。系统首先建立设备初始化任务TaskA(),该任务主要完成上电自检、网口断线自检、本机IP及两路网口等网关参数的初始化等。在完成上述工作后,创建4个子任务,按优先级由高到低依次为TaskB()、TaskC()、TaskD()、TaskE()。其中4个子任务的具体功能如下:
TaskB、TaskC:分别接收来自上位机的以太网报文,其中TaskB接受UDP报文,TaskC接收TCP报文,并完成
信号转换 TCP/IP协议 μC/OS-II LPC2294 DM9000E 相关文章:
- 一种数模信号转换的实际案例介绍(三)(07-26)
- 一种数模信号转换的实际案例介绍(二)(07-26)
- 一种数模信号转换的实际案例介绍(一)(07-26)
- HY11P23二线式仪用表头应用说明(07-25)
- 基于LPC2294处理器的嵌入式PLC的设计(一)(10-08)
- 12位串行A/D转换器MAX187的应用(10-06)